/* PyCentric design tokens & sitewide baseline. Light default, dark override. */
:root {
	color-scheme: light;
	--pyc-bg: #ffffff;
	--pyc-surface: #f8f7fc;
	--pyc-surface-hover: #f0edf9;
	--pyc-band: #f4f1fa;
	--pyc-text: #120e1f;
	--pyc-muted: #534d64;
	--pyc-heading: #3b2c5e;
	--pyc-accent: #8b5cf6;
	--pyc-accent-rgb: 139, 92, 246;
	--pyc-accent-glow: rgba(139, 92, 246, 0.18);
	--pyc-accent-text: #7c3aed;
	--pyc-deep: #3b2c5e;
	--pyc-border: #e8e4f5;
	--pyc-border-hover: #c4b5fd;
	--pyc-card: #ffffff;
	--pyc-card-glow: rgba(139, 92, 246, 0.08);
	--pyc-field: #ffffff;
	--pyc-btn-bg: #4a3b6b;
	--pyc-btn-bg-hover: #3b2c5e;
	--pyc-btn-fg: #ffffff;
	--pyc-outline-fg: #4a3b6b;
	--pyc-header-bg: rgba(255, 255, 255, 0.85);
	--pyc-glass: rgba(255, 255, 255, 0.75);
	--pyc-shadow: 0 10px 30px -5px rgba(26, 17, 51, 0.06), 0 4px 12px -2px rgba(26, 17, 51, 0.04);
	--pyc-shadow-lg: 0 20px 45px -10px rgba(26, 17, 51, 0.12), 0 8px 20px -4px rgba(26, 17, 51, 0.08);
	--pyc-wa: #0d7b3e;
	--pyc-wa-hover: #095c2e;
}

@media print {
	:root {
		--pyc-bg: #ffffff;
		--pyc-text: #120e1f;
	}
}

[data-theme="dark"] {
	color-scheme: dark;
	--pyc-bg: #0a0812;
	--pyc-surface: #120e21;
	--pyc-surface-hover: #1c1533;
	--pyc-band: #141026;
	--pyc-text: #f4f2fa;
	--pyc-muted: #9d96b0;
	--pyc-heading: #d8ccf5;
	--pyc-accent: #a779e9;
	--pyc-accent-rgb: 167, 121, 233;
	--pyc-accent-glow: rgba(167, 121, 233, 0.28);
	--pyc-accent-text: #c4b5fd;
	--pyc-deep: #4a3b6b;
	--pyc-border: rgba(167, 121, 233, 0.16);
	--pyc-border-hover: rgba(167, 121, 233, 0.45);
	--pyc-card: rgba(18, 14, 33, 0.88);
	--pyc-card-glow: rgba(167, 121, 233, 0.15);
	--pyc-field: #141024;
	--pyc-btn-bg: #a779e9;
	--pyc-btn-bg-hover: #b992f2;
	--pyc-btn-fg: #0a0812;
	--pyc-outline-fg: #eceaf3;
	--pyc-header-bg: rgba(10, 8, 18, 0.88);
	--pyc-glass: rgba(18, 14, 33, 0.75);
	--pyc-shadow: 0 12px 32px -6px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(167, 121, 233, 0.14);
	--pyc-shadow-lg: 0 24px 50px -10px rgba(0, 0, 0, 0.75), 0 0 30px rgba(167, 121, 233, 0.22);
}

[data-theme="high-contrast"] {
	color-scheme: dark;
	--pyc-bg: #000000;
	--pyc-surface: #000000;
	--pyc-surface-hover: #1a1a1a;
	--pyc-band: #000000;
	--pyc-text: #ffffff;
	--pyc-muted: #e6e6e6;
	--pyc-heading: #ffff00;
	--pyc-accent: #ffff00;
	--pyc-accent-rgb: 255, 255, 0;
	--pyc-accent-glow: transparent;
	--pyc-accent-text: #ffff00;
	--pyc-deep: #ffffff;
	--pyc-border: #ffffff;
	--pyc-border-hover: #ffff00;
	--pyc-card: #000000;
	--pyc-card-glow: none;
	--pyc-field: #000000;
	--pyc-btn-bg: #ffff00;
	--pyc-btn-bg-hover: #ffffff;
	--pyc-btn-fg: #000000;
	--pyc-outline-fg: #ffffff;
	--pyc-header-bg: #000000;
	--pyc-glass: #000000;
	--pyc-shadow: none;
	--pyc-shadow-lg: none;
}

