/* Playcept site styles — everything theme.json cannot express. Tokens mirror brand/tokens.json. */
:root {
	--pc-blue: #3442A0;
	--pc-blue-deep: #2C3890;
	--pc-orange: #FF5C35;
	--pc-orange-ink: #D63E17;
	--pc-cream: #FFF6DE;
	--pc-tan: #F4E6BE;
	--pc-card: #FFFDF6;
	--pc-butter: #FFE7A3;
	--pc-tint: #E7E9F6;
	--pc-line: #EBDDB4;
	--pc-ink: #1F244D;
	--pc-ink-on-orange: #1B1F3B;
	--pc-body: #4A4E6A;
	--pc-muted: #6B6A80;
	--pc-on-blue: #DCE0F5;
	--pc-radius: 24px;
	--pc-radius-sm: 16px;
	/* motion tokens */
	--pc-fast: 150ms;
	--pc-base: 300ms;
	--pc-slow: 600ms;
	--pc-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--pc-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
	--pc-rise: 12px;
	--pc-stagger: 60ms;
}

/* ---------- base ---------- */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--pc-butter); color: var(--pc-ink); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--pc-blue);
	outline-offset: 3px;
	border-radius: 6px;
}
.pc-on-blue :where(a, button, input, select, textarea, summary):focus-visible { outline-color: var(--pc-butter); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pc-skip { position: absolute; left: -999px; top: 0; z-index: 100; background: var(--pc-blue); color: #fff; padding: .75rem 1rem; }
.pc-skip:focus { left: 1rem; top: 1rem; }

/* emphasis words: Playfair italic, orange on light, butter on blue */
.pc-em, em.pc-em { font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-weight: 600; letter-spacing: 0; }
.pc-accent { color: var(--pc-orange-ink); }
.pc-on-blue .pc-accent, .has-blue-background-color .pc-accent { color: var(--pc-butter); }

/* eyebrow labels */
.pc-eyebrow { font-weight: 700; font-size: .875rem !important; letter-spacing: .16em; text-transform: uppercase; color: var(--pc-blue); margin: 0; }
.pc-on-blue .pc-eyebrow, .has-blue-background-color .pc-eyebrow { color: var(--pc-butter); }
.has-orange-background-color .pc-eyebrow { color: var(--pc-ink-on-orange); }

/* ---------- surfaces ---------- */
.pc-card { background: var(--pc-card); border: 2px solid var(--pc-line); border-radius: var(--pc-radius); padding: clamp(1.5rem, 3vw, 2.5rem) !important; }
.pc-panel { border-radius: var(--pc-radius); padding: clamp(1.75rem, 4vw, 3.5rem) !important; }
.pc-on-blue, .has-blue-background-color { color: var(--pc-on-blue); }
.pc-on-blue :where(h1, h2, h3, h4), .has-blue-background-color :where(h1, h2, h3, h4) { color: #fff; }
.has-orange-background-color, .has-orange-background-color :where(h1, h2, h3, h4, p, li) { color: var(--pc-ink-on-orange); }
.pc-tan { background: var(--pc-tan); }
.pc-shadow { box-shadow: 0 18px 48px rgba(52, 66, 160, .14); }

/* chips / pills */
.pc-chips { display: flex; flex-wrap: wrap; gap: .625rem; padding: 0; margin: 0; list-style: none; }
.pc-chips li, .pc-chip { display: inline-block; background: var(--pc-tint); color: var(--pc-blue); font-weight: 700; font-size: .9375rem; padding: .5rem 1rem; border-radius: 999px; }

/* stat numbers */
.pc-stat { font-weight: 900; font-size: clamp(3rem, 7vw, 5.5rem); line-height: 1; letter-spacing: -.03em; color: var(--pc-blue); margin: 0; }
.pc-on-blue .pc-stat, .has-blue-background-color .pc-stat { color: var(--pc-butter); }
.pc-source { font-size: .8125rem !important; color: var(--pc-muted); margin-top: .5rem; }
.pc-on-blue .pc-source { color: var(--pc-on-blue); }

/* the block motif: a row of 5 squares that fill like a signal */
.pc-meter { display: flex; gap: 6px; margin: .25rem 0 0; padding: 0; list-style: none; }
.pc-meter span { width: 22px; height: 22px; background: var(--pc-tan); transition: background-color var(--pc-base) var(--pc-ease); }
.pc-meter[data-level="1"] span:nth-child(-n+1),
.pc-meter[data-level="2"] span:nth-child(-n+2),
.pc-meter[data-level="3"] span:nth-child(-n+3),
.pc-meter[data-level="4"] span:nth-child(-n+4),
.pc-meter[data-level="5"] span:nth-child(-n+5) { background: var(--pc-blue); }
.pc-meter span:nth-child(2) { transition-delay: calc(var(--pc-stagger) * 1); }
.pc-meter span:nth-child(3) { transition-delay: calc(var(--pc-stagger) * 2); }
.pc-meter span:nth-child(4) { transition-delay: calc(var(--pc-stagger) * 3); }
.pc-meter span:nth-child(5) { transition-delay: calc(var(--pc-stagger) * 4); }
html.js .pc-meter:not(.is-in) span { background: var(--pc-tan); }

/* numbered steps */
.pc-step-no { font-weight: 900; font-size: 3rem; line-height: 1; color: var(--pc-blue); margin: 0; }
.has-orange-background-color .pc-step-no { color: var(--pc-ink-on-orange); }

/* compare rows (root cause, before/after) */
.pc-rows { list-style: none; padding: 0; margin: 0; }
.pc-rows li { padding: .9rem 0; border-top: 2px solid rgba(0, 0, 0, .07); }
.pc-on-blue .pc-rows li, .has-blue-background-color .pc-rows li { border-top-color: rgba(255, 255, 255, .14); }
.pc-rows strong { display: block; color: var(--pc-ink); font-size: 1.1875rem; }
.has-blue-background-color .pc-rows strong { color: #fff; }

/* CTA rows: buttons + a quiet text link */
.pc-cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.pc-textlink { font-weight: 700; text-underline-offset: 4px; }
.pc-textlink::after { content: " →"; }
.has-blue-background-color .pc-textlink, .pc-on-blue .pc-textlink { color: #fff; }
.has-blue-background-color .wp-block-button__link.is-style-outline, .has-blue-background-color .is-style-outline .wp-block-button__link { color: #fff; border-color: #fff; }

/* buttons: lift on hover */
.wp-block-button__link, .pc-btn {
	transition: transform var(--pc-fast) var(--pc-ease), background-color var(--pc-fast) var(--pc-ease), box-shadow var(--pc-fast) var(--pc-ease);
}
.wp-block-button__link:hover, .pc-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(52, 66, 160, .18); }
.wp-block-button__link:active, .pc-btn:active { transform: translateY(0); }
.pc-btn { display: inline-flex; align-items: center; gap: .5rem; border: 0; cursor: pointer; font: inherit; font-weight: 700; font-size: 1.0625rem; background: var(--pc-orange); color: var(--pc-ink-on-orange); border-radius: 999px; padding: .95rem 1.6rem; text-decoration: none; }
.pc-btn.is-ghost { background: transparent; color: var(--pc-blue); box-shadow: inset 0 0 0 2px var(--pc-blue); }
.pc-btn.is-ghost:hover { box-shadow: inset 0 0 0 2px var(--pc-blue), 0 8px 20px rgba(52, 66, 160, .16); }

/* ---------- header ---------- */
.pc-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 246, 222, .92); backdrop-filter: saturate(1.2) blur(10px); border-bottom: 1px solid rgba(235, 221, 180, .7); }
.pc-header .wp-block-site-logo img { height: 52px; width: auto; }
.pc-header .wp-block-navigation a { text-decoration: none; color: var(--pc-ink); }
.pc-header .wp-block-navigation a:hover { color: var(--pc-blue); }
@media (max-width: 781px) { .pc-header .pc-header-cta { display: none; } }

/* ---------- hero ---------- */
.pc-hero h1 { margin-top: .5rem; }
.pc-hero-panel { background: var(--pc-orange); border-radius: 32px; padding: clamp(1rem, 2.5vw, 2rem) !important; }
.pc-float { position: relative; }
.pc-chip.is-float { background: var(--pc-card); color: var(--pc-ink); box-shadow: 0 10px 28px rgba(52, 66, 160, .14); }

/* ---------- cta band with the out-of-the-box block ---------- */
.pc-cta-band { position: relative; overflow: hidden; }
.pc-oob { position: absolute; right: clamp(1rem, 6vw, 6rem); bottom: clamp(1rem, 4vw, 3rem); display: grid; grid-template-columns: repeat(3, 28px); gap: 8px; pointer-events: none; }
.pc-oob i { width: 28px; height: 28px; background: rgba(255, 255, 255, .14); }
.pc-oob i.is-out { background: var(--pc-orange); transform: translate(0, 0); transition: transform var(--pc-slow) var(--pc-ease); }
.pc-cta-band.is-in .pc-oob i.is-out, .pc-cta-band:hover .pc-oob i.is-out { transform: translate(44px, -40px); }
@media (max-width: 781px) { .pc-oob { display: none; } }

/* ---------- footer ---------- */
.pc-footer a { color: #fff; text-decoration: none; }
.pc-footer a:hover { text-decoration: underline; }
.pc-footer .wp-block-site-logo img { height: 96px; width: auto; }

/* ---------- reveal on scroll ---------- */
.js .pc-reveal > * { opacity: 0; transform: translateY(var(--pc-rise)); transition: opacity var(--pc-slow) var(--pc-ease), transform var(--pc-slow) var(--pc-ease); }
.js .pc-reveal.is-in > * { opacity: 1; transform: none; }
.js .pc-reveal.is-in > *:nth-child(2) { transition-delay: calc(var(--pc-stagger) * 1); }
.js .pc-reveal.is-in > *:nth-child(3) { transition-delay: calc(var(--pc-stagger) * 2); }
.js .pc-reveal.is-in > *:nth-child(4) { transition-delay: calc(var(--pc-stagger) * 3); }
.js .pc-reveal.is-in > *:nth-child(5) { transition-delay: calc(var(--pc-stagger) * 4); }
.js .pc-reveal.is-in > *:nth-child(6) { transition-delay: calc(var(--pc-stagger) * 5); }

/* ---------- blog ---------- */
.pc-post-card { background: var(--pc-card); border: 2px solid var(--pc-line); border-radius: var(--pc-radius); padding: 1.5rem; height: 100%; }
.pc-post-card .wp-block-post-title a { text-decoration: none; color: var(--pc-ink); }
.pc-post-card .wp-block-post-featured-image img { border-radius: var(--pc-radius-sm); }
.single .wp-block-post-content { font-size: 1.1875rem; }

/* ---------- placeholders that must not ship ---------- */
.pc-placeholder { outline: 3px dashed var(--pc-orange); outline-offset: 4px; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; transition-delay: 0ms !important; }
	.js .pc-reveal > * { opacity: 1; transform: none; }
	.wp-block-button__link:hover, .pc-btn:hover { transform: none; }
	.pc-cta-band.is-in .pc-oob i.is-out { transform: translate(44px, -40px); }
}

/* ---------- sections ---------- */
.pc-section { padding-top: clamp(4rem, 9vw, 7.5rem) !important; padding-bottom: clamp(4rem, 9vw, 7.5rem) !important; }
.pc-section.is-tight-top { padding-top: 0 !important; }
.pc-section > * + * { margin-block-start: clamp(2rem, 4vw, 3rem); }
.pc-head > * + * { margin-block-start: 1rem; }
.pc-head h2 { max-width: 22ch; }
.pc-page-hero h1 { max-width: 16ch; }
.pc-page-hero .wp-block-buttons { margin-top: 2rem; }
.wp-block-columns { gap: clamp(1rem, 2.5vw, 2rem); }
.wp-block-column.pc-card, .wp-block-column.pc-panel { display: flex; flex-direction: column; }
.pc-card > * + * { margin-block-start: .75rem; }
.pc-card h3 { margin-top: 1rem; }
.pc-card .wp-block-buttons { margin-top: auto; padding-top: 1.25rem; }
.pc-card.is-hot, .pc-card.has-orange-background-color { border-color: var(--pc-orange); }
.has-blue-background-color .pc-card:not(.has-background) { background: var(--pc-card); color: var(--pc-body); }
.has-blue-background-color .pc-card:not(.has-background) :where(h3, strong) { color: var(--pc-ink); }
.pc-eyebrow.is-muted { color: var(--pc-muted); }
.has-blue-background-color .pc-card .pc-eyebrow.is-dark, .pc-eyebrow.is-dark { color: var(--pc-blue); }
.pc-rows.is-dark strong { color: var(--pc-ink) !important; }
.pc-rows.is-dark li { border-top-color: rgba(0, 0, 0, .07) !important; }
.has-orange-background-color .pc-rows li { border-top-color: rgba(27, 31, 59, .14); }
.has-orange-background-color .pc-rows strong { color: var(--pc-ink-on-orange); }
.pc-statcard { justify-content: center; }
.pc-statcard .pc-stat { font-size: clamp(4rem, 9vw, 7rem); }

/* hero */
.pc-hero { padding-top: clamp(2.5rem, 6vw, 5rem) !important; }
.pc-hero h1 { font-size: clamp(2.75rem, 7vw, 5.75rem); }
.pc-hero .wp-block-buttons { margin-top: 2rem; }
.pc-hero-chips { margin-top: 1.5rem !important; }
.pc-hero-chips li { background: var(--pc-card); color: var(--pc-ink); box-shadow: 0 6px 16px rgba(52, 66, 160, .12); }

/* tables */
.pc-table table { border-collapse: collapse; width: 100%; font-size: 1rem; }
.pc-table th { text-align: left; font-weight: 700; color: var(--pc-ink); border-bottom: 2px solid var(--pc-line); padding: .6rem .5rem; }
.pc-table td { border-bottom: 1px solid var(--pc-line); padding: .65rem .5rem; color: var(--pc-ink); }
.pc-table td:not(:first-child), .pc-table th:not(:first-child) { text-align: right; white-space: nowrap; }
.pc-table figcaption { font-size: .8125rem; color: var(--pc-muted); text-align: left; margin-top: .75rem; }
.pc-ticks { list-style: none; padding: 0; margin: 0; }
.pc-ticks li { position: relative; padding-left: 1.6rem; margin: .45rem 0; }
.pc-ticks li::before { content: ""; position: absolute; left: 0; top: .45em; width: 12px; height: 12px; background: var(--pc-orange); }
.pc-pilot-strip { border-radius: var(--pc-radius-sm); padding: 1.25rem 1.75rem !important; gap: 1rem; }
.pc-pilot-strip p { margin: 0; color: #fff; }

/* timeline (block bars) */
.pc-timeline .wp-block-column { border-top: 14px solid var(--pc-blue); padding-top: 1rem; }
.pc-timeline .wp-block-column.is-hot { border-top-color: var(--pc-orange); }
.pc-timeline p { margin: .25rem 0; }
.pc-timeline strong { color: var(--pc-ink); font-size: 1.125rem; }
.pc-on-blue .pc-timeline strong { color: #fff; }

/* chips large */
.pc-chips.is-large li { font-size: 1.0625rem; padding: .7rem 1.2rem; }
.pc-on-blue .pc-chips li { background: rgba(255, 255, 255, .12); color: #fff; }

/* proof */
.pc-proof .pc-stat { font-size: clamp(2.5rem, 5vw, 3.75rem); }
.pc-proof-stats p { margin: .25rem 0; }

/* closing question */
.pc-question { font-family: 'Playfair Display', Georgia, serif !important; font-weight: 500 !important; font-size: clamp(2rem, 4.6vw, 3.5rem) !important; line-height: 1.2 !important; letter-spacing: 0 !important; color: #fff; }
.pc-question .pc-em { font-weight: 600; }
.pc-cta-band .wp-block-buttons { margin-top: 2rem; }

/* header */
.pc-header-inner { padding-block: .75rem; gap: 1.5rem; }
.pc-header-right { gap: 1.5rem; }
.pc-header .wp-block-site-logo img { height: 52px !important; width: auto !important; }
.pc-header .pc-nav-cta-mobile { display: none; }
@media (max-width: 599px) { .pc-header .wp-block-navigation__responsive-container.is-menu-open .pc-nav-cta-mobile { display: block; font-weight: 700; } }
.pc-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--pc-cream) !important; padding: 2rem; }
.pc-header .wp-block-navigation__responsive-container.is-menu-open a { font-size: 1.375rem; }

/* footer */
.pc-footer { padding-top: clamp(3rem, 6vw, 5rem) !important; padding-bottom: 2rem !important; }
.pc-footer-logo img { display: block; height: 96px; width: auto; }
.pc-footer-tag { font-size: 1.375rem; color: #fff; margin-top: 1rem; }
.pc-footer-links { list-style: none; padding: 0; margin: .75rem 0 0; }
.pc-footer-links li { margin: .45rem 0; }
.pc-footer-base { border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 1.25rem; margin-top: 2.5rem !important; font-size: .875rem; }
.pc-footer-base p { margin: 0; }

/* 404 */
.pc-404 { position: relative; min-height: 60vh; }
.pc-oob.is-static { position: static; margin-bottom: 2rem; display: grid; }
.pc-oob.is-static i { background: var(--pc-tan); }
.pc-oob.is-static i.is-out { background: var(--pc-orange); transform: translate(44px, -40px); }

/* inline CTA in posts */
.pc-inline-cta { margin-top: 3rem !important; }

/* details (FAQ) */
.wp-block-details summary { cursor: pointer; font-weight: 700; font-size: 1.1875rem; color: var(--pc-ink); list-style: none; position: relative; padding-right: 2rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; position: absolute; right: .25rem; top: .45em; width: 14px; height: 14px; background: var(--pc-blue); transition: transform var(--pc-base) var(--pc-ease), background-color var(--pc-base) var(--pc-ease); }
.wp-block-details[open] summary::after { background: var(--pc-orange); transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin-top: .75rem; }

/* mobile */
@media (max-width: 781px) {
	.pc-head h2 { max-width: none; }
	.pc-timeline .wp-block-column { border-top-width: 10px; }
}

/* full-width sections touch: no root block gap between them */
.wp-block-post-content > .alignfull, main > .alignfull, .wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.pc-card h3, .pc-card .wp-block-heading:where(h3) { font-size: clamp(1.25rem, 1.8vw, 1.5rem); }
.pc-hero { padding-bottom: clamp(3rem, 6vw, 5rem) !important; }

/* tables: brand rules only, no default cell boxes */
.pc-table table, .pc-table th, .pc-table td { border-left: 0 !important; border-right: 0 !important; border-top: 0 !important; }
.pc-table thead { border-bottom: 0 !important; }
@media (max-width: 599px) { .pc-table table { font-size: .875rem; } .pc-table td, .pc-table th { padding: .55rem .3rem; } }
/* team map stays inside the screen */
.pc-tm, .pc-tm__grid { min-width: 0; }
.pc-tm__grid { width: 100%; padding-right: 16px; box-sizing: border-box; }
html, body { overflow-x: clip; }
