/* PCS Site Essentials: brand layer on top of Astra + Elementor. Tokens mirror the "Platinum Drop" design. */
:root {
	--pcs-ink: #141647;
	--pcs-body: #434866;
	--pcs-accent: #1478B0;
	--pcs-accent-hover: #0F5F8E;
	--pcs-highlight: #3FB4E6;
	--pcs-surface: #F1F5F9;
	--pcs-mist: #E6EEF6;
	--pcs-platinum: #C9CFD8;
	--pcs-deep: #0E1036;
	--pcs-h: 'Lexend', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--pcs-b: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

body { color: var(--pcs-body); -webkit-font-smoothing: antialiased; }
::selection { background: var(--pcs-accent); color: #fff; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
	outline: 3px solid var(--pcs-highlight); outline-offset: 2px;
}

/* ---------- Header */
.site-header { position: sticky; top: 0; z-index: 999; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-header .main-header-bar { box-shadow: 0 1px 0 var(--pcs-mist); }

.pcs-header-phone {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--pcs-h); font-weight: 600; font-size: 16px; color: var(--pcs-ink) !important;
	text-decoration: none; white-space: nowrap; margin-right: 6px;
}
.pcs-header-phone::before {
	content: ''; width: 34px; height: 34px; border-radius: 8px; background: var(--pcs-mist) center / 18px no-repeat
	url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231478B0' d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.3 2.2z'/%3E%3C/svg%3E");
}
.pcs-header-phone:hover { color: var(--pcs-accent) !important; }
@media (max-width: 1340px) and (min-width: 1001px) { .pcs-header-phone .pcs-phone-num { display: none; } }
.ast-header-button-1 .ast-custom-button { white-space: nowrap; }
.ast-builder-menu-1 .menu-item-depth-0 > .menu-link { white-space: nowrap; }
/* Small laptops: the header has four long top-level labels, so tighten it to keep one line. */
@media (max-width: 1200px) and (min-width: 1001px) {
	.pcs-header-phone { display: none !important; }
	.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link { font-size: 13px !important; padding-left: 5px !important; padding-right: 5px !important; }
	.site-header .custom-logo-link img, .ast-primary-header-bar .custom-logo-link img { max-width: 165px !important; }
	.ast-header-button-1 .ast-custom-button { font-size: 14px !important; padding-left: 18px !important; padding-right: 18px !important; }
}
@media (max-width: 1000px) {
	.pcs-header-phone .pcs-phone-num { display: none; }
	.pcs-header-phone { margin-right: 0; }
	.pcs-header-phone::before { width: 40px; height: 40px; }
}
.ast-builder-menu-1 .sub-menu { border-radius: 0 0 8px 8px; box-shadow: 0 18px 40px rgba(14, 16, 54, .12); }
.ast-builder-menu-1 .sub-menu .menu-link { font-size: 15px; padding-top: .7em; padding-bottom: .7em; }
.ast-header-button-1 .ast-custom-button { letter-spacing: 0; }
.ast-mobile-popup-content .ast-header-button-1, .ast-mobile-header-content .ast-header-button-1 { padding: 16px 20px 24px; }
.ast-mobile-header-content .ast-builder-button-wrap, .ast-mobile-header-content .ast-custom-button-link { width: 100%; }
.ast-mobile-header-content .ast-custom-button { width: 100%; text-align: center; }

/* ---------- Elementor helpers */
.pcs-card-link { transition: transform .25s ease, box-shadow .25s ease; text-decoration: none !important; }
.pcs-card-link:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(14, 16, 54, .22); }
.pcs-card-link:hover p:last-child { text-decoration: underline; text-underline-offset: 4px; }
.pcs-text-link { text-decoration: none !important; transition: border-color .2s ease; }
.pcs-text-link:hover { border-color: var(--pcs-accent) !important; }
.pcs-text-link:hover .elementor-heading-title { color: var(--pcs-accent) !important; }
.pcs-area-card { transition: box-shadow .2s ease, border-color .2s ease; }
.pcs-area-card:hover { box-shadow: 0 14px 32px rgba(14, 16, 54, .10); }
.elementor-widget-text-editor a { color: var(--pcs-accent); text-underline-offset: 3px; }
.pcs-hero .elementor-widget-text-editor a { color: #fff; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-accordion .elementor-accordion-item { border-width: 0 0 1px !important; }
.elementor-accordion .elementor-accordion-item:first-child { border-top-width: 1px !important; }
.elementor-accordion .elementor-tab-title { cursor: pointer; }
.elementor-icon-list-item a { text-decoration: none; }

/* ---------- Forms (WPForms) */
.pcs-form-card .wpforms-container, .wpforms-container.pcs-form {
	--wpforms-field-border-radius: 8px;
	--wpforms-field-border-color: var(--pcs-platinum);
	--wpforms-field-text-color: var(--pcs-ink);
	--wpforms-label-color: var(--pcs-ink);
	--wpforms-button-background-color: var(--pcs-accent);
	--wpforms-button-border-radius: 8px;
	--wpforms-page-break-color: var(--pcs-accent);
	margin: 8px 0 0 !important;
}
.pcs-form-card .wpforms-form .wpforms-field { padding: 7px 0 !important; }
.pcs-form-card .wpforms-form .wpforms-field-label {
	font-family: var(--pcs-h) !important; font-weight: 600 !important; font-size: 14px !important;
	color: var(--pcs-ink) !important; margin: 0 0 6px !important;
}
.pcs-form-card .wpforms-form .wpforms-required-label { color: var(--pcs-accent) !important; }
.pcs-form-card .wpforms-form input[type=text], .pcs-form-card .wpforms-form input[type=email],
.pcs-form-card .wpforms-form select, .pcs-form-card .wpforms-form textarea {
	width: 100% !important; max-width: 100% !important;
	font-family: var(--pcs-b) !important; font-size: 16px !important; color: var(--pcs-ink) !important;
	background: #fff !important; border: 1px solid var(--pcs-platinum) !important; border-radius: 8px !important;
	padding: 12px 14px !important; box-shadow: none !important; transition: border-color .15s ease, box-shadow .15s ease;
}
.pcs-form-card .wpforms-form input[type=text], .pcs-form-card .wpforms-form input[type=email], .pcs-form-card .wpforms-form select { height: 50px !important; }
.pcs-form-card .wpforms-form textarea { min-height: 120px !important; height: 120px !important; }
.pcs-form-card .wpforms-form input::placeholder, .pcs-form-card .wpforms-form textarea::placeholder { color: #7A809C !important; opacity: 1; }
.pcs-form-card .wpforms-form input:focus, .pcs-form-card .wpforms-form select:focus, .pcs-form-card .wpforms-form textarea:focus {
	border-color: var(--pcs-accent) !important; box-shadow: 0 0 0 3px rgba(20, 120, 176, .18) !important; outline: none !important;
}
.pcs-form-card .wpforms-form .wpforms-submit-container { padding: 12px 0 0 !important; margin: 0 !important; }
.pcs-form-card .wpforms-form button.wpforms-submit {
	width: 100% !important; height: auto !important; background: var(--pcs-accent) !important; color: #fff !important;
	font-family: var(--pcs-h) !important; font-weight: 600 !important; font-size: 17px !important; line-height: 1.2 !important;
	padding: 17px 24px !important; border: 0 !important; border-radius: 8px !important; cursor: pointer; transition: background .15s ease;
}
.pcs-form-card .wpforms-form button.wpforms-submit:hover { background: var(--pcs-accent-hover) !important; }
.pcs-form-card .wpforms-form label.wpforms-error, .pcs-form-card .wpforms-form em.wpforms-error { color: #B42318 !important; font-size: 13px !important; }
.pcs-form-card .wpforms-form input.wpforms-error, .pcs-form-card .wpforms-form select.wpforms-error { border-color: #B42318 !important; }
.pcs-form-card .wpforms-confirmation-container-full { background: var(--pcs-surface) !important; border: 1px solid var(--pcs-mist) !important; color: var(--pcs-ink) !important; border-radius: 8px; }
@media (min-width: 768px) {
	.pcs-form-card #wpforms-66 .wpforms-field-container { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
	.pcs-form-card #wpforms-66 .wpforms-field-container > .wpforms-field { grid-column: 1 / -1; }
	.pcs-form-card #wpforms-66 .wpforms-field-container > .wpforms-field.pcs-half { grid-column: auto; }
}
.pcs-hero .pcs-form-card .wpforms-form .wpforms-field { padding: 6px 0 !important; }

/* ---------- Footer */
.site-footer { font-size: 15px; }
.site-footer .widget-title { font-family: var(--pcs-h); font-weight: 600; font-size: 17px; color: #fff; margin-bottom: 18px; }
.site-footer ul.pcs-footer-links, .site-footer ul.pcs-footer-contact { list-style: none; margin: 0; padding: 0; }
.site-footer ul.pcs-footer-links + .widget-title { margin-top: 26px; }
.site-footer ul.pcs-footer-links li, .site-footer ul.pcs-footer-contact li { margin: 0 0 10px; color: #C9D4E3; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
.pcs-footer-brand img { width: 220px; height: auto; margin-bottom: 16px; }
.pcs-footer-brand p { max-width: 340px; color: #C9D4E3; line-height: 1.65; }
.site-below-footer-wrap .ast-footer-copyright a { color: #C9D4E3; margin-left: 8px; }

/* ---------- Mobile action bar */
.pcs-mobile-bar { display: none; }
@media (max-width: 767px) {
	body { padding-bottom: 68px; }
	.pcs-mobile-bar {
		display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 8px;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
		padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, .97); box-shadow: 0 -6px 24px rgba(14, 16, 54, .14);
	}
	.pcs-mobile-bar a {
		display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px;
		border-radius: 8px; font-family: var(--pcs-h); font-weight: 600; font-size: 15px; text-decoration: none;
	}
	.pcs-mobile-bar .pcs-mb-call, .pcs-mobile-bar .pcs-mb-wa { background: var(--pcs-mist); color: var(--pcs-ink); }
	.pcs-mobile-bar .pcs-mb-quote { background: var(--pcs-accent); color: #fff; }
}

@media (prefers-reduced-motion: reduce) {
	.pcs-card-link, .pcs-text-link, .pcs-area-card { transition: none; }
	.pcs-card-link:hover { transform: none; }
}
