/* =========================================================
   Panther Contracting — Brand System
   Yellow #E5D21C · Black #0E0E0E · White / Light Gray
   Display: Oswald (condensed, uppercase)
   Body: Barlow
   Signature: the logo's yellow "swoosh" as section divider,
   and triple claw-mark accents on eyebrows.
   ========================================================= */

:root {
	--pc-yellow: #e5d21c;
	--pc-yellow-dark: #c9b70e;
	--pc-black: #0e0e0e;
	--pc-charcoal: #1c1c1c;
	--pc-ink: #232323;
	--pc-gray: #6b6b6b;
	--pc-gray-light: #f4f5f4;
	--pc-line: #e4e4e0;
	--pc-white: #ffffff;
	--pc-display: "Oswald", "Arial Narrow", sans-serif;
	--pc-body: "Barlow", "Helvetica Neue", Arial, sans-serif;
	--pc-container: 1200px;
	--pc-radius: 4px;
}

/* ---------- Reset-ish ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--pc-body);
	font-size: 17px;
	line-height: 1.65;
	color: var(--pc-ink);
	background: var(--pc-white);
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4, h5 {
	font-family: var(--pc-display);
	text-transform: uppercase;
	letter-spacing: 0.01em;
	line-height: 1.12;
	margin: 0 0 0.5em;
	color: var(--pc-black);
}
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(0 0 0 0);
}
.skip-link:focus {
	position: fixed; top: 8px; left: 8px; z-index: 999;
	background: var(--pc-yellow); color: var(--pc-black);
	padding: 10px 16px; width: auto; height: auto; clip: auto;
	font-weight: 700;
}
:focus-visible { outline: 3px solid var(--pc-yellow); outline-offset: 2px; }

.pc-container {
	max-width: var(--pc-container);
	margin: 0 auto;
	padding: 0 24px;
}

/* ---------- Buttons ---------- */
.pc-btn {
	display: inline-block;
	font-family: var(--pc-display);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 15px;
	padding: 14px 28px;
	border-radius: var(--pc-radius);
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.pc-btn:hover { transform: translateY(-2px); }
.pc-btn-lg { padding: 17px 36px; font-size: 17px; }
.pc-btn-block { display: block; text-align: center; margin-bottom: 10px; }
.pc-btn-yellow { background: var(--pc-yellow); color: var(--pc-black); }
.pc-btn-yellow:hover { background: var(--pc-yellow-dark); }
.pc-btn-black { background: var(--pc-black); color: var(--pc-white); }
.pc-btn-black:hover { background: var(--pc-charcoal); }
.pc-btn-ghost { background: transparent; color: var(--pc-white); border-color: rgba(255,255,255,0.5); }
.pc-btn-ghost:hover { border-color: var(--pc-yellow); color: var(--pc-yellow); }
.pc-btn-outline-black { background: transparent; color: var(--pc-black); border-color: var(--pc-black); }
.pc-btn-outline-black:hover { background: var(--pc-black); color: var(--pc-white); }

/* ---------- Eyebrow + claw marks ---------- */
.pc-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--pc-display);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 13px;
	color: var(--pc-yellow-dark);
	margin-bottom: 14px;
}
.pc-eyebrow-dark { color: var(--pc-black); }
.pc-hero .pc-eyebrow, .pc-flat .pc-eyebrow, .pc-page-hero .pc-eyebrow { color: var(--pc-yellow); }
.pc-claws {
	display: inline-block;
	width: 22px; height: 14px;
	background:
		linear-gradient(var(--pc-yellow), var(--pc-yellow)) 0 0 / 4px 100%,
		linear-gradient(var(--pc-yellow), var(--pc-yellow)) 8px 0 / 4px 100%,
		linear-gradient(var(--pc-yellow), var(--pc-yellow)) 16px 0 / 4px 100%;
	background-repeat: no-repeat;
	transform: skewX(-20deg);
}

/* ---------- Topbar ---------- */
.pc-topbar {
	background: var(--pc-black);
	color: rgba(255,255,255,0.85);
	font-size: 13.5px;
}
.pc-topbar-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding-top: 8px;
	padding-bottom: 8px;
	flex-wrap: wrap;
}
.pc-topbar-left, .pc-topbar-right { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.pc-topbar a { text-decoration: none; }
.pc-topbar a:hover { color: var(--pc-yellow); }
.pc-topbar-emergency {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--pc-yellow);
	font-weight: 700;
}
.pc-pulse {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--pc-yellow);
	animation: pc-pulse 1.6s ease-out infinite;
}
@keyframes pc-pulse {
	0% { box-shadow: 0 0 0 0 rgba(229,210,28,0.6); }
	70% { box-shadow: 0 0 0 8px rgba(229,210,28,0); }
	100% { box-shadow: 0 0 0 0 rgba(229,210,28,0); }
}

/* ---------- Header ---------- */
.pc-header {
	background: var(--pc-black);
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12);
}
.pc-header.is-nav-open {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}
.pc-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-top: 4px;
	padding-bottom: 4px;
}
.pc-branding {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}
.pc-branding a,
.pc-branding .custom-logo-link {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}
.pc-branding img,
.pc-branding .custom-logo-link img,
.pc-logo-fallback img,
.custom-logo {
	max-height: 160px;
	height: auto;
	width: auto;
	max-width: min(450px, 47vw);
}
.pc-btn-call {
	font-size: 14px;
	letter-spacing: 0.04em;
	white-space: nowrap;
	padding: 14px 22px;
}
.pc-nav .pc-nav-list {
	display: flex;
	gap: 32px;
	list-style: none;
	margin: 0; padding: 0;
}
.pc-nav .pc-nav-list a {
	font-family: var(--pc-display);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 20px;
	text-decoration: none;
	color: var(--pc-white);
	padding: 4px 0;
	border-bottom: 3px solid transparent;
}
.pc-nav .pc-nav-list a:hover,
.pc-nav .pc-nav-list .current-menu-item > a { border-bottom-color: var(--pc-yellow); color: var(--pc-white); }
.pc-nav .pc-nav-list .sub-menu { display: none; }
.pc-header-cta { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.pc-nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 48px;
	height: 48px;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.28);
	padding: 0;
	cursor: pointer;
	border-radius: 8px;
	flex-shrink: 0;
}
.pc-nav-toggle:hover { background: rgba(255, 255, 255, 0.08); }
.pc-nav-toggle-bar {
	display: block;
	width: 24px;
	height: 3px;
	background: var(--pc-white);
	border-radius: 2px;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.pc-nav-toggle[aria-expanded="true"] .pc-nav-toggle-bar:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.pc-nav-toggle[aria-expanded="true"] .pc-nav-toggle-bar:nth-child(2) { opacity: 0; }
.pc-nav-toggle[aria-expanded="true"] .pc-nav-toggle-bar:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.pc-mobile-nav {
	padding: 0 24px 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	background: var(--pc-black);
}
.pc-mobile-nav[hidden] {
	display: none !important;
}
body.pc-nav-open {
	overflow: hidden;
}
.pc-mobile-nav-list { list-style: none; margin: 0 0 16px; padding: 0; }
.pc-mobile-nav ul,
.pc-mobile-nav .menu {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 0;
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	width: 100%;
}
.pc-mobile-nav li {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
}
.pc-mobile-nav-list a,
.pc-mobile-nav .menu a {
	display: block;
	width: 100%;
	padding: 14px 0;
	font-family: var(--pc-display);
	font-size: 16px;
	text-transform: uppercase;
	font-weight: 600;
	text-decoration: none;
	color: var(--pc-white);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	letter-spacing: 0.05em;
	white-space: normal;
}
.pc-mobile-nav-list a:hover,
.pc-mobile-nav .menu a:hover,
.pc-mobile-nav .current-menu-item > a {
	color: var(--pc-white);
	background: rgba(255, 255, 255, 0.08);
	padding-left: 8px;
	padding-right: 8px;
	margin-left: -8px;
	margin-right: -8px;
}
.pc-mobile-nav .sub-menu { list-style: none; padding-left: 16px; }

/* ---------- The Swoosh (signature) ---------- */
.pc-hero-swoosh, .pc-footer-swoosh {
	height: 46px;
	background: var(--pc-yellow);
	clip-path: polygon(0 55%, 8% 20%, 100% 62%, 100% 78%, 10% 60%, 0 92%);
}
.pc-footer-swoosh { transform: scaleX(-1); opacity: 0.95; }

/* ---------- Hero Slider ---------- */
.pc-hero-slider {
	position: relative;
	background: var(--pc-black);
	color: var(--pc-white);
	overflow: hidden;
	min-height: clamp(560px, 88vh, 920px);
}
.pc-slides {
	position: relative;
	min-height: inherit;
}
.pc-slide {
	position: absolute;
	inset: 0;
	background: center / cover no-repeat var(--pc-black);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.8s ease, visibility 0.8s ease;
	display: flex;
	align-items: center;
	min-height: inherit;
}
.pc-slide.is-active {
	position: relative;
	opacity: 1;
	visibility: visible;
	z-index: 1;
	min-height: inherit;
}
.pc-slide-overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(14,14,14,0.72) 0%, rgba(14,14,14,0.68) 50%, rgba(14,14,14,0.82) 100%);
	z-index: 0;
}
.pc-slide-inner {
	position: relative;
	z-index: 1;
	padding-top: clamp(72px, 12vh, 120px);
	padding-bottom: clamp(120px, 14vh, 160px);
	max-width: 880px;
	margin-left: auto; margin-right: auto;
	text-align: center;
	width: 100%;
}
.pc-hero-title {
	font-size: clamp(44px, 7vw, 84px);
	font-weight: 700;
	color: var(--pc-white);
	margin-bottom: 20px;
}
.pc-yellow-text { color: var(--pc-yellow); }
.pc-hero-sub {
	font-size: 19px;
	color: rgba(255,255,255,0.82);
	max-width: 640px;
	margin: 0 auto 32px;
}
.pc-hero-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 36px; }
.pc-hero-trust {
	display: flex; justify-content: center; gap: 28px; flex-wrap: wrap;
	list-style: none; margin: 0; padding: 0;
	font-size: 14px; color: rgba(255,255,255,0.7);
}
.pc-hero-trust li::before { content: "✓ "; color: var(--pc-yellow); font-weight: 700; }