/* Base box-sizing & Typography */
*, *::before, *::after {
	box-sizing: border-box;
}

html, body, #page, .site, #content, main {
	background-color: var(--pyc-bg) !important;
	color: var(--pyc-text) !important;
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	line-height: 1.6;
}

/*
 * Parent theme (popularfx) injects a legacy inline stylesheet that floats
 * `main` to 79% width to make room for a WordPress sidebar (`aside`).
 * The child theme never renders a sidebar, so reset #pyc-main to full width
 * on every template. The ID selector outranks the parent's `main` selector
 * even though both use !important, so this wins regardless of enqueue order.
 */
#pyc-main {
	width: 100% !important;
	float: none !important;
	display: block !important;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--pyc-heading);
	margin-top: 0;
}

html {
	scroll-behavior: smooth;
}

a {
	color: var(--pyc-accent-text);
	text-decoration: none;
}

/* Layout Containers */
.pyc-wrap {
	width: 80%;
	max-width: 1720px;
	margin-inline: auto;
	padding-inline: 0;
	box-sizing: border-box;
}

@media (max-width: 1400px) {
	.pyc-wrap {
		width: 85%;
		max-width: 100%;
	}
}

@media (max-width: 1024px) {
	.pyc-wrap {
		width: 90%;
		padding-inline: 0.5rem;
	}
}

@media (max-width: 640px) {
	.pyc-wrap {
		width: 94%;
		padding-inline: 0.25rem;
	}
}

.pyc-section {
	padding-block: clamp(3rem, 7vw, 5.5rem);
	position: relative;
}

/* Global Buttons & Touch Targets (48x48dp compliant) */
.pyc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	min-height: 48px;
	padding: .75rem 1.6rem;
	border-radius: 12px;
	font-weight: 600;
	text-decoration: none;
	border: 2px solid transparent;
	font-size: .95rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color .2s cubic-bezier(0.4, 0, 0.2, 1),
	            color .2s cubic-bezier(0.4, 0, 0.2, 1),
	            border-color .2s cubic-bezier(0.4, 0, 0.2, 1),
	            box-shadow .2s cubic-bezier(0.4, 0, 0.2, 1),
	            transform .15s ease;
}
.pyc-btn:focus-visible {
	outline: 2px solid var(--pyc-accent);
	outline-offset: 3px;
}
.pyc-btn:active {
	transform: scale(0.98);
}
.pyc-btn-primary {
	background: var(--pyc-btn-bg) !important;
	color: var(--pyc-btn-fg) !important;
	box-shadow: 0 4px 18px var(--pyc-accent-glow);
}
.pyc-btn-primary:hover {
	background: var(--pyc-btn-bg-hover) !important;
	box-shadow: 0 6px 24px var(--pyc-accent-glow);
}
.pyc-btn-secondary {
	background: var(--pyc-surface) !important;
	color: var(--pyc-text) !important;
	border: 1px solid var(--pyc-border) !important;
}
.pyc-btn-secondary:hover {
	background: var(--pyc-surface-hover) !important;
	border-color: var(--pyc-border-hover) !important;
}
.pyc-btn-outline {
	border: 1px solid var(--pyc-border) !important;
	color: var(--pyc-text) !important;
	background: var(--pyc-surface) !important;
}
.pyc-btn-outline:hover {
	background: var(--pyc-accent) !important;
	color: var(--pyc-btn-fg) !important;
	border-color: var(--pyc-accent) !important;
}
.pyc-btn-wa {
	background: var(--pyc-wa) !important;
	color: #ffffff !important;
}
.pyc-btn-wa:hover {
	background: var(--pyc-wa-hover) !important;
	color: #ffffff !important;
}

/* Glassmorphism & Modern Card Primitives */
.pyc-glass-card {
	background: var(--pyc-card);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid var(--pyc-border);
	border-radius: 16px;
	box-shadow: var(--pyc-shadow);
	transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease, background-color .25s ease;
}
.pyc-glass-card:hover {
	border-color: var(--pyc-border-hover);
	box-shadow: var(--pyc-shadow-lg);
}

