/*
 * Service page — new design (template-service-page.php).
 *
 * Styles the "Service Page" block patterns (/patterns/service-*.php) by
 * their svc-* classes, matching the homepage / Hire FDE look. Header,
 * testimonials, contact and footer come from reimagined-home.css and
 * main.css (the body also carries edge-facelift-home).
 *
 * Everything is scoped under body.edge-service-page.
 */

body.edge-service-page {
	--svc-navy: #0c1627;
	--svc-ink: #131c29;
	--svc-muted: #626c7c;
	--svc-orange: #ff5900;
	--svc-soft: #f5f6f9;
	--svc-line: #e0e4ec;
	--svc-peach: #ffe8db;
	--svc-display: Manrope, 'DM Sans', Arial, sans-serif;
	--svc-width: min(1168px, calc(100% - 80px));
	background: #fff;
}

/* Blocks bring their own margins (and the editor's flow-layout gap);
   zero them at no specificity and space sections explicitly below. */
body.edge-service-page :where(.svc-main) :where(.wp-block-group, .wp-block-image, .wp-block-buttons, .wp-block-list, .wp-block-details, p, h1, h2, h3, h4, figure) {
	margin: 0;
}

body.edge-service-page .svc-main .wp-block-image img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* ---- Sections ---------------------------------------------------------- */

body.edge-service-page .svc-section {
	padding: 80px 0;
}

body.edge-service-page .svc-section > * {
	width: var(--svc-width);
	margin-inline: auto;
}

body.edge-service-page .svc-section.is-soft {
	background: var(--svc-soft);
}

body.edge-service-page .svc-section.is-navy {
	background: var(--svc-navy);
	color: #fff;
}

body.edge-service-page .svc-section.is-navy h2 {
	color: #fff;
}

body.edge-service-page .svc-section.is-navy .svc-heading p:not(.svc-eyebrow) {
	color: #bec8d9;
}

body.edge-service-page .svc-eyebrow {
	font-size: 14px;
	line-height: 1.5;
	font-weight: 500;
	color: var(--svc-orange);
}

body.edge-service-page .svc-heading {
	max-width: 860px;
	margin-bottom: 44px;
	text-align: center;
}

body.edge-service-page .svc-heading h2,
body.edge-service-page .svc-split__copy h2,
body.edge-service-page .svc-faq__intro h2 {
	margin-top: 8px;
	font-size: clamp(29px, 2.6vw, 38px);
	line-height: 1.25;
	letter-spacing: -0.4px;
}

body.edge-service-page .svc-heading p:not(.svc-eyebrow) {
	margin-top: 16px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--svc-muted);
}

body.edge-service-page .svc-link a {
	display: inline-block;
	font-size: 15px;
	font-weight: 600;
	color: var(--svc-orange);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 1px;
	transition: background-size 0.25s ease;
}

body.edge-service-page .svc-link a:hover {
	background-size: 100% 1px;
}

/* ---- Buttons ------------------------------------------------------------ */

body.edge-service-page .svc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

body.edge-service-page .svc-actions.is-center {
	justify-content: center;
	margin-top: 40px;
}

body.edge-service-page .svc-actions .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 13px 22px;
	border: 1px solid var(--svc-orange);
	border-radius: 4px;
	background: var(--svc-orange);
	font-family: 'DM Sans', Arial, sans-serif;
	font-size: 15px;
	line-height: 1.5;
	font-weight: 650;
	color: #fff;
	text-decoration: none;
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

/* Same motion as the homepage .button: lift + glow, a light sweep across
   the button, and the arrow nudging right. */
body.edge-service-page .svc-actions .wp-block-button__link {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

body.edge-service-page .svc-actions .wp-block-button__link::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background: linear-gradient(110deg, transparent 25%, rgba(255, 255, 255, 0.22) 48%, transparent 72%);
	transform: translateX(-130%);
	transition: transform 480ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

body.edge-service-page .svc-actions .wp-block-button__link::after {
	content: '\2192';
	display: inline-block;
	font-size: 18px;
	line-height: 1;
	transition: transform 0.18s cubic-bezier(0.2, 0.75, 0.25, 1);
}

body.edge-service-page .svc-actions .wp-block-button__link:hover,
body.edge-service-page .svc-actions .wp-block-button__link:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 8px 22px rgba(255, 89, 0, 0.21);
}

body.edge-service-page .svc-actions .wp-block-button__link:hover::before,
body.edge-service-page .svc-actions .wp-block-button__link:focus-visible::before {
	transform: translateX(130%);
}

body.edge-service-page .svc-actions .wp-block-button__link:hover::after,
body.edge-service-page .svc-actions .wp-block-button__link:focus-visible::after {
	transform: translateX(4px);
}

body.edge-service-page .svc-actions .wp-block-button__link:active {
	transform: translateY(0) scale(0.985);
	box-shadow: none;
}

body.edge-service-page .svc-actions .is-style-outline .wp-block-button__link {
	border-color: #718098;
	background: transparent;
	color: #fff;
}

body.edge-service-page .svc-actions .is-style-outline .wp-block-button__link:hover,
body.edge-service-page .svc-actions .is-style-outline .wp-block-button__link:focus-visible {
	border-color: var(--svc-orange);
	background: rgba(255, 255, 255, 0.05);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.13);
}

@media (prefers-reduced-motion: reduce) {
	body.edge-service-page .svc-actions .wp-block-button__link,
	body.edge-service-page .svc-actions .wp-block-button__link::before,
	body.edge-service-page .svc-actions .wp-block-button__link::after {
		transition: none;
		transform: none !important;
	}
}

body.edge-service-page .svc-section:not(.is-navy):not(.svc-hero) .svc-actions .is-style-outline .wp-block-button__link {
	border-color: var(--svc-ink);
	color: var(--svc-ink);
}

/* ---- Hero ----------------------------------------------------------------- */

body.edge-service-page .svc-section.svc-hero {
	position: relative;
	z-index: 0;
	overflow: hidden;
	padding: 0;
	background: var(--svc-navy);
	color: #fff;
}

body.edge-service-page .svc-hero > .svc-hero__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
}

body.edge-service-page .svc-hero > .svc-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

body.edge-service-page .svc-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, #0c1627 0%, rgba(12, 22, 39, 0.95) 25%, rgba(12, 22, 39, 0.78) 43%, rgba(12, 22, 39, 0.22) 73%, rgba(12, 22, 39, 0.1)), linear-gradient(0deg, rgba(12, 22, 39, 0.85), transparent 32%);
}

body.edge-service-page .svc-hero__inner {
	padding: 38px 0 72px;
}

body.edge-service-page .svc-hero__inner > :not(.svc-breadcrumbs) {
	max-width: 740px;
}

body.edge-service-page .svc-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 52px;
	font-size: 12px;
	color: #c4cbd7;
}

body.edge-service-page .svc-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

body.edge-service-page .svc-breadcrumbs a:hover {
	color: #fff;
}

body.edge-service-page .svc-hero .svc-eyebrow {
	margin-bottom: 15px;
	font-size: 12px;
	letter-spacing: 1.7px;
	text-transform: uppercase;
}

body.edge-service-page .svc-hero h1 {
	font-size: clamp(42px, 4vw, 56px);
	line-height: 1.13;
	letter-spacing: -1.5px;
	color: #fff;
}

body.edge-service-page .svc-hero h1 strong {
	font-weight: inherit;
	color: var(--svc-orange);
}

body.edge-service-page .svc-lede {
	margin-top: 22px;
	font-size: 18px;
	line-height: 1.6;
	color: #dbe1ea;
}

body.edge-service-page .svc-hero .svc-actions {
	margin-top: 34px;
}

/* Badge strip under the hero (a plain list in the editor). */
body.edge-service-page .svc-hero > .svc-badges {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	width: 100%;
	margin: 0;
	padding: 24px max(40px, calc((100% - 1168px) / 2));
	list-style: none;
	background: var(--svc-soft);
	border-bottom: 1px solid var(--svc-line);
	color: var(--svc-ink);
}

body.edge-service-page .svc-badges li {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 0 12px;
	font-size: 13px;
	font-weight: 500;
	border-right: 1px solid var(--svc-line);
}

body.edge-service-page .svc-badges li:last-child {
	border-right: 0;
}

body.edge-service-page .svc-badges li::before {
	content: '';
	flex: none;
	width: 22px;
	height: 22px;
	background: url('../images/service-icons/check.svg') center / contain no-repeat;
}

/* ---- Partner logos -------------------------------------------------------- */

body.edge-service-page .svc-logos {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 14px;
}

/* Each logo sits on a soft grey card, like the homepage platform row. */
body.edge-service-page .svc-logos > .wp-block-image {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	height: 72px;
	padding: 14px 16px;
	border-radius: 8px;
	background: var(--svc-soft);
}

/* Hover: the logo zooms out slightly inside its card. */
body.edge-service-page .svc-logos > .wp-block-image:hover img {
	transform: scale(0.88);
}

body.edge-service-page .svc-logos img {
	width: 100%;
	height: 100%;
	max-height: 34px;
	object-fit: contain;
	transition: transform 0.3s cubic-bezier(0.2, 0.75, 0.25, 1);
}

/* Compact strip, like the homepage trust bar: heading on the left, one
   row of logos on the right. */
body.edge-service-page .svc-section:has(> .svc-logos) {
	display: grid;
	grid-template-columns: minmax(240px, 340px) minmax(0, 1fr);
	align-items: center;
	gap: 40px;
	width: auto;
	padding: 36px max(40px, calc((100% - 1168px) / 2));
	border-bottom: 1px solid var(--svc-line);
}

body.edge-service-page .svc-section:has(> .svc-logos) > * {
	width: auto;
	margin: 0;
}

body.edge-service-page .svc-section:has(> .svc-logos) .svc-heading {
	max-width: none;
	text-align: left;
}

body.edge-service-page .svc-section:has(> .svc-logos) .svc-heading .svc-eyebrow {
	font-size: 12px;
}

body.edge-service-page .svc-section:has(> .svc-logos) .svc-heading h2 {
	margin-top: 4px;
	font-size: 20px;
	line-height: 1.3;
	letter-spacing: -0.2px;
}

body.edge-service-page .svc-section:has(> .svc-logos) .svc-heading p:not(.svc-eyebrow) {
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.5;
}

body.edge-service-page .svc-section:has(> .svc-logos) .svc-logos {
	gap: 12px;
}

body.edge-service-page .svc-section:has(> .svc-logos) .svc-logos > .wp-block-image {
	height: 60px;
	padding: 12px 14px;
}

@media (max-width: 1000px) {
	body.edge-service-page .svc-section:has(> .svc-logos) {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
		padding: 32px 28px;
	}
}

