/* ==========================================================================
   Performa Core: shared styles for all Performa blocks.
   Loaded on the front end and inside the editor canvas.
   Re-skin a client site by changing the tokens in :root.
   Breakpoints: tablet <= 1024px, mobile <= 640px.
   ========================================================================== */

:root {
	/* Brand tokens */
	--pc-ink: #17171a;
	--pc-panel: #212126;
	--pc-panel-2: #2a2b31;
	--pc-orange: #f6921e;
	--pc-orange-hover: #ffa53d;
	--pc-orange-deep: #9a5200;
	--pc-paper: #f5f5f3;
	--pc-white: #ffffff;
	--pc-slate: #55565c;
	--pc-mist: #c4c5cc;
	--pc-cream: #f4f2ee;

	--pc-font-head: Sora, ui-sans-serif, system-ui, sans-serif;
	--pc-font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
	--pc-radius: 12px;
	--pc-radius-sm: 6px;
	--pc-gutter: 24px;

	/* Context tokens (light by default; sections override) */
	--pc-fg: var(--pc-ink);
	--pc-fg-muted: var(--pc-slate);
	--pc-accent-text: var(--pc-orange-deep);
	--pc-line: #d9d9d4;
	--pc-surface: var(--pc-white);
	--pc-input-bg: var(--pc-white);
	--pc-input-line: #b9b9b3;
	--pc-logo-filter: brightness(0);
}

/* --- Background contexts --------------------------------------------------- */

.pc-bg-ink,
.pc-bg-panel,
.pc-card--panel,
.pc-plan.is-featured {
	--pc-fg: var(--pc-cream);
	--pc-fg-muted: var(--pc-mist);
	--pc-accent-text: var(--pc-orange);
	--pc-line: #2e2f36;
	--pc-surface: var(--pc-panel);
	--pc-input-bg: var(--pc-ink);
	--pc-input-line: #4a4b53;
	--pc-logo-filter: brightness(0) invert(1);
}
.pc-bg-ink { background-color: var(--pc-ink); }
.pc-bg-panel { background-color: var(--pc-panel); --pc-surface: var(--pc-panel-2); --pc-line: #3a3b43; }
.pc-bg-paper { background-color: var(--pc-paper); }
.pc-bg-white { background-color: var(--pc-white); --pc-surface: var(--pc-paper); }
.pc-bg-orange {
	background-color: var(--pc-orange);
	--pc-fg: var(--pc-ink);
	--pc-fg-muted: #2b2b2f;
	--pc-accent-text: var(--pc-ink);
	--pc-line: rgba(23, 23, 26, 0.25);
	--pc-surface: rgba(255, 255, 255, 0.35);
	--pc-input-bg: var(--pc-white);
	--pc-input-line: rgba(23, 23, 26, 0.35);
}
.pc-bg-white,
.pc-bg-paper,
.pc-card--white {
	--pc-fg: var(--pc-ink);
	--pc-fg-muted: var(--pc-slate);
	--pc-accent-text: var(--pc-orange-deep);
	--pc-input-bg: var(--pc-white);
	--pc-input-line: #b9b9b3;
	--pc-logo-filter: brightness(0);
}
.pc-bg-white, .pc-bg-paper { --pc-line: #d9d9d4; }

/* --- Section ----------------------------------------------------------------- */

.pc-section {
	--pc-pt-cur: var(--pc-pt, 112px);
	--pc-pb-cur: var(--pc-pb, 112px);
	--pc-gap-cur: var(--pc-gap, 32px);
	position: relative;
	isolation: isolate;
	box-sizing: border-box;
	padding-top: var(--pc-pt-cur);
	padding-bottom: var(--pc-pb-cur);
	color: var(--pc-fg);
	font-family: var(--pc-font-body);
	font-size: 17px;
	line-height: 1.6;
}
@media (max-width: 1024px) {
	.pc-section {
		--pc-pt-cur: var(--pc-pt-t, var(--pc-pt, 88px));
		--pc-pb-cur: var(--pc-pb-t, var(--pc-pb, 88px));
		--pc-gap-cur: var(--pc-gap-t, var(--pc-gap, 28px));
	}
}
@media (max-width: 640px) {
	.pc-section {
		--pc-pt-cur: var(--pc-pt-m, var(--pc-pt-t, var(--pc-pt, 72px)));
		--pc-pb-cur: var(--pc-pb-m, var(--pc-pb-t, var(--pc-pb, 72px)));
		--pc-gap-cur: var(--pc-gap-m, var(--pc-gap-t, var(--pc-gap, 24px)));
		font-size: 16px;
	}
}

/* Full-width sections stack with no gaps between them in the theme. */
.wp-block-post-content > .pc-section,
.wp-site-blocks .pc-section + .pc-section,
.entry-content > .pc-section {
	margin-block: 0;
}

.pc-container {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--pc-max, 1200px) + 2 * var(--pc-gutter));
	margin-inline: auto;
	padding-inline: var(--pc-gutter);
	display: flex;
	flex-direction: column;
	gap: var(--pc-gap-cur);
}
.pc-w-narrow > .pc-container { --pc-max: 760px; }
.pc-w-default > .pc-container { --pc-max: 1200px; }
.pc-w-wide > .pc-container { --pc-max: 1440px; }
.pc-w-full > .pc-container { max-width: none; }