/* Dark sweep: Clean up parent theme styles */
[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]),
[data-theme="dark"] textarea,
[data-theme="dark"] select {
	background-color: var(--pyc-field) !important;
	color: var(--pyc-text) !important;
	border-color: var(--pyc-border) !important;
}
[data-theme="dark"] pre,
[data-theme="dark"] code,
[data-theme="dark"] kbd,
[data-theme="dark"] samp { background: var(--pyc-band); color: var(--pyc-text); }
[data-theme="dark"] table,
[data-theme="dark"] th,
[data-theme="dark"] td { background-color: transparent; color: var(--pyc-text); border-color: var(--pyc-border); }
[data-theme="dark"] .site,
[data-theme="dark"] #page,
[data-theme="dark"] .site-content,
[data-theme="dark"] .content-area,
[data-theme="dark"] .wp-site-blocks,
[data-theme="dark"] .pagelayer-content { background-color: var(--pyc-bg) !important; }

/* Sitewide Footer Reset (Light & Dark) */
footer.site-footer,
.site-footer,
#colophon,
footer,
.pyc-footer {
	background-color: var(--pyc-surface) !important;
	color: var(--pyc-text) !important;
	border-top-color: var(--pyc-border) !important;
}

[data-theme="dark"] footer.site-footer,
[data-theme="dark"] .site-footer,
[data-theme="dark"] #colophon,
[data-theme="dark"] footer,
[data-theme="dark"] .pyc-footer {
	background-color: var(--pyc-band) !important;
	color: var(--pyc-text) !important;
	border-top-color: var(--pyc-border) !important;
}
[data-theme="dark"] .screen-reader-text { background: none; }

/* ==========================================================================
   Global Header & Navigation
   ========================================================================== */
.pyc-header {
	position: sticky;
	top: 0;
	z-index: 990;
	background: var(--pyc-header-bg);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.pyc-header-in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: nowrap;
	gap: 1.5rem;
	height: 64px;
	transition: height .2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Logo */
.pyc-logo-container,
.pyc-logo,
.custom-logo-link {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	flex-shrink: 0;
	text-decoration: none;
}
.pyc-header-wordmark {
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--pyc-heading);
	line-height: 1;
	transition: font-size .2s cubic-bezier(0.4, 0, 0.2, 1), color .15s ease;
}
.pyc-logo-container img,
.custom-logo-link img,
.custom-logo,
.pyc-logo img {
	display: block;
	height: 32px;
	width: auto;
	max-height: 32px;
	max-width: 160px;
	border-radius: 0;
	object-fit: contain;
	transition: height .2s cubic-bezier(0.4, 0, 0.2, 1), width .2s cubic-bezier(0.4, 0, 0.2, 1), max-height .2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Navigation Links */
.pyc-nav {
	margin-inline: auto;
	flex-shrink: 0;
}
.pyc-menu-list {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: nowrap;
	white-space: nowrap;
	transition: gap .2s cubic-bezier(0.4, 0, 0.2, 1);
}
.pyc-menu-list a {
	color: var(--pyc-muted);
	text-decoration: none;
	font-weight: 500;
	font-size: 0.95rem;
	padding: 0.35rem 0.1rem;
	border-bottom: 2px solid transparent;
	display: inline-block;
	transition: color .15s ease, border-color .15s ease, font-size .2s ease;
}
.pyc-menu-list a:hover {
	color: var(--pyc-accent-text);
	border-color: var(--pyc-accent);
}

/* Grouped Explore Dropdown */
.pyc-nav-dropdown {
	position: relative;
}
.pyc-nav-more-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	color: var(--pyc-muted);
	font-family: inherit;
	font-weight: 500;
	font-size: 0.95rem;
	padding: 0.35rem 0.1rem;
	cursor: pointer;
	transition: color .15s ease, border-color .15s ease;
}
.pyc-nav-more-btn:hover,
.pyc-nav-dropdown.is-open .pyc-nav-more-btn {
	color: var(--pyc-accent-text);
	border-color: var(--pyc-accent);
}
.pyc-nav-more-btn svg {
	transition: transform .2s ease;
}
.pyc-nav-dropdown.is-open .pyc-nav-more-btn svg,
.pyc-nav-dropdown:hover .pyc-nav-more-btn svg {
	transform: rotate(180deg);
}
.pyc-dropdown-menu {
	position: absolute;
	top: calc(100% + 0.5rem);
	right: 0;
	min-width: 230px;
	background: var(--pyc-card);
	border: 1px solid var(--pyc-border);
	border-radius: 12px;
	box-shadow: var(--pyc-shadow-lg);
	padding: 0.5rem;
	list-style: none;
	margin: 0;
	display: none;
	flex-direction: column;
	gap: 0.15rem;
	z-index: 1000;
}
.pyc-nav-dropdown:hover .pyc-dropdown-menu,
.pyc-nav-dropdown:focus-within .pyc-dropdown-menu,
.pyc-nav-dropdown.is-open .pyc-dropdown-menu {
	display: flex;
}
.pyc-dropdown-menu a {
	display: block;
	padding: 0.55rem 0.85rem;
	border-radius: 8px;
	border-bottom: none !important;
	font-size: 0.88rem;
	color: var(--pyc-text);
	white-space: nowrap;
}
.pyc-dropdown-menu a:hover {
	background: var(--pyc-surface-hover);
	color: var(--pyc-accent-text);
}
.pyc-nav-mobile .pyc-nav-more-btn {
	display: none;
}
.pyc-nav-mobile .pyc-dropdown-menu {
	position: static;
	display: flex;
	background: none;
	border: none;
	box-shadow: none;
	padding: 0;
}