@media (max-width: 700px) {
	body.edge-service-page .svc-section:has(> .svc-logos) {
		padding: 28px 20px;
	}

	body.edge-service-page .svc-section:has(> .svc-logos) .svc-logos {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	body.edge-service-page .svc-section:has(> .svc-logos) .svc-logos > .wp-block-image {
		height: 52px;
	}
}

/* ---- Icon cards ------------------------------------------------------------ */

body.edge-service-page .svc-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

body.edge-service-page .svc-card {
	display: flex;
	flex-direction: column;
	padding: 24px 22px;
	border-radius: 8px;
	background: #f8f9fb;
}

body.edge-service-page .svc-section.is-soft .svc-card:not(.is-cta) {
	background: #eaeef4;
}

/* Icon sits on a soft tile that turns orange on hover (homepage
   industry cards). */
body.edge-service-page .svc-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-bottom: 18px;
	border-radius: 10px;
	background: var(--svc-peach);
	transition: background 0.18s ease, transform 0.18s ease;
}

body.edge-service-page .svc-icon img {
	width: 26px;
	height: 26px;
	transition: filter 0.18s ease;
}

/* Card hover, as on the homepage: lift, orange top edge, orange title,
   orange icon tile with a white icon. */
body.edge-service-page :is(.svc-card, .svc-reason, .svc-model, .svc-dark-card) {
	transition: transform 0.18s cubic-bezier(0.2, 0.75, 0.25, 1), box-shadow 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

body.edge-service-page :is(.svc-card, .svc-reason, .svc-model):not(.is-cta):hover {
	transform: translateY(-4px);
	box-shadow: inset 0 3px var(--svc-orange), 0 8px 22px rgba(12, 22, 39, 0.07);
}

body.edge-service-page :is(.svc-card, .svc-reason, .svc-model):not(.is-cta):hover h3 {
	color: var(--svc-orange);
}

body.edge-service-page :is(.svc-card, .svc-reason, .svc-model):not(.is-cta):hover p {
	color: var(--svc-ink);
}

body.edge-service-page :is(.svc-card, .svc-reason, .svc-model):hover .svc-icon {
	background: var(--svc-orange);
	transform: scale(1.05);
}

body.edge-service-page :is(.svc-card, .svc-reason, .svc-model):hover .svc-icon img {
	filter: brightness(0) invert(1);
}

body.edge-service-page .svc-dark-card:not(.is-cta):hover {
	transform: translateY(-4px);
	border-color: var(--svc-orange);
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.28);
}

body.edge-service-page .svc-dark-card:not(.is-cta):hover h3 {
	color: var(--svc-orange);
}

body.edge-service-page :is(.svc-card, .svc-dark-card).is-cta:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 26px rgba(255, 89, 0, 0.3);
}

body.edge-service-page .svc-card h3,
body.edge-service-page .svc-reason h3,
body.edge-service-page .svc-model h3 {
	font-size: 17px;
	line-height: 1.35;
	letter-spacing: -0.3px;
}

body.edge-service-page .svc-card p,
body.edge-service-page .svc-reason p,
body.edge-service-page .svc-model p {
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--svc-muted);
}

body.edge-service-page .svc-card.is-cta {
	background: var(--svc-orange);
	color: #fff;
}

body.edge-service-page .svc-card.is-cta :is(h3, p) {
	color: #fff;
}

body.edge-service-page .svc-card.is-cta .svc-link {
	margin-top: auto;
	padding-top: 16px;
}

body.edge-service-page :is(.svc-card, .svc-dark-card).is-cta .svc-link a {
	color: #fff;
}

/* ---- Photo + steps / photo + models split ---------------------------------- */

body.edge-service-page .svc-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
}

body.edge-service-page .svc-split__media {
	position: relative;
	min-height: 520px;
	overflow: hidden;
	border-radius: 12px;
	background: var(--svc-navy);
}

body.edge-service-page .svc-split__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}

body.edge-service-page .svc-split__copy > p:not(.svc-eyebrow):not(.svc-link) {
	margin-top: 16px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--svc-muted);
}

body.edge-service-page .svc-steps {
	display: grid;
	gap: 10px;
	margin-top: 24px;
	padding: 0;
	list-style: none;
	counter-reset: svc-step;
}

body.edge-service-page .svc-steps li {
	display: grid;
	grid-template-columns: 42px 1fr;
	column-gap: 14px;
	align-items: center;
	padding: 12px 16px;
	border: 1px solid var(--svc-line);
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--svc-muted);
}

body.edge-service-page .svc-steps li::before {
	counter-increment: svc-step;
	content: counter(svc-step, decimal-leading-zero);
	grid-row: span 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--svc-peach);
	font-size: 14px;
	font-weight: 600;
	color: var(--svc-orange);
}

body.edge-service-page .svc-steps strong {
	display: block;
	font-family: var(--svc-display);
	font-size: 16px;
	font-weight: 600;
	color: var(--svc-ink);
}

/* Photo + steps section, compact: the photo stretches to the copy's
   height (no empty band above/below it), the copy column is wider so the
   heading wraps less, and the steps sit two-up — the whole section fits
   one laptop screen. */
body.edge-service-page .svc-split:not(.is-models) {
	grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
	gap: 48px;
	align-items: stretch;
}

body.edge-service-page .svc-split:not(.is-models) .svc-split__media {
	min-height: 0;
}

body.edge-service-page .svc-split:not(.is-models) .svc-split__copy h2 {
	font-size: clamp(28px, 2.4vw, 34px);
}

body.edge-service-page .svc-split:not(.is-models) .svc-split__copy > p:not(.svc-eyebrow):not(.svc-link) {
	margin-top: 12px;
	line-height: 1.6;
}

body.edge-service-page .svc-split:not(.is-models) .svc-steps {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 22px;
}

body.edge-service-page .svc-split:not(.is-models) .svc-steps li {
	grid-template-columns: 36px 1fr;
	column-gap: 12px;
	align-items: start;
	padding: 14px;
	border-radius: 10px;
	background: #fff;
	font-size: 13px;
	transition: transform 0.18s cubic-bezier(0.2, 0.75, 0.25, 1), box-shadow 0.18s ease, border-color 0.18s ease;
}

body.edge-service-page .svc-split:not(.is-models) .svc-steps li::before {
	width: 36px;
	height: 36px;
	font-size: 13px;
	transition: background 0.18s ease, color 0.18s ease;
}

body.edge-service-page .svc-split:not(.is-models) .svc-steps strong {
	margin-bottom: 2px;
	font-size: 15px;
	line-height: 1.35;
}

/* Same hover language as the other service cards. */
body.edge-service-page .svc-split:not(.is-models) .svc-steps li:hover {
	transform: translateY(-3px);
	border-color: transparent;
	box-shadow: inset 0 3px var(--svc-orange), 0 8px 22px rgba(12, 22, 39, 0.07);
}

body.edge-service-page .svc-split:not(.is-models) .svc-steps li:hover::before {
	background: var(--svc-orange);
	color: #fff;
}

body.edge-service-page .svc-split:not(.is-models) .svc-steps li:hover strong {
	color: var(--svc-orange);
}

body.edge-service-page .svc-section:has(> .svc-split:not(.is-models)) {
	padding-block: 64px;
}

@media (max-width: 1000px) {
	body.edge-service-page .svc-split:not(.is-models) {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	body.edge-service-page .svc-split:not(.is-models) .svc-split__media {
		min-height: 320px;
	}

	body.edge-service-page .svc-section:has(> .svc-split:not(.is-models)) {
		padding-block: 56px;
	}
}

@media (max-width: 560px) {
	body.edge-service-page .svc-split:not(.is-models) .svc-steps {
		grid-template-columns: minmax(0, 1fr);
	}

	body.edge-service-page .svc-split:not(.is-models) .svc-split__media {
		min-height: 240px;
	}
}

/* Engagement models: centered heading above, then one 3-column grid —
   the photo fills the left column for three card rows and the cards flow
   two-up on the right, all the same size. */
body.edge-service-page .svc-split.is-models {
	grid-template-columns: 1.15fr 1fr 1fr;
	gap: 16px;
	align-items: stretch;
}

body.edge-service-page .svc-split.is-models .svc-split__media {
	grid-column: 1;
	grid-row: 1 / span 3;
	min-height: 0;
}

body.edge-service-page .svc-split.is-models .svc-split__copy,
body.edge-service-page .svc-split.is-models .svc-models {
	display: contents;
}

/* The link becomes an orange CTA card in the free cell beside the last
   card (like the CTA cards in the other grids). */
body.edge-service-page .svc-split.is-models .svc-split__copy > .svc-link {
	grid-column: auto;
	display: flex;
	min-height: 160px;
	border-radius: 8px;
	background: var(--svc-orange);
	transition: transform 0.18s cubic-bezier(0.2, 0.75, 0.25, 1), box-shadow 0.18s ease;
}

body.edge-service-page .svc-split.is-models .svc-split__copy > .svc-link:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 26px rgba(255, 89, 0, 0.3);
}

body.edge-service-page .svc-split.is-models .svc-split__copy > .svc-link a {
	display: flex;
	flex: 1;
	align-items: flex-end;
	padding: 24px 22px;
	font-family: var(--svc-display);
	font-size: 20px;
	line-height: 1.3;
	color: #fff;
	background-image: none;
}

body.edge-service-page .svc-models {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 0 0 22px;
}

body.edge-service-page .svc-model {
	padding: 22px;
	border-radius: 8px;
	background: #fff;
}

/* ---- Service photo cards ---------------------------------------------------- */

body.edge-service-page .svc-photo-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

body.edge-service-page .svc-photo-card {
	position: relative;
	z-index: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 425px;
	padding: 24px;
	overflow: hidden;
	border-radius: 10px;
	background: var(--svc-navy);
	color: #fff;
}

body.edge-service-page .svc-photo-card > .wp-block-image {
	position: absolute;
	inset: 0;
	z-index: -2;
}

body.edge-service-page .svc-photo-card > .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

body.edge-service-page .svc-photo-card:hover > .wp-block-image img {
	transform: scale(1.035);
}

body.edge-service-page .svc-photo-card::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, #071121 2%, rgba(11, 21, 43, 0.93) 23%, rgba(12, 22, 39, 0.48) 52%, rgba(12, 22, 39, 0) 78%);
}

