
/*
 * Pila Pasák public-site color system.
 * Designed to coexist with the current custom theme, WooCommerce,
 * the homepage banner slider, and the photo-gallery plugin.
 */

body.ppc-brand-colors-enabled {
	--ppc-green: #3f7d46;
	--ppc-green-dark: #285b32;
	--ppc-green-deep: #183f24;
	--ppc-green-hover: #346b3d;
	--ppc-sage: #e8f0ed;
	--ppc-sage-strong: #d7e7dc;
	--ppc-cream: #f7f7f1;
	--ppc-gold: #f2b134;
	--ppc-gold-dark: #d69516;
	--ppc-ink: #1c2920;
	--ppc-copy: #425047;
	--ppc-border: #cfdbd2;
	--ppc-white: #ffffff;
	--ppc-shadow: 0 12px 34px rgba(24, 63, 36, .12);
	background: var(--ppc-cream);
	color: var(--ppc-copy);
}

/* Keep banners, sliders and supplied media visually unchanged. */
body.ppc-brand-colors-enabled :is(
	.pp-home-slider,
	.pp-home-hero-slider,
	.ppg-gallery-section,
	.rev_slider,
	.rev_slider_wrapper,
	.smart-slider,
	.n2-ss-slider,
	.elementor-widget-slides,
	.elementor-widget-image-carousel,
	.swiper,
	.slick-slider
) img {
	filter: none !important;
	opacity: 1 !important;
}

/* Header and navigation */
body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) {
	background: var(--ppc-green) !important;
	color: var(--ppc-white) !important;
	border-color: rgba(255,255,255,.16) !important;
	box-shadow: 0 7px 22px rgba(24,63,36,.16) !important;
}

body.ppc-brand-colors-enabled :is(
	.top-bar,
	.header-top,
	.top-header,
	.site-header-top,
	.pp-topbar,
	.pila-topbar
) {
	background: var(--ppc-green-dark) !important;
	color: var(--ppc-white) !important;
	border-color: rgba(255,255,255,.13) !important;
}

body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) :is(a, span, p, li, i, svg) {
	color: var(--ppc-white);
}

body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) svg {
	fill: currentColor;
	stroke: currentColor;
}

body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) :is(.current-menu-item, .current_page_item, .current-menu-ancestor) > a,
body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) nav > ul > li > a:hover,
body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) nav > ul > li > a:focus-visible {
	color: var(--ppc-gold) !important;
}

/* Logo remains fully visible on green. */
body.ppc-brand-colors-enabled :is(
	.site-branding,
	.logo,
	.custom-logo-link,
	.header-logo,
	.pp-logo
) {
	position: relative;
	z-index: 2;
}

body.ppc-brand-colors-enabled :is(
	.site-branding,
	.logo,
	.header-logo,
	.pp-logo
) img {
	max-height: 82px;
	filter: none !important;
	opacity: 1 !important;
}

/* Dropdowns remain light so every item is readable. */
body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) :is(
	.sub-menu,
	.dropdown-menu,
	.children,
	.mega-menu,
	.woocommerce-mini-cart
) {
	background: var(--ppc-white) !important;
	border-color: var(--ppc-border) !important;
	box-shadow: var(--ppc-shadow) !important;
}

body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) :is(
	.sub-menu,
	.dropdown-menu,
	.children,
	.mega-menu,
	.woocommerce-mini-cart
) :is(a, span, p, li, strong, b) {
	color: var(--ppc-ink) !important;
}

body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) :is(
	.sub-menu,
	.dropdown-menu,
	.children,
	.mega-menu
) a:hover {
	background: var(--ppc-sage) !important;
	color: var(--ppc-green-dark) !important;
}

/* Mobile navigation */
body.ppc-brand-colors-enabled :is(
	.mobile-menu,
	.mobile-nav,
	.mobile-navigation,
	.offcanvas-menu,
	.off-canvas-menu,
	.drawer-menu,
	.menu-drawer,
	#mobile-menu,
	#site-navigation.toggled
) {
	background: var(--ppc-green-deep) !important;
	color: var(--ppc-white) !important;
}