.pc-container > * { margin-block: 0; }
.pc-container > .pc-eyebrow + * { margin-top: calc(12px - var(--pc-gap-cur)); }

.pc-text-center > .pc-container { text-align: center; align-items: center; }
.pc-text-center > .pc-container > .pc-grid,
.pc-text-center > .pc-container > .pc-logos { align-self: stretch; }
.pc-text-left > .pc-container > :is(h2, p) { max-width: 720px; }

/* Background image / video layers */
.pc-section.has-bg-image,
.pc-section.has-bg-video { overflow: hidden; }
.pc-bg-media {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	pointer-events: none;
}
.pc-bg-overlay {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #000;
	pointer-events: none;
}
.has-bg-image, .has-bg-video {
	--pc-fg: var(--pc-white);
	--pc-fg-muted: rgba(255, 255, 255, 0.85);
}

/* --- Typography inside Performa sections ------------------------------------ */

.pc-section :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--pc-font-head);
	color: var(--pc-fg);
	letter-spacing: -0.01em;
	text-wrap: balance;
}
.pc-section h1 { font-size: clamp(40px, 6vw, 76px); line-height: 1.05; font-weight: 700; }
.pc-section h2 { font-size: clamp(32px, 4vw, 48px); line-height: 1.1; font-weight: 700; }
.pc-section h3 { font-size: 22px; line-height: 1.3; font-weight: 600; }
.pc-section h4 { font-size: 18px; line-height: 1.35; font-weight: 600; }
.pc-section p { color: var(--pc-fg-muted); }
.pc-section .pc-lead,
.pc-section p.is-style-lead { font-size: clamp(18px, 1.6vw, 20px); line-height: 1.55; }
.pc-section a:not([class]) { color: var(--pc-accent-text); }

.pc-eyebrow {
	margin: 0;
	font-family: var(--pc-font-body);
	font-size: 13px;
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pc-accent-text);
}
.pc-section p.pc-eyebrow { color: var(--pc-accent-text); }

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

.pc-hero {
	--pc-minh-cur: var(--pc-minh, 0vh);
	display: flex;
	align-items: center;
	min-height: var(--pc-minh-cur);
	overflow: hidden;
}
.pc-hero.pc-valign-end { align-items: flex-end; }
.pc-hero > .pc-container > * { max-width: var(--pc-content-max, 820px); }
.pc-hero > .pc-container > .pc-grid { max-width: none; }
@media (max-width: 1024px) { .pc-hero { --pc-minh-cur: var(--pc-minh-t, var(--pc-minh, 0vh)); } }
@media (max-width: 640px) { .pc-hero { --pc-minh-cur: var(--pc-minh-m, var(--pc-minh-t, var(--pc-minh, 0vh))); } }