body.edge-service-page .svc-photo-card .svc-tag {
	position: absolute;
	top: 20px;
	left: 20px;
	padding: 4px 9px;
	border: 1px solid rgba(255, 255, 255, 0.23);
	border-radius: 3px;
	background: rgba(12, 22, 39, 0.72);
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

body.edge-service-page .svc-photo-card h3 {
	font-size: 23px;
	line-height: 1.25;
	color: var(--svc-orange);
}

body.edge-service-page .svc-photo-card p:not(.svc-tag):not(.svc-link) {
	margin-top: 10px;
	font-size: 15px;
	line-height: 1.5;
	color: #eef1f6;
}

body.edge-service-page .svc-photo-card .svc-link {
	margin-top: 16px;
	padding-top: 12px;
	border-top: 1px solid rgba(100, 112, 134, 0.55);
}

body.edge-service-page .svc-photo-card .svc-link a {
	font-size: 13px;
	font-weight: 500;
	color: #fff;
}

body.edge-service-page .svc-advisor {
	display: flex;
	flex-direction: column;
	min-height: 425px;
	padding: 27px;
	border-radius: 10px;
	background: var(--svc-peach);
}

body.edge-service-page .svc-advisor .svc-tag {
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #675850;
}

body.edge-service-page .svc-advisor h3 {
	margin: 20px 0 14px;
	font-size: 29px;
	line-height: 1.3;
}

body.edge-service-page .svc-advisor p:not(.svc-tag):not(.svc-link) {
	font-size: 16px;
	color: #675850;
}

body.edge-service-page .svc-advisor .svc-link {
	margin-top: auto;
	padding-top: 17px;
	border-top: 1px solid #c7a591;
}

/* ---- Process (navy) ---------------------------------------------------------- */

body.edge-service-page .svc-process {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

body.edge-service-page .svc-step {
	display: grid;
	grid-template-rows: auto auto;
}

body.edge-service-page .svc-step > .wp-block-image,
body.edge-service-page .svc-step > .svc-num,
body.edge-service-page .svc-step > h3 {
	grid-area: 1 / 1;
}

body.edge-service-page .svc-step > .wp-block-image {
	position: relative;
	height: 247px;
	overflow: hidden;
	border-radius: 6px;
}

body.edge-service-page .svc-step > .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.edge-service-page .svc-step > .wp-block-image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(11, 21, 40, 0.98), transparent 70%);
}

body.edge-service-page .svc-step > .svc-num,
body.edge-service-page .svc-step > h3 {
	position: relative;
	z-index: 1;
	align-self: end;
	margin-inline: 16px;
}

body.edge-service-page .svc-step > .svc-num {
	margin-bottom: 46px;
	font-size: 20px;
	font-weight: 600;
	color: var(--svc-orange);
}

body.edge-service-page .svc-step > h3 {
	margin-bottom: 18px;
	font-size: 17px;
	color: #fff;
}

body.edge-service-page .svc-step > p:not(.svc-num) {
	margin-top: 16px;
	font-size: 14px;
	line-height: 1.6;
	color: #bec8d9;
}

/* Hover, as on the homepage process strip: the photo zooms in, the title
   turns orange and the description brightens. */
body.edge-service-page .svc-step > .wp-block-image img {
	transition: transform 0.42s cubic-bezier(0.2, 0.75, 0.25, 1);
}

body.edge-service-page .svc-step > h3,
body.edge-service-page .svc-step > p:not(.svc-num) {
	transition: color 0.18s ease;
}

body.edge-service-page .svc-step:hover > .wp-block-image img {
	transform: scale(1.06);
}

body.edge-service-page .svc-step:hover > h3 {
	color: var(--svc-orange);
}

body.edge-service-page .svc-step:hover > p:not(.svc-num) {
	color: #fff;
}

/* ---- Industry cards (navy band) ------------------------------------------------
   Homepage "Industry expertise" look: light numbered cards on the navy
   band; on hover the title turns orange and an orange edge appears along
   the top. (Cards can also lead with an icon image, .svc-ind-icon.) The
   closing CTA card is dark navy and turns peach on hover. */

body.edge-service-page .svc-dark-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

body.edge-service-page .svc-dark-card {
	display: flex;
	flex-direction: column;
	min-height: 230px;
	padding: 24px 22px;
	border: 1px solid transparent;
	border-radius: 8px;
	background: #f8f9fb;
	color: var(--svc-ink);
}

body.edge-service-page .svc-dark-card .svc-num {
	margin-bottom: 14px;
	font-size: 13px;
	line-height: 1.5;
	font-weight: 600;
	letter-spacing: 1px;
	color: var(--svc-orange);
}

body.edge-service-page .svc-ind-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	width: 52px;
	height: 52px;
	margin: -6px 0 10px -6px;
	border-radius: 50%;
	background-color: transparent;
	transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

body.edge-service-page .svc-ind-icon img {
	width: 34px;
	height: 34px;
	transition: filter 0.4s ease;
}

body.edge-service-page .svc-dark-card h3 {
	font-size: 18px;
	line-height: 1.35;
	letter-spacing: -0.3px;
	color: var(--svc-ink);
	transition: color 0.3s ease;
}

body.edge-service-page .svc-dark-card p:not(.svc-link):not(.svc-num) {
	margin-top: 12px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--svc-muted);
	transition: color 0.3s ease;
}

body.edge-service-page .svc-section .svc-dark-card:not(.is-cta):hover {
	transform: translateY(-4px);
	border-color: transparent;
	box-shadow: inset 0 3px var(--svc-orange), 0 8px 22px rgba(12, 22, 39, 0.16);
}

body.edge-service-page .svc-dark-card:not(.is-cta):hover .svc-ind-icon {
	background-color: var(--svc-orange);
	transform: scale(1.05);
}

body.edge-service-page .svc-dark-card:not(.is-cta):hover .svc-ind-icon img {
	filter: brightness(0) invert(1);
}

body.edge-service-page .svc-section .svc-dark-card:not(.is-cta):hover h3 {
	color: var(--svc-orange);
}

body.edge-service-page .svc-dark-card:not(.is-cta):hover p:not(.svc-link):not(.svc-num) {
	color: var(--svc-ink);
}

/* Closing CTA card: dark navy, peach on hover (homepage "Your sector not
   listed?" card). */
body.edge-service-page .svc-dark-card.is-cta {
	border-color: #374960;
	background: #1a2942;
	color: #fff;
	transition: background-color 0.4s ease, border-color 0.4s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease;
}

body.edge-service-page .svc-dark-card.is-cta h3 {
	color: #fff;
}

body.edge-service-page .svc-dark-card.is-cta p:not(.svc-link):not(.svc-num) {
	color: #b6c1d1;
}

body.edge-service-page .svc-dark-card.is-cta .svc-link {
	margin-top: auto;
	padding-top: 16px;
}

body.edge-service-page .svc-section .svc-dark-card.is-cta .svc-link a {
	color: #fff;
	transition: color 0.3s ease;
}

body.edge-service-page .svc-section .svc-dark-card.is-cta:is(:hover, :focus-within) {
	transform: translateY(-4px);
	border-color: var(--svc-peach);
	background: var(--svc-peach);
	box-shadow: 0 8px 22px rgba(12, 22, 39, 0.16);
}

body.edge-service-page .svc-section .svc-dark-card.is-cta:is(:hover, :focus-within) :is(h3, .svc-link a) {
	color: var(--svc-ink);
}

body.edge-service-page .svc-section .svc-dark-card.is-cta:is(:hover, :focus-within) p:not(.svc-link):not(.svc-num) {
	color: var(--svc-muted);
}

@media (prefers-reduced-motion: reduce) {
	body.edge-service-page .svc-dark-card,
	body.edge-service-page .svc-ind-icon {
		transform: none !important;
	}
}

/* ---- Why choose ----------------------------------------------------------------- */

/* Centered heading, 4-column grid of check-mark cards, centered button
   (reviewer's "AI Strategy Consulting – Page Design" reference). */
body.edge-service-page .svc-why .svc-eyebrow {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

body.edge-service-page .svc-heading h2 strong {
	font-weight: inherit;
	color: var(--svc-orange);
}

body.edge-service-page .svc-reasons {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

body.edge-service-page .svc-reason {
	padding: 26px 24px;
	border: 1px solid var(--svc-line);
	border-radius: 12px;
	background: #fff;
}

/* Photo cards: a photo across the top (svc-reason__photo), title and
   text below. Cards without a photo keep the padded icon layout above. */
body.edge-service-page .svc-reason:has(> .svc-reason__photo) {
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
}

body.edge-service-page .svc-reason__photo {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--svc-soft);
}

body.edge-service-page .svc-reason__photo img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform 0.42s cubic-bezier(0.2, 0.75, 0.25, 1);
}

body.edge-service-page .svc-reason:has(> .svc-reason__photo) > h3 {
	padding: 18px 20px 0;
}

body.edge-service-page .svc-reason:has(> .svc-reason__photo) > p {
	padding: 0 20px 22px;
}

/* Hover: the card lifts (shared rule), the photo zooms in gently and the
   border picks up the orange. */
body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo):hover {
	border-color: rgba(255, 89, 0, 0.45);
	box-shadow: 0 12px 28px rgba(12, 22, 39, 0.09);
}

body.edge-service-page .svc-reason:hover .svc-reason__photo img {
	transform: scale(1.05);
}

body.edge-service-page .svc-reason .svc-icon {
	width: 42px;
	height: 42px;
	margin-bottom: 16px;
	background: #fff1e8;
}

body.edge-service-page .svc-reason .svc-icon img {
	width: 24px;
	height: 24px;
}


/* ---- FAQ ----------------------------------------------------------------------- */

body.edge-service-page .svc-faq.is-soft {
	background: #f0f2f8;
}

body.edge-service-page .svc-faq__layout {
	display: grid;
	grid-template-columns: 0.95fr 1.05fr;
	gap: 65px;
	align-items: start;
}

body.edge-service-page .svc-faq__intro > p:not(.svc-eyebrow) {
	margin-top: 20px;
	font-size: 16px;
	color: var(--svc-muted);
}

body.edge-service-page .svc-faq__list {
	display: grid;
	gap: 12px;
}

body.edge-service-page .svc-faq__list details {
	padding: 19px 22px;
	border-radius: 8px;
	background: #fff;
	transition: box-shadow 0.18s ease;
}

body.edge-service-page .svc-faq__list details:hover,
body.edge-service-page .svc-faq__list details[open] {
	box-shadow: inset 3px 0 var(--svc-orange), 0 5px 16px rgba(12, 22, 39, 0.04);
}

body.edge-service-page .svc-faq__list summary {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 22px;
	font-size: 16px;
	line-height: 1.5;
	font-weight: 500;
	cursor: pointer;
	list-style: none;
}

body.edge-service-page .svc-faq__list summary::-webkit-details-marker {
	display: none;
}

body.edge-service-page .svc-faq__list summary::after {
	content: '+';
	flex: none;
	font-size: 23px;
	line-height: 1.05;
	font-weight: 400;
	color: var(--svc-orange);
	transition: transform 0.18s ease;
}

body.edge-service-page .svc-faq__list details[open] summary::after {
	transform: rotate(45deg);
}

body.edge-service-page .svc-faq__list details > p {
	margin-top: 12px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--svc-muted);
}

/* ---- Responsive ------------------------------------------------------------------ */