body.ppc-brand-colors-enabled :is(
	.mobile-menu,
	.mobile-nav,
	.mobile-navigation,
	.offcanvas-menu,
	.off-canvas-menu,
	.drawer-menu,
	.menu-drawer,
	#mobile-menu,
	#site-navigation.toggled
) :is(a, span, p, li, button) {
	color: var(--ppc-white) !important;
	border-color: rgba(255,255,255,.17) !important;
}

body.ppc-brand-colors-enabled :is(
	.menu-toggle,
	.mobile-menu-toggle,
	.navbar-toggler,
	.hamburger,
	.header-menu-toggle
) {
	background: var(--ppc-gold) !important;
	color: var(--ppc-green-deep) !important;
	border-color: var(--ppc-gold) !important;
}

/* Buttons and calls to action */
body.ppc-brand-colors-enabled :is(
	button,
	.button,
	.wp-element-button,
	.wp-block-button__link,
	input[type="submit"],
	input[type="button"],
	.elementor-button,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.request-quote-button,
	.pp-button,
	.pp-cta
):not(.ppg-arrow):not(.ppg-photo-button):not(.ppg-lightbox-close):not(.ppg-lightbox-arrow) {
	background: var(--ppc-green) !important;
	color: var(--ppc-white) !important;
	border-color: var(--ppc-green) !important;
	text-shadow: none !important;
	box-shadow: none;
}

body.ppc-brand-colors-enabled :is(
	button,
	.button,
	.wp-element-button,
	.wp-block-button__link,
	input[type="submit"],
	input[type="button"],
	.elementor-button,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.request-quote-button,
	.pp-button,
	.pp-cta
):not(.ppg-arrow):not(.ppg-photo-button):not(.ppg-lightbox-close):not(.ppg-lightbox-arrow):hover,
body.ppc-brand-colors-enabled :is(
	button,
	.button,
	.wp-element-button,
	.wp-block-button__link,
	input[type="submit"],
	input[type="button"],
	.elementor-button,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.request-quote-button,
	.pp-button,
	.pp-cta
):not(.ppg-arrow):not(.ppg-photo-button):not(.ppg-lightbox-close):not(.ppg-lightbox-arrow):focus-visible {
	background: var(--ppc-green-dark) !important;
	color: var(--ppc-white) !important;
	border-color: var(--ppc-green-dark) !important;
}

/* Header CTA uses gold, like the reference accent. */
body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) :is(
	.button,
	.wp-element-button,
	.elementor-button,
	.request-quote-button,
	.header-cta,
	.pp-header-cta
) {
	background: var(--ppc-gold) !important;
	color: var(--ppc-green-deep) !important;
	border-color: var(--ppc-gold) !important;
	font-weight: 800 !important;
}

body.ppc-brand-colors-enabled :is(
	.site-header,
	#masthead,
	.main-header,
	.header-wrapper,
	.header-main,
	.header-container,
	.pila-header,
	.pp-site-header,
	header.header
) :is(
	.button,
	.wp-element-button,
	.elementor-button,
	.request-quote-button,
	.header-cta,
	.pp-header-cta
):hover {
	background: var(--ppc-white) !important;
	color: var(--ppc-green-dark) !important;
	border-color: var(--ppc-white) !important;
}

/* Section color treatments added safely by JavaScript. */
body.ppc-brand-colors-enabled .ppc-section-white {
	background: var(--ppc-white) !important;
	color: var(--ppc-copy) !important;
}

body.ppc-brand-colors-enabled .ppc-section-sage {
	background: var(--ppc-sage) !important;
	color: var(--ppc-copy) !important;
}

body.ppc-brand-colors-enabled .ppc-section-green {
	background: var(--ppc-green) !important;
	color: var(--ppc-white) !important;
}

body.ppc-brand-colors-enabled .ppc-section-cream {
	background: var(--ppc-cream) !important;
	color: var(--ppc-copy) !important;
}

