/* Shared by the block editor and public page. Each band owns its layout. */
.pcs-module.wp-block-group {
	--accent: var(--pcs-burnt-orange, #c54c27);
	--ink: #172027;
	/* Component sizes follow the existing PCS portfolio hero, project H2 and
	   card label. Gutenberg preset names can resolve to a different site scale. */
	--pcs-service-hero-size: clamp(32px, 4vw, 52px);
	--pcs-service-section-size: clamp(28px, 3vw, 38px);
	--pcs-service-label-size: 18px;
	--pcs-service-body-size: 16px;
	--gutter: clamp(20px, 5vw, 72px);
	position: relative;
	box-sizing: border-box;
	isolation: isolate;
	max-width: none;
	margin-block: 0;
	padding: clamp(42px, 4.6vw, 76px) var(--gutter);
	background-color: white;
	color: var(--ink);
	font: 400 var(--pcs-service-body-size)/1.45 'Varela Round', Arial, sans-serif;
}
.pcs-module *, .pcs-module *::before, .pcs-module *::after { box-sizing: border-box }
.pcs-module > .pcs-module-inner { width: 100%; max-width: 1170px; margin: 0 auto }
.pcs-module :where(.wp-block-group > *), .pcs-module .wp-block-heading, .pcs-module p { margin-block: 0 }
.pcs-module p { font: inherit; color: inherit; letter-spacing: normal }
.pcs-module.wp-block-group :is(h1, h2) {
	color: inherit;
	font: 700 var(--pcs-service-section-size)/1.2 Georgia, 'Times New Roman', serif;
	letter-spacing: -.035em;
}
.pcs-module :is(.pcs-module-card, .pcs-module-reason, .pcs-module-stage) :is(h2, h3, h4, h5, h6) {
	color: inherit; font: 700 var(--pcs-service-label-size)/1.3 Hind, Arial, sans-serif; letter-spacing: -.025em }
.pcs-module .pcs-module-eyebrow {
	font: 700 13px/1.2 Hind, sans-serif;
	color: var(--accent);
	text-transform: uppercase;
	letter-spacing: .06em;
}
.pcs-module .wp-block-buttons { display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 16px; margin-top: 24px }
.pcs-module .wp-block-button .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: 44px; padding: 10px 22px; border: 2px solid transparent; border-radius: 100px;
	font: 400 15px/21px var(--wp--preset--font-family--sans, 'Varela Round', Arial, sans-serif); color: white; background: var(--accent); text-decoration: none;
}
.pcs-module .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: white; border-color: currentColor }
.pcs-module a:focus-visible { outline: 3px solid currentColor; outline-offset: 4px }
.pcs-module a:hover { text-decoration: underline }
.pcs-module-hero.wp-block-group, .pcs-module-why.wp-block-group { background-color: #192b35; color: white }
.pcs-module-hero.wp-block-group { padding-block: clamp(44px, 4.2vw, 72px); background-image: linear-gradient(105deg,#243a44,transparent 62%) }
.pcs-module .pcs-module-copy { position: relative; z-index: 1; max-width: 46% }
.pcs-module-hero .pcs-module-copy { max-width: min(42%, 490px) }
.pcs-module.pcs-module-hero h1 { max-width: 10ch; margin: 12px 0 20px; font-size: var(--pcs-service-hero-size); line-height: .96 }
.pcs-module-hero .pcs-module-eyebrow { color: #ff964a }
.pcs-module .pcs-module-photo {
	--cut: 22%;
	position: absolute; z-index: 0; inset: 0 0 0 auto; width: 56%; height: 100%; max-width: none; margin: 0;
	background-color: var(--accent); clip-path: polygon(var(--cut) 0,100% 0,100% 100%,0 100%);
}
.pcs-module .pcs-module-photo img {
	display: block; width: 100%; height: 100%; object-fit: fill;
	clip-path: polygon(calc(var(--cut) + 2%) 0,100% 0,100% 100%,.6% 100%);
}
.pcs-module-introduction .pcs-module-inner { display: grid; grid-template-columns: 53% 47%; align-items: center }
.pcs-module .pcs-module-intro-copy { padding-right: 10% }
.pcs-module .pcs-module-intro-copy p { margin-top: 18px }
.pcs-module-intro-copy::after, .pcs-module-why h2::after { content: ''; display: block; width: 76px; height: 5px; margin-top: 20px; background: var(--accent) }
.pcs-module-introduction .pcs-module-checklist { display: grid; gap: 8px; border-left: 1px solid var(--accent); padding-left: 12% }
.pcs-module-introduction .pcs-module-check { display: flex; align-items: center; gap: clamp(8px, 1vw, 16px) }
.pcs-module-introduction .pcs-module-check p { font: 700 .875rem/1.3 Hind, sans-serif }
.pcs-module .pcs-module-icon { display: grid; place-items: center; width: fit-content; color: var(--accent) }
.pcs-module .pcs-module-icon svg { width: 1em; height: 1em; font-size: 44px; stroke-width: 1.6 }
.pcs-module-introduction .pcs-module-check .pcs-module-icon { flex: none; background: var(--accent); border-radius: 50%; width: 17.5px; height: 17.5px; color: white }
.pcs-module-introduction .pcs-module-check .pcs-module-icon svg { font-size: 12.5px; stroke-width: 3 }
.pcs-module-offer.wp-block-group, .pcs-module-faqs.wp-block-group, .pcs-module-solutions.wp-block-group { border-top: 1px solid #eceae8 }
.pcs-module .pcs-module-cards, .pcs-module .pcs-module-reasons, .pcs-module .pcs-module-stages {
	display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-top: 28px;
}
.pcs-module .pcs-module-card {
	padding: 20px 16px 24px; text-align: center; border: 1px solid #eeeae6; border-radius: 18px; background: #f8f6f3;
}
.pcs-module-card .pcs-module-icon, .pcs-module-stage .pcs-module-icon {
	border-radius: 50%; width: 78px; height: 78px; margin: 0 auto 13px; background: #fff0e4;
}
.pcs-module-card p, .pcs-module-reason p, .pcs-module-stage p { margin-top: 8px; font-size: var(--pcs-service-body-size); line-height: 1.4 }
/* Older unsynced copies still contain the decorative Image block in the editor. */
.pcs-module-why .pcs-module-scenery { display: none }
.editor-styles-wrapper .pcs-module-faqs .pcs-faq-category.is-selected > .pcs-faq-category-header {
	position: static; width: auto; height: auto; clip-path: none; padding: 10px;
}
.pcs-module-why h2::after { margin: 12px 0 }
.pcs-module-why .pcs-module-inner > p { max-width: 900px }
.pcs-module .pcs-module-reasons { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 0; margin-top: 30px }
.pcs-module .pcs-module-reason { padding-inline: 20px; border-inline-start: 1px solid #a1aab1 }
.pcs-module .pcs-module-reason:first-child { padding-inline-start: 0; border: 0 }
.pcs-module-why .pcs-module-reason .pcs-module-icon { color: var(--accent); margin-bottom: 10px }
.pcs-module-why .pcs-module-reason p { color: inherit }
.pcs-module-process .pcs-module-inner > p { margin-top: 8px }
.pcs-module .pcs-module-stages { position: relative; gap: 0; margin-top: 32px; text-align: center }
.pcs-module-stages::before { content: ''; position: absolute; top: 22px; inset-inline: 12.5%; border-top: 1px solid var(--accent) }
.pcs-module .pcs-module-stage { position: relative; padding: 0 14px }
.pcs-module-stage p.pcs-module-number {
	position: relative; z-index: 1; display: grid; place-items: center; margin: 0 auto; width: 44px; height: 44px;
	border-radius: 50%; background: var(--accent); color: white; font: 700 20px/1.2 Hind, sans-serif;
}
.pcs-module-stage .pcs-module-icon { width: 98px; height: 98px; margin-top: -3px }
.pcs-module-stage p { max-width: 22ch; margin-inline: auto }
.pcs-module-faqs .pcs-faq.pcs-faq { max-width: none; padding: 0; margin-top: 24px }
.pcs-module-faqs .pcs-faq .pcs-faq-category { border: 0; box-shadow: none; background: transparent }
.pcs-module-faqs .pcs-faq-category-header { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); padding: 0 }
.pcs-module-faqs .pcs-faq .pcs-faq-categories { gap: 10px }
.pcs-module-faqs .pcs-faq .pcs-faq-questions { padding: 0 }
.pcs-module-faqs .pcs-faq.pcs-faq .pcs-faq-question { font-family: Hind, sans-serif }
.pcs-module-solutions .pcs-module-copy { max-width: 56% }
.pcs-module-solutions .pcs-module-copy h2 { margin: 12px 0 }
.pcs-module-solutions .pcs-module-photo { width: 43%; --cut: 26% }
/* Both are native Button blocks, including copies saved in 0.8.0. */
:is(.pcs-module-solutions, .pcs-module-cta) .wp-block-button .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	padding: 15px 30px; border: 1px solid transparent; border-radius: 30px; text-decoration: none;
}
.pcs-module-cta.wp-block-group { color: white; background-color: #b4461f; background-image: linear-gradient(125deg,#c54c27,#ac461b) }
.pcs-module-cta .pcs-module-copy { max-width: 55% }
.pcs-module-cta .pcs-module-photo { width: 48%; --cut: 34%; background: transparent }
.pcs-module-cta .pcs-module-photo img { clip-path: none }
.pcs-module-cta .pcs-module-copy > p { margin-top: 16px }
/* The shared PCS fill and label are !important. Limit the inverse palette to this band. */
.pcs-module.pcs-module-cta .wp-block-button .wp-block-button__link {
	--pcs-primary-hover: #333741;
	background: white !important; color: var(--accent) !important;
}
.pcs-module.pcs-module-cta .wp-block-button .wp-block-button__link:is(:hover, :focus-visible) {
	background: #333741 !important; color: white !important;
}
.pcs-module-solutions .wp-block-button .wp-block-button__link:is(:hover, :focus-visible) {
	background: #333741; color: white;
}
.pcs-module-solutions .wp-block-button .wp-block-button__link:focus-visible { outline: 3px solid #333741; outline-offset: 4px }
.pcs-module-cta .wp-block-button .wp-block-button__link:focus-visible { outline: 3px solid white; outline-offset: 4px }
@media (max-width: 1000px) {
	.pcs-module.wp-block-group { padding-block: 48px }
	.pcs-module .pcs-module-cards, .pcs-module .pcs-module-reasons { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px }
	.pcs-module .pcs-module-reason, .pcs-module .pcs-module-reason:first-child { border: 0; padding: 0 }
	.pcs-module .pcs-module-stage { padding-inline: 6px }
}
@media (max-width: 700px) {
	.pcs-module.wp-block-group { padding-block: 38px }
	.pcs-module .pcs-module-copy, .pcs-module.pcs-module-hero h1 { max-width: 100% }
	.pcs-module:has(> .pcs-module-photo) { padding-bottom: 0 }
	.pcs-module .pcs-module-photo {
		position: relative; inset: auto; width: calc(100% + 2 * var(--gutter)); height: auto; aspect-ratio: 1.45 / 1;
		margin: 28px calc(-1 * var(--gutter)) 0; clip-path: none; border-top: 4px solid var(--accent); overflow: hidden;
	}
	.pcs-module .pcs-module-photo img { position: absolute; right: 0; width: 135%; max-width: none; object-fit: fill; clip-path: none }
	.pcs-module-introduction .pcs-module-inner { grid-template-columns: 1fr; gap: 24px }
	.pcs-module .pcs-module-intro-copy { padding: 0 }
	.pcs-module .pcs-module-checklist { padding: 0 0 0 18px }
	.pcs-module .pcs-module-stages { grid-template-columns: 1fr 1fr; gap: 26px 12px }
	.pcs-module-stages::before { display: none }
	.pcs-module-stage .pcs-module-icon { width: 74px; height: 74px }
}
@media (max-width: 480px) {
	.pcs-module .pcs-module-cards, .pcs-module .pcs-module-reasons { grid-template-columns: 1fr }
	.pcs-module .pcs-module-reason + .pcs-module-reason { padding-top: 20px; border-top: 1px solid #72818a }
}

.pcs-module .wp-block-buttons > .wp-block-button { flex: 0 1 auto; width: auto; margin: 0 }
@media (min-width: 1001px) {
	.pcs-module > .pcs-module-inner { max-width: 1320px }
	.pcs-module-hero > .pcs-module-inner, .pcs-module-introduction > .pcs-module-inner { max-width: 1210px }
	.pcs-module-introduction .pcs-module-check { gap: 16px }
	.pcs-module-introduction .pcs-module-checklist { gap: 10px }
	.pcs-module .pcs-module-card { padding-inline: 12px }
	.pcs-module-card .pcs-module-icon { width: 88px; height: 88px }
	.pcs-module-stage .pcs-module-icon { width: 112px; height: 112px }
	.pcs-module .pcs-module-intro-copy { padding-right: 11% }
	.pcs-module-cta .pcs-module-copy { max-width: 56% }
}
@media (min-width: 1100px) {
	.pcs-module-introduction .pcs-module-check .pcs-module-icon { width: 21.5px; height: 21.5px }
	.pcs-module-solutions .pcs-module-copy { max-width: 60% }
	.pcs-module-cta .pcs-module-copy > p { max-width: 38ch }
}

.pcs-module .pcs-module-arrow .wp-block-button__link::after { content: none }
.pcs-module .pcs-module-arrow .pcs-lucide-icon { width: 1.15em; height: 1.15em }
.editor-styles-wrapper .pcs-service-preview-icon { position: relative }
.editor-styles-wrapper .pcs-service-preview-icon .wp-block-button__link { padding-inline-end: 3.2em }
.editor-styles-wrapper .pcs-service-button-preview { pointer-events: none; position: absolute; right: 1.25em; top: 50%; transform: translateY(-50%); color: white }
.editor-styles-wrapper .pcs-module-cta .pcs-service-button-preview { color: var(--accent) }

/* The flagship page has a longer closing invitation than the shared starter. */
.pcs-website-development .pcs-module-cta .pcs-module-copy > p { max-width: min(60ch, 90%) }
.pcs-website-development .pcs-module-cta .wp-block-buttons {
	width: 100%; margin-inline: 0; justify-content: flex-start;
}
.pcs-website-development .pcs-module-cta .wp-block-buttons > .wp-block-button { margin-inline: 0 }
@media (max-width: 700px) {
	.pcs-website-development .pcs-module-cta .pcs-module-copy > p { max-width: none }
}

/* Native Image blocks in the service-page content pack use original PCS artwork. */
.pcs-module .pcs-module-photo.pcs-source-photo img { object-fit: cover }

/* Long service names can use the existing copy column at the original type size. */
.pcs-module.pcs-service-draft-hero h1 { max-width: 100%; overflow-wrap: anywhere; text-wrap: balance }

/* Package comparisons on the two ongoing-service pages. */
.pcs-module.pcs-plan-comparison {
	padding-inline: clamp(16px, 1.72vw, 22px);
	padding-top: 4px;
}
.pcs-plan-comparison > .pcs-module-inner {
	max-width: 1224px;
	min-width: 0;
}
.pcs-module.pcs-plan-comparison h2 {
	margin: 0 0 2px;
	font: 700 32px/1.12 Georgia, serif;
	letter-spacing: -.025em;
}
.pcs-module.pcs-plan-comparison .pcs-plan-table {
	max-width: 100%;
	position: relative;
	margin: 4px 0 16px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
}
.pcs-plan-table:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.pcs-plan-table table {
	width: 100%;
	min-width: 1000px;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
	font: 400 14px/1.28 'Varela Round', Arial, sans-serif;
	color: #172027;
}
.pcs-plan-table :is(th, td) {
	padding: 6px 10px;
	height: 31px;
	border: 0;
	border-right: 1px solid #e4e1dd;
	vertical-align: middle;
	text-align: center;
	font-weight: 400;
	overflow-wrap: break-word;
}
.pcs-plan-table tr > :first-child { width: 24.5%; text-align: left; padding-left: 18px; }
.pcs-plan-table tr > :nth-child(2) { width: 17%; }
.pcs-plan-table thead th {
	position: relative;
	height: 60px;
	border-radius: 16px 16px 0 0;
	background: #f8f5f1;
	border-bottom: 1px solid #e4e1dd;
	text-align: left;
	padding: 6px 6px 6px 88px;
	font-size: 12px;
}
.pcs-plan-table thead th strong { font: 700 20px/1.22 Georgia, serif; }
.pcs-plan-table thead th:first-child {
	background: linear-gradient(#303b45, #303b45) bottom / 100% 30px no-repeat;
	border-radius: 0;
	color: white;
	font-size: 14px;
	font-weight: 700;
	vertical-align: bottom;
	padding-bottom: 5px;
}
.pcs-plan-table thead th:first-child::before {
	content: '';
	position: absolute;
	left: 0;
	bottom: 22px;
	width: 8px;
	height: 8px;
	background: radial-gradient(circle at bottom right, transparent 7px, white 8px);
}
.pcs-plan-table thead th:not(:first-child)::before,
.pcs-plan-table thead th:not(:first-child)::after {
	content: '';
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.pcs-plan-table thead th:not(:first-child)::before {
	left: 32px;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: #fbeee1;
}
.pcs-plan-table thead th:not(:first-child)::after {
	left: 41px;
	width: 28px;
	height: 28px;
	background: var(--accent);
	mask: var(--plan-icon) center / contain no-repeat;
}
.pcs-plan-website-care thead th:nth-child(2) { --plan-icon: url(icons/lucide/laptop.svg); }
.pcs-plan-website-care thead th:nth-child(3) { --plan-icon: url(icons/lucide/settings.svg); }
.pcs-plan-website-care thead th:nth-child(4) { --plan-icon: url(icons/lucide/layers.svg); }
.pcs-plan-website-care thead th:nth-child(5) { --plan-icon: url(icons/lucide/award.svg); }
.pcs-plan-local-seo-management thead th:nth-child(2) { --plan-icon: url(icons/lucide/map-pin.svg); }
.pcs-plan-local-seo-management thead th:nth-child(3) { --plan-icon: url(icons/lucide/list-checks.svg); }
.pcs-plan-local-seo-management thead th:nth-child(4) { --plan-icon: url(icons/lucide/chart-column.svg); }
.pcs-plan-local-seo-management thead th:nth-child(5) { --plan-icon: url(icons/lucide/trending-up.svg); }
.pcs-plan-table tbody tr { background: #fffdfb; }
.pcs-plan-table tbody tr:nth-child(even) { background: #f6f4f1; }
.pcs-plan-table tbody th { border-left: 1px solid #e4e1dd; }
.pcs-plan-table tbody tr:last-child > * { border-bottom: 1px solid #e4e1dd; }
.pcs-plan-table tbody tr:last-child > :first-child { border-bottom-left-radius: 10px; }
.pcs-plan-table tbody tr:last-child > :last-child { border-bottom-right-radius: 10px; }
.pcs-plan-comparison .pcs-plan-table ~ p { margin: 7px 0; font-size: 14px; line-height: 1.5; }
.pcs-module.pcs-plan-comparison h3 { margin: 16px 0 4px; font: 700 20px/1.25 Georgia, serif; }
@media (max-width: 700px) {
	.pcs-module.pcs-plan-comparison h2 { font-size: 29px; }
	.pcs-plan-table thead th:first-child, .pcs-plan-table tbody th { position: sticky; left: 0; z-index: 1; }
	.pcs-plan-table tbody th { background: inherit; }
	.pcs-plan-table tr > :first-child { width: 168px; }
	.pcs-plan-table tr > :nth-child(2) { width: auto; }
}

/* Option 1 package cards inside the two synced service patterns. */
.pcs-module.pcs-package-plans {
	padding: 64px max(var(--gutter), calc((100% - 1320px) / 2));
	background-color: #f3f4f5;
}
.pcs-module.pcs-package-plans > h2 {
	margin: 0 0 2px;
	font: 700 32px/1.2 Georgia, serif;
	letter-spacing: -.025em;
}
.pcs-package-plans .pcs-plan-grid {
	display: grid;
	grid-template-columns: repeat(4,minmax(0,1fr));
	gap: 28px 13px;
	margin: 30px 0 0;
}
.pcs-package-plans .pcs-plan-card {
	min-width: 0;
	padding: 18px clamp(16px,2vw,27px) 18px;
	background: linear-gradient(150deg,#faf8f6,#fdfcfb);
	border: 1px solid #e8e3de;
	border-radius: 20px;
}
.pcs-package-plans .pcs-plan-featured > .pcs-plan-badge {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	width: max-content;
	max-width: calc(100% - 24px);
	margin: 0;
	padding: 4px 12px;
	border-radius: 16px;
	background: var(--accent);
	color: white;
	text-align: center;
	font: 700 12px/1.25 'Varela Round', Arial, sans-serif;
	overflow-wrap: anywhere;
}
.pcs-package-plans .pcs-plan-featured {
	position: relative;
	border-color: var(--accent);
	background: linear-gradient(150deg,#fff3e8,#fff8f1);
}
.pcs-package-plans .pcs-plan-header {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-left: -5px;
}
.pcs-package-plans .pcs-plan-header .pcs-module-icon {
	display: grid;
	place-items: center;
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
	background: #fbefe2;
	color: var(--accent);
	border-radius: 50%;
}
.pcs-package-plans .pcs-plan-header .pcs-module-icon svg { width: 38px; height: 38px; stroke-width: 1.6; }
.pcs-package-plans .pcs-plan-name h3 { margin: 0; font: 700 23px/1.14 Georgia, serif; color: var(--ink); letter-spacing: -.035em; }
.pcs-package-plans .pcs-plan-name .pcs-plan-subtitle { margin: 4px 0 0; font: 400 12px/1.35 'Varela Round',sans-serif; color: #414950; text-transform: uppercase; }
.pcs-package-plans .pcs-plan-card .pcs-plan-benefit { margin: 8px 0 0; padding-bottom: 10px; border-bottom: 1px solid #e9e3dd; font-size: 16px; line-height: 1.32; }
.pcs-package-plans .pcs-plan-card .pcs-plan-includes { margin: 10px 0 5px; color: var(--accent); font: 700 14px/1.4 Arial,sans-serif; text-transform: uppercase; }
.pcs-package-plans .pcs-plan-card ul { list-style: none; margin: 0; padding: 0; font: 400 14px/1.4 'Varela Round',sans-serif; }
.pcs-package-plans .pcs-plan-card li { position: relative; padding-left: 26px; margin: 2px 0 0; }
.pcs-package-plans .pcs-plan-card li::before { content: ''; position: absolute; left: 0; top: 1px; width: 18px; height: 18px; background: var(--accent); mask: url(icons/lucide/check.svg) center/contain no-repeat; }
.pcs-package-plans > .pcs-plan-agreement { margin-top: 12px; font-size: 14px; }
@media (max-width: 1050px) {
	.pcs-package-plans .pcs-plan-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
	.pcs-module.pcs-package-plans { padding-block: 32px; }
	.pcs-package-plans .pcs-plan-grid { grid-template-columns: minmax(0,1fr); gap: 24px; margin-top: 24px; }
	.pcs-package-plans .pcs-plan-card { padding: 18px 22px; }
}
@media (min-width: 621px) {
	.pcs-package-plans .pcs-plan-card {
		display: grid;
		grid-row: span 4;
		grid-template-rows: subgrid;
		row-gap: 0;
	}
	.pcs-package-plans .pcs-plan-card ul { align-self: start; }
}