@media (max-width: 1100px) {
	body.edge-service-page .svc-cards,
	body.edge-service-page .svc-dark-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.edge-service-page .svc-reasons,
	body.edge-service-page .svc-photo-cards,
	body.edge-service-page .svc-process {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.edge-service-page .svc-models {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1000px) {
	body.edge-service-page {
		--svc-width: calc(100% - 56px);
	}

	body.edge-service-page .svc-section {
		padding: 65px 0;
	}


	body.edge-service-page .svc-split,
	body.edge-service-page .svc-faq__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 34px;
	}

	body.edge-service-page .svc-split__media {
		min-height: 360px;
	}

	/* Models: photo across the top, cards two-up below. */
	body.edge-service-page .svc-split.is-models {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}

	body.edge-service-page .svc-split.is-models .svc-split__media {
		grid-column: 1 / -1;
		grid-row: auto;
		min-height: 320px;
	}

	body.edge-service-page .svc-split.is-models .svc-split__copy > .svc-link {
		grid-column: auto;
	}

	body.edge-service-page .svc-logos {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	body.edge-service-page .svc-hero > .svc-badges {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 14px;
		padding-inline: 28px;
	}

	body.edge-service-page .svc-badges li:nth-child(2n) {
		border-right: 0;
	}
}

@media (max-width: 700px) {
	body.edge-service-page {
		--svc-width: calc(100% - 40px);
	}

	body.edge-service-page .svc-section {
		padding: 50px 0;
	}

	body.edge-service-page .svc-hero__inner {
		padding: 24px 0 44px;
	}

	body.edge-service-page .svc-breadcrumbs {
		margin-bottom: 30px;
		font-size: 11px;
	}

	body.edge-service-page .svc-hero h1 {
		font-size: 36px;
		letter-spacing: -1px;
	}

	body.edge-service-page .svc-lede {
		font-size: 16px;
	}

	body.edge-service-page .svc-hero > .svc-badges {
		grid-template-columns: minmax(0, 1fr);
		padding-inline: 20px;
	}

	body.edge-service-page .svc-badges li {
		justify-content: flex-start;
		border-right: 0;
	}

	body.edge-service-page .svc-cards,
	body.edge-service-page .svc-dark-cards,
	body.edge-service-page .svc-photo-cards,
	body.edge-service-page .svc-process,
	body.edge-service-page .svc-reasons,
	body.edge-service-page .svc-models,
	body.edge-service-page .svc-split.is-models {
		grid-template-columns: minmax(0, 1fr);
	}

	body.edge-service-page .svc-logos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.edge-service-page .svc-heading {
		margin-bottom: 32px;
	}

	body.edge-service-page .svc-photo-card,
	body.edge-service-page .svc-advisor {
		min-height: 380px;
	}
}

@media (max-width: 700px) {
	body.edge-service-page .svc-split.is-models .svc-split__copy > .svc-link {
		min-height: 0;
	}

	body.edge-service-page .svc-split.is-models .svc-split__copy > .svc-link a {
		padding: 20px 22px;
		font-size: 18px;
	}
}

/* Partner logo cards: hover matches the homepage platform cards — the
   card turns peach, logos keep their own colours (plus the zoom-out). */
body.edge-service-page .svc-section:has(> .svc-logos) .svc-logos > .wp-block-image {
	transition: background-color 0.25s ease;
}

body.edge-service-page .svc-section:has(> .svc-logos) .svc-logos > .wp-block-image:hover {
	background: var(--svc-peach);
}

/* ---- Industry pages (patterns/industry-*.php) --------------------------- */

/* Six-step process: three per row. */
body.edge-service-page .svc-process.is-six {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	row-gap: 28px;
}

/* Sub-sector solution cards: three per row, height fits the text. */
body.edge-service-page .svc-dark-cards.is-three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.edge-service-page .svc-dark-cards.is-three > .svc-dark-card {
	min-height: 0;
}

/* Service cards with an icon instead of a photo. */
body.edge-service-page .svc-reason:not(:has(> .svc-reason__photo)) p + p {
	margin-top: 8px;
}

body.edge-service-page .svc-reason .svc-icon + h3 {
	margin-top: 0;
}

body.edge-service-page .svc-reasons > .svc-card.is-cta {
	border-radius: 12px;
}

/* Technology stack: four groups of chips. */
body.edge-service-page .svc-stack {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

body.edge-service-page .svc-stack__group {
	padding: 22px 20px;
	border: 1px solid var(--svc-line);
	border-radius: 12px;
	background: #fff;
}

body.edge-service-page .svc-stack__group h3 {
	font-size: 16px;
	line-height: 1.35;
	color: var(--svc-ink);
}

/* Each technology: logo tile with its name underneath, three per row. */
body.edge-service-page .svc-stack__items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin-top: 16px;
}

body.edge-service-page .svc-stack__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 12px 6px 10px;
	border-radius: 8px;
	background: var(--svc-soft);
	text-align: center;
	transition: background 0.18s ease, transform 0.18s ease;
}

body.edge-service-page .svc-stack__item:hover {
	background: var(--svc-peach);
	transform: translateY(-2px);
}

body.edge-service-page .svc-stack__item .svc-stack__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	margin: 0;
}

body.edge-service-page .svc-stack__item .svc-stack__logo img {
	width: auto;
	max-width: 56px;
	max-height: 36px;
	object-fit: contain;
	mix-blend-mode: multiply;
}

body.edge-service-page .svc-stack__item p {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.3;
	font-weight: 600;
	color: var(--svc-ink);
}