/* Visibility protection for normal/light sections. */
body.ppc-brand-colors-enabled :is(
	.ppc-section-white,
	.ppc-section-sage,
	.ppc-section-cream,
	main,
	.site-main,
	#primary,
	.content-area,
	.entry-content
) :is(h1, h2, h3, h4, h5, h6) {
	color: var(--ppc-ink);
}

body.ppc-brand-colors-enabled :is(
	.ppc-section-white,
	.ppc-section-sage,
	.ppc-section-cream
) :is(p, li, dd, dt, address, blockquote, label, small, strong, b) {
	color: var(--ppc-copy);
}

body.ppc-brand-colors-enabled :is(
	.ppc-section-white,
	.ppc-section-sage,
	.ppc-section-cream
) a:not(.button):not(.wp-element-button):not(.elementor-button) {
	color: var(--ppc-green-dark);
	text-decoration-color: rgba(40,91,50,.35);
}

body.ppc-brand-colors-enabled .ppc-section-green :is(
	h1, h2, h3, h4, h5, h6, p, li, dd, dt, address, blockquote, label, small, strong, b, a
) {
	color: var(--ppc-white) !important;
}

body.ppc-brand-colors-enabled .ppc-section-green a:not(.button):not(.wp-element-button):not(.elementor-button) {
	text-decoration-color: rgba(255,255,255,.55) !important;
}

body.ppc-brand-colors-enabled .ppc-section-green :is(.button, .wp-element-button, .elementor-button) {
	background: var(--ppc-gold) !important;
	color: var(--ppc-green-deep) !important;
	border-color: var(--ppc-gold) !important;
}

/* Heading accents inspired by the reference site's section labels. */
body.ppc-brand-colors-enabled :is(
	.ppc-section-white,
	.ppc-section-sage,
	.ppc-section-cream
) :is(h2, h3) {
	position: relative;
}

body.ppc-brand-colors-enabled :is(
	.ppc-section-white,
	.ppc-section-sage,
	.ppc-section-cream
) h2::after {
	content: "";
	display: block;
	width: 58px;
	height: 4px;
	margin-top: 13px;
	border-radius: 999px;
	background: var(--ppc-gold);
}

/* Cards and repeated content blocks */
body.ppc-brand-colors-enabled :is(
	.card,
	.product-card,
	.category-card,
	.service-card,
	.feature-card,
	.info-card,
	.pp-card,
	.woocommerce ul.products li.product,
	.woocommerce-page ul.products li.product
) {
	background: var(--ppc-white) !important;
	color: var(--ppc-copy) !important;
	border: 1px solid var(--ppc-border) !important;
	box-shadow: 0 8px 26px rgba(24,63,36,.08) !important;
}

body.ppc-brand-colors-enabled :is(
	.card,
	.product-card,
	.category-card,
	.service-card,
	.feature-card,
	.info-card,
	.pp-card,
	.woocommerce ul.products li.product,
	.woocommerce-page ul.products li.product
) :is(h2, h3, h4, p, li, span:not(.onsale):not(.stock), strong, b) {
	color: var(--ppc-ink) !important;
}

body.ppc-brand-colors-enabled :is(
	.card,
	.product-card,
	.category-card,
	.service-card,
	.feature-card,
	.info-card,
	.pp-card,
	.woocommerce ul.products li.product,
	.woocommerce-page ul.products li.product
) a:not(.button) {
	color: var(--ppc-green-dark) !important;
}

/* WooCommerce shop and product pages */
body.ppc-brand-colors-enabled.woocommerce :is(
	.woocommerce-breadcrumb,
	.woocommerce-result-count,
	.woocommerce-ordering,
	.woocommerce-products-header,
	div.product,
	.woocommerce-tabs,
	.related.products,
	.up-sells
),
body.ppc-brand-colors-enabled.woocommerce-page :is(
	.woocommerce-breadcrumb,
	.woocommerce-result-count,
	.woocommerce-ordering,
	.woocommerce-products-header,
	div.product,
	.woocommerce-tabs,
	.related.products,
	.up-sells
) {
	color: var(--ppc-copy);
}