.pc-arcs {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}
.pc-arc {
	position: absolute;
	border-radius: 50%;
	border: 10px solid var(--pc-orange);
	transform: rotate(-20deg);
}
.pc-arc--a {
	right: -180px;
	top: -120px;
	width: 620px;
	height: 620px;
	border-left-color: transparent;
	border-bottom-color: transparent;
	opacity: 0.9;
}
.pc-arc--b {
	right: 40px;
	top: 60px;
	width: 520px;
	height: 520px;
	border-right-color: transparent;
	border-top-color: transparent;
	opacity: 0.35;
}
@media (max-width: 1024px) {
	.pc-arc--a { width: 460px; height: 460px; right: -200px; top: -140px; opacity: 0.6; }
	.pc-arc--b { width: 380px; height: 380px; right: -60px; top: 20px; opacity: 0.25; }
}
@media (max-width: 640px) {
	.pc-arc { border-width: 6px; }
	.pc-arc--a { width: 300px; height: 300px; right: -150px; top: -110px; opacity: 0.5; }
	.pc-arc--b { display: none; }
}

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

:is(a, span, button).pc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-sizing: border-box;
	min-height: 44px;
	border: 1px solid transparent;
	border-radius: var(--pc-radius-sm);
	font-family: var(--pc-font-body);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
:is(a, span, button).pc-btn--sm { padding: 10px 16px; font-size: 14px; }
:is(a, span, button).pc-btn--md { padding: 14px 22px; font-size: 16px; }
:is(a, span, button).pc-btn--lg { padding: 18px 28px; font-size: 18px; }
:is(a, span, button).pc-btn--block { display: flex; width: 100%; }
:is(a, span, button).pc-btn:focus-visible { outline: 2px solid var(--pc-orange); outline-offset: 3px; }