/* Three-per-row variants, used when a card count divides by 3. */
body.edge-service-page .svc-cards.is-three,
body.edge-service-page .svc-reasons.is-three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-process.is-six,
	body.edge-service-page .svc-dark-cards.is-three,
	body.edge-service-page .svc-cards.is-three,
	body.edge-service-page .svc-reasons.is-three,
	body.edge-service-page .svc-stack {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	body.edge-service-page .svc-process.is-six,
	body.edge-service-page .svc-dark-cards.is-three,
	body.edge-service-page .svc-cards.is-three,
	body.edge-service-page .svc-reasons.is-three,
	body.edge-service-page .svc-stack {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Button under the photo + steps copy: keep clear of the step cards. */
body.edge-service-page .svc-split__copy > .svc-actions {
	margin-top: 28px;
}

/* ==========================================================================
   Doc-built service pages (patterns/service-page-*.php, category "Service
   Pages"). New class names only — nothing above is changed, so existing
   pages are unaffected. Added 2026-10-13.
   ========================================================================== */

/* Card grid for any card count: fixed column count per class, last row
   centred (so 7 cards read 4 + 3, never a gap). */
body.edge-service-page .svc-grid {
	--cols: 4;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 18px;
}

body.edge-service-page .svc-grid > * {
	flex: 0 0 calc((100% - (var(--cols) - 1) * 18px) / var(--cols));
	min-width: 0;
}

body.edge-service-page .svc-grid.is-cols-2 { --cols: 2; }
body.edge-service-page .svc-grid.is-cols-3 { --cols: 3; }
body.edge-service-page .svc-grid.is-cols-4 { --cols: 4; }
body.edge-service-page .svc-grid.is-cols-5 { --cols: 5; }

body.edge-service-page .svc-grid > .svc-card.is-cta .svc-cta-text {
	font-size: 16px;
	line-height: 1.55;
	font-weight: 600;
}

body.edge-service-page .svc-grid > .svc-card.is-cta .svc-link {
	margin-top: auto;
	padding-top: 18px;
}

/* Light cards on a soft band need white cards to stand out. */
body.edge-service-page .svc-section.is-soft .svc-grid > .svc-dark-card {
	background: #fff;
}

body.edge-service-page .svc-section:not(.is-navy) .svc-grid > .svc-dark-card {
	min-height: 0;
	border-color: var(--svc-line);
}

body.edge-service-page .svc-grid > .svc-dark-card {
	min-height: 0;
}

body.edge-service-page .svc-grid > .svc-reason {
	min-width: 0;
}

/* Two-column comparison (e.g. "Wrong Approach" / "Correct Way"). */
body.edge-service-page .svc-compare {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
	max-width: 980px;
}

body.edge-service-page .svc-compare__col {
	padding: 30px 30px 32px;
	border: 1px solid var(--svc-line);
	border-radius: 14px;
	background: var(--svc-soft);
}

body.edge-service-page .svc-compare__col.is-positive {
	border-color: var(--svc-orange);
	background: #fff;
	box-shadow: 0 16px 36px rgba(255, 89, 0, 0.1);
}

body.edge-service-page .svc-compare__col h3 {
	font-size: 20px;
	line-height: 1.3;
	color: var(--svc-ink);
}

body.edge-service-page .svc-compare__col.is-positive h3 {
	color: var(--svc-orange);
}

body.edge-service-page .svc-compare__lead {
	margin-top: 6px;
	font-size: 15px;
	font-weight: 600;
	color: var(--svc-muted);
}

body.edge-service-page .svc-compare__list {
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

body.edge-service-page .svc-compare__list li {
	position: relative;
	padding: 11px 0 11px 30px;
	border-top: 1px solid var(--svc-line);
	font-size: 15px;
	line-height: 1.5;
	color: var(--svc-ink);
}

body.edge-service-page .svc-compare__list li::before {
	content: '';
	position: absolute;
	top: 13px;
	left: 0;
	width: 18px;
	height: 18px;
	background: url('../images/service-icons/check.svg') center / contain no-repeat;
}

body.edge-service-page .svc-compare__col.is-negative .svc-compare__list li {
	color: var(--svc-muted);
}

body.edge-service-page .svc-compare__col.is-negative .svc-compare__list li::before {
	content: '\00D7';
	top: 8px;
	width: auto;
	height: auto;
	background: none;
	font-size: 22px;
	line-height: 1;
	color: #a0a9b8;
}

/* Process as a numbered timeline on navy (any step count). */
body.edge-service-page .svc-timeline {
	--steps: 4;
	position: relative;
	display: grid;
	grid-template-columns: repeat(var(--steps), minmax(0, 1fr));
	gap: 20px;
}

body.edge-service-page .svc-timeline.is-steps-3 { --steps: 3; }
body.edge-service-page .svc-timeline.is-steps-4 { --steps: 4; }
body.edge-service-page .svc-timeline.is-steps-5 { --steps: 5; }
body.edge-service-page .svc-timeline.is-steps-6 { --steps: 6; }
body.edge-service-page .svc-timeline.is-steps-7 { --steps: 7; }
body.edge-service-page .svc-timeline.is-steps-8 { --steps: 8; }

body.edge-service-page .svc-timeline::before {
	content: '';
	position: absolute;
	top: 23px;
	right: 0;
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, var(--svc-orange), rgba(255, 255, 255, 0.18) 75%);
}

body.edge-service-page .svc-tl-step {
	position: relative;
}

body.edge-service-page .svc-tl-step .svc-num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 2px solid var(--svc-orange);
	border-radius: 50%;
	background: var(--svc-navy);
	font-size: 15px;
	font-weight: 700;
	color: var(--svc-orange);
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

body.edge-service-page .svc-tl-step:hover .svc-num {
	background: var(--svc-orange);
	color: #fff;
	transform: scale(1.06);
}

body.edge-service-page .svc-tl-step h3 {
	margin-top: 20px;
	font-size: 17px;
	line-height: 1.35;
	color: #fff;
}

body.edge-service-page .svc-tl-step p:not(.svc-num) {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.6;
	color: #bec8d9;
}

/* Centred heading + text + button band (cost, success story). */
body.edge-service-page .svc-band .svc-heading {
	margin-bottom: 0;
}

body.edge-service-page .svc-band .svc-actions.is-center {
	margin-top: 28px;
}

body.edge-service-page .svc-band .svc-actions.is-center > .svc-link {
	margin: 0;
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-grid.is-cols-4,
	body.edge-service-page .svc-grid.is-cols-5,
	body.edge-service-page .svc-grid.is-cols-3 {
		--cols: 2;
	}

	body.edge-service-page .svc-timeline {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		row-gap: 36px;
	}

	body.edge-service-page .svc-timeline::before {
		display: none;
	}
}

@media (max-width: 700px) {
	body.edge-service-page .svc-grid {
		--cols: 1 !important;
	}

	body.edge-service-page .svc-compare {
		grid-template-columns: minmax(0, 1fr);
	}

	body.edge-service-page .svc-compare__col {
		padding: 24px 20px;
	}

	body.edge-service-page .svc-timeline {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 0;
	}

	body.edge-service-page .svc-tl-step {
		display: grid;
		grid-template-columns: 48px minmax(0, 1fr);
		column-gap: 18px;
		padding-bottom: 26px;
	}

	body.edge-service-page .svc-tl-step::before {
		content: '';
		position: absolute;
		top: 48px;
		bottom: 0;
		left: 23px;
		width: 2px;
		background: rgba(255, 255, 255, 0.18);
	}

	body.edge-service-page .svc-tl-step:last-child::before {
		display: none;
	}

	body.edge-service-page .svc-tl-step .svc-num {
		grid-row: span 2;
	}

	body.edge-service-page .svc-tl-step h3 {
		margin-top: 10px;
	}
}

/* Card titles on doc-built pages are bold text (as in the content doc),
   not headings — styled exactly like the card headings above. */
body.edge-service-page .svc-section .svc-card-title {
	margin-top: 0;
	font-family: var(--svc-display);
	font-size: 17px;
	line-height: 1.35;
	font-weight: 600;
	letter-spacing: -0.3px;
	color: var(--svc-ink);
	transition: color 0.18s ease;
}

body.edge-service-page .svc-section .svc-card-title strong {
	font-weight: inherit;
}

body.edge-service-page .svc-section .svc-dark-card .svc-card-title {
	font-size: 18px;
	transition: color 0.3s ease;
}

body.edge-service-page .svc-section .svc-tl-step .svc-card-title {
	margin-top: 20px;
	font-size: 17px;
	line-height: 1.35;
	color: #fff;
}

body.edge-service-page .svc-section :is(.svc-card, .svc-reason, .svc-dark-card):not(.is-cta):hover .svc-card-title,
body.edge-service-page .svc-section .svc-tl-step:hover .svc-card-title {
	color: var(--svc-orange);
}

@media (max-width: 700px) {
	body.edge-service-page .svc-section .svc-tl-step .svc-card-title {
		margin-top: 10px;
	}
}

/* The numbered-card text rule (.svc-dark-card p:not(…):not(…)) is more
   specific than the title rule above; restate the title with more weight. */
body.edge-service-page .svc-section .svc-grid > .svc-dark-card > p.svc-card-title {
	margin-top: 0;
	font-size: 18px;
	line-height: 1.35;
	font-weight: 600;
	color: var(--svc-ink);
}

body.edge-service-page .svc-section .svc-grid > .svc-dark-card:not(.is-cta):hover > p.svc-card-title {
	color: var(--svc-orange);
}

/* Doc-built pages: comparison table (rows of paragraphs, first row = header). */
body.edge-service-page .svc-ctable__wrap {
	overflow-x: auto;
	border: 1px solid var(--svc-line);
	border-radius: 14px;
}

body.edge-service-page .svc-ctable {
	min-width: 640px;
}

body.edge-service-page .svc-ctable__row {
	display: grid;
	grid-template-columns: minmax(150px, 0.8fr) repeat(var(--tcols, 2), minmax(0, 1.4fr));
}

body.edge-service-page .svc-ctable.is-cols-2 .svc-ctable__row { --tcols: 1; }
body.edge-service-page .svc-ctable.is-cols-3 .svc-ctable__row { --tcols: 2; }
body.edge-service-page .svc-ctable.is-cols-4 .svc-ctable__row { --tcols: 3; }
body.edge-service-page .svc-ctable.is-cols-5 .svc-ctable__row { --tcols: 4; }

body.edge-service-page .svc-ctable__row + .svc-ctable__row {
	border-top: 1px solid var(--svc-line);
}

body.edge-service-page .svc-ctable__row:nth-child(even):not(.is-head) {
	background: #fafbfc;
}

body.edge-service-page .svc-ctable__row > p {
	margin: 0;
	padding: 16px 20px;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--svc-muted);
}

body.edge-service-page .svc-ctable__row > p:first-child {
	font-weight: 600;
	color: var(--svc-ink);
}

/* The last column (the recommended option) is highlighted. */
body.edge-service-page .svc-ctable__row > p:last-child {
	background: rgba(255, 89, 0, 0.04);
	color: var(--svc-ink);
}

body.edge-service-page .svc-ctable__row.is-head > p {
	background: var(--svc-navy);
	font-family: var(--svc-display);
	font-size: 15px;
	font-weight: 600;
	color: #fff;
}

body.edge-service-page .svc-ctable__row.is-head > p:last-child {
	background: var(--svc-orange);
}

/* Closing line under a grid ("Closing Point" text in the doc). */
body.edge-service-page .svc-closing {
	max-width: 820px;
	margin: 32px auto 0 !important;
	font-size: 16px;
	line-height: 1.65;
	text-align: center;
	color: var(--svc-ink);
}

body.edge-service-page .svc-section.is-navy .svc-closing {
	color: #dbe1ea;
}

/* Timeline steps with no number in the doc: number the circles in CSS
   (counter content is decoration, not page text). */
body.edge-service-page .svc-timeline.is-counted {
	counter-reset: svc-step;
}

body.edge-service-page .svc-timeline.is-counted .svc-tl-step {
	counter-increment: svc-step;
}

body.edge-service-page .svc-timeline.is-counted .svc-tl-step::after {
	content: counter(svc-step, decimal-leading-zero);
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 2px solid var(--svc-orange);
	border-radius: 50%;
	background: var(--svc-navy);
	font-size: 15px;
	font-weight: 700;
	color: var(--svc-orange);
	transition: background 0.2s ease, color 0.2s ease;
}

body.edge-service-page .svc-timeline.is-counted .svc-tl-step:hover::after {
	background: var(--svc-orange);
	color: #fff;
}

body.edge-service-page .svc-section .svc-timeline.is-counted .svc-tl-step > .svc-card-title {
	margin-top: 68px;
}

@media (max-width: 700px) {
	body.edge-service-page .svc-timeline.is-counted .svc-tl-step {
		padding-left: 66px;
		display: block;
	}

	body.edge-service-page .svc-section .svc-timeline.is-counted .svc-tl-step > .svc-card-title {
		margin-top: 10px;
	}
}

/* Doc-built pages: card titles that are real headings in the doc (H3/H4). */
body.edge-service-page .svc-grid > :is(.svc-card, .svc-reason, .svc-dark-card) > :is(h3, h4) {
	font-family: var(--svc-display);
	font-size: 17px;
	line-height: 1.35;
	font-weight: 600;
	letter-spacing: -0.3px;
	color: var(--svc-ink);
	transition: color 0.18s ease;
}

body.edge-service-page .svc-grid > :is(.svc-card, .svc-reason):not(.is-cta):hover > :is(h3, h4) {
	color: var(--svc-orange);
}

body.edge-service-page .svc-grid > :is(.svc-card, .svc-reason) > p + p {
	margin-top: 8px;
}

body.edge-service-page .svc-points {
	margin: 10px 0 0;
	padding-left: 18px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--svc-muted);
}

/* Sub-heading above a card grid (an H3 in the doc). */
body.edge-service-page .svc-section .svc-subhead {
	margin: -12px auto 22px !important;
	font-size: 20px;
	line-height: 1.3;
	text-align: center;
	color: var(--svc-ink);
}

/* Deep-dive: heading + intro on the left, the H3 points on the right. */
body.edge-service-page .svc-deep__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 64px;
	align-items: start;
}

body.edge-service-page .svc-deep.is-flipped .svc-deep__copy {
	order: 2;
}

body.edge-service-page .svc-deep__copy h2 {
	margin-top: 8px;
	font-size: clamp(27px, 2.4vw, 34px);
	line-height: 1.25;
	letter-spacing: -0.4px;
}

body.edge-service-page .svc-deep__copy > p:not(.svc-eyebrow) {
	margin-top: 16px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--svc-muted);
}

body.edge-service-page .svc-deep__points {
	display: grid;
	gap: 14px;
}

body.edge-service-page .svc-deep__point {
	position: relative;
	padding: 22px 24px 22px 28px;
	border: 1px solid var(--svc-line);
	border-radius: 12px;
	background: #fff;
	transition: border-color 0.18s ease, transform 0.18s ease;
}

body.edge-service-page .svc-deep__point::before {
	content: '';
	position: absolute;
	top: 22px;
	bottom: 22px;
	left: 0;
	width: 3px;
	border-radius: 3px;
	background: var(--svc-orange);
}

body.edge-service-page .svc-deep__point:hover {
	border-color: #fdba74;
	transform: translateX(3px);
}

body.edge-service-page .svc-deep__point > :is(h3, h4) {
	font-size: 18px;
	line-height: 1.35;
	color: var(--svc-ink);
}

body.edge-service-page .svc-deep__point > p {
	margin-top: 8px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--svc-muted);
}

/* Timeline steps whose titles are H3s in the doc. */
body.edge-service-page .svc-tl-step > .svc-tl-title {
	margin-top: 68px;
	font-size: 17px;
	line-height: 1.35;
	color: #fff;
	transition: color 0.18s ease;
}

body.edge-service-page .svc-tl-step:hover > .svc-tl-title {
	color: var(--svc-orange);
}

body.edge-service-page .svc-tl-step > p {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.6;
	color: #bec8d9;
}

/* Titles carry their own numbers ("01 - Discovery"): plain dots on the line. */
body.edge-service-page .svc-timeline.is-dotted .svc-tl-step::after {
	content: '';
	position: absolute;
	top: 14px;
	left: 0;
	width: 20px;
	height: 20px;
	border: 2px solid var(--svc-orange);
	border-radius: 50%;
	background: var(--svc-navy);
	transition: background 0.2s ease;
}

body.edge-service-page .svc-timeline.is-dotted .svc-tl-step:hover::after {
	background: var(--svc-orange);
}

body.edge-service-page .svc-timeline.is-dotted .svc-tl-step > .svc-tl-title {
	margin-top: 56px;
}

/* 8-step timelines: two rows of four on desktop (too tight in one row). */
body.edge-service-page .svc-timeline.is-steps-8 {
	--steps: 4;
	row-gap: 40px;
}

body.edge-service-page .svc-timeline.is-steps-8::before {
	display: none;
}

@media (max-width: 1000px) {
	body.edge-service-page .svc-deep__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	body.edge-service-page .svc-deep.is-flipped .svc-deep__copy {
		order: 0;
	}
}