body.ppc-brand-colors-enabled.woocommerce div.product :is(
	.product_title,
	.woocommerce-loop-product__title,
	.woocommerce-Tabs-panel h2,
	.related.products h2,
	.up-sells h2
) {
	color: var(--ppc-ink) !important;
}

body.ppc-brand-colors-enabled.woocommerce :is(
	.price,
	.amount,
	.stock,
	.woocommerce-Price-amount
) {
	color: var(--ppc-green-dark) !important;
}

body.ppc-brand-colors-enabled.woocommerce span.onsale {
	background: var(--ppc-gold) !important;
	color: var(--ppc-green-deep) !important;
}

body.ppc-brand-colors-enabled.woocommerce :is(
	table.shop_attributes,
	table.variations,
	table.shop_table,
	.woocommerce-product-attributes
) {
	background: var(--ppc-white);
	border-color: var(--ppc-border);
	color: var(--ppc-copy);
}

body.ppc-brand-colors-enabled.woocommerce :is(
	table.shop_attributes,
	table.variations,
	table.shop_table,
	.woocommerce-product-attributes
) :is(th, td, tr, tbody, thead) {
	color: var(--ppc-copy) !important;
	border-color: var(--ppc-border) !important;
}

body.ppc-brand-colors-enabled.woocommerce :is(
	.woocommerce-message,
	.woocommerce-info
) {
	background: var(--ppc-sage) !important;
	color: var(--ppc-ink) !important;
	border-top-color: var(--ppc-green) !important;
}

body.ppc-brand-colors-enabled.woocommerce .woocommerce-error {
	background: #fff3f2 !important;
	color: #7b2e26 !important;
	border-top-color: #b8483d !important;
}

/* Pagination and filters */
body.ppc-brand-colors-enabled :is(
	.woocommerce-pagination,
	.pagination,
	.nav-links,
	.page-numbers
) a,
body.ppc-brand-colors-enabled :is(
	.woocommerce-pagination,
	.pagination,
	.nav-links
) span.page-numbers {
	background: var(--ppc-white) !important;
	color: var(--ppc-green-dark) !important;
	border-color: var(--ppc-border) !important;
}

body.ppc-brand-colors-enabled :is(
	.woocommerce-pagination,
	.pagination,
	.nav-links
) :is(.current, a:hover) {
	background: var(--ppc-green) !important;
	color: var(--ppc-white) !important;
	border-color: var(--ppc-green) !important;
}

/* Forms */
body.ppc-brand-colors-enabled :is(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="search"],
	input[type="url"],
	input[type="password"],
	select,
	textarea
) {
	background: var(--ppc-white) !important;
	color: var(--ppc-ink) !important;
	border-color: #b9c9bd !important;
}

body.ppc-brand-colors-enabled :is(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="search"],
	input[type="url"],
	input[type="password"],
	select,
	textarea
)::placeholder {
	color: #6f7c73 !important;
	opacity: 1 !important;
}

body.ppc-brand-colors-enabled :is(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="search"],
	input[type="url"],
	input[type="password"],
	select,
	textarea
):focus {
	border-color: var(--ppc-green) !important;
	box-shadow: 0 0 0 3px rgba(63,125,70,.16) !important;
	outline: none !important;
}

/* Photo gallery uses the same reference green. */
body.ppc-brand-colors-enabled .ppg-gallery-section {
	background: var(--ppc-sage) !important;
}

body.ppc-brand-colors-enabled .ppg-gallery-panel {
	background: var(--ppc-green) !important;
}

body.ppc-brand-colors-enabled .ppg-camera-icon {
	background: var(--ppc-gold) !important;
}

body.ppc-brand-colors-enabled .ppg-arrow:hover,
body.ppc-brand-colors-enabled .ppg-arrow:focus-visible {
	background: var(--ppc-gold) !important;
	color: var(--ppc-green-deep) !important;
}