:is(a, span, button).pc-btn--primary { background: var(--pc-orange); color: var(--pc-ink); }
:is(a, span, button).pc-btn--primary:hover { background: var(--pc-orange-hover); color: var(--pc-ink); }
.pc-bg-orange :is(a, span, button).pc-btn--primary { background: var(--pc-ink); color: var(--pc-cream); }
.pc-bg-orange :is(a, span, button).pc-btn--primary:hover { background: #000; }

:is(a, span, button).pc-btn--dark { background: var(--pc-ink); color: var(--pc-cream); }
:is(a, span, button).pc-btn--dark:hover { background: #000; color: var(--pc-white); }
:is(a, span, button).pc-btn--light { background: var(--pc-white); color: var(--pc-ink); }
:is(a, span, button).pc-btn--light:hover { background: var(--pc-paper); color: var(--pc-ink); }

:is(a, span, button).pc-btn--outline { background: transparent; color: var(--pc-fg); border-color: currentColor; }
:is(a, span, button).pc-btn--outline:hover { background: var(--pc-fg); color: var(--pc-surface); border-color: var(--pc-fg); }
.pc-bg-ink :is(a, span).pc-btn--outline:hover,
.pc-bg-panel :is(a, span).pc-btn--outline:hover { color: var(--pc-ink); }

:is(a, span, button).pc-btn--link {
	min-height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pc-accent-text);
}
:is(a, span, button).pc-btn--link::after { content: "→"; transition: transform 0.2s ease; }
:is(a, span, button).pc-btn--link:hover { color: var(--pc-accent-text); }
:is(a, span, button).pc-btn--link:hover::after { transform: translateX(4px); }

/* Button rows built with a core Group (flex) */
.pc-section .wp-block-group.is-layout-flex { gap: 12px 20px; align-items: center; }

/* --- Grid -------------------------------------------------------------------- */

.pc-grid {
	--pc-cols-cur: var(--pc-cols, 3);
	--pc-grid-gap-cur: var(--pc-grid-gap, 24px);
	display: grid;
	box-sizing: border-box;
	width: 100%;
	grid-template-columns: repeat(var(--pc-cols-cur), minmax(0, 1fr));
	gap: var(--pc-grid-gap-cur);
	text-align: left;
}
@media (max-width: 1024px) {
	.pc-grid {
		--pc-cols-cur: var(--pc-cols-t, 2);
		--pc-grid-gap-cur: var(--pc-grid-gap-t, var(--pc-grid-gap, 20px));
	}
}
@media (max-width: 640px) {
	.pc-grid {
		--pc-cols-cur: var(--pc-cols-m, 1);
		--pc-grid-gap-cur: var(--pc-grid-gap-m, var(--pc-grid-gap-t, var(--pc-grid-gap, 16px)));
	}
}
.pc-grid > * { margin-block: 0; min-width: 0; }
.pc-items-start { align-items: start; }
.pc-items-center { align-items: center; }
.pc-items-stretch { align-items: stretch; }

.pc-grid--joined {
	gap: 1px;
	background: var(--pc-line);
	border: 1px solid var(--pc-line);
	border-radius: var(--pc-radius);
	overflow: hidden;
}
.pc-grid--joined > * { border-radius: 0; border: 0; background: var(--pc-surface); }

/* --- Card -------------------------------------------------------------------- */

.pc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	box-sizing: border-box;
	padding: 32px;
	border-radius: var(--pc-radius);
	color: var(--pc-fg);
	transition: transform 0.25s ease, border-color 0.25s ease;
}
.pc-card > * { margin: 0; }
.pc-card--auto { background: var(--pc-surface); border: 1px solid var(--pc-line); }
.pc-card--white { background: var(--pc-white); border: 1px solid #d9d9d4; }
.pc-card--panel { background: var(--pc-panel); border: 1px solid #2e2f36; }
.pc-card--outline { background: transparent; border: 1px solid var(--pc-line); }
.pc-card--line { padding: 20px 0 0; border-radius: 0; border-top: 2px solid var(--pc-orange); }
.pc-card--plain { padding: 0; }
@media (max-width: 640px) {
	.pc-card--auto, .pc-card--white, .pc-card--panel, .pc-card--outline { padding: 24px; }
}

.pc-card__media {
	display: block;
	width: 100%;
	height: auto;
	max-height: 240px;
	object-fit: cover;
	border-radius: 8px;
}
.pc-section .pc-card__num,
.pc-card__num {
	font-family: var(--pc-font-head);
	font-size: 14px;
	font-weight: 600;
	color: var(--pc-accent-text);
}
.pc-section .pc-card__title,
.pc-card__title { font-family: var(--pc-font-head); font-size: 22px; line-height: 1.3; font-weight: 600; color: var(--pc-fg); }
.pc-card__text { color: var(--pc-fg-muted); line-height: 1.6; }
.pc-card__link { margin-top: auto; color: var(--pc-accent-text); font-weight: 700; }
.pc-card__link::after { content: " →"; }

.pc-card .pc-card__stretch, .pc-case .pc-card__stretch { color: inherit; text-decoration: none; }
.pc-card__stretch::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.pc-card__stretch:focus-visible { outline: none; }
.pc-card__stretch:focus-visible::after { outline: 2px solid var(--pc-orange); outline-offset: 4px; }
.pc-card.is-linked:hover { transform: translateY(-4px); border-color: var(--pc-orange); }

/* --- Stat -------------------------------------------------------------------- */

.pc-stat { display: flex; flex-direction: column; gap: 8px; }
.pc-stat > * { margin: 0; }
.pc-section .pc-stat__value,
.pc-stat__value {
	font-family: var(--pc-font-head);
	font-size: clamp(40px, 5vw, 64px);
	font-weight: 700;
	line-height: 1;
	color: var(--pc-fg);
	font-variant-numeric: tabular-nums;
}
.pc-stat__label { color: var(--pc-fg-muted); }

/* --- Pricing ---------------------------------------------------------------- */

.pc-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-sizing: border-box;
	padding: 32px;
	border-radius: var(--pc-radius);
	background: var(--pc-surface);
	border: 1px solid var(--pc-line);
	color: var(--pc-fg);
}
.pc-plan > * { margin: 0; }
.pc-plan.is-featured { background: var(--pc-ink); border: 2px solid var(--pc-orange); }
.pc-plan__badge {
	align-self: flex-start;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--pc-orange);
	color: var(--pc-ink);
	font-size: 12px;
	font-weight: 700;
}
.pc-section p.pc-plan__badge { color: var(--pc-ink); }
.pc-section .pc-plan__name, .pc-plan__name { font-family: var(--pc-font-head); font-size: 22px; font-weight: 600; color: var(--pc-fg); }
.pc-section .pc-plan__price, .pc-plan__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px;
	font-family: var(--pc-font-head);
	font-size: 40px;
	font-weight: 700;
	line-height: 1.1;
	color: var(--pc-fg);
}
.pc-plan__period { font-family: var(--pc-font-body); font-size: 16px; font-weight: 400; color: var(--pc-fg-muted); }
.pc-plan__desc { color: var(--pc-fg-muted); }
.pc-plan__features,
.pc-plan__features-edit { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; color: var(--pc-fg); }
.pc-plan__features li { position: relative; padding-left: 22px; }
.pc-plan__features li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--pc-orange);
}
.pc-plan__button { margin-top: auto; }