@media (max-width: 700px) {
	body.edge-service-page .svc-timeline:is(.is-dotted, .is-counted) .svc-tl-step {
		display: block;
		padding-left: 66px;
	}

	body.edge-service-page .svc-timeline .svc-tl-step > .svc-tl-title,
	body.edge-service-page .svc-timeline.is-dotted .svc-tl-step > .svc-tl-title {
		margin-top: 10px;
	}

	body.edge-service-page .svc-timeline.is-dotted .svc-tl-step::after {
		top: 12px;
		left: 14px;
	}
}

/* Dotted timeline (titles carry their own numbers) with bold-text titles. */
body.edge-service-page .svc-section .svc-timeline.is-dotted .svc-tl-step > .svc-card-title {
	margin-top: 56px;
}

@media (max-width: 700px) {
	body.edge-service-page .svc-section .svc-timeline.is-dotted .svc-tl-step > .svc-card-title {
		margin-top: 10px;
	}
}

/* Intro line under a sub-heading; tables sit on white even on soft bands. */
body.edge-service-page .svc-section .svc-subhead-text {
	max-width: 820px;
	margin: -10px auto 24px !important;
	font-size: 16px;
	line-height: 1.65;
	text-align: center;
	color: var(--svc-muted);
}

body.edge-service-page .svc-section .svc-grid + .svc-subhead {
	margin-top: 44px !important;
}

body.edge-service-page .svc-ctable {
	background: #fff;
}

/* Framework block: H3, a bold centre label, components as chips, closing line. */
body.edge-service-page .svc-frame {
	max-width: 980px;
	padding: 36px 40px 34px;
	border: 1px solid var(--svc-line);
	border-radius: 18px;
	background: #fff;
	text-align: center;
}

body.edge-service-page .svc-frame .svc-subhead {
	margin: 0 0 18px !important;
}

body.edge-service-page .svc-frame > p {
	max-width: 760px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.65;
	color: var(--svc-ink);
}

body.edge-service-page .svc-frame > p:first-of-type {
	display: inline-block;
	padding: 10px 22px;
	border-radius: 100px;
	background: var(--svc-navy);
	color: #fff;
}

body.edge-service-page .svc-chiplist {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 24px 0;
	padding: 0;
	list-style: none;
}

body.edge-service-page .svc-chiplist li {
	padding: 10px 18px;
	border: 1px solid var(--svc-line);
	border-radius: 100px;
	background: var(--svc-soft);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--svc-ink);
	transition: border-color 0.18s ease, background 0.18s ease;
}

body.edge-service-page .svc-chiplist li:hover {
	border-color: var(--svc-orange);
	background: var(--svc-peach);
}

/* Hero sub-headline (an H3 under the H1 in some docs). */
body.edge-service-page .svc-hero .svc-hero__sub {
	margin-top: 18px;
	font-size: clamp(20px, 1.8vw, 24px);
	line-height: 1.35;
	font-weight: 500;
	color: #f1f4f8;
}

/* Hand-typed "• item" lines from the doc, kept as written. */
body.edge-service-page .svc-heading p.svc-typed-list {
	display: inline-block;
	margin-top: 18px;
	padding: 16px 26px;
	border: 1px solid var(--svc-line);
	border-radius: 12px;
	background: #fff;
	font-size: 15px;
	line-height: 1.9;
	text-align: left;
	color: var(--svc-ink);
}

body.edge-service-page .svc-compare__col > .svc-card-title {
	font-size: 20px;
}

/* Timeline steps whose number label comes from the doc ("01" above the title). */
body.edge-service-page .svc-timeline.has-num .svc-tl-step > .svc-num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 2px solid var(--svc-orange);
	border-radius: 50%;
	background: var(--svc-navy);
	font-size: 15px;
	font-weight: 700;
	color: var(--svc-orange);
}

body.edge-service-page .svc-timeline.has-num .svc-tl-step > .svc-num + :is(.svc-tl-title, .svc-card-title) {
	margin-top: 20px;
}

/* Number label above a card title ("Feature 01"). */
body.edge-service-page .svc-grid > :is(.svc-card, .svc-reason) > .svc-num {
	margin-bottom: 10px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.5px;
	color: var(--svc-orange);
}

body.edge-service-page .svc-section .svc-ctable__wrap + .svc-subhead {
	margin-top: 44px !important;
}

/* Partner names line ("A | B | C"): names as chips; the typed "|" stays in
   the text for readers/SEO but is hidden visually. */
body.edge-service-page .svc-partners__box {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	margin-top: 36px;
}

body.edge-service-page .svc-partners__label {
	margin: 0;
	font-size: 14px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--svc-muted);
}

body.edge-service-page .svc-partners__names {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin: 0;
}

body.edge-service-page .svc-partners__names .svc-partner {
	padding: 14px 26px;
	border: 1px solid var(--svc-line);
	border-radius: 10px;
	background: #fff;
	font-family: var(--svc-display);
	font-size: 18px;
	font-weight: 700;
	color: var(--svc-ink);
}

body.edge-service-page :is(.svc-partners__names, .svc-techline) .svc-sep {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: pre;
}

/* A quote above a section intro. */
body.edge-service-page .svc-heading .svc-quote {
	max-width: 760px;
	margin: 0 auto 18px;
	padding-left: 18px;
	border-left: 3px solid var(--svc-orange);
	font-style: italic;
	font-size: 18px;
	text-align: left;
	color: var(--svc-ink);
}

/* Labelled card groups ("Build & Scale Software"). */
body.edge-service-page .svc-cardgroup + .svc-cardgroup {
	margin-top: 44px;
}

body.edge-service-page .svc-cardgroup__label {
	margin: 0 0 18px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	color: var(--svc-orange);
}

body.edge-service-page .svc-grid > .svc-reason > p.svc-cardgroup__label {
	margin: 0 0 8px;
	color: var(--svc-orange);
}

/* Technology stack line as chips. */
body.edge-service-page .svc-techline {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px !important;
}

body.edge-service-page .svc-techline .svc-chip {
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--svc-peach);
	font-size: 13px;
	font-weight: 600;
	color: var(--svc-ink);
}

/* ---- Photo-led designs on doc-built pages (AI Strategy look) ------------------ */

/* Card titles are bold paragraphs on doc pages (the docs don't make them
   headings), so the AI Strategy h3 styles are repeated for them. */
body.edge-service-page .svc-section .svc-photo-card p.svc-card-title {
	margin: 0;
	font-family: var(--svc-display);
	font-size: 22px;
	line-height: 1.25;
	color: var(--svc-orange);
}

body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo) > p.svc-card-title {
	margin: 0;
	padding: 18px 20px 0;
}

body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo) > p.svc-card-title + p {
	margin-top: 8px;
}

body.edge-service-page .svc-reasons.is-cols-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.edge-service-page .svc-split__copy .svc-actions,
body.edge-service-page .svc-listsplit__copy .svc-actions {
	margin-top: 24px;
}

body.edge-service-page .svc-split__copy > .svc-split__closing {
	margin-top: 18px !important;
	color: var(--svc-ink) !important;
}

/* List split: sticky copy on the left, two-column checklist on the right. */
body.edge-service-page .svc-listsplit {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: 56px;
	align-items: start;
	width: var(--svc-width);
	margin: 0 auto;
}

body.edge-service-page .svc-listsplit__copy {
	position: sticky;
	top: calc(var(--edge-header-bottom, 90px) + 24px);
}

body.edge-service-page .svc-listsplit__copy h2 {
	font-size: clamp(28px, 2.4vw, 36px);
	line-height: 1.2;
}

body.edge-service-page .svc-listsplit__copy > p:not(.svc-eyebrow) {
	margin-top: 14px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--svc-muted);
}

body.edge-service-page .svc-listsplit__copy > .svc-listsplit__closing {
	color: var(--svc-ink);
}

body.edge-service-page .svc-checklist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.edge-service-page .svc-checklist li {
	position: relative;
	padding: 16px 16px 16px 50px;
	border: 1px solid var(--svc-line);
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
	line-height: 1.55;
	color: var(--svc-muted);
	transition: transform 0.18s cubic-bezier(0.2, 0.75, 0.25, 1), box-shadow 0.18s ease;
}

body.edge-service-page .svc-checklist li::before {
	content: '';
	position: absolute;
	top: 16px;
	left: 16px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--svc-peach) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5900' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat;
}

body.edge-service-page .svc-checklist strong {
	display: block;
	margin-bottom: 3px;
	font-family: var(--svc-display);
	font-size: 15px;
	font-weight: 600;
	color: var(--svc-ink);
}

body.edge-service-page .svc-checklist li:hover {
	transform: translateY(-3px);
	box-shadow: inset 0 3px var(--svc-orange), 0 8px 22px rgba(12, 22, 39, 0.07);
}

/* Timelines with many steps wrap into rows of four instead of squeezing
   every step into one row. */
body.edge-service-page .svc-timeline.is-wrap {
	--steps: 4;
	row-gap: 44px;
	column-gap: 28px;
}

body.edge-service-page .svc-timeline.is-wrap::before {
	display: none;
}

body.edge-service-page .svc-timeline.is-wrap .svc-tl-step::before {
	content: '';
	position: absolute;
	top: 23px;
	left: 60px;
	right: -16px;
	height: 2px;
	background: linear-gradient(90deg, var(--svc-orange), rgba(255, 255, 255, 0.14));
}

body.edge-service-page .svc-timeline.is-wrap .svc-tl-step:last-child::before,
body.edge-service-page .svc-timeline.is-wrap .svc-tl-step:nth-child(4n)::before {
	display: none;
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-listsplit {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	body.edge-service-page .svc-listsplit__copy {
		position: static;
	}

	body.edge-service-page .svc-reasons.is-cols-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.edge-service-page .svc-timeline.is-wrap .svc-tl-step::before {
		display: none;
	}
}

@media (max-width: 700px) {
	body.edge-service-page .svc-checklist {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Split list items: title and text stay together at the top of the cell. */
body.edge-service-page .svc-split:not(.is-models) .svc-steps li {
	align-content: start;
}

body.edge-service-page .svc-split:not(.is-models) .svc-steps li::before {
	grid-row: span 3;
}

/* Photo cards on doc pages carry longer copy: slightly smaller text. */
body.edge-service-page .svc-section .svc-photo-card p:not(.svc-card-title):not(.svc-tag):not(.svc-link) {
	font-size: 14px;
	line-height: 1.55;
}

/* Checklist: lighter rows (divider lines, no boxes) so long lists stay compact. */
body.edge-service-page .svc-checklist {
	column-gap: 36px;
	row-gap: 0;
}

body.edge-service-page .svc-checklist li {
	padding: 18px 0 18px 36px;
	border: 0;
	border-bottom: 1px solid var(--svc-line);
	border-radius: 0;
	background: transparent;
}

body.edge-service-page .svc-checklist li::before {
	top: 19px;
	left: 0;
}

body.edge-service-page .svc-checklist li:hover {
	transform: none;
	box-shadow: none;
}

body.edge-service-page .svc-checklist li:hover strong {
	color: var(--svc-orange);
}

/* Split list built from heading-titled cards (H3 kept as headings). */
body.edge-service-page .svc-split .svc-steps.is-groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 22px;
	counter-reset: svc-step;
}

body.edge-service-page .svc-steps.is-groups > .svc-steps__item {
	position: relative;
	padding: 14px 14px 14px 62px;
	border: 1px solid var(--svc-line);
	border-radius: 10px;
	background: #fff;
	counter-increment: svc-step;
	transition: transform 0.18s cubic-bezier(0.2, 0.75, 0.25, 1), box-shadow 0.18s ease;
}

body.edge-service-page .svc-steps.is-groups > .svc-steps__item::before {
	content: counter(svc-step, decimal-leading-zero);
	position: absolute;
	top: 14px;
	left: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--svc-peach);
	font-size: 13px;
	font-weight: 600;
	color: var(--svc-orange);
}

body.edge-service-page .svc-steps.is-groups > .svc-steps__item > :is(h3, h4, .svc-card-title) {
	margin: 0 0 2px;
	font-family: var(--svc-display);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--svc-ink);
}