/* Footer */
body.ppc-brand-colors-enabled :is(
	.site-footer,
	#colophon,
	.main-footer,
	.footer-wrapper,
	.footer-main,
	.pila-footer,
	.pp-site-footer,
	footer.footer
) {
	background: var(--ppc-green-deep) !important;
	color: var(--ppc-white) !important;
	border-color: rgba(255,255,255,.12) !important;
}

body.ppc-brand-colors-enabled :is(
	.site-footer,
	#colophon,
	.main-footer,
	.footer-wrapper,
	.footer-main,
	.pila-footer,
	.pp-site-footer,
	footer.footer
) :is(h1, h2, h3, h4, h5, h6, p, li, address, label, span, strong, b) {
	color: var(--ppc-white) !important;
}

body.ppc-brand-colors-enabled :is(
	.site-footer,
	#colophon,
	.main-footer,
	.footer-wrapper,
	.footer-main,
	.pila-footer,
	.pp-site-footer,
	footer.footer
) a {
	color: #eef7f0 !important;
}

body.ppc-brand-colors-enabled :is(
	.site-footer,
	#colophon,
	.main-footer,
	.footer-wrapper,
	.footer-main,
	.pila-footer,
	.pp-site-footer,
	footer.footer
) a:hover,
body.ppc-brand-colors-enabled :is(
	.site-footer,
	#colophon,
	.main-footer,
	.footer-wrapper,
	.footer-main,
	.pila-footer,
	.pp-site-footer,
	footer.footer
) a:focus-visible {
	color: var(--ppc-gold) !important;
}

/* Accessibility and absolute visibility safeguards */
body.ppc-brand-colors-enabled main :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, b) {
	visibility: visible;
	opacity: 1;
}

body.ppc-brand-colors-enabled a:focus-visible,
body.ppc-brand-colors-enabled button:focus-visible,
body.ppc-brand-colors-enabled input:focus-visible,
body.ppc-brand-colors-enabled select:focus-visible,
body.ppc-brand-colors-enabled textarea:focus-visible {
	outline: 3px solid var(--ppc-gold) !important;
	outline-offset: 3px !important;
}

/* Prevent old theme overlays from making content unreadable. */
body.ppc-brand-colors-enabled .ppc-colorized-section::before,
body.ppc-brand-colors-enabled .ppc-colorized-section::after {
	pointer-events: none;
}

body.ppc-brand-colors-enabled .ppc-colorized-section > * {
	position: relative;
	z-index: 1;
}

/* Responsive refinements */
@media (max-width: 1024px) {
	body.ppc-brand-colors-enabled :is(
		.site-header,
		#masthead,
		.main-header,
		.header-wrapper,
		.header-main,
		.header-container,
		.pila-header,
		.pp-site-header,
		header.header
	) {
		background: var(--ppc-green) !important;
	}

	body.ppc-brand-colors-enabled .ppc-colorized-section {
		background-attachment: scroll !important;
	}
}

@media (max-width: 767px) {
	body.ppc-brand-colors-enabled :is(
		.ppc-section-white,
		.ppc-section-sage,
		.ppc-section-green,
		.ppc-section-cream
	) {
		background-image: none !important;
	}

	body.ppc-brand-colors-enabled :is(
		.ppc-section-white,
		.ppc-section-sage,
		.ppc-section-green,
		.ppc-section-cream
	) :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, b) {
		max-width: 100% !important;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	body.ppc-brand-colors-enabled :is(
		.site-header,
		#masthead,
		.main-header,
		.header-wrapper,
		.header-main,
		.header-container,
		.pila-header,
		.pp-site-header,
		header.header
	) :is(.sub-menu, .dropdown-menu, .children) {
		background: var(--ppc-green-dark) !important;
		box-shadow: none !important;
	}

	body.ppc-brand-colors-enabled :is(
		.site-header,
		#masthead,
		.main-header,
		.header-wrapper,
		.header-main,
		.header-container,
		.pila-header,
		.pp-site-header,
		header.header
	) :is(.sub-menu, .dropdown-menu, .children) :is(a, span, p, li) {
		color: var(--ppc-white) !important;
	}
}