/* --- Testimonial ------------------------------------------------------------- */

.pc-quote { margin: 0; display: flex; flex-direction: column; gap: 20px; box-sizing: border-box; color: var(--pc-fg); }
.pc-quote--large { padding: clamp(28px, 5vw, 56px); border-radius: var(--pc-radius); background: var(--pc-surface); border: 1px solid var(--pc-line); }
.pc-quote--card { padding: 32px; border-radius: var(--pc-radius); background: var(--pc-surface); border: 1px solid var(--pc-line); height: 100%; }
.pc-quote__text { margin: 0; padding: 0; border: 0; color: var(--pc-fg); }
.pc-quote--large .pc-quote__text { font-family: var(--pc-font-head); font-size: clamp(22px, 2.6vw, 30px); line-height: 1.35; font-weight: 400; }
.pc-quote--card .pc-quote__text { font-size: 18px; line-height: 1.6; }
.pc-quote__by { display: flex; align-items: center; gap: 14px; }
.pc-quote__img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.pc-quote__by > span { display: flex; flex-direction: column; }
.pc-quote__name { font-weight: 700; color: var(--pc-fg); }
.pc-quote__role { font-size: 15px; color: var(--pc-fg-muted); }

/* --- Logo strip ------------------------------------------------------------- */

.pc-logos {
	--pc-cols-cur: var(--pc-cols, 6);
	width: 100%;
}
@media (max-width: 1024px) { .pc-logos { --pc-cols-cur: var(--pc-cols-t, 4); } }
@media (max-width: 640px) { .pc-logos { --pc-cols-cur: var(--pc-cols-m, 3); } }
.pc-logos__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(var(--pc-cols-cur), minmax(0, 1fr));
	gap: 28px 32px;
	align-items: center;
}
.pc-logos__list li { display: flex; justify-content: center; align-items: center; }
.pc-logos__list img { display: block; width: auto; max-width: 100%; max-height: var(--pc-logo-h, 44px); object-fit: contain; }
.pc-logos.is-mono img { filter: var(--pc-logo-filter); opacity: 0.75; transition: opacity 0.2s ease; }
.pc-logos.is-mono li:hover img { opacity: 1; }

.pc-logos.is-marquee {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.pc-logos__track { display: flex; width: max-content; animation: pc-marquee 40s linear infinite; }
.pc-logos.is-marquee:hover .pc-logos__track { animation-play-state: paused; }
.pc-logos.is-marquee .pc-logos__list { display: flex; gap: 64px; padding-right: 64px; }
@keyframes pc-marquee { to { transform: translateX(-50%); } }

/* --- Case study card ------------------------------------------------------------ */

.pc-case { position: relative; display: flex; flex-direction: column; gap: 14px; color: var(--pc-fg); }
.pc-case > * { margin: 0; }
.pc-case__media {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	height: auto;
	object-fit: cover;
	border-radius: var(--pc-radius);
	border: 1px solid var(--pc-line);
	background: var(--pc-surface);
	transition: transform 0.3s ease;
}
.pc-case__media-btn { padding: 0; border: 0; background: none; cursor: pointer; display: block; width: 100%; }
.pc-case__placeholder.components-button {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	justify-content: center;
	border: 1px dashed var(--pc-line);
	border-radius: var(--pc-radius);
	color: var(--pc-fg-muted);
}
.pc-section .pc-case__cat, .pc-case__cat {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--pc-accent-text);
}
.pc-section .pc-case__title, .pc-case__title { font-family: var(--pc-font-head); font-size: 22px; line-height: 1.3; font-weight: 600; color: var(--pc-fg); }
.pc-case__excerpt { color: var(--pc-fg-muted); }
.pc-case.is-linked:hover .pc-case__media { transform: translateY(-4px); }