body.edge-service-page .svc-steps.is-groups > .svc-steps__item > :is(p, ul):not(.svc-card-title):not(.svc-num) {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--svc-muted);
}

body.edge-service-page .svc-steps.is-groups > .svc-steps__item > .svc-num {
	display: none;
}

body.edge-service-page .svc-steps.is-groups > .svc-steps__item:hover {
	transform: translateY(-3px);
	box-shadow: inset 0 3px var(--svc-orange), 0 8px 22px rgba(12, 22, 39, 0.07);
}

/* Heading titles (H3/H4) inside the photo cards, as AI Strategy. */
body.edge-service-page .svc-section .svc-photo-card :is(h3, h4) {
	margin: 0;
	font-size: 22px;
	line-height: 1.25;
	color: var(--svc-orange);
}

body.edge-service-page .svc-section .svc-photo-card :is(ul, li) {
	color: #eef1f6;
	font-size: 14px;
}

body.edge-service-page .svc-section .svc-photo-card > .svc-num {
	position: absolute;
	top: 20px;
	left: 20px;
	padding: 4px 9px;
	border: 1px solid rgba(255, 255, 255, 0.23);
	border-radius: 3px;
	background: rgba(12, 22, 39, 0.72);
	font-size: 11px;
	letter-spacing: 1px;
	color: #fff;
}

body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo) > :is(h3, h4) {
	margin: 0;
	padding: 18px 20px 0;
}

body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo) > :is(h3, h4) + p,
body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo) > .svc-num + :is(h3, h4, .svc-card-title) {
	margin-top: 8px;
}

body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo) > .svc-num {
	margin: 16px 20px 0;
}

body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo) > ul {
	padding: 0 20px 22px 38px;
}

/* Deep-dive: a photo under the copy fills the left column. */
body.edge-service-page .svc-deep__copy > .svc-deep__photo {
	margin-top: 28px;
}

body.edge-service-page .svc-deep__copy > .svc-deep__photo img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 12px;
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-split .svc-steps.is-groups {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Photo-top cards with several paragraphs: keep them close together. */
body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo) > p:not(:last-child) {
	padding-bottom: 10px;
}

body.edge-service-page .svc-section .svc-reason:has(> .svc-reason__photo) > p + p {
	margin-top: 0;
}

/* Models split on doc pages: when the cards run long, the photo keeps a
   normal shape and stays in view instead of stretching. */
body.edge-service-page .svc-split.is-models.is-docs {
	align-items: start;
}

body.edge-service-page .svc-split.is-models.is-docs .svc-split__media {
	position: sticky;
	top: calc(var(--edge-header-bottom, 90px) + 24px);
	height: auto;
	min-height: 0;
	max-height: calc(100vh - var(--edge-header-bottom, 90px) - 48px);
	aspect-ratio: 4 / 5;
}

body.edge-service-page .svc-split.is-models.is-docs .svc-split__media img {
	height: 100%;
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-split.is-models.is-docs .svc-split__media {
		position: static;
		max-height: none;
		aspect-ratio: 16 / 10;
	}
}

body.edge-service-page .svc-split.is-models.is-docs {
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 2fr);
	gap: 24px;
}

body.edge-service-page .svc-split.is-models.is-docs .svc-split__media {
	grid-row: auto;
}

body.edge-service-page .svc-split.is-models.is-docs .svc-split__copy {
	display: block;
}

body.edge-service-page .svc-split.is-models.is-docs .svc-models {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
}

@media (max-width: 700px) {
	body.edge-service-page .svc-split.is-models.is-docs .svc-models {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-split.is-models.is-docs {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Doc partners line as the logo strip: the names paragraph lays its logo
   chips out on the strip's grid; the "|" separators stay hidden. */
body.edge-service-page .svc-logos.is-named > .svc-logos__names {
	display: contents;
}

body.edge-service-page .svc-logos.is-named .svc-partner {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	height: 60px;
	padding: 12px 14px;
	border-radius: 8px;
	background: var(--svc-soft);
	font-family: var(--svc-display);
	font-weight: 700;
	color: var(--svc-ink);
}

body.edge-service-page .svc-logos.is-named .svc-partner img {
	max-height: 34px;
}

body.edge-service-page .svc-logos.is-named .svc-sep {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: pre;
}

body.edge-service-page .svc-section:has(> .svc-logos) .svc-heading .svc-partners__label {
	margin-top: 10px !important;
	font-size: 11px !important;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	color: var(--svc-muted);
}

/* Photo-top cards: a short last row stays centred (like the card grids). */
body.edge-service-page .svc-why .svc-reasons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

body.edge-service-page .svc-why .svc-reasons > .svc-reason {
	flex: 0 0 calc((100% - 3 * 18px) / 4);
	min-width: 0;
}

body.edge-service-page .svc-why .svc-reasons.is-cols-3 > .svc-reason {
	flex-basis: calc((100% - 2 * 18px) / 3);
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-why .svc-reasons > .svc-reason,
	body.edge-service-page .svc-why .svc-reasons.is-cols-3 > .svc-reason {
		flex-basis: calc((100% - 18px) / 2);
	}
}

@media (max-width: 700px) {
	body.edge-service-page .svc-why .svc-reasons > .svc-reason,
	body.edge-service-page .svc-why .svc-reasons.is-cols-3 > .svc-reason {
		flex-basis: 100%;
	}
}

/* Photo + list with only a few items: one item per row. */
body.edge-service-page .svc-split.is-few .svc-steps,
body.edge-service-page .svc-split.is-few .svc-steps.is-groups {
	grid-template-columns: minmax(0, 1fr);
}

/* Category columns: a card per category, its items listed inside. */
body.edge-service-page .svc-catcards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

body.edge-service-page .svc-catcards.is-cols-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.edge-service-page .svc-catcard {
	padding: 28px 26px;
	border: 1px solid var(--svc-line);
	border-top: 3px solid var(--svc-orange);
	border-radius: 12px;
	background: #fff;
}

body.edge-service-page .svc-catcard > .svc-card-title {
	margin: 16px 0 6px;
	font-size: 19px;
	line-height: 1.3;
}

body.edge-service-page .svc-catcard__item {
	padding: 16px 0;
	border-top: 1px solid var(--svc-line);
}

body.edge-service-page .svc-catcard__item:first-of-type {
	margin-top: 12px;
}

body.edge-service-page .svc-catcard__item > p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--svc-muted);
}

body.edge-service-page .svc-catcard__item > .svc-catcard__name {
	margin-bottom: 4px;
	font-family: var(--svc-display);
	font-size: 15px;
	color: var(--svc-ink);
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-catcards,
	body.edge-service-page .svc-catcards.is-cols-2 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Orange closing card: the text reads as a short statement, not a block. */
body.edge-service-page .svc-section .svc-card.is-cta .svc-cta-text {
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1.55 !important;
}

/* Bold keywords inside an item's text stay inline; only the leading title
   sits on its own line. */
body.edge-service-page :is(.svc-steps, .svc-checklist) li > strong:not(:first-child) {
	display: inline;
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	font-weight: 600;
	line-height: inherit;
}

/* Models split (doc pages), final: the photo fills the cards' height, as on
   AI Strategy; cards get an edge so they read on white sections too. */
body.edge-service-page .svc-split.is-models.is-docs {
	align-items: stretch;
}

body.edge-service-page .svc-split.is-models.is-docs .svc-split__media {
	position: relative;
	top: auto;
	max-height: none;
	aspect-ratio: auto;
	min-height: 360px;
	overflow: hidden;
	border-radius: 12px;
}

body.edge-service-page .svc-split.is-models.is-docs .svc-split__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.edge-service-page .svc-split.is-models.is-docs .svc-model {
	border: 1px solid var(--svc-line);
	border-radius: 12px;
	background: #fff;
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-split.is-models.is-docs .svc-split__media {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
}

/* Compare with a third (summary) block: it spans both columns. */
body.edge-service-page .svc-compare > .svc-compare__col:nth-child(3):last-child {
	grid-column: 1 / -1;
}

/* One label (eyebrow) style on every service-page section: Title Case as
   written, same size and weight (the "Why choose" sections used to force
   small capitals). */
body.edge-service-page .svc-why .svc-eyebrow {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: normal;
	text-transform: none;
}

/* Photo cards: a short last row stays centred. */
body.edge-service-page .svc-photo-cards:not(:has(> .svc-advisor)) {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

body.edge-service-page .svc-photo-cards:not(:has(> .svc-advisor)) > .svc-photo-card {
	flex: 0 0 calc((100% - 2 * 24px) / 3);
	min-width: 0;
}

@media (max-width: 1100px) {
	body.edge-service-page .svc-photo-cards:not(:has(> .svc-advisor)) > .svc-photo-card {
		flex-basis: calc((100% - 24px) / 2);
	}
}

@media (max-width: 700px) {
	body.edge-service-page .svc-photo-cards:not(:has(> .svc-advisor)) > .svc-photo-card {
		flex-basis: 100%;
	}
}

/* Long processes (7+ steps, .is-wrap): one connected "snake" path. The line
   runs circle to circle along each row, turns down past the last step,
   runs back under the row and drops into the first circle of the next. */
@media (min-width: 701px) {
	body.edge-service-page .svc-timeline.is-wrap {
		--tl-gap: 28px;
		--tl-row: 56px;
		--tl-line: rgba(255, 89, 0, 0.75);
		grid-template-columns: repeat(4, minmax(0, 1fr));
		column-gap: var(--tl-gap);
		row-gap: var(--tl-row);
	}

	body.edge-service-page .svc-timeline.is-wrap::before {
		display: none;
	}

	body.edge-service-page .svc-timeline.is-wrap .svc-tl-step {
		position: relative;
	}

	body.edge-service-page .svc-timeline.is-wrap.is-counted .svc-tl-step::after {
		z-index: 1;
	}

	/* Row segment: from this circle to the next one. */
	body.edge-service-page .svc-timeline.is-wrap .svc-tl-step > :first-child::before {
		content: '';
		position: absolute;
		top: 23px;
		left: 48px;
		right: calc(-1 * var(--tl-gap));
		height: 2px;
		background: var(--tl-line);
	}

	body.edge-service-page .svc-timeline.is-wrap .svc-tl-step:nth-child(4n) > :first-child::before,
	body.edge-service-page .svc-timeline.is-wrap .svc-tl-step:last-child > :first-child::before {
		display: none;
	}

	/* Turn at the end of a row: out to the right, down to mid-gap, back. */
	body.edge-service-page .svc-timeline.is-wrap .svc-tl-step::before {
		display: none;
	}

	body.edge-service-page .svc-timeline.is-wrap .svc-tl-step:nth-child(4n):not(:last-child)::before {
		content: '';
		display: block;
		position: absolute;
		top: 23px;
		left: 48px;
		right: -24px;
		bottom: calc(-1 * var(--tl-row) / 2 - 1px);
		height: auto;
		border: 2px solid var(--tl-line);
		border-left: 0;
		border-radius: 0 24px 24px 0;
		background: none;
	}

	/* Start of the next row: from the right edge back to this circle. */
	body.edge-service-page .svc-timeline.is-wrap .svc-tl-step:nth-child(4n+1):not(:first-child)::before {
		content: '';
		display: block;
		position: absolute;
		top: calc(-1 * var(--tl-row) / 2 - 1px);
		left: 23px;
		right: calc(-300% - 3 * var(--tl-gap) + 24px);
		height: calc(var(--tl-row) / 2 + 1px);
		border-top: 2px solid var(--tl-line);
		border-left: 2px solid var(--tl-line);
		border-radius: 24px 0 0 0;
		background: none;
	}
}

/* Phones: every process is one vertical path — a line runs from each circle
   down to the next. */
@media (max-width: 700px) {
	body.edge-service-page .svc-timeline {
		row-gap: 0 !important;
	}

	body.edge-service-page .svc-timeline .svc-tl-step {
		padding-bottom: 36px;
	}

	body.edge-service-page .svc-timeline .svc-tl-step:not(:last-child)::before {
		content: '';
		display: block;
		position: absolute;
		top: 48px;
		bottom: 0;
		left: 23px;
		right: auto;
		width: 2px;
		height: auto;
		border: 0;
		border-radius: 0;
		background: rgba(255, 89, 0, 0.75);
	}

	body.edge-service-page .svc-timeline .svc-tl-step > :first-child::before {
		display: none;
	}
}

/* ---- Salesforce / Cloud docs (2026-10-15): new section designs ------------- */

/* Architecture flow: a vertical diagram of nodes joined by arrows; a node
   listing several systems ("ERP | Marketing | Support") shows them as chips. */
body.edge-service-page .svc-flow-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	align-items: start;
	gap: 48px;
	width: var(--svc-width);
	margin: 0 auto;
}

body.edge-service-page .svc-flow-card {
	padding: 32px 28px;
	border: 1px solid var(--svc-line);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 24px 60px -36px rgba(12, 22, 39, 0.35);
}

body.edge-service-page .svc-section.is-soft .svc-flow-card {
	background: #fff;
}

body.edge-service-page .svc-flow-card > .svc-flow__title {
	margin: 0 0 22px;
	font-family: var(--svc-display);
	font-size: 18px;
	text-align: center;
	color: var(--svc-ink);
}

body.edge-service-page p.svc-flow {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 26px;
	margin: 0;
}

body.edge-service-page .svc-flow__node {
	position: relative;
	display: block;
	min-width: 220px;
	max-width: 100%;
	padding: 12px 18px;
	border-radius: 10px;
	background: var(--svc-navy);
	font-family: var(--svc-display);
	font-size: 14.5px;
	font-weight: 600;
	text-align: center;
	color: #fff;
}

body.edge-service-page .svc-flow__node:first-child {
	background: var(--svc-orange);
}

body.edge-service-page .svc-flow__node:not(:last-child)::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -22px;
	width: 2px;
	height: 18px;
	background: var(--svc-orange);
	transform: translateX(-1px);
}

body.edge-service-page .svc-flow__node.is-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	padding: 10px;
	border: 1px dashed rgba(12, 22, 39, 0.25);
	background: var(--svc-soft);
}

body.edge-service-page .svc-flow__chip {
	padding: 7px 12px;
	border-radius: 8px;
	background: #fff;
	box-shadow: inset 0 0 0 1px var(--svc-line);
	font-size: 13px;
	color: var(--svc-ink);
}

body.edge-service-page :is(p.svc-flow, .svc-flow__node) .svc-sep {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: pre;
}

body.edge-service-page .svc-flow-notes > p {
	margin: 0 0 16px;
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--svc-muted);
}