/* Header Actions (Theme toggle, CTA, Burger) */
.pyc-header-actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-shrink: 0;
	flex-wrap: nowrap;
	white-space: nowrap;
}

.pyc-header-actions .pyc-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	height: 38px;
	padding: 0 1.15rem;
	font-size: 0.88rem;
	border-radius: 9px;
	line-height: 1;
	transition: height .2s cubic-bezier(0.4, 0, 0.2, 1), min-height .2s cubic-bezier(0.4, 0, 0.2, 1), padding .2s cubic-bezier(0.4, 0, 0.2, 1), font-size .2s cubic-bezier(0.4, 0, 0.2, 1), border-radius .2s ease;
}

.pyc-header .pyc-theme-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	background: var(--pyc-surface);
	border: 1px solid var(--pyc-border);
	color: var(--pyc-muted);
	border-radius: 999px;
	min-height: 34px;
	height: 34px;
	padding: 0 0.75rem;
	font-size: 0.8rem;
	cursor: pointer;
	line-height: 1;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, height .2s cubic-bezier(0.4, 0, 0.2, 1), min-height .2s cubic-bezier(0.4, 0, 0.2, 1), font-size .2s cubic-bezier(0.4, 0, 0.2, 1);
}
.pyc-header .pyc-theme-toggle:focus-visible {
	outline: 2px solid var(--pyc-accent);
	outline-offset: 2px;
}
.pyc-ti { width: 15px; height: 15px; stroke: var(--pyc-heading); }
.pyc-ti-moon { display: inline; }
.pyc-ti-sun { display: none; }
[data-theme="dark"] .pyc-ti-moon { display: none; }
[data-theme="dark"] .pyc-ti-sun { display: inline; }

/* Mobile Burger Menu */
.pyc-burger {
	display: none;
	flex-direction: column;
	gap: 4px;
	background: none;
	border: 0;
	padding: .5rem;
	cursor: pointer;
	min-height: 44px;
	min-width: 44px;
	align-items: center;
	justify-content: center;
}
.pyc-burger span {
	width: 20px;
	height: 2px;
	background: var(--pyc-text);
	transition: transform .2s ease, opacity .2s ease;
}
.pyc-burger.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.pyc-burger.is-open span:nth-child(2) { opacity: 0; }
.pyc-burger.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.pyc-nav-mobile {
	background: var(--pyc-card);
	border-top: 1px solid var(--pyc-border);
}
.pyc-nav-mobile .pyc-menu-list {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	padding: .5rem 0;
}
.pyc-nav-mobile a {
	display: block;
	padding: .85rem clamp(1rem, 4vw, 2.5rem);
	color: var(--pyc-text);
	text-decoration: none;
}
.pyc-nav-mobile a:hover {
	background: var(--pyc-surface);
	color: var(--pyc-accent-text);
}

@media(max-width: 880px) {
	.pyc-nav,
	.pyc-header-actions .pyc-cta {
		display: none;
	}
	.pyc-burger {
		display: flex;
	}
}

/* ==========================================================================
   Compact Scrolled Header State (Strict Space Reduction)
   ========================================================================== */
.pyc-header.pyc-scrolled {
	border-bottom-color: var(--pyc-border);
	box-shadow: var(--pyc-shadow);
}