/* Slide content animation */
.pc-slide .pc-eyebrow,
.pc-slide .pc-hero-title,
.pc-slide .pc-hero-sub,
.pc-slide .pc-hero-actions,
.pc-slide .pc-hero-trust {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.5s ease, transform 0.5s ease;
}
.pc-slide.is-active .pc-eyebrow      { opacity: 1; transform: translateY(0); transition-delay: 0.15s; }
.pc-slide.is-active .pc-hero-title    { opacity: 1; transform: translateY(0); transition-delay: 0.3s; }
.pc-slide.is-active .pc-hero-sub      { opacity: 1; transform: translateY(0); transition-delay: 0.45s; }
.pc-slide.is-active .pc-hero-actions  { opacity: 1; transform: translateY(0); transition-delay: 0.55s; }
.pc-slide.is-active .pc-hero-trust    { opacity: 1; transform: translateY(0); transition-delay: 0.65s; }

/* Slider controls */
.pc-slider-controls {
	position: absolute;
	bottom: 60px; left: 50%;
	transform: translateX(-50%);
	z-index: 10;
	display: flex;
	align-items: center;
	gap: 14px;
}
.pc-slider-prev, .pc-slider-next {
	background: rgba(14,14,14,0.5);
	color: var(--pc-white);
	border: 1px solid rgba(255,255,255,0.25);
	border-radius: var(--pc-radius);
	width: 42px; height: 42px;
	display: flex; align-items: center; justify-content: center;
	font-size: 18px;
	cursor: pointer;
	transition: background 0.2s ease;
}
.pc-slider-prev:hover, .pc-slider-next:hover { background: var(--pc-yellow); color: var(--pc-black); border-color: var(--pc-yellow); }
.pc-slider-dots { display: flex; gap: 8px; }
.pc-dot {
	width: 14px; height: 14px;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,0.5);
	background: transparent;
	cursor: pointer;
	padding: 0;
	transition: background 0.2s ease, border-color 0.2s ease;
}
.pc-dot:hover { border-color: var(--pc-white); }
.pc-dot.is-active { background: var(--pc-yellow); border-color: var(--pc-yellow); }

/* Progress bar on active slide */
.pc-hero-slider::after {
	content: "";
	position: absolute;
	bottom: 0; left: 0;
	height: 4px;
	background: var(--pc-yellow);
	z-index: 10;
	animation: pc-slider-progress 6s linear infinite;
}
@keyframes pc-slider-progress {
	from { width: 0; }
	to { width: 100%; }
}

/* ---------- Sections ---------- */
.pc-section { padding: 84px 0; }
.pc-section-head { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.pc-section-title { font-size: clamp(30px, 4vw, 44px); font-weight: 700; }
.pc-section-sub { color: var(--pc-gray); font-size: 18px; margin: 0; }
.pc-on-dark { color: var(--pc-white); }

/* ---------- Services ---------- */
.pc-services { background: var(--pc-gray-light); }
.pc-services-cat {
	font-size: 22px;
	margin: 40px 0 18px;
	padding-left: 14px;
	border-left: 6px solid var(--pc-yellow);
}
.pc-services-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
	gap: 20px;
}
.pc-service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--pc-white);
	border: 1px solid var(--pc-line);
	border-radius: var(--pc-radius);
	padding: 26px 24px 22px;
	text-decoration: none;
	overflow: hidden;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.pc-service-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(14,14,14,0.12);
}
.pc-service-card-slash {
	position: absolute; top: 0; left: 0;
	width: 64px; height: 7px;
	background: var(--pc-yellow);
	clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);
	transition: width 0.2s ease;
}
.pc-service-card:hover .pc-service-card-slash { width: 100%; }
.pc-service-card h4 { font-size: 19px; margin: 6px 0 8px; }
.pc-service-card p { color: var(--pc-gray); font-size: 15.5px; margin: 0 0 14px; flex: 1; }
.pc-service-card-link {
	font-family: var(--pc-display);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 13.5px;
	color: var(--pc-black);
	border-bottom: 2px solid var(--pc-yellow);
	align-self: flex-start;
	padding-bottom: 2px;
}

/* ---------- Why Us ---------- */
.pc-why-inner {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 60px;
	align-items: center;
}
.pc-checklist { list-style: none; margin: 0 0 28px; padding: 0; }
.pc-checklist li {
	position: relative;
	padding: 0 0 16px 34px;
	font-size: 16.5px;
}
.pc-checklist li::before {
	content: "";
	position: absolute; left: 0; top: 5px;
	width: 18px; height: 12px;
	background: var(--pc-yellow);
	clip-path: polygon(0 45%, 15% 25%, 40% 55%, 85% 0, 100% 18%, 40% 100%);
}
.pc-why-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.pc-stat {
	background: var(--pc-black);
	color: var(--pc-white);
	border-radius: var(--pc-radius);
	padding: 30px 22px;
	text-align: center;
}
.pc-stat:nth-child(2) { background: var(--pc-yellow); color: var(--pc-black); }
.pc-stat-num {
	display: block;
	font-family: var(--pc-display);
	font-weight: 700;
	font-size: 40px;
	line-height: 1;
	margin-bottom: 8px;
}
.pc-stat-label { font-size: 13.5px; text-transform: uppercase; letter-spacing: 0.08em; }

/* ---------- Flat roof systems (dark band) ---------- */
.pc-flat { background: var(--pc-charcoal); }
.pc-flat .pc-section-sub { color: rgba(255,255,255,0.7); }
.pc-flat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 18px;
}
.pc-flat-card {
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(255,255,255,0.1);
	border-top: 4px solid var(--pc-yellow);
	border-radius: var(--pc-radius);
	padding: 26px 22px;
}
.pc-flat-card h4 { color: var(--pc-yellow); font-size: 20px; }
.pc-flat-card p { color: rgba(255,255,255,0.78); font-size: 15.5px; margin: 0; }

/* ---------- Process ---------- */
.pc-process-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 22px;
	list-style: none;
	margin: 0; padding: 0;
	counter-reset: step;
}
.pc-process-step {
	background: var(--pc-white);
	border: 1px solid var(--pc-line);
	border-radius: var(--pc-radius);
	padding: 28px 24px;
}
.pc-process-num {
	display: inline-flex;
	align-items: center; justify-content: center;
	width: 44px; height: 44px;
	background: var(--pc-black);
	color: var(--pc-yellow);
	font-family: var(--pc-display);
	font-weight: 700;
	font-size: 20px;
	border-radius: var(--pc-radius);
	margin-bottom: 14px;
	transform: skewX(-8deg);
}
.pc-process-step h4 { font-size: 19px; }
.pc-process-step p { color: var(--pc-gray); font-size: 15.5px; margin: 0; }

/* ---------- Reviews (legacy) ---------- */
.pc-reviews { background: var(--pc-gray-light); }
.pc-reviews-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
}
.pc-review {
	background: var(--pc-white);
	border: 1px solid var(--pc-line);
	border-left: 5px solid var(--pc-yellow);
	border-radius: var(--pc-radius);
	margin: 0;
	padding: 26px 24px;
	font-size: 16px;
}
.pc-review cite { display: block; margin-top: 12px; font-style: normal; font-weight: 700; font-size: 14px; }
.pc-review-card {
	background: var(--pc-white);
	border: 1px solid var(--pc-line);
	border-left: 5px solid var(--pc-yellow);
	border-radius: var(--pc-radius);
	padding: 26px 24px;
}
.pc-review-card .pc-review-text { margin: 0; font-size: 16px; line-height: 1.6; }
.pc-review-card .pc-review-author { display: block; margin-top: 12px; font-weight: 700; font-size: 14px; }

/* ---------- Project Gallery ---------- */
.pc-gallery { background: var(--pc-white); }
.pc-gallery-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 16px;
}
.pc-gallery-item {
	position: relative;
	display: block;
	padding: 0;
	border: none;
	cursor: pointer;
	overflow: hidden;
	border-radius: var(--pc-radius);
	grid-column: span 4;
	aspect-ratio: 4 / 3;
	background: var(--pc-black);
}
.pc-gallery-item--wide { grid-column: span 8; }
.pc-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.45s ease;
}
.pc-gallery-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: linear-gradient(180deg, rgba(14,14,14,0.15) 0%, rgba(14,14,14,0.72) 100%);
	color: var(--pc-white);
	opacity: 0;
	transition: opacity 0.3s ease;
}
.pc-gallery-label {
	font-family: var(--pc-display);
	text-transform: uppercase;
	font-size: 13px;
	letter-spacing: 0.08em;
	color: var(--pc-yellow);
}
.pc-gallery-zoom {
	font-weight: 600;
	font-size: 15px;
}
.pc-gallery-item:hover img,
.pc-gallery-item:focus-visible img { transform: scale(1.06); }
.pc-gallery-item:hover .pc-gallery-overlay,
.pc-gallery-item:focus-visible .pc-gallery-overlay { opacity: 1; }