/* --- Panel (core Group with class pc-panel) ----------------------------------------- */

.pc-panel {
	box-sizing: border-box;
	padding: 20px;
	border-radius: var(--pc-radius);
	background: var(--pc-surface);
	border: 1px solid var(--pc-line);
}
.pc-container > .pc-panel { width: 100%; }

/* --- Contact Form 7 ------------------------------------------------------------------ */

.pc-form { display: flex; flex-direction: column; gap: 16px; }
.pc-form--inline { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
.pc-form br { display: none; }
.pc-form p, .pc-form__field { margin: 0; }
.pc-form__field { display: flex; flex-direction: column; gap: 6px; text-align: left; }
.pc-form__field--grow { flex: 1 1 240px; }
.pc-form label { font-size: 14px; font-weight: 500; color: var(--pc-fg-muted); }
.pc-form .wpcf7-form-control-wrap { display: block; }
.pc-form :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], select, textarea) {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 0 14px;
	border: 1px solid var(--pc-input-line);
	border-radius: var(--pc-radius-sm);
	background: var(--pc-input-bg);
	color: var(--pc-fg);
	font: inherit;
	font-size: 16px;
}
.pc-form textarea { padding: 12px 14px; min-height: 140px; }
.pc-form :is(input, select, textarea):focus-visible { outline: 2px solid var(--pc-orange); outline-offset: 1px; border-color: var(--pc-orange); }
.pc-form input[type="submit"] {
	min-height: 48px;
	padding: 0 22px;
	border: 0;
	border-radius: var(--pc-radius-sm);
	background: var(--pc-orange);
	color: var(--pc-ink);
	font: inherit;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
}
.pc-form input[type="submit"]:hover { background: var(--pc-orange-hover); }
.pc-form__submit { display: flex; align-items: center; gap: 8px; }
.pc-form .wpcf7-spinner { margin: 0; }
.wpcf7 form .wpcf7-response-output { margin: 12px 0 0; padding: 10px 14px; border-radius: var(--pc-radius-sm); font-size: 15px; color: var(--pc-fg); }
.pc-form .wpcf7-not-valid-tip { font-size: 14px; margin-top: 4px; }

/* --- Entrance animations ------------------------------------------------------------------
   Only hidden once the front-end script has marked <html class="pc-js">, so content is
   never invisible without JavaScript and always visible in the editor. */

.pc-js [data-pc-animate],
.pc-js [data-pc-stagger] > * {
	opacity: 0;
	transition: opacity 0.7s ease, transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
	transition-delay: var(--pc-delay, 0ms);
	will-change: opacity, transform;
}
.pc-js [data-pc-animate="fade-up"], .pc-js [data-pc-stagger="fade-up"] > * { transform: translateY(28px); }
.pc-js [data-pc-animate="slide-left"], .pc-js [data-pc-stagger="slide-left"] > * { transform: translateX(-40px); }
.pc-js [data-pc-animate="slide-right"], .pc-js [data-pc-stagger="slide-right"] > * { transform: translateX(40px); }
.pc-js [data-pc-animate="zoom-in"], .pc-js [data-pc-stagger="zoom-in"] > * { transform: scale(0.94); }
.pc-js [data-pc-animate].is-inview,
.pc-js [data-pc-stagger] > .is-inview { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	.pc-js [data-pc-animate],
	.pc-js [data-pc-stagger] > * { opacity: 1; transform: none; transition: none; }
	.pc-logos__track { animation: none; }
	.pc-card, .pc-case__media, .pc-btn { transition: none; }
}

/* --- Stack (core Group with class pc-stack): vertical column with even spacing --- */

.pc-stack { display: flex; flex-direction: column; gap: 20px; }
.pc-stack.pc-stack > * { margin-block: 0; }
.pc-stack.pc-stack > .pc-eyebrow + * { margin-top: -8px; }
.pc-panel--light { --pc-surface: var(--pc-white); padding: clamp(20px, 3vw, 32px); }

/* Heading followed by an intro paragraph sits closer than the section gap. */
.pc-container > :is(h1, h2) + p { margin-top: calc(16px - var(--pc-gap-cur)); }
.pc-hero > .pc-container > :is(h1, h2) + p { margin-top: 0; }
