/*
Theme Name: ProspectPilot Sites
Theme URI: https://prospectpilot.local/theme
Author: ProspectPilot
Description: A single, flexible WordPress theme built to match the four ProspectPilot Website Factory industry designs (HVAC, Roofing, Dental, Plumbing) end-to-end — header, navigation, and footer included, not just page content. Pick the industry look in Appearance → Customize → Site Industry, or let it auto-detect from a page the Website Factory built. Built with core WordPress APIs only — no page-builder, no third-party framework, no bundled library of any kind.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.1
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: prospectpilot-sites
*/

/* ---------------------------------------------------------------
   Base reset + typography. Industry-specific colors, hero, cards,
   and form styles live in assets/css/{industry}.css and are
   enqueued conditionally by functions.php — this file only holds
   what's true regardless of which industry look is active.
   --------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.6;
	color: #1f2937;
	background: #ffffff;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; }

.pp-container {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 24px;
}

.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* Site header (shared structure across all industries; colors come
   from the industry stylesheet's CSS variables) */
.pp-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	border-bottom: 1px solid #e5e7eb;
}
.pp-site-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 24px;
	max-width: 1140px;
	margin: 0 auto;
	gap: 20px;
}
.pp-site-logo {
	font-weight: 800;
	font-size: 1.3rem;
	text-decoration: none;
	color: var(--pp-site-primary-dark, #111827);
	display: flex;
	align-items: center;
	gap: 10px;
}
.pp-site-logo img { max-height: 44px; width: auto; display: block; }

.pp-primary-nav ul {
	list-style: none;
	display: flex;
	gap: 28px;
	margin: 0;
	padding: 0;
}
.pp-primary-nav a {
	text-decoration: none;
	font-weight: 600;
	color: #374151;
}
.pp-primary-nav a:hover { color: var(--pp-site-primary, #0ea5e9); }

.pp-header-cta {
	display: flex;
	align-items: center;
	gap: 16px;
}
.pp-header-phone {
	font-weight: 700;
	text-decoration: none;
	color: var(--pp-site-primary-dark, #111827);
	white-space: nowrap;
}
.pp-header-btn {
	background: var(--pp-site-accent, #f97316);
	color: #fff;
	padding: 10px 20px;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.pp-menu-toggle {
	display: none;
	background: none;
	border: none;
	font-size: 1.6rem;
	cursor: pointer;
	color: #111827;
}

@media (max-width: 860px) {
	.pp-primary-nav { display: none; width: 100%; order: 3; }
	.pp-primary-nav.is-open { display: block; }
	.pp-primary-nav ul { flex-direction: column; gap: 4px; padding: 12px 0; }
	.pp-primary-nav a { display: block; padding: 10px 0; }
	.pp-site-header-inner { flex-wrap: wrap; }
	.pp-menu-toggle { display: block; }
	.pp-header-btn { padding: 8px 16px; font-size: 0.9rem; }
}

/* Site footer (shared structure) */
.pp-site-footer {
	background: var(--pp-site-ink, #0f172a);
	color: #e5e7eb;
	padding: 48px 24px 24px;
	margin-top: 64px;
}
.pp-footer-grid {
	max-width: 1140px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 32px;
	padding-bottom: 32px;
	border-bottom: 1px solid rgba(255,255,255,0.15);
}
@media (max-width: 700px) { .pp-footer-grid { grid-template-columns: 1fr; } }
.pp-footer-grid h4 { color: #fff; margin: 0 0 12px; font-size: 0.95rem; text-transform: uppercase; letter-spacing: 0.04em; }
.pp-footer-grid ul { list-style: none; margin: 0; padding: 0; }
.pp-footer-grid li { margin-bottom: 8px; }
.pp-footer-grid a { color: #cbd5e1; text-decoration: none; font-size: 0.92rem; }
.pp-footer-grid a:hover { color: #fff; }
.pp-footer-bottom {
	max-width: 1140px;
	margin: 0 auto;
	padding-top: 20px;
	font-size: 0.85rem;
	color: #94a3b8;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
}

/* Generic content wrapper for non-factory pages (blog, 404, search) */
.pp-generic-content {
	max-width: 760px;
	margin: 0 auto;
	padding: 64px 24px;
}
.pp-generic-content h1 { font-size: 2rem; margin-bottom: 24px; }