/* Lightbox */
.pc-lightbox {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(14,14,14,0.92);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.pc-lightbox[hidden] { display: none; }
.pc-lightbox-figure { margin: 0; max-width: min(1100px, 92vw); max-height: 88vh; }
.pc-lightbox-img {
	max-width: 100%;
	max-height: 88vh;
	width: auto;
	height: auto;
	border-radius: var(--pc-radius);
	box-shadow: 0 24px 60px rgba(0,0,0,0.45);
}
.pc-lightbox-close,
.pc-lightbox-prev,
.pc-lightbox-next {
	position: absolute;
	background: rgba(255,255,255,0.12);
	color: var(--pc-white);
	border: 1px solid rgba(255,255,255,0.25);
	border-radius: var(--pc-radius);
	cursor: pointer;
	font-size: 28px;
	line-height: 1;
	width: 48px;
	height: 48px;
}
.pc-lightbox-close { top: 20px; right: 20px; }
.pc-lightbox-prev { left: 20px; top: 50%; transform: translateY(-50%); }
.pc-lightbox-next { right: 20px; top: 50%; transform: translateY(-50%); }

/* ---------- Google Reviews Widget ---------- */
.pc-google-reviews-widget,
.pc-reviews .pc-google-reviews-widget {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 28px;
	align-items: stretch;
}
.pc-google-summary {
	background: var(--pc-white);
	border: 1px solid var(--pc-line);
	border-radius: 12px;
	padding: 32px 24px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	box-shadow: 0 8px 28px rgba(14,14,14,0.06);
}
.pc-google-summary-label {
	font-family: var(--pc-display);
	font-weight: 700;
	font-size: 22px;
	letter-spacing: 0.06em;
	margin: 0;
}
.pc-google-summary-count {
	margin: 0;
	color: var(--pc-gray);
	font-size: 15px;
}
.pc-google-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	font-weight: 700;
	color: var(--pc-ink);
	margin-top: 4px;
}
.pc-stars { display: inline-flex; gap: 2px; }
.pc-star { color: #ddd; font-size: 22px; line-height: 1; }
.pc-star.is-filled { color: #fbbc04; }
.pc-btn-sm { padding: 10px 18px; font-size: 13px; }

.pc-reviews-grid-all {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	min-width: 0;
}
.pc-reviews-grid-all .pc-google-review-card {
	width: auto;
}

.pc-reviews-carousel {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}
.pc-reviews-carousel-viewport {
	overflow: hidden;
	flex: 1;
	min-width: 0;
}
.pc-reviews-carousel-track {
	display: flex;
	gap: 18px;
	transition: transform 0.45s ease;
	will-change: transform;
}
.pc-google-review-card {
	flex: 0 0 auto;
	width: var(--pc-review-card-width, 320px);
	background: var(--pc-white);
	border: 1px solid var(--pc-line);
	border-radius: 12px;
	padding: 22px 20px;
	box-shadow: 0 8px 24px rgba(14,14,14,0.05);
	min-width: 0;
}
.pc-google-review-head {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 10px;
	align-items: start;
	margin-bottom: 10px;
}
.pc-google-review-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--pc-yellow);
	color: var(--pc-black);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-family: var(--pc-display);
}
.pc-google-review-name { display: block; font-size: 15px; }
.pc-google-review-time { display: block; font-size: 13px; color: var(--pc-gray); }
.pc-google-review-text {
	margin: 10px 0 8px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--pc-ink);
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.pc-google-review-more {
	font-size: 14px;
	font-weight: 600;
	color: #1a73e8;
	text-decoration: none;
}
.pc-reviews-carousel-prev,
.pc-reviews-carousel-next {
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 1px solid var(--pc-line);
	background: var(--pc-white);
	cursor: pointer;
	font-size: 18px;
	box-shadow: 0 4px 14px rgba(14,14,14,0.08);
}
.pc-reviews-carousel-prev:disabled,
.pc-reviews-carousel-next:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}
.pc-google-reviews-embed {
	background: var(--pc-white);
	border-radius: 12px;
	padding: 24px;
	border: 1px solid var(--pc-line);
}
.pc-google-reviews-embed .ti-widget-container {
	max-width: 100%;
}
.pc-google-reviews-embed .ti-reviews-container-wrapper {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	transform: none !important;
}
.pc-google-reviews-embed .ti-controls {
	display: none !important;
}
.pc-google-reviews-embed .ti-review-item {
	width: auto !important;
	margin: 0 !important;
}

/* ---------- Homepage contact banner form ---------- */
.pc-contact-banner-section {
	padding-top: 48px;
	padding-bottom: 48px;
	background: var(--pc-white);
}
.pc-contact-banner {
	display: grid;
	grid-template-columns: minmax(240px, 0.95fr) minmax(0, 1.25fr);
	align-items: stretch;
	background: var(--pc-white);
	border-radius: var(--pc-radius);
	box-shadow: 0 16px 48px rgba(14, 14, 14, 0.12);
	overflow: hidden;
	border: 1px solid var(--pc-line);
}
.pc-contact-banner-cta {
	background: var(--pc-yellow);
	color: var(--pc-black);
	display: flex;
	align-items: center;
	padding: 40px 56px 40px 40px;
	position: relative;
}
.pc-contact-banner-cta::after {
	content: '';
	position: absolute;
	top: 0;
	right: -1px;
	width: 48px;
	height: 100%;
	background: var(--pc-yellow);
	clip-path: polygon(0 0, 100% 0, 0 100%);
	transform: translateX(100%);
}
.pc-contact-banner-cta-text {
	margin: 0;
	font-size: clamp(18px, 2.2vw, 24px);
	line-height: 1.45;
	font-weight: 500;
}
.pc-contact-banner-cta-text strong {
	font-family: var(--pc-display);
	font-weight: 700;
	display: block;
	margin-bottom: 8px;
	font-size: clamp(22px, 2.6vw, 28px);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.pc-contact-banner-phone {
	display: inline-block;
	margin-top: 6px;
	color: var(--pc-black);
	font-family: var(--pc-display);
	font-weight: 700;
	font-size: clamp(20px, 2.4vw, 26px);
	text-decoration: none;
}
.pc-contact-banner-phone:hover {
	text-decoration: underline;
}
.pc-contact-banner-form-wrap {
	padding: 32px 36px 32px 48px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: var(--pc-white);
}
.pc-contact-banner-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
.pc-form-field {
	display: block;
	margin: 0;
}
.pc-form-field input {
	width: 100%;
	border: 1px solid var(--pc-line);
	border-radius: 8px;
	padding: 14px 16px;
	font: inherit;
	font-size: 15px;
	color: var(--pc-ink);
	background: var(--pc-white);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pc-form-field input:focus {
	outline: none;
	border-color: var(--pc-yellow);
	box-shadow: 0 0 0 3px rgba(229, 210, 28, 0.25);
}
.pc-form-field--submit {
	display: flex;
	align-items: stretch;
}
.pc-form-field--submit .pc-btn {
	width: 100%;
	padding: 14px 18px;
	font-size: 14px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.pc-form-notice {
	margin: 0 0 16px;
	padding: 12px 14px;
	border-radius: 8px;
	font-size: 15px;
}
.pc-form-notice--success {
	background: #eef8ee;
	border: 1px solid #b8dfb8;
	color: #1f5f1f;
}
.pc-form-notice--error {
	background: #fdeeee;
	border: 1px solid #e8b8b8;
	color: #7a1f1f;
}

/* ---------- Benefits grid (Roofting-style cards) ---------- */
.pc-benefits {
	padding-top: 0;
	padding-bottom: 84px;
	background: var(--pc-white);
}
.pc-benefits-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.pc-benefit-card {
	background: var(--pc-white);
	border: 1px solid var(--pc-line);
	border-radius: var(--pc-radius);
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(14, 14, 14, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pc-benefit-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(14, 14, 14, 0.12);
}
.pc-benefit-card-media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.pc-benefit-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}
.pc-benefit-card:hover .pc-benefit-card-media img {
	transform: scale(1.05);
}
.pc-benefit-readmore {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 46px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: var(--pc-white);
	color: var(--pc-black);
	text-decoration: none;
	font-family: var(--pc-display);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	border-left: 1px solid var(--pc-line);
	transition: background 0.15s ease, color 0.15s ease;
}
.pc-benefit-readmore:hover {
	background: var(--pc-yellow);
}
.pc-benefit-readmore-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	background: var(--pc-yellow);
	color: var(--pc-black);
	border-radius: 50%;
	font-size: 14px;
	line-height: 1;
	transform: rotate(180deg);
}
.pc-benefit-card-body {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 16px;
	padding: 22px 20px;
	text-decoration: none;
	color: inherit;
	border-top: 1px solid var(--pc-line);
}
.pc-benefit-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	background: var(--pc-yellow);
	color: var(--pc-black);
	flex-shrink: 0;
}
.pc-benefit-title {
	margin: 0;
	font-size: clamp(20px, 2.2vw, 26px);
	line-height: 1.1;
}
.pc-benefit-title span {
	display: block;
}
.pc-benefit-chevron-deco {
	width: 28px;
	height: 36px;
	opacity: 0.18;
	background:
		linear-gradient(135deg, transparent 50%, var(--pc-black) 50%) 0 0 / 14px 12px no-repeat,
		linear-gradient(135deg, transparent 50%, var(--pc-black) 50%) 0 12px / 14px 12px no-repeat,
		linear-gradient(135deg, transparent 50%, var(--pc-black) 50%) 0 24px / 14px 12px no-repeat;
}

/* ---------- About Us (Roofting-style split) ---------- */
.pc-about {
	background: var(--pc-gray-light);
	overflow: hidden;
}
.pc-about-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 48px;
	align-items: center;
}
.pc-about-copy-wrap {
	position: relative;
	display: flex;
	align-items: stretch;
	padding-right: 28px;
}
.pc-about-copy {
	flex: 1;
	min-width: 0;
}
.pc-about-title {
	font-size: clamp(30px, 3.8vw, 46px);
	margin-bottom: 18px;
}
.pc-about-lead {
	color: var(--pc-gray);
	font-size: 17px;
	margin: 0 0 24px;
	max-width: 54ch;
}
.pc-about-list {
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
}
.pc-about-list li {
	position: relative;
	padding: 0 0 14px 34px;
	font-size: 16px;
}
.pc-about-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--pc-yellow);
	box-shadow: inset 0 0 0 2px var(--pc-yellow);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230e0e0e'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 14px;
}
.pc-about-founder {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 18px;
}
.pc-about-founder-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--pc-black);
	color: var(--pc-yellow);
	font-family: var(--pc-display);
	font-weight: 700;
	font-size: 24px;
	flex-shrink: 0;
}
.pc-about-founder-meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 140px;
}
.pc-about-founder-meta strong {
	font-family: var(--pc-display);
	font-size: 18px;
	text-transform: uppercase;
}
.pc-about-founder-meta span {
	font-size: 14px;
	color: var(--pc-gray);
}
.pc-about-accent-bar {
	width: 8px;
	flex-shrink: 0;
	background: var(--pc-yellow);
	border-radius: 2px;
	margin-left: 24px;
}
.pc-about-visual {
	position: relative;
	min-height: 420px;
}
.pc-about-deco-circle {
	position: absolute;
	left: -80px;
	bottom: 40px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: var(--pc-yellow);
	z-index: 0;
}
.pc-about-img-main {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 420px;
	margin-left: auto;
	display: block;
	border-radius: var(--pc-radius);
	box-shadow: 0 20px 50px rgba(14, 14, 14, 0.18);
}
.pc-about-img-sub {
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 2;
	width: min(62%, 260px);
	border: 8px solid var(--pc-white);
	border-radius: var(--pc-radius);
	box-shadow: 0 14px 36px rgba(14, 14, 14, 0.16);
}
.pc-about-deco-dots {
	position: absolute;
	right: 0;
	bottom: 24px;
	width: 120px;
	height: 120px;
	z-index: 0;
	opacity: 0.35;
	background-image: radial-gradient(var(--pc-black) 1.5px, transparent 1.5px);
	background-size: 14px 14px;
}