/* Bullet checklist beside a photo. */
body.edge-service-page .svc-split__copy > .svc-bullets__lead {
	margin-top: 18px !important;
	font-weight: 600;
	color: var(--svc-ink) !important;
}

body.edge-service-page .svc-bullets {
	display: grid;
	gap: 10px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

body.edge-service-page .svc-bullets li {
	position: relative;
	padding: 12px 14px 12px 44px;
	border: 1px solid var(--svc-line);
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
	line-height: 1.55;
	color: var(--svc-muted);
}

body.edge-service-page .svc-bullets li::before {
	content: '';
	position: absolute;
	top: 13px;
	left: 14px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--svc-peach) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5900' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 11px no-repeat;
}

body.edge-service-page .svc-bullets li strong {
	color: var(--svc-ink);
}

body.edge-service-page .svc-split.is-flipped > .svc-split__media {
	order: 2;
}

/* Heading groups with bullet lists, as columns. */
body.edge-service-page .svc-h3lists {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	width: var(--svc-width);
	margin: 0 auto;
}

body.edge-service-page .svc-h3list {
	padding: 30px 28px;
	border-top: 3px solid var(--svc-orange);
	border-radius: 12px;
	background: var(--svc-soft);
}

body.edge-service-page .svc-h3list > :is(h3, h4, .svc-h3list__title) {
	margin: 0;
	font-size: 20px;
	color: var(--svc-ink);
}

body.edge-service-page .svc-h3list > .svc-h3list__lead {
	margin-top: 10px;
	font-size: 15px;
	color: var(--svc-muted);
}

body.edge-service-page .svc-h3list .svc-bullets li {
	background: #fff;
}

/* Checklist built from heading-titled items. */
body.edge-service-page .svc-checklist.is-groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 36px;
}

body.edge-service-page .svc-checklist.is-groups > .svc-checklist__item {
	position: relative;
	padding: 18px 0 18px 36px;
	border-bottom: 1px solid var(--svc-line);
}

body.edge-service-page .svc-checklist.is-groups > .svc-checklist__item::before {
	content: '';
	position: absolute;
	top: 20px;
	left: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--svc-peach) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5900' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat;
}

body.edge-service-page .svc-checklist.is-groups > .svc-checklist__item > :is(h3, h4, .svc-card-title) {
	margin: 0 0 4px;
	font-family: var(--svc-display);
	font-size: 15px;
	font-weight: 600;
	color: var(--svc-ink);
}

body.edge-service-page .svc-checklist.is-groups > .svc-checklist__item > p:not(.svc-card-title) {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
	color: var(--svc-muted);
}

body.edge-service-page .svc-checklist.is-groups > .svc-checklist__item:hover > :is(h3, h4, .svc-card-title) {
	color: var(--svc-orange);
}

@media (max-width: 1000px) {
	body.edge-service-page .svc-flow-wrap,
	body.edge-service-page .svc-h3lists {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 700px) {
	body.edge-service-page .svc-checklist.is-groups {
		grid-template-columns: minmax(0, 1fr);
	}

	body.edge-service-page .svc-flow__node {
		min-width: 0;
		width: 100%;
	}
}

/* Deep-dive sections: points in one column; the heading/photo column stays
   in view while the points scroll past, so no empty block shows under it. */
@media (min-width: 1001px) {
	body.edge-service-page .svc-deep__copy {
		position: sticky;
		top: calc(var(--edge-header-bottom, 90px) + 32px);
	}
}

/* ---- Technology stack table (techcards renderer) ------------------------------- */
/* One white panel, a row per category: icon, title and description on the
   left, the technologies as quiet outlined chips on the right. */
body.edge-service-page .svc-techstack {
	width: var(--svc-width);
	max-width: 1080px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid var(--svc-line);
	border-radius: 20px;
	box-shadow: 0 18px 40px -28px rgba(12, 22, 39, 0.25);
	overflow: hidden;
}

body.edge-service-page .svc-techrow {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: 48px;
	align-items: center;
	margin: 0 !important;
	padding: 28px 40px;
	border-top: 1px solid var(--svc-line);
	transition: background-color 0.2s ease;
}

body.edge-service-page .svc-techrow:first-child {
	border-top: 0;
}

body.edge-service-page .svc-techrow:hover {
	background: #fbfbfd;
}

body.edge-service-page .svc-techrow__head {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	column-gap: 18px;
	align-items: start;
	margin: 0 !important;
}

body.edge-service-page .svc-techrow__head > * {
	grid-column: 2;
	margin: 0 !important;
}

body.edge-service-page .svc-techrow__head > .svc-icon {
	grid-column: 1;
	grid-row: 1 / span 2;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: var(--svc-peach);
}

body.edge-service-page .svc-techrow__head > .svc-icon img {
	width: 24px;
	height: 24px;
}

body.edge-service-page .svc-techrow__head > p.svc-card-title {
	font-family: var(--svc-display);
	font-size: 19px;
	line-height: 1.3;
	color: var(--svc-ink);
}

body.edge-service-page .svc-techrow__head > p.svc-card-title strong {
	font-weight: 600;
}

body.edge-service-page .svc-techrow__head > p:not(.svc-card-title) {
	margin-top: 4px !important;
	font-size: 15px;
	line-height: 1.55;
	color: var(--svc-muted);
}

body.edge-service-page .svc-techrow .svc-techline {
	margin: 0 !important;
	gap: 8px;
}

body.edge-service-page .svc-techrow .svc-techline .svc-chip {
	padding: 7px 14px;
	border: 1px solid var(--svc-line);
	border-radius: 999px;
	background: var(--svc-soft);
	font-size: 14px;
	font-weight: 500;
	color: var(--svc-ink);
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

body.edge-service-page .svc-techrow:hover .svc-techline .svc-chip {
	background: #fff;
}

body.edge-service-page .svc-techrow .svc-techline .svc-chip:hover {
	border-color: var(--svc-orange);
	color: var(--svc-orange);
}

@media (max-width: 800px) {
	body.edge-service-page .svc-techrow {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 24px 22px;
	}

	body.edge-service-page .svc-techrow .svc-techline {
		padding-left: 66px;
	}
}

@media (max-width: 480px) {
	body.edge-service-page .svc-techrow .svc-techline {
		padding-left: 0;
	}
}

/* Step/why cards whose text has its own bold words: the text is one span
   (one grid cell), and its bold words stay inline at the text size. */
body.edge-service-page .svc-steps li > .svc-steps__text {
	grid-column: 2;
}

body.edge-service-page .svc-steps .svc-steps__text strong {
	display: inline;
	margin: 0 !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: 600;
	line-height: inherit !important;
	color: var(--svc-ink);
}