.pyc-header.pyc-scrolled .pyc-header-in {
	height: 46px;
}

.pyc-header.pyc-scrolled .pyc-logo-container img,
.pyc-header.pyc-scrolled .custom-logo-link img,
.pyc-header.pyc-scrolled .custom-logo,
.pyc-header.pyc-scrolled .pyc-logo img {
	height: 24px;
	width: auto;
	max-height: 24px;
}

.pyc-header.pyc-scrolled .pyc-header-wordmark {
	font-size: 1.05rem;
}

.pyc-header.pyc-scrolled .pyc-menu-list {
	gap: 1.15rem;
}

.pyc-header.pyc-scrolled .pyc-menu-list a {
	font-size: 0.88rem;
}

.pyc-header.pyc-scrolled .pyc-header-actions .pyc-cta {
	min-height: 30px;
	height: 30px;
	padding: 0 0.85rem;
	font-size: 0.8rem;
	border-radius: 6px;
}

.pyc-header.pyc-scrolled .pyc-header .pyc-theme-toggle {
	min-height: 28px;
	height: 28px;
	padding: 0 0.55rem;
	font-size: 0.74rem;
}

/* ==========================================================================
   WhatsApp Floating Action Button
   ========================================================================== */
.pyc-fab {
	position: fixed;
	bottom: 1.25rem;
	right: 1.25rem;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #25d366;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pyc-fab:hover {
	transform: scale(1.08);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.pyc-fab:focus-visible {
	outline: 2px solid var(--pyc-accent, #8b5cf6);
	outline-offset: 3px;
}

.pyc-fab svg {
	display: block;
}

@media (max-width: 600px) {
	.pyc-fab {
		width: 52px;
		height: 52px;
		bottom: 1rem;
		right: 1rem;
	}
}

/* ==========================================================================
   Print (PDF company profile, print-to-PDF exports)
   ========================================================================== */
@media print {
	/* Scroll-reveal starts at opacity 0 and only shows on scroll; print
	   has no scroll, so force everything visible. */
	.pyc-reveal,
	.pyc-reveal.pyc-in {
		opacity: 1 !important;
		transform: none !important;
	}
	/* Interactive/chrome elements that make no sense on paper. */
	.pyc-fab,
	.pyc-back-to-top,
	.pyc-burger,
	.pyc-theme-toggle,
	.pyc-nav-mobile,
	.pyc-terminal-tabs,
	.pyc-term-tab {
		display: none !important;
	}
	/* Keep cards together and tighten vertical rhythm for paper. */
	.pyc-glass-card,
	.pyc-bento-card,
	.pyc-step-card,
	.pyc-case-card,
	.pyc-tech-category,
	.pyc-founder-card {
		break-inside: avoid;
	}
	.pyc-section {
		padding-block: 1.25rem;
	}
	.pyc-header {
		position: static;
	}
	a {
		text-decoration: none;
	}
}

/* ---- Pagelayer typography guard (light-mode readability) ----
   Pagelayer prints the legacy parent-theme typography as an inline
   body.pagelayer-body block (white h1/h2/h5/h6/p). Its specificity beats
   our token classes, forcing white text in light mode. These re-assertions
   double the body class so they win regardless of stylesheet order.
   Dark-mode rendering is unchanged. */
body.pagelayer-body.pagelayer-body h1.pyc-h1 { color: var(--pyc-text); }
body.pagelayer-body.pagelayer-body .pyc-operating-code-page h1.pyc-h1 { color: var(--pyc-heading); }
body.pagelayer-body.pagelayer-body h2.pyc-h2 { color: var(--pyc-heading); }
body.pagelayer-body.pagelayer-body p.pyc-sub,
body.pagelayer-body.pagelayer-body p.pyc-sub-header,
body.pagelayer-body.pagelayer-body p.pyc-footer-bio,
body.pagelayer-body.pagelayer-body p.pyc-bento-desc,
body.pagelayer-body.pagelayer-body p.pyc-case-desc,
body.pagelayer-body.pagelayer-body p.pyc-signal-text,
body.pagelayer-body.pagelayer-body p.pyc-kicker { color: var(--pyc-muted); }
body.pagelayer-body.pagelayer-body .pyc-prose h1,
body.pagelayer-body.pagelayer-body .pyc-prose h2 { color: var(--pyc-heading); }
body.pagelayer-body.pagelayer-body .pyc-prose p { color: var(--pyc-text); }