/* ---------- CTA band ---------- */
.pc-cta-band { background: var(--pc-yellow); }
.pc-cta-band-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
	padding-top: 72px;
	padding-bottom: 72px;
}
.pc-cta-band .pc-eyebrow,
.pc-cta-band-title {
	color: var(--pc-white);
}
.pc-cta-band-title { font-size: clamp(26px, 3.4vw, 38px); margin: 0; }
.pc-cta-band-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------- Footer ---------- */
.pc-footer { background: var(--pc-black); color: rgba(255,255,255,0.8); }
.pc-footer-grid {
	display: grid !important;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 48px;
	padding-top: 64px;
	padding-bottom: 48px;
	width: 100%;
	max-width: var(--pc-container);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}
.elementor-widget-pc_panther_footer_widget,
.elementor-widget-pc_panther_footer_widget > .elementor-widget-container,
.pc-elementor-panther-footer {
	width: 100% !important;
	max-width: 100% !important;
}
.pc-footer .widget-title {
	color: var(--pc-white);
	font-size: 17px;
	border-bottom: 3px solid var(--pc-yellow);
	display: inline-block;
	padding-bottom: 6px;
	margin-bottom: 18px;
}
.pc-footer-logo { max-width: 150px; background: var(--pc-white); border-radius: var(--pc-radius); padding: 8px; margin-bottom: 16px; }
.pc-footer-license { color: var(--pc-yellow); font-weight: 700; font-size: 14px; }
.pc-footer-links { list-style: none; margin: 0; padding: 0; }
.pc-footer-links li { margin-bottom: 9px; font-size: 15px; }
.pc-footer-links a { text-decoration: none; }
.pc-footer-links a:hover { color: var(--pc-yellow); }
.pc-footer-all { color: var(--pc-yellow); font-weight: 700; }
.pc-footer-social {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
	list-style: none;
	padding: 0;
}
.pc-footer-social li { margin: 0; }
.pc-footer-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: var(--pc-yellow);
	color: var(--pc-white);
	border-radius: var(--pc-radius);
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.pc-footer-social a:hover {
	background: var(--pc-white);
	color: var(--pc-black);
	transform: translateY(-2px);
}
.pc-footer-social a.is-placeholder {
	opacity: 0.85;
}
.pc-footer-social svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
	display: block;
}
.pc-footer-bottom { background: #000; font-size: 13.5px; }
.pc-footer-bottom-inner {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding-top: 18px;
	padding-bottom: 18px;
}
.pc-footer-credit a { color: var(--pc-yellow); text-decoration: none; }

/* ---------- Sticky mobile call button ---------- */
.pc-sticky-call {
	display: none;
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: max(16px, env(safe-area-inset-bottom, 0px));
	z-index: 200;
	box-sizing: border-box;
	width: calc(100% - 32px);
	max-width: calc(100vw - 32px);
	margin: 0;
	background: var(--pc-yellow);
	color: var(--pc-black);
	text-align: center;
	font-family: var(--pc-display);
	font-weight: 700;
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 15px 12px;
	border-radius: var(--pc-radius);
	text-decoration: none;
	box-shadow: 0 10px 26px rgba(0,0,0,0.3);
	align-items: center;
	justify-content: center;
	line-height: 1.2;
}
.pc-sticky-call-text--short {
	display: none;
}

/* ---------- Inner pages / blog ---------- */
.pc-page-hero { background: var(--pc-black); color: var(--pc-white); }
.pc-page-hero .pc-container { padding-top: 64px; padding-bottom: 56px; }
.pc-page-title { color: var(--pc-white); font-size: clamp(34px, 5vw, 56px); margin: 0; }
.pc-entry { max-width: 820px; }
.pc-entry-thumb { border-radius: var(--pc-radius); margin-bottom: 24px; }
.pc-entry h2, .pc-entry h3 { margin-top: 1.4em; }
.pc-service-layout {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 56px;
	align-items: start;
}
.pc-sidebar-cta {
	background: var(--pc-yellow);
	border-radius: var(--pc-radius);
	padding: 28px 24px;
	margin-bottom: 24px;
}
.pc-sidebar-cta h3 { font-size: 22px; }
.pc-sidebar-list {
	border: 1px solid var(--pc-line);
	border-radius: var(--pc-radius);
	padding: 22px;
}
.pc-sidebar-list ul { list-style: none; margin: 0; padding: 0; }
.pc-sidebar-list li { border-bottom: 1px solid var(--pc-line); }
.pc-sidebar-list li:last-child { border-bottom: 0; }
.pc-sidebar-list a { display: block; padding: 9px 0; text-decoration: none; font-size: 15px; }
.pc-sidebar-list a:hover { color: var(--pc-yellow-dark); }
.pc-sidebar-list .is-current a { font-weight: 700; border-left: 4px solid var(--pc-yellow); padding-left: 10px; }
.pc-blog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.pc-blog-card { background: var(--pc-white); border: 1px solid var(--pc-line); border-radius: var(--pc-radius); overflow: hidden; }
.pc-blog-card-body { padding: 22px; }
.pc-blog-card-title { font-size: 21px; }
.pc-blog-card-title a { text-decoration: none; }
.pc-blog-meta { font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--pc-gray); margin-bottom: 10px; }
.pc-blog-meta.pc-on-dark { color: rgba(255,255,255,0.65); }
.pc-pagination { grid-column: 1 / -1; text-align: center; }

/* ---------- Elementor niceties ---------- */
.elementor-page .pc-main { padding: 0; }

/* Elementor Pro Theme Builder — header/footer locations */
.elementor-location-header,
.elementor-location-footer {
	width: 100%;
	max-width: 100%;
}

/* Elementor footer — base */
.elementor-location-footer > .elementor-element,
.elementor-location-footer .e-con.pc-cta-band,
.elementor-location-footer .e-con.pc-footer {
	width: 100% !important;
	max-width: 100% !important;
	--width: 100% !important;
}

.elementor-location-footer .pc-container.e-con-boxed {
	max-width: 100%;
	margin: 0;
	padding: 0;
}

.elementor-location-footer .pc-cta-band-inner > .e-con-inner,
.elementor-location-footer .pc-footer-grid > .e-con-inner,
.elementor-location-footer .pc-footer-bottom-inner > .e-con-inner,
.elementor-location-footer .pc-footer .pc-container > .e-con-inner {
	display: flex !important;
	flex-wrap: wrap;
	width: 100%;
	max-width: var(--pc-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}

.elementor-location-footer .pc-cta-band-inner > .e-con-inner {
	flex-direction: row !important;
	justify-content: space-between !important;
	align-items: center !important;
	gap: 16px;
	padding-top: 72px;
	padding-bottom: 72px;
}

.elementor-location-footer .pc-footer-grid > .e-con-inner {
	flex-direction: row !important;
	justify-content: space-between !important;
	align-items: flex-start !important;
	gap: 48px;
	padding-top: 64px;
	padding-bottom: 48px;
}

.elementor-location-footer .pc-footer-bottom-inner > .e-con-inner {
	justify-content: center !important;
	align-items: center !important;
	padding-top: 18px;
	padding-bottom: 18px;
}

@media (min-width: 768px) {
	.elementor-location-footer .pc-footer-grid > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr);
		align-items: start;
	}

	.elementor-location-footer .pc-footer-grid > .e-con-inner > .e-con {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: none !important;
		--width: 100% !important;
	}
}

.elementor-location-footer .widget-title {
	color: var(--pc-white);
	font-family: var(--pc-display);
	font-size: 17px;
	border-bottom: 3px solid var(--pc-yellow);
	display: inline-block;
	padding-bottom: 6px;
	margin-bottom: 18px;
}

.elementor-location-footer .pc-footer-links a:hover,
.elementor-location-footer .elementor-icon-list-item a:hover {
	color: var(--pc-yellow);
}

.elementor-location-footer .pc-footer-license {
	color: var(--pc-yellow);
	font-weight: 700;
}

.elementor-location-footer .elementor-widget-google_maps iframe {
	width: 100%;
	border: 0;
	min-height: 200px;
}

@media (max-width: 767px) {
	/* Footer — mobile: stack all columns vertically */
	.elementor-location-footer {
		overflow-x: hidden;
	}

	.elementor-location-footer .elementor-widget-spacer {
		display: none !important;
	}

	/* Yellow CTA band */
	.elementor-location-footer .pc-cta-band-inner > .e-con-inner,
	.elementor-location-footer .pc-cta-band-inner.e-con > .e-con-inner {
		flex-direction: column !important;
		align-items: center !important;
		text-align: center;
		gap: 16px !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	.elementor-location-footer .pc-cta-band-actions,
	.elementor-location-footer .pc-cta-band-actions.e-con {
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 12px !important;
	}

	.elementor-location-footer .pc-cta-band-actions .elementor-widget-button,
	.elementor-location-footer .pc-cta-band-actions .elementor-button {
		width: 100% !important;
		justify-content: center;
	}

	/* Main footer columns row (atomic flexbox or pc-footer-grid) */
	.elementor-location-footer > .elementor-element.e-a60832f,
	.elementor-location-footer > .elementor-element:nth-child(2):not(.pc-cta-band),
	.elementor-location-footer .pc-footer,
	.elementor-location-footer .pc-footer-grid,
	.elementor-location-footer .pc-footer-grid > .e-con-inner {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 32px !important;
		padding: 40px 16px 32px !important;
		box-sizing: border-box;
		background: var(--pc-black);
		color: rgba(255, 255, 255, 0.8);
	}

	/* Each footer column full width */
	.elementor-location-footer .e-a60832f > .e-flexbox-base,
	.elementor-location-footer .e-a60832f > .e-con,
	.elementor-location-footer .pc-footer-grid > .e-con-inner > .e-con,
	.elementor-location-footer .pc-footer-col,
	.elementor-location-footer .e-flexbox-base:has(.widget-title),
	.elementor-location-footer .e-flexbox-base:has(.pc-footer-logo),
	.elementor-location-footer .e-flexbox-base:has(.pc-footer-links),
	.elementor-location-footer .e-flexbox-base:has(.elementor-widget-google_maps) {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: 0 0 auto !important;
		--width: 100% !important;
	}

	.elementor-location-footer .pc-footer-logo img {
		max-width: 140px;
		height: auto;
	}

	.elementor-location-footer .elementor-widget-google_maps iframe,
	.elementor-location-footer .elementor-custom-embed iframe {
		width: 100% !important;
		min-height: 220px;
		max-width: 100%;
	}

	.elementor-location-footer .elementor-icon-list-items {
		width: 100%;
	}

	.elementor-location-footer .pc-footer-bottom,
	.elementor-location-footer .pc-footer-bottom .elementor-widget-container {
		text-align: center;
		padding: 16px !important;
		padding-bottom: 72px !important;
		font-size: 13px;
	}

	/* PHP / shortcode footer fallback */
	.pc-cta-band-inner {
		flex-direction: column !important;
		align-items: center !important;
		text-align: center;
		gap: 16px;
		padding-left: 16px;
		padding-right: 16px;
	}

	.pc-cta-band-actions {
		flex-direction: column !important;
		width: 100%;
		align-items: stretch;
		gap: 12px;
	}

	.pc-cta-band-actions .pc-btn {
		width: 100%;
		text-align: center;
		box-sizing: border-box;
	}

	.pc-footer-grid {
		grid-template-columns: 1fr !important;
		gap: 32px;
		padding: 40px 16px 32px;
	}

	.pc-footer-bottom-inner {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 8px;
		padding-bottom: 72px;
	}
}

.elementor-location-header > .elementor-element,
.elementor-location-header .e-con.pc-topbar,
.elementor-location-header .e-con.pc-header {
	width: 100% !important;
	max-width: 100% !important;
	--width: 100% !important;
}

/* Boxed rows: flex layout inside Elementor's .e-con-inner wrapper */
.elementor-location-header .pc-topbar-inner > .e-con-inner,
.elementor-location-header .pc-header-inner > .e-con-inner {
	display: flex !important;
	align-items: center !important;
	width: 100%;
	max-width: var(--pc-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}

.elementor-location-header .pc-header-inner > .e-con-inner {
	flex-direction: row !important;
	justify-content: space-between !important;
	flex-wrap: nowrap !important;
	gap: 24px;
}

.elementor-location-header .pc-topbar-inner > .e-con-inner {
	flex-direction: row !important;
	justify-content: space-between !important;
	flex-wrap: wrap !important;
	gap: 16px;
}

.elementor-location-header .pc-container.e-con-boxed {
	max-width: 100%;
	margin: 0;
	padding: 0;
}

.elementor-location-header .pc-topbar-left,
.elementor-location-header .pc-topbar-right {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	gap: 20px;
}

.elementor-location-header .pc-header-cta {
	display: flex !important;
	flex-direction: row !important;
	justify-content: flex-end !important;
	align-items: center !important;
}

@media (min-width: 1025px) {
	.elementor-location-header .pc-nav .elementor-nav-menu--main {
		display: flex !important;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 32px;
	}

	.elementor-location-header .pc-nav .elementor-menu-toggle {
		display: none !important;
	}

	.elementor-location-header .pc-branding {
		flex: 0 0 25% !important;
		width: 25% !important;
		max-width: 25% !important;
	}
	.elementor-location-header .pc-nav {
		flex: 1 1 50% !important;
		width: 50% !important;
		max-width: 50% !important;
	}
	.elementor-location-header .pc-header-cta {
		flex: 0 0 25% !important;
		width: 25% !important;
		max-width: 25% !important;
	}
}

@media (max-width: 1024px) {
	/* ── Top bar: show ALL contact info stacked on mobile/tablet ── */
	.elementor-location-header .pc-topbar,
	.elementor-location-header > .elementor-element:first-child:not(:has(.elementor-widget-theme-site-logo)) {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		width: 100% !important;
		background: var(--pc-black) !important;
		color: rgba(255, 255, 255, 0.85);
		padding: 8px 16px !important;
		box-sizing: border-box;
		text-align: center;
		gap: 4px !important;
		font-size: 12px;
		line-height: 1.45;
	}

	.elementor-location-header > .elementor-element:first-child:not(:has(.elementor-widget-theme-site-logo)) > .e-flexbox-base,
	.elementor-location-header > .elementor-element:first-child:not(:has(.elementor-widget-theme-site-logo)) > .e-con {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		width: 100% !important;
		gap: 4px !important;
	}

	.elementor-location-header .pc-topbar-left,
	.elementor-location-header .pc-topbar-right {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		width: 100% !important;
		gap: 4px !important;
		text-align: center;
	}

	.elementor-location-header .pc-topbar .elementor-widget-text-editor,
	.elementor-location-header .pc-topbar .elementor-widget-text-editor p,
	.elementor-location-header .pc-topbar-item,
	.elementor-location-header .pc-topbar-hours,
	.elementor-location-header .pc-topbar a,
	.elementor-location-header .pc-topbar-emergency {
		color: rgba(255, 255, 255, 0.85) !important;
		font-size: 12px;
		margin: 0;
		text-align: center;
	}

	.elementor-location-header .pc-topbar-emergency {
		color: var(--pc-yellow) !important;
		font-weight: 700;
	}

	/* ── Generic Elementor header (any layout): mobile / tablet ── */
	.elementor-location-header .elementor-widget-spacer {
		display: none !important;
	}

	.elementor-location-header .elementor-widget-button.pc-btn-call,
	.elementor-location-header .pc-btn-call,
	.elementor-location-header .e-flexbox-base:has(.pc-btn-call),
	.elementor-location-header .e-con:has(.pc-btn-call) {
		display: none !important;
	}

	/* Shortcode header: show burger toggle (lives outside .pc-header-cta) */
	.elementor-location-header .pc-nav-toggle {
		display: inline-flex !important;
		flex-shrink: 0;
	}

	.elementor-location-header .pc-header-cta {
		display: none !important;
	}

	.elementor-location-header .elementor-widget-theme-site-logo img {
		max-height: 80px !important;
		width: auto !important;
		max-width: min(240px, 58vw) !important;
		height: auto !important;
	}

	/* Main header bar — logo left, burger right */
	.elementor-location-header > .elementor-element:nth-child(2),
	.elementor-location-header .pc-header {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: space-between !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 12px !important;
		padding: 8px 16px !important;
		box-sizing: border-box;
		position: sticky;
		top: 0;
		z-index: 100;
		background: var(--pc-black) !important;
		box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12);
	}

	.elementor-location-header > .elementor-element:nth-child(2) {
		position: relative;
	}

	.elementor-location-header > .elementor-element:nth-child(2) > .e-flexbox-base,
	.elementor-location-header > .elementor-element:nth-child(2) > .e-con {
		width: auto !important;
		max-width: none !important;
		--width: auto !important;
		flex: 0 0 auto !important;
	}

	.elementor-location-header > .elementor-element:nth-child(2) > .e-flexbox-base:has(> .elementor-widget-theme-site-logo),
	.elementor-location-header > .elementor-element:nth-child(2) > .e-con:has(> .elementor-widget-theme-site-logo) {
		flex: 1 1 auto !important;
		min-width: 0 !important;
	}

	.elementor-location-header > .elementor-element:nth-child(2) > .e-flexbox-base:has(.elementor-widget-nav-menu),
	.elementor-location-header > .elementor-element:nth-child(2) > .e-con:has(.elementor-widget-nav-menu) {
		flex: 0 0 auto !important;
		margin-left: auto;
	}

	/* Logo column */
	.elementor-location-header .e-flexbox-base:has(> .elementor-widget-theme-site-logo),
	.elementor-location-header .e-con:has(> .elementor-widget-theme-site-logo),
	.elementor-location-header .pc-branding {
		flex: 1 1 auto !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: calc(100% - 52px) !important;
	}

	/* Nav / burger column */
	.elementor-location-header .e-flexbox-base:has(.elementor-widget-nav-menu),
	.elementor-location-header .e-con:has(.elementor-widget-nav-menu),
	.elementor-location-header .pc-nav {
		flex: 0 0 auto !important;
		width: auto !important;
		max-width: none !important;
		justify-content: flex-end !important;
		margin-left: auto;
	}

	.elementor-location-header .pc-topbar-inner > .e-con-inner {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center;
		gap: 6px !important;
		padding-left: 16px;
		padding-right: 16px;
	}

	.elementor-location-header .pc-topbar-right {
		flex-direction: column !important;
		align-items: center !important;
		width: 100%;
		gap: 6px !important;
		font-size: 13px;
	}

	.elementor-location-header .pc-header-inner > .e-con-inner {
		flex-wrap: nowrap !important;
		gap: 12px !important;
		padding-left: 16px;
		padding-right: 16px;
	}

	.elementor-location-header .pc-header-inner,
	.elementor-location-header .pc-header-inner > .e-con-inner {
		position: relative;
	}

	.elementor-location-header .pc-header-inner {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: space-between !important;
		width: 100% !important;
		gap: 12px !important;
	}

	.elementor-location-header .pc-branding,
	.elementor-location-header .pc-nav,
	.elementor-location-header .pc-header-cta {
		flex: unset !important;
		width: auto !important;
		max-width: none !important;
	}

	.elementor-location-header .pc-branding {
		flex: 1 1 auto !important;
		min-width: 0;
	}

	.elementor-location-header .pc-branding .elementor-widget-theme-site-logo img {
		max-height: 80px;
		max-width: min(240px, 58vw);
	}

	/* Elementor burger menu on tablet/mobile — hide horizontal links, show toggle only */
	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main,
	.elementor-location-header .pc-nav .elementor-nav-menu--main {
		display: none !important;
		visibility: hidden !important;
		position: absolute !important;
		width: 0 !important;
		height: 0 !important;
		overflow: hidden !important;
		pointer-events: none !important;
		clip: rect(0, 0, 0, 0) !important;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown[aria-hidden="true"],
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown[aria-hidden="true"] {
		display: none !important;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown[aria-hidden="false"],
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown[aria-hidden="false"] {
		display: block !important;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle,
	.elementor-location-header .pc-nav .elementor-menu-toggle {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin: 0 !important;
		padding: 0;
		border: 1px solid rgba(255, 255, 255, 0.28);
		border-radius: 8px;
		background: transparent;
		color: var(--pc-white);
	}

	/* Full-width dropdown panel (opens below header bar) */
	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container,
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		position: absolute;
		top: calc(100% + 8px);
		left: auto;
		right: 0;
		width: min(100vw, 320px) !important;
		max-width: calc(100vw - 24px);
		margin-top: 0;
		background: var(--pc-black);
		box-shadow: 0 14px 28px rgba(0, 0, 0, 0.35);
		z-index: 120;
		max-height: calc(100dvh - 160px);
		overflow-y: auto;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-nav-menu,
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown .elementor-nav-menu {
		display: block !important;
		flex-direction: column !important;
		width: 100%;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item,
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown .elementor-item {
		display: block !important;
		width: 100% !important;
		padding: 14px 20px;
		font-family: var(--pc-display);
		font-size: 16px;
		text-transform: uppercase;
		font-weight: 600;
		letter-spacing: 0.05em;
		color: var(--pc-white);
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: normal !important;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item:hover,
	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item:focus,
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown .elementor-item:hover,
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown .elementor-item:focus {
		border-bottom-color: rgba(255, 255, 255, 0.12);
		background: rgba(255, 255, 255, 0.08);
		color: var(--pc-white);
	}
}

/* Tablet: logo left, compact burger right */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-location-header .elementor-widget-nav-menu {
		position: relative;
		width: 44px !important;
		min-width: 44px !important;
		max-width: 44px !important;
		flex-shrink: 0;
		overflow: visible !important;
	}

	.elementor-location-header .e-flexbox-base:has(.elementor-widget-nav-menu),
	.elementor-location-header .e-con:has(.elementor-widget-nav-menu),
	.elementor-location-header .pc-nav {
		flex: 0 0 44px !important;
		width: 44px !important;
		min-width: 44px !important;
		max-width: 44px !important;
		overflow: visible !important;
		justify-content: flex-end !important;
		margin-left: auto;
	}
}

@media (max-width: 767px) {
	/* Mobile only: logo on top, menu toggle centered below, full-width dropdown */
	.elementor-location-header > .elementor-element:nth-child(2),
	.elementor-location-header .pc-header {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 10px !important;
		padding: 10px 16px !important;
		position: relative !important;
		overflow: visible !important;
	}

	.elementor-location-header .pc-header-inner > .e-con-inner {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 10px !important;
		padding: 10px 16px !important;
	}

	.elementor-location-header .pc-header-inner {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 10px !important;
		padding: 10px 16px !important;
	}

	.elementor-location-header > .elementor-element:nth-child(2) > .e-flexbox-base,
	.elementor-location-header > .elementor-element:nth-child(2) > .e-con {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 auto !important;
		margin: 0 !important;
		justify-content: center !important;
		align-items: center !important;
	}

	.elementor-location-header > .elementor-element:nth-child(2) > .e-flexbox-base:has(> .elementor-widget-theme-site-logo),
	.elementor-location-header > .elementor-element:nth-child(2) > .e-con:has(> .elementor-widget-theme-site-logo),
	.elementor-location-header .pc-branding {
		order: 1;
	}

	.elementor-location-header > .elementor-element:nth-child(2) > .e-flexbox-base:has(.elementor-widget-nav-menu),
	.elementor-location-header > .elementor-element:nth-child(2) > .e-con:has(.elementor-widget-nav-menu),
	.elementor-location-header .pc-nav {
		order: 2;
	}

	.elementor-location-header .pc-nav-toggle {
		order: 2;
		display: inline-flex !important;
		margin: 0 auto;
		width: 48px;
		height: 48px;
		position: relative !important;
		left: 50% !important;
		transform: translateX(-50%) !important;
	}

	.elementor-location-header .pc-header-cta {
		display: none !important;
	}

	/* Every wrapper around the nav widget — full width, centered */
	.elementor-location-header .e-flexbox-base:has(.elementor-widget-nav-menu),
	.elementor-location-header .e-con:has(.elementor-widget-nav-menu) {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: 0 0 100% !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		margin: 0 auto !important;
		padding: 0 !important;
		overflow: visible !important;
	}

	.elementor-location-header .elementor-widget-theme-site-logo,
	.elementor-location-header .elementor-widget-theme-site-logo a {
		display: flex !important;
		justify-content: center !important;
		margin: 0 auto !important;
		text-align: center !important;
	}

	.elementor-location-header .elementor-widget-nav-menu {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		margin: 0 auto !important;
		position: relative !important;
		overflow: visible !important;
	}

	/* Never show desktop horizontal links on mobile (prevents vertical letter stack) */
	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main,
	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu,
	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main ul {
		display: none !important;
		visibility: hidden !important;
		position: absolute !important;
		width: 0 !important;
		height: 0 !important;
		overflow: hidden !important;
		pointer-events: none !important;
		clip: rect(0, 0, 0, 0) !important;
	}

	/* Override Elementor's margin-left:auto on toggle */
	.elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle,
	.elementor-location-header .elementor-widget-nav-menu.elementor-nav-menu--toggle .elementor-menu-toggle,
	.elementor-location-header .pc-nav .elementor-menu-toggle {
		display: inline-flex !important;
		align-self: center !important;
		margin: 0 auto !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		position: relative !important;
		left: 50% !important;
		transform: translateX(-50%) !important;
	}

	/* Force logo widget to center on mobile */
	.elementor-location-header .elementor-widget-theme-site-logo {
		display: flex !important;
		justify-content: center !important;
		align-items: center !important;
		width: 100% !important;
	}

	/* Force nav menu widget container to center on mobile */
	.elementor-location-header .elementor-widget-nav-menu {
		display: flex !important;
		justify-content: center !important;
		align-items: center !important;
		width: 100% !important;
	}

	/* Full-width dropdown below header bar, centered links */
	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container,
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		position: absolute !important;
		top: calc(100% + 4px) !important;
		left: 50% !important;
		right: auto !important;
		transform: translateX(-50%) !important;
		width: 100vw !important;
		max-width: 100vw !important;
		margin: 0 !important;
		background: var(--pc-black);
		box-shadow: 0 14px 28px rgba(0, 0, 0, 0.35);
		z-index: 200;
		max-height: calc(100dvh - 180px);
		overflow-y: auto;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-nav-menu,
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown .elementor-nav-menu {
		display: block !important;
		width: 100% !important;
		text-align: center !important;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown li,
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown li {
		display: block !important;
		width: 100% !important;
		text-align: center !important;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item,
	.elementor-location-header .pc-nav .elementor-nav-menu--dropdown .elementor-item {
		display: block !important;
		width: 100% !important;
		padding: 14px 20px !important;
		text-align: center !important;
		font-family: var(--pc-display);
		font-size: 16px !important;
		text-transform: uppercase;
		font-weight: 600;
		letter-spacing: 0.05em;
		color: var(--pc-white);
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: normal !important;
	}

	/* Shortcode / PHP header fallback */
	.pc-header-inner {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 10px !important;
	}

	.pc-branding,
	.pc-branding a,
	.pc-branding .custom-logo-link {
		justify-content: center !important;
		width: 100% !important;
		flex: none !important;
		order: 1;
	}

	.pc-nav-toggle {
		display: inline-flex !important;
		order: 2;
		width: 48px;
		height: 48px;
		align-self: center !important;
		margin: 0 !important;
	}

	.pc-header-cta {
		display: none !important;
	}

	.pc-mobile-nav {
		text-align: center;
	}

	.pc-mobile-nav-list a,
	.pc-mobile-nav .menu a {
		text-align: center !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	/* iPad: slightly larger logo, same burger layout */
	.elementor-location-header .elementor-widget-theme-site-logo img {
		max-height: 96px !important;
		max-width: min(280px, 45vw) !important;
	}
}

@media (max-width: 480px) {
	.elementor-location-header .pc-topbar,
	.elementor-location-header > .elementor-element:first-child:not(:has(.elementor-widget-theme-site-logo)) {
		font-size: 11px;
		padding: 6px 12px !important;
	}

	.elementor-location-header .pc-topbar-emergency,
	.elementor-location-header .pc-topbar a {
		font-size: 11px;
	}

	.elementor-location-header .elementor-widget-theme-site-logo img {
		max-height: 72px !important;
		max-width: min(200px, 62vw) !important;
	}

	.elementor-location-header > .elementor-element:nth-child(2),
	.elementor-location-header .pc-header {
		padding: 6px 12px !important;
	}

	.pc-why-stats {
		grid-template-columns: repeat(2, 1fr);
	}
	.pc-stat-label {
		font-size: 12px;
	}
	.pc-hero-title {
		font-size: clamp(26px, 8.5vw, 34px);
	}
}

/* Shortcode-based header inside Theme Builder */
.elementor-location-header .elementor-widget-shortcode {
	width: 100%;
}
.elementor-location-header .elementor-widget-shortcode > .elementor-widget-container {
	width: 100%;
}

/* Elementor-built header — match Panther nav styling */
.elementor-location-header .pc-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--pc-black);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12);
}
.elementor-location-header > .elementor-element:nth-child(2) {
	background: var(--pc-black) !important;
}
.elementor-location-header .pc-nav .elementor-nav-menu {
	display: flex;
	gap: 32px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.elementor-location-header .pc-nav .elementor-item,
.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item {
	font-family: var(--pc-display);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 20px;
	text-decoration: none;
	color: var(--pc-white);
	padding: 4px 0;
	border-bottom: 3px solid transparent;
}
.elementor-location-header .pc-nav .elementor-item:hover,
.elementor-location-header .pc-nav .elementor-item.elementor-item-active,
.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active {
	border-bottom-color: var(--pc-yellow);
	color: var(--pc-white);
}
.elementor-location-header .pc-branding .elementor-widget-theme-site-logo img {
	max-height: 160px;
	width: auto;
	max-width: min(450px, 47vw);
}
.elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle {
	color: var(--pc-white);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 8px;
	background: transparent;
}
.elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle:hover {
	background: rgba(255, 255, 255, 0.08);
}
.elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle svg,
.elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle i {
	fill: var(--pc-white);
	color: var(--pc-white);
}
.elementor-location-header .pc-topbar .elementor-widget-text-editor {
	color: rgba(255, 255, 255, 0.85);
	font-size: 13.5px;
	margin: 0;
}
.elementor-theme-builder-header .pc-main,
.elementor-theme-builder-footer .pc-main {
	padding: 0;
}

/* Elementor homepage — shortcode wrapper must be full width */
.elementor-page #pc-content,
.elementor-page .pc-main {
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}
.elementor-page .elementor-widget-shortcode,
.elementor-page .elementor-widget-shortcode > .elementor-widget-container,
.elementor-page .elementor-shortcode {
	width: 100%;
	max-width: 100%;
}
.elementor-page .elementor-element.e-con:has(.elementor-widget-shortcode),
.elementor-page .elementor-element.e-con-full:has(.elementor-widget-shortcode) {
	width: 100% !important;
	max-width: 100% !important;
	--width: 100% !important;
}

/* Elementor homepage — Panther section widgets full width */
.elementor-page [class*="elementor-widget-pc_home_"],
.elementor-page [class*="elementor-widget-pc_home_"] > .elementor-widget-container,
.elementor-page .pc-elementor-panther-section,
.elementor-page .pc-elementor-panther-section > .e-con-inner {
	width: 100%;
	max-width: 100%;
}
.elementor-page .pc-elementor-panther-section {
	--width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.elementor-page [class*="elementor-widget-pc_home_"] > .elementor-widget-container {
	padding: 0;
}

/* Elementor Pro Slides / hero — avoid zero-height blank heroes */
.elementor-widget-slides,
.elementor-widget-slides .elementor-slides-wrapper,
.elementor-widget-slides .swiper,
.elementor-widget-slides .swiper-slide {
	min-height: clamp(520px, 85vh, 900px);
}
.elementor-widget-slides .swiper-slide-bg {
	background-size: cover;
	background-position: center;
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.pc-header .pc-nav {
		display: none !important;
	}
	.pc-nav-toggle {
		display: inline-flex;
	}
	.pc-header-cta .pc-btn-call {
		display: none;
	}
	.pc-header-inner {
		flex-direction: row;
		flex-wrap: nowrap;
		justify-content: space-between;
		align-items: center;
		gap: 12px;
		padding-top: 10px;
		padding-bottom: 10px;
	}
	.pc-branding,
	.pc-branding a,
	.pc-branding .custom-logo-link {
		justify-content: flex-start;
		width: auto;
		flex: 1 1 auto;
		min-width: 0;
		order: unset;
	}
	.pc-nav-toggle {
		display: inline-flex;
		order: unset;
		margin-left: auto;
		margin-right: 0;
	}
	.pc-branding img,
	.pc-branding .custom-logo-link img,
	.pc-logo-fallback img,
	.custom-logo {
		max-height: 96px;
		max-width: min(280px, 62vw);
	}
	.pc-header-cta {
		display: none;
	}
	.pc-mobile-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 120;
		max-height: calc(100dvh - 120px);
		overflow-y: auto;
		box-shadow: 0 14px 28px rgba(14, 14, 14, 0.14);
	}
	.pc-mobile-nav ul,
	.pc-mobile-nav .pc-mobile-nav-list,
	.pc-mobile-nav .pc-nav-list,
	.pc-mobile-nav .menu {
		flex-direction: column !important;
	}
	.pc-sticky-call {
		display: flex;
	}
	.pc-topbar-inner {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
		gap: 6px;
		padding-top: 8px;
		padding-bottom: 8px;
	}
	.pc-topbar-left,
	.pc-topbar-right {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		gap: 4px;
		text-align: center;
	}
	.pc-why-inner { grid-template-columns: 1fr; gap: 40px; }
	.pc-service-layout { grid-template-columns: 1fr; }
	.pc-google-reviews-widget { grid-template-columns: 1fr; }
	.pc-benefits-grid { grid-template-columns: 1fr 1fr; }
	.pc-about-inner { grid-template-columns: 1fr; gap: 40px; }
	.pc-about-copy-wrap { padding-right: 0; }
	.pc-about-accent-bar { display: none; }
	.pc-about-visual { min-height: 360px; max-width: 520px; margin: 0 auto; }
	.pc-about-img-main { margin-left: auto; margin-right: 0; }
	.pc-reviews-grid-all,
	.pc-google-reviews-embed .ti-reviews-container-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pc-google-summary { flex-direction: row; flex-wrap: wrap; justify-content: center; text-align: left; }
	.pc-gallery-item,
	.pc-gallery-item--wide { grid-column: span 6; }
}
@media (max-width: 700px) {
	.pc-section { padding: 60px 0; }
	.pc-slide-inner { padding-top: 64px; padding-bottom: 64px; }
	.pc-slider-controls { bottom: 50px; }
	.pc-footer-grid { grid-template-columns: 1fr; gap: 36px; }
	.pc-sticky-call { display: flex; }
	.pc-footer-bottom { padding-bottom: 70px; }
	.pc-branding img,
	.pc-branding .custom-logo-link img,
	.pc-logo-fallback img,
	.custom-logo { max-height: 80px; }
	.pc-btn-call { font-size: 13px; padding: 12px 16px; }
	.pc-gallery-item,
	.pc-gallery-item--wide { grid-column: span 12; }
	.pc-reviews-grid-all,
	.pc-google-reviews-embed .ti-reviews-container-wrapper { grid-template-columns: 1fr; }
	.pc-contact-banner {
		grid-template-columns: 1fr;
	}
	.pc-contact-banner-cta {
		padding: 28px 24px;
	}
	.pc-contact-banner-cta::after {
		display: none;
	}
	.pc-contact-banner-form-wrap {
		padding: 24px;
	}
	.pc-contact-banner-form {
		grid-template-columns: 1fr;
	}
	.pc-benefits-grid { grid-template-columns: 1fr; }
	.pc-about-founder { flex-direction: column; align-items: flex-start; }
	.pc-about-visual { min-height: 300px; }
	.pc-about-img-sub { width: min(70%, 220px); }
}

@media (max-width: 767px) {
	/* Final override: column flex on header-inner + align-items:center centers
	   every direct child (branding row, toggle button). Toggle keeps its own
	   display:flex so its 3 internal bar spans still stack correctly. */
	.pc-header-inner {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
	}
	.pc-branding {
		display: flex !important;
		width: 100% !important;
		justify-content: center !important;
		order: 1 !important;
	}
	.pc-branding a,
	.pc-branding .custom-logo-link {
		display: inline-flex !important;
		align-items: center !important;
	}
	.pc-nav-toggle {
		display: flex !important;
		order: 2 !important;
		align-self: center !important;
		margin: 10px auto 0 !important;
	}
	.pc-nav,
	.pc-header-cta {
		display: none !important;
	}

	/* Elementor page containers — prevent narrow / clipped homepage */
	.elementor-page .elementor-element.e-con,
	.elementor-page .elementor-element.e-con-full,
	.elementor-page .elementor-element.e-flex {
		--width: 100% !important;
		max-width: 100% !important;
	}

	/* Prevent horizontal overflow on mobile - more aggressive */
	.elementor-page,
	.elementor-page .elementor-section,
	.elementor-page .e-con,
	.elementor-page .e-container,
	.pc-hero-slider,
	.pc-section,
	.pc-contact-banner-section,
	.pc-benefits,
	.pc-about {
		overflow-x: hidden !important;
		width: 100% !important;
		max-width: 100vw !important;
		min-width: 0 !important;
	}

	/* Ensure all Elementor containers don't overflow */
	.elementor-page .elementor-element {
		max-width: 100% !important;
	}

	.pc-container {
		padding-left: 16px;
		padding-right: 16px;
	}

	/* Hero */
	.pc-hero-slider {
		min-height: clamp(460px, 80vh, 680px);
	}
	.pc-slide-inner {
		padding-top: 48px;
		padding-bottom: 96px;
	}
	.pc-hero-title {
		font-size: clamp(28px, 9vw, 42px);
		line-height: 1.06;
		margin-bottom: 14px;
	}
	.pc-hero-sub {
		font-size: 16px;
		line-height: 1.55;
		margin-bottom: 22px;
	}
	.pc-hero-actions {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
		width: 100%;
		max-width: 340px;
		margin-left: auto;
		margin-right: auto;
	}
	.pc-hero-actions .pc-btn {
		width: 100%;
		text-align: center;
		box-sizing: border-box;
	}
	.pc-btn-lg {
		padding: 14px 18px;
		font-size: 14px;
	}
	.pc-hero-trust {
		flex-direction: column;
		align-items: center;
		gap: 8px;
		font-size: 13px;
		line-height: 1.45;
		padding: 0 4px;
	}
	.pc-slider-controls {
		bottom: 36px;
		gap: 8px;
	}

	/* Sections */
	.pc-section {
		padding: 48px 0;
	}
	.pc-section-head {
		margin-bottom: 28px;
	}
	.pc-section-title {
		font-size: clamp(24px, 7vw, 34px);
	}
	.pc-section-sub {
		font-size: 16px;
		line-height: 1.55;
	}

	/* Benefits */
	.pc-benefits {
		padding-bottom: 48px;
	}
	.pc-benefits-grid {
		grid-template-columns: 1fr !important;
		gap: 18px;
	}
	.pc-benefit-card-body {
		grid-template-columns: auto 1fr;
		gap: 12px;
		padding: 16px;
	}
	.pc-benefit-chevron-deco {
		display: none;
	}
	.pc-benefit-title {
		font-size: clamp(18px, 5vw, 22px);
	}

	/* Why Us */
	.pc-why-inner {
		gap: 28px;
	}
	.pc-why-stats {
		width: 100%;
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}
	.pc-stat {
		padding: 20px 12px;
	}
	.pc-stat-num {
		font-size: clamp(28px, 8vw, 36px);
	}
	.pc-stat-label {
		font-size: 11px;
		letter-spacing: 0.05em;
		line-height: 1.35;
	}

	/* Services, flat roof, process */
	.pc-services-grid {
		grid-template-columns: 1fr;
	}
	.pc-services-cat {
		font-size: 18px;
		margin-top: 24px;
	}
	.pc-flat-grid,
	.pc-process-grid {
		grid-template-columns: 1fr;
	}

	/* About */
	.pc-about-visual {
		min-height: 260px;
		max-width: 100%;
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		overflow: hidden;
	}
	.pc-about-deco-circle {
		left: -30px;
		width: 140px;
		height: 140px;
	}
	.pc-about-deco-dots {
		width: 72px;
		height: 72px;
		right: 4px;
	}
	.pc-about-img-main {
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
	}
	.pc-about-img-sub {
		width: min(52%, 170px);
		left: 8px;
	}
	.pc-about-lead {
		font-size: 16px;
	}
	.pc-about-founder {
		gap: 12px;
	}

	/* Gallery */
	.pc-gallery-grid {
		gap: 12px;
	}

	/* Reviews */
	.pc-google-reviews-widget {
		display: flex !important;
		flex-direction: column !important;
		width: 100% !important;
	}
	.pc-reviews-carousel {
		gap: 6px;
		width: 100% !important;
		display: flex !important;
	}
	.pc-reviews-carousel-viewport {
		flex: 1 1 auto !important;
		width: auto !important;
		overflow: hidden !important;
		min-width: 0 !important;
	}
	.pc-reviews-carousel-track {
		display: flex !important;
	}
	.pc-google-review-card {
		flex: 0 0 auto !important;
		min-width: 0 !important;
	}
	.pc-reviews-carousel-prev,
	.pc-reviews-carousel-next {
		width: 36px;
		height: 36px;
		flex-shrink: 0;
		padding: 0;
	}

	/* Contact banner */
	.pc-contact-banner-section {
		padding-top: 32px;
		padding-bottom: 32px;
	}
	.pc-contact-banner-cta {
		padding: 24px 20px;
	}
	.pc-contact-banner-form-wrap {
		padding: 20px 16px;
	}

	.pc-sticky-call {
		left: 12px !important;
		right: 12px !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		bottom: max(12px, env(safe-area-inset-bottom, 0px));
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		font-size: clamp(0.875rem, 4.2vw, 1rem);
		letter-spacing: 0.04em;
		padding: 14px 16px;
		white-space: nowrap;
	}
	.pc-sticky-call-text--full {
		display: none !important;
	}
	.pc-sticky-call-text--short {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 0.35em;
		width: 100%;
		margin: 0 !important;
		text-align: center !important;
	}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	html { scroll-behavior: auto; }
}

/* ---------- Elementor editor — homepage section widgets ---------- */
body.elementor-editor-active .pc-sticky-call,
body.elementor-editor-active .pc-elementor-status-bar {
	display: none !important;
}
body.elementor-editor-active .pc-elementor-home-section,
.elementor-editor-preview .pc-elementor-home-section {
	position: relative;
}
body.elementor-editor-active .pc-elementor-home-section.is-elementor-selected,
.elementor-editor-preview .pc-elementor-home-section.elementor-element-edit-mode {
	outline: 2px solid var(--e-a-color-primary, #93003f);
	outline-offset: -2px;
}
body.elementor-editor-active .pc-hero-slider::after,
.elementor-editor-preview .pc-hero-slider::after {
	animation: none !important;
}

/* ---------- Elementor About Us page ---------- */
.elementor .pc-about-page-hero,
.elementor .pc-about-page-story,
.elementor .pc-about-page-stats,
.elementor .pc-about-page-services,
.elementor .pc-about-page-why,
.elementor .pc-about-page-cta,
.elementor .pc-about-page-hero.e-con,
.elementor .pc-about-page-story.e-con,
.elementor .pc-about-page-stats.e-con,
.elementor .pc-about-page-services.e-con,
.elementor .pc-about-page-why.e-con,
.elementor .pc-about-page-cta.e-con {
	width: 100% !important;
	max-width: 100% !important;
	--width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.elementor .pc-about-page-inner.e-con-boxed,
.elementor .pc-about-page-inner.pc-container {
	max-width: 100% !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	--width: 100% !important;
}

.elementor .pc-about-page-inner > .e-con-inner,
.elementor .pc-about-page-hero-inner > .e-con-inner,
.elementor .pc-about-page-story-inner > .e-con-inner,
.elementor .pc-about-page-stats-inner > .e-con-inner,
.elementor .pc-about-page-services-inner > .e-con-inner,
.elementor .pc-about-page-why-inner > .e-con-inner,
.elementor .pc-about-page-cta .pc-cta-band-inner > .e-con-inner {
	display: flex !important;
	flex-wrap: wrap;
	width: 100% !important;
	max-width: var(--pc-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 24px !important;
	padding-right: 24px !important;
	box-sizing: border-box;
}

.elementor .pc-about-page-hero-inner > .e-con-inner {
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;
	padding-top: 96px !important;
	padding-bottom: 96px !important;
}

.elementor .pc-about-page-story-inner > .e-con-inner {
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 48px !important;
	padding-top: 80px !important;
	padding-bottom: 80px !important;
}

.elementor .pc-about-page-stats-inner > .e-con-inner {
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 24px !important;
	padding-top: 48px !important;
	padding-bottom: 48px !important;
}

.elementor .pc-about-page-services-inner > .e-con-inner {
	flex-direction: column !important;
	align-items: stretch !important;
	padding-top: 80px !important;
	padding-bottom: 80px !important;
	gap: 24px !important;
}

.elementor .pc-about-page-why-inner > .e-con-inner {
	flex-direction: column !important;
	align-items: center !important;
	padding-top: 80px !important;
	padding-bottom: 80px !important;
	gap: 16px !important;
}

.elementor .pc-about-page-cta .pc-cta-band-inner > .e-con-inner {
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 20px !important;
	padding-top: 56px !important;
	padding-bottom: 56px !important;
}

@media (min-width: 768px) {
	.elementor .pc-about-page-story-copy {
		flex: 1 1 52% !important;
		width: 52% !important;
		max-width: 52% !important;
		min-width: 0 !important;
		--width: 52% !important;
	}
	.elementor .pc-about-page-story-media {
		flex: 1 1 42% !important;
		width: 42% !important;
		max-width: 42% !important;
		min-width: 0 !important;
		--width: 42% !important;
	}
	.elementor .pc-about-page-services-grid > .e-con-inner {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: 20px !important;
		width: 100% !important;
	}
	.elementor .pc-about-page-services-grid > .e-con-inner > .e-con,
	.elementor .pc-about-page-service-card {
		flex: 1 1 calc(25% - 20px) !important;
		width: calc(25% - 20px) !important;
		max-width: calc(25% - 15px) !important;
		min-width: 220px !important;
		--width: auto !important;
	}
	.elementor .pc-about-page-stat {
		flex: 1 1 0 !important;
		min-width: 140px !important;
	}
}

.pc-about-page-hero-title {
	font-family: var(--pc-display);
	font-size: clamp(36px, 5.5vw, 64px);
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1.05;
	margin: 8px 0 12px;
	word-break: normal;
	overflow-wrap: normal;
}
.pc-about-page-hero-sub {
	font-family: var(--pc-display);
	font-size: clamp(20px, 2.6vw, 30px);
	font-weight: 600;
	text-transform: uppercase;
	line-height: 1.2;
	margin: 0 0 18px;
}
.pc-about-page-hero-lead {
	max-width: 640px;
	font-size: 17px;
	line-height: 1.6;
	margin-bottom: 28px;
}
.pc-about-page-stat {
	flex: 1 1 160px;
	min-width: 140px;
	text-align: center;
}
.pc-about-page-stat-num {
	font-family: var(--pc-display);
	font-size: clamp(36px, 4vw, 48px);
	font-weight: 700;
	margin: 0;
	line-height: 1;
}
.pc-about-page-stat-label {
	font-family: var(--pc-display);
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 8px 0 0;
}
.pc-about-page-service-title {
	font-family: var(--pc-display);
	font-size: 18px;
	font-weight: 700;
	text-transform: uppercase;
	margin: 0 0 10px;
}
.pc-about-page-checklist .elementor-icon-list-icon {
	color: var(--pc-yellow);
}
.pc-about-page-checklist .elementor-icon-list-text {
	color: #333;
}
.pc-about-page-story-img img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--pc-radius);
	object-fit: cover;
}

@media (max-width: 1024px) {
	.elementor .pc-about-page-services-grid > .e-con-inner > .e-con,
	.elementor .pc-about-page-service-card {
		flex: 1 1 calc(50% - 16px) !important;
		width: calc(50% - 16px) !important;
		max-width: calc(50% - 10px) !important;
	}
}

@media (max-width: 767px) {
	.elementor .pc-about-page-hero-inner > .e-con-inner {
		padding-top: 64px !important;
		padding-bottom: 64px !important;
	}
	.elementor .pc-about-page-story-inner > .e-con-inner,
	.elementor .pc-about-page-stats-inner > .e-con-inner,
	.elementor .pc-about-page-cta .pc-cta-band-inner > .e-con-inner {
		flex-direction: column !important;
		align-items: stretch !important;
	}
	.elementor .pc-about-page-story-copy,
	.elementor .pc-about-page-story-media {
		width: 100% !important;
		max-width: 100% !important;
		flex: 1 1 100% !important;
		--width: 100% !important;
	}
	.elementor .pc-about-page-services-grid > .e-con-inner > .e-con,
	.elementor .pc-about-page-service-card {
		flex: 1 1 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	.elementor .pc-about-page-hero-actions {
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100%;
	}
	.elementor .pc-about-page-hero-actions .elementor-button {
		width: 100%;
		justify-content: center;
	}
}
