/*
 * Utah Basement Finishing - Main Stylesheet
 * Premium custom theme styles
 */

/* Google Fonts Import */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap');

/* CSS Custom Properties - Brand System */
:root {
  /* Brand Colors */
  --primary-orange: #FF9029;
  --primary-orange-hover: #E07A1F;
  --accent-green: #33843F;
  --text-dark: #333333;
  --pure-white: #FFFFFF;
  --dark-section: #1a1a1a;
  --dark-section-alt: #222222;
  
  /* Extended Palette */
  --gray-50: #f9fafb;
  --gray-100: #f3f4f6;
  --gray-200: #e5e7eb;
  --gray-300: #d1d5db;
  --gray-400: #9ca3af;
  --gray-500: #6b7280;
  --gray-600: #4b5563;
  --gray-700: #374151;
  --gray-800: #1f2937;
  --gray-900: #111827;
  
  /* Utah-inspired Accent Colors */
  --utah-sky: #87CEEB;
  --utah-stone: #8B7D6B;
  --utah-sunset: #FF7F50;
  
  /* Typography */
  --font-display: 'Fraunces', serif;
  --font-body: 'DM Sans', sans-serif;
  
  /* Spacing Scale */
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --space-4xl: 6rem;
  --space-5xl: 8rem;
  
  /* Container Widths */
  --container-sm: 640px;
  --container-md: 768px;
  --container-lg: 1024px;
  --container-xl: 1280px;
  --container-2xl: 1536px;
  
  /* Transitions */
  --transition-fast: 0.15s ease-out;
  --transition-normal: 0.3s ease-out;
  --transition-slow: 0.5s ease-out;
  
  /* Shadows */
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  
  /* Border Radius */
  --radius-sm: 0.25rem;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.75rem;
  --radius-2xl: 1rem;
}

/* Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-dark);
  background-color: var(--pure-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Typography System */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.2;
  color: var(--text-dark);
  margin-bottom: var(--space-md);
}

h1 {
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 700;
  letter-spacing: -0.02em;
}

h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 600;
  letter-spacing: -0.01em;
}

h3 {
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 600;
}

h4 {
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-weight: 500;
}

h5 {
  font-size: 1.25rem;
  font-weight: 500;
}

h6 {
  font-size: 1.125rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

p {
  margin-bottom: var(--space-lg);
  color: var(--gray-700);
  font-size: 1.125rem;
}

.lead-text {
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--gray-600);
  line-height: 1.6;
}

.small-text {
  font-size: 0.875rem;
  color: var(--gray-500);
}

/* Links */
a {
  color: var(--primary-orange);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--primary-orange-hover);
}

/* Container System */
.container {
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--space-md);
}

.container-sm { max-width: var(--container-sm); }
.container-md { max-width: var(--container-md); }
.container-lg { max-width: var(--container-lg); }
.container-xl { max-width: var(--container-xl); }
.container-2xl { max-width: var(--container-2xl); }

/* Button System */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-sm) var(--space-xl);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  text-decoration: none;
  border: 2px solid transparent;
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: none;
  position: relative;
  overflow: hidden;
}

.btn-primary {
  background-color: var(--primary-orange);
  color: var(--pure-white);
  border-color: var(--primary-orange);
}

.btn-primary:hover {
  background-color: var(--primary-orange-hover);
  border-color: var(--primary-orange-hover);
  color: var(--pure-white);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

.btn-secondary {
  background-color: var(--accent-green);
  color: var(--pure-white);
  border-color: var(--accent-green);
}

.btn-secondary:hover {
  background-color: #2a6f33;
  border-color: #2a6f33;
  color: var(--pure-white);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

.btn-outline {
  background-color: transparent;
  color: var(--primary-orange);
  border-color: var(--primary-orange);
}

.btn-outline:hover {
  background-color: var(--primary-orange);
  color: var(--pure-white);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

.btn-large {
  padding: var(--space-md) var(--space-2xl);
  font-size: 1.125rem;
  border-radius: var(--radius-xl);
}

/* Header Styles */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--gray-200);
  transition: none;
}


@media (max-width: 1024px) {

}

/* .header-top { */
/*   background-color: var(--dark-section); */
/*   color: var(--pure-white); */
/*   padding: var(--space-xs) 0; */
/*   font-size: 0.875rem; */
/* } */

/* .header-top .container { */
/*   display: flex; */
/*   justify-content: space-between; */
/*   align-items: center; */
/* } */

.header-contact {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
}

.phone-number {
  font-weight: 600;
  color: var(--primary-orange);
}

.business-hours {
  color: var(--gray-300);
}

.header-main {
  padding: 14px 0;
}

.header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.site-logo {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--text-dark);
  text-decoration: none;
  letter-spacing: -0.02em;
}

.site-logo:hover {
  color: var(--primary-orange);
}

.main-navigation ul {
  list-style: none;
  display: flex;
  align-items: center;
  gap: var(--space-xl);
}

.main-navigation a {
  font-weight: 500;
  color: var(--text-dark);
  text-decoration: none;
  transition: color var(--transition-fast);
  position: relative;
}

.main-navigation a:hover {
  color: var(--primary-orange);
}

.main-navigation a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background-color: var(--primary-orange);
  transition: width var(--transition-normal);
}

.main-navigation a:hover::after {
  width: 100%;
}

.header-cta {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

/* Mobile Navigation */
.mobile-menu-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--space-sm);
}

.mobile-menu-toggle span {
  display: block;
  width: 25px;
  height: 3px;
  background-color: var(--text-dark);
  margin: 5px 0;
  transition: var(--transition-fast);
}

.mobile-nav {
  display: none;
  position: fixed;
  top: 0;
  right: -100%;
  width: 300px;
  height: 100vh;
  background-color: var(--pure-white);
  box-shadow: var(--shadow-xl);
  z-index: 1001;
  transition: right var(--transition-normal);
  overflow-y: auto;
}

.mobile-nav.active {
  right: 0;
}

.mobile-nav-content {
  padding: var(--space-2xl) var(--space-lg);
}

.mobile-nav ul {
  list-style: none;
}

.mobile-nav li {
  margin-bottom: var(--space-lg);
}

.mobile-nav a {
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--text-dark);
  text-decoration: none;
}

.mobile-nav-close {
  position: absolute;
  top: var(--space-lg);
  right: var(--space-lg);
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
}

/* Mobile Navigation Contact Section */
.mobile-contact {
  margin-top: var(--space-2xl);
  padding-top: var(--space-xl);
  border-top: 1px solid var(--gray-200);
}

.mobile-phone {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--primary-orange);
  text-decoration: none;
  margin-bottom: var(--space-lg);
}

.mobile-phone:hover {
  color: var(--accent-green);
}

.mobile-contact .btn {
  width: 100%;
  margin-bottom: var(--space-lg);
}

.mobile-hours {
  padding-top: var(--space-md);
  border-top: 1px solid var(--gray-200);
  font-size: 0.875rem;
  color: var(--gray-600);
}

.mobile-hours strong {
  color: var(--text-dark);
}

/* Hero Section */
.hero-section {
  min-height: 100vh;
  display: flex;
  align-items: center;
  background: linear-gradient(135deg, var(--dark-section) 0%, var(--dark-section-alt) 100%);
  color: var(--pure-white);
  position: relative;
  overflow: hidden;
}

.hero-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: 
    radial-gradient(circle at 20% 80%, rgba(255, 144, 41, 0.1) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(51, 132, 63, 0.1) 0%, transparent 50%);
  opacity: 0.7;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 800px;
}

.hero-title {
  color: var(--pure-white);
  margin-bottom: var(--space-lg);
  font-size: clamp(3rem, 6vw, 5rem);
}

.hero-subtitle {
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  color: var(--gray-300);
  margin-bottom: var(--space-2xl);
  font-weight: 400;
}

.hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-lg);
  align-items: center;
}

.hero-phone {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--primary-orange);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

/* Trust Bar */
.trust-bar {
  background-color: var(--gray-50);
  padding: var(--space-xl) 0;
  border-bottom: 1px solid var(--gray-200);
}

.trust-items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-xl);
  text-align: center;
}

.trust-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
}

.trust-number {
  font-family: var(--font-display);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--primary-orange);
  line-height: 1;
}

.trust-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--gray-600);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Section Spacing */
.section {
  padding: 4rem 0;
}

.section-sm {
  padding: var(--space-3xl) 0;
}

.section-header {
  text-align: center;
  margin-bottom: var(--space-4xl);
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.section-title {
  margin-bottom: var(--space-lg);
}

.section-subtitle {
  font-size: 1.25rem;
  color: var(--gray-600);
}

/* Grid Systems */
.grid {
  display: grid;
  gap: var(--space-xl);
}

.grid-2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

/* Card Component */
.card {
  background-color: var(--pure-white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  transition: none;
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-xl);
}

.card-image {
  width: 100%;
  height: 200px;
  object-fit: cover;
}

.card-content {
  padding: var(--space-xl);
}

.card-title {
  font-size: 1.25rem;
  margin-bottom: var(--space-sm);
}

.card-text {
  color: var(--gray-600);
  margin-bottom: var(--space-lg);
}

/* CTA Banner */
.cta-banner {
  background: linear-gradient(135deg, var(--primary-orange) 0%, var(--primary-orange-hover) 100%);
  color: var(--pure-white);
  text-align: center;
  padding: var(--space-4xl) 0;
  position: relative;
  overflow: hidden;
}

.cta-banner::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: 
    radial-gradient(circle at 30% 70%, rgba(255, 255, 255, 0.1) 0%, transparent 50%);
  opacity: 0.5;
}

.cta-content {
  position: relative;
  z-index: 2;
}

.cta-title {
  color: var(--pure-white);
  margin-bottom: var(--space-lg);
}

.cta-text {
  font-size: 1.25rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: var(--space-xl);
}

/* Footer */
.site-footer {
  background-color: var(--dark-section);
  color: var(--pure-white);
  padding: var(--space-4xl) 0 var(--space-xl) 0;
}

.footer-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--space-2xl);
  margin-bottom: var(--space-2xl);
}

.footer-section h3 {
  color: var(--pure-white);
  margin-bottom: var(--space-lg);
  font-size: 1.25rem;
}

.footer-section ul {
  list-style: none;
}

.footer-section li {
  margin-bottom: var(--space-sm);
}

.footer-section a {
  color: var(--gray-300);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.footer-section a:hover {
  color: var(--primary-orange);
}

.footer-bottom {
  border-top: 1px solid var(--gray-700);
  padding-top: var(--space-lg);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-md);
}

.footer-copyright {
  color: var(--gray-400);
  }

.footer-badges {
  display: flex;
  gap: var(--space-md);
  align-items: center;
}

.footer-badge {
  background-color: var(--gray-700);
  color: var(--pure-white);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-md);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .main-navigation {
    display: none;
  }
  
  .mobile-menu-toggle {
    display: block;
  }
  
  .mobile-nav {
    display: block;
  }
  
  .hero-cta {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .grid-3 {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  }
  
  .grid-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  /* Mobile Header - Clean layout with just logo + hamburger */
  .header-cta .phone-cta,
  .header-cta .btn {
    display: none; /* Hide phone and quote button from header on mobile */
  }
  
  .site-logo {
    font-size: 1.2rem; /* Smaller logo on mobile */
  }
  
  .header-content {
    justify-content: space-between; /* Logo left, hamburger right */
  }
  
  /* Mobile Hero Adjustments */
  .hero-section {
    min-height: 70vh; /* Reduce from 80vh to 70vh on mobile */
    padding: var(--space-3xl) 0 var(--space-2xl) 0; /* Less padding below */
  }
  
  .hero-title {
    font-size: clamp(1.75rem, 6vw, 2.5rem); /* Smaller hero title on mobile */
    margin-bottom: var(--space-md);
  }
  
  .hero-subtitle {
    font-size: 1rem; /* Smaller subtitle */
    margin-bottom: var(--space-lg);
  }
  
  .hero-cta {
    flex-direction: column;
    gap: var(--space-md);
    width: 100%;
  }
  
  .hero-cta .btn {
    width: 100%; /* Full-width buttons on mobile */
    justify-content: center;
  }
  
  /* Section Spacing */
  .section {
    padding: var(--space-3xl) 0; /* Reduced from --space-5xl */
  }
  
  /* Card Grid Responsive - Services: 2x3 on tablet, 1 column on mobile */
  .services-grid.grid-3 {
    grid-template-columns: repeat(2, 1fr); /* 2 columns on tablet */
  }
  
  /* General Grid Adjustments */
  .grid-2,
  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr; /* Single column on mobile */
    gap: var(--space-lg);
  }
  
  /* Footer */
  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }
  
  .footer-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }
}

@media (max-width: 640px) {
  /* Ensure single column layout on small mobile */
  .services-grid.grid-3,
  .grid-2,
  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr; /* Force single column */
  }
}

@media (max-width: 480px) {
  .container {
    padding: 0 1rem; /* At least 1rem padding on sides */
  }
  
  .btn-large {
    width: 100%;
    justify-content: center;
  }
  
  .hero-cta {
    width: 100%;
  }
  
  .hero-cta .btn {
    width: 100%;
  }
  
  /* Even tighter spacing on very small screens */
  .section {
    padding: var(--space-2xl) 0;
  }
  
  .hero-section {
    padding: var(--space-2xl) 0 var(--space-xl) 0;
  }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Focus States */
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--primary-orange);
  outline-offset: 2px;
}

/* Print Styles */
@media print {
  .site-header,
  .mobile-nav,
  .cta-banner,
  .site-footer {
    display: none !important;
  }
  
  body {
    color: black !important;
    background: white !important;
  }
}
/* Service Card Images */
.service-card-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

.service-card .service-icon {
    display: none;
}

.service-card {
    padding: 0 !important;
    overflow: hidden;
}

.service-card .service-content {
    padding: var(--space-xl);
}

/* Featured Project Cards */
.project-image {
    width: 100%;
    height: 250px;
    object-fit: cover;
    display: block;
}

.project-card {
    overflow: hidden;
}

.project-image-container {
    position: relative;
    overflow: hidden;
}

.project-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
    padding: var(--space-xl);
    color: white;
}

/* ============================================

/* ============================================
   COMPREHENSIVE CONTENT STYLES
   For all page content areas (service-main, location-intro, page-content-wrapper, etc.)
   ============================================ */

/* Universal content container selectors */
.service-main,
.location-intro,
.page-content-wrapper,
.pillar-content,
.cost-guide-content,
.entry-content {
    font-size: 1.1rem;
    line-height: 1.75;
    color: var(--gray-700);
}

/* Headings inside content */
.service-main h2,
.location-intro h2,
.page-content-wrapper h2,
.pillar-content h2,
.cost-guide-content h2,
.entry-content h2 {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 600;
    color: var(--text-dark);
    margin-top: var(--space-2xl);
    margin-bottom: var(--space-lg);
    line-height: 1.3;
}

.service-main h3,
.location-intro h3,
.page-content-wrapper h3,
.pillar-content h3,
.cost-guide-content h3,
.entry-content h3 {
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    font-weight: 600;
    color: var(--text-dark);
    margin-top: var(--space-xl);
    margin-bottom: var(--space-md);
    line-height: 1.3;
}

.service-main h4,
.location-intro h4,
.page-content-wrapper h4,
.pillar-content h4,
.cost-guide-content h4,
.entry-content h4 {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-top: var(--space-xl);
    margin-bottom: var(--space-sm);
}

/* Paragraphs */
.service-main p,
.location-intro p,
.page-content-wrapper p,
.pillar-content p,
.cost-guide-content p,
.entry-content p {
    margin-bottom: var(--space-lg);
    line-height: 1.75;
    color: var(--gray-700);
    font-size: 1.1rem;
}

/* Links inside content */
.service-main a,
.location-intro a,
.page-content-wrapper a,
.pillar-content a,
.cost-guide-content a,
.entry-content a {
    color: var(--primary-orange);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: all var(--transition-fast);
}

.service-main a:hover,
.location-intro a:hover,
.page-content-wrapper a:hover,
.pillar-content a:hover,
.cost-guide-content a:hover,
.entry-content a:hover {
    color: var(--primary-orange-hover);
    border-bottom-color: var(--primary-orange-hover);
}

/* Unordered & Ordered Lists */
.service-main ul,
.location-intro ul,
.page-content-wrapper ul,
.pillar-content ul,
.cost-guide-content ul,
.entry-content ul {
    margin: 0 0 var(--space-lg) 0;
    padding-left: var(--space-xl);
    list-style: disc;
}

.service-main ol,
.location-intro ol,
.page-content-wrapper ol,
.pillar-content ol,
.cost-guide-content ol,
.entry-content ol {
    margin: 0 0 var(--space-lg) 0;
    padding-left: var(--space-xl);
    list-style: decimal;
}

.service-main li,
.location-intro li,
.page-content-wrapper li,
.pillar-content li,
.cost-guide-content li,
.entry-content li {
    margin-bottom: var(--space-sm);
    line-height: 1.7;
    color: var(--gray-700);
    font-size: 1.1rem;
}

.service-main ul ul,
.service-main ol ol,
.entry-content ul ul,
.entry-content ol ol {
    margin-top: var(--space-sm);
    margin-bottom: 0;
}

/* Bold / Strong */
.service-main strong,
.location-intro strong,
.page-content-wrapper strong,
.pillar-content strong,
.cost-guide-content strong,
.entry-content strong {
    font-weight: 600;
    color: var(--text-dark);
}

/* Images */
.service-main img,
.location-intro img,
.page-content-wrapper img,
.pillar-content img,
.cost-guide-content img,
.entry-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    margin: var(--space-xl) 0;
}

/* Tables */
.service-main table,
.location-intro table,
.page-content-wrapper table,
.pillar-content table,
.cost-guide-content table,
.entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin: var(--space-xl) 0;
    font-size: 1rem;
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid var(--gray-200);
}

.service-main th,
.location-intro th,
.page-content-wrapper th,
.pillar-content th,
.cost-guide-content th,
.entry-content th {
    background: var(--dark-section);
    color: var(--pure-white);
    font-weight: 600;
    text-align: left;
    padding: var(--space-md) var(--space-lg);
    font-size: 0.95rem;
}

.service-main td,
.location-intro td,
.page-content-wrapper td,
.pillar-content td,
.cost-guide-content td,
.entry-content td {
    padding: var(--space-md) var(--space-lg);
    border-bottom: 1px solid var(--gray-200);
    color: var(--gray-700);
}

.service-main tr:nth-child(even),
.location-intro tr:nth-child(even),
.page-content-wrapper tr:nth-child(even),
.pillar-content tr:nth-child(even),
.cost-guide-content tr:nth-child(even),
.entry-content tr:nth-child(even) {
    background: var(--gray-50);
}

.service-main tr:hover,
.location-intro tr:hover,
.entry-content tr:hover {
    background: rgba(255,144,41,0.05);
}

/* Table responsive wrapper */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: var(--space-xl) 0;
}

/* Blockquotes */
.service-main blockquote,
.location-intro blockquote,
.page-content-wrapper blockquote,
.pillar-content blockquote,
.cost-guide-content blockquote,
.entry-content blockquote {
    background: var(--gray-50);
    border-left: 4px solid var(--primary-orange);
    padding: var(--space-lg) var(--space-xl);
    margin: var(--space-xl) 0;
    border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
    font-style: italic;
    color: var(--gray-600);
    font-size: 1.1rem;
    line-height: 1.7;
}

.service-main blockquote p:last-child,
.entry-content blockquote p:last-child {
    margin-bottom: 0;
}

/* HR / Dividers */
.service-main hr,
.entry-content hr {
    border: none;
    border-top: 2px solid var(--gray-200);
    margin: var(--space-2xl) 0;
}

/* Code blocks */
.service-main code,
.entry-content code {
    background: var(--gray-100);
    padding: 0.15em 0.4em;
    border-radius: var(--radius-sm);
    font-size: 0.9em;
    color: var(--primary-orange);
}

.service-main pre,
.entry-content pre {
    background: var(--dark-section);
    color: var(--gray-300);
    padding: var(--space-xl);
    border-radius: var(--radius-lg);
    overflow-x: auto;
    margin: var(--space-xl) 0;
    font-size: 0.9rem;
    line-height: 1.6;
}

.service-main pre code,
.entry-content pre code {
    background: none;
    color: inherit;
    padding: 0;
}

/* FAQ Accordions (standalone, not in service template) */
.faq-list {
    max-width: 800px;
    margin: 0 auto;
}

.faq-item {
    border-bottom: 1px solid var(--gray-200);
}

.faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: var(--space-lg) 0;
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--text-dark);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-md);
    transition: color var(--transition-fast);
}

.faq-question:hover {
    color: var(--primary-orange);
}

.faq-question::after {
    content: '+';
    font-size: 1.5rem;
    font-weight: 400;
    flex-shrink: 0;
    transition: transform var(--transition-normal);
}

.faq-question[aria-expanded="true"]::after {
    content: '−';
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.3s ease;
}

.faq-answer.open {
    max-height: 500px;
    padding-bottom: var(--space-lg);
}

/* ============================================
   UNIVERSAL HERO STYLES
   ============================================ */
.service-hero {
    position: relative;
    padding: 160px 0 100px;
    background-size: cover;
    background-position: center;
    background-color: #1a1a1a;
    overflow: visible;
}
.hero-overlay,
.service-hero__overlay {
    position: absolute;
    inset: 0;
    background: rgba(26,26,26,0.78);
}
.hero-content,
.service-hero__content {
    position: relative;
    z-index: 1;
}
.breadcrumbs {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.6);
    margin-bottom: 16px;
}
.breadcrumbs a { color: rgba(255,255,255,0.6); text-decoration: none; }
.breadcrumbs a:hover { color: var(--primary-orange); }
.breadcrumbs span, .breadcrumbs__sep { margin: 0 6px; }
.service-hero h1,
.service-hero__title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    color: #fff;
    margin-bottom: 16px;
    max-width: 700px;
}
.hero-subtitle,
.service-hero__subtitle {
    font-size: 1.15rem;
    color: rgba(255,255,255,0.8);
    max-width: 600px;
    line-height: 1.6;
    margin-bottom: 28px;
}
.service-hero__cta {
    display: flex;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 24px;
    padding-bottom: 4px;
}
.service-hero__phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    font-size: 1.05rem;
    font-weight: 600;
    text-decoration: none;
    padding: 12px 28px;
    border: 2px solid rgba(255,255,255,0.4);
    border-radius: 8px;
    transition: background 0.2s;
}
.service-hero__phone:hover {
    background: rgba(255,255,255,0.15);
}
.service-hero__phone:active {
    background: rgba(255,255,255,0.2);
}
.btn-large { padding: 14px 32px !important; font-size: 1.05rem !important; }

/* Page hero aliases (for templates using .page-hero classes) */
.page-hero {
    position: relative;
    padding: 160px 0 100px;
    background-size: cover;
    background-position: center;
    background-color: #1a1a1a;
    overflow: visible;
}
.page-hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(26,26,26,0.78);
}
.page-hero-content {
    position: relative;
    z-index: 1;
}
.page-hero-breadcrumbs {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.6);
    margin-bottom: 16px;
}
.page-hero-breadcrumbs a {
    color: rgba(255,255,255,0.6);
    text-decoration: none;
}
.page-hero-breadcrumbs a:hover { color: var(--primary-orange); }
.page-hero-breadcrumbs span { margin: 0 6px; }
.page-hero h1 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    color: #fff;
    margin-bottom: 16px;
    max-width: 700px;
}
.page-hero-subtitle {
    font-size: 1.15rem;
    color: rgba(255,255,255,0.8);
    max-width: 600px;
    line-height: 1.6;
    margin-bottom: 28px;
}
.page-hero-actions {
    display: flex;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 24px;
    padding-bottom: 4px;
}
.page-hero-phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    font-size: 1.05rem;
    font-weight: 600;
    text-decoration: none;
    padding: 12px 28px;
    border: 2px solid rgba(255,255,255,0.4);
    border-radius: 8px;
    transition: background 0.2s;
}
.page-hero-phone:hover {
    background: rgba(255,255,255,0.15);
}
.page-hero-phone:active {
    background: rgba(255,255,255,0.2);
}
.btn-outline-light {
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.4);
    padding: 12px 28px;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s;
    font-size: 1rem;
}
.btn-outline-light:hover {
    background: rgba(255,255,255,0.15);
}

@media (max-width: 768px) {
    .service-hero { padding: 120px 0 80px; overflow: visible; }
    .service-hero h1, .service-hero__title { font-size: 2rem; }
    .hero-subtitle, .service-hero__subtitle { font-size: 1rem; }
    .service-hero__cta {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }
    .service-hero__cta .btn,
    .service-hero__cta .service-hero__phone {
        width: 100%;
        justify-content: center;
        text-align: center;
        box-sizing: border-box;
    }
    .page-hero { padding: 120px 0 80px; }
    .page-hero h1 { font-size: 2rem; }
    .page-hero-subtitle { font-size: 1rem; }
    .page-hero-actions {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }
}


/* ============================================
   SIDEBAR STYLES (shared)
   ============================================ */

.service-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--space-3xl);
    align-items: start;
}

.service-main {
    min-width: 0;
}

.sidebar-sticky {
    position: sticky;
    top: 100px;
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.sidebar-card {
    background: var(--pure-white);
    border-radius: var(--radius-xl);
    padding: var(--space-xl);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-200);
}

.sidebar-card h3,
.sidebar-card h4 {
    font-size: 1.25rem;
    margin-bottom: var(--space-md);
}

.sidebar-card p {
    font-size: 1rem;
    color: var(--gray-600);
}

.sidebar-card--cta {
    background: linear-gradient(135deg, var(--dark-section) 0%, #2a2a2a 100%);
    border: none;
    color: var(--pure-white);
}

.sidebar-card--cta h3 {
    color: var(--pure-white);
}

.sidebar-card--cta p {
    color: rgba(255,255,255,0.8);
}

.sidebar-card--phone {
    text-align: center;
    background: var(--gray-50);
}

.sidebar-card__label {
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--gray-500) !important;
    margin-bottom: var(--space-sm) !important;
}

.sidebar-card__phone-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary-orange);
    text-decoration: none;
    border-bottom: none !important;
    transition: color var(--transition-fast);
}

.sidebar-card__phone-link:hover {
    color: var(--accent-green);
    border-bottom: none !important;
}

/* ============================================
   MOBILE RESPONSIVE FOR CONTENT
   ============================================ */

@media (max-width: 1024px) {
    .service-layout {
        grid-template-columns: 1fr;
    }
    
    .sidebar-sticky {
        position: static;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    }
}

@media (max-width: 768px) {
    .service-hero {
        min-height: 400px;
    }
    
    .service-hero__content {
        padding: var(--space-4xl) 0 var(--space-2xl);
    }
    
    .service-hero__cta {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .sidebar-sticky {
        grid-template-columns: 1fr;
    }
    
    /* Make tables scroll horizontally on mobile */
    .service-main,
    .location-intro,
    .page-content-wrapper,
    .pillar-content,
    .cost-guide-content,
    .entry-content {
        overflow-wrap: break-word;
        word-wrap: break-word;
    }
    
    .service-main table,
    .location-intro table,
    .entry-content table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
    }
    
    .service-main img,
    .entry-content img {
        margin: var(--space-md) 0;
    }
}

/* ============================================
   DROPDOWN NAV STYLES
   ============================================ */

.has-dropdown {
    position: relative;
}

.dropdown {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: var(--pure-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xl);
    border: 1px solid var(--gray-200);
    padding: var(--space-md) 0;
    min-width: 220px;
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-fast);
    z-index: 100;
}

.has-dropdown:hover .dropdown {
    opacity: 1;
    visibility: visible;
}

.dropdown a {
    display: block;
    padding: var(--space-sm) var(--space-lg);
    color: var(--text-dark);
    font-size: 0.95rem;
    white-space: nowrap;
}

.dropdown a:hover {
    background: var(--gray-50);
    color: var(--primary-orange);
}

.dropdown a::after {
    display: none;
}


/* ============================================
   CATCH-ALL CONTENT STYLES
   Covers blog-main, pillar-main, and any wrapper
   that was missed in the original content styles.
   ============================================ */

/* Add missing wrappers to content typography */
.blog-main,
.pillar-main,
.page-body,
.quote-form-container {
    font-size: 1.1rem;
    line-height: 1.75;
    color: var(--gray-700);
}

.blog-main h2, .pillar-main h2, .page-body h2 {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 600;
    color: var(--text-dark);
    margin-top: 2rem;
    margin-bottom: 1rem;
    line-height: 1.3;
}

.blog-main h3, .pillar-main h3, .page-body h3 {
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    font-weight: 600;
    color: var(--text-dark);
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
    line-height: 1.3;
}

.blog-main h4, .pillar-main h4, .page-body h4 {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
}

.blog-main p, .pillar-main p, .page-body p {
    margin-bottom: 1.25rem;
    line-height: 1.75;
    color: var(--gray-700);
}

.blog-main a, .pillar-main a, .page-body a {
    color: var(--primary-orange);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: all 0.2s;
}
.blog-main a:hover, .pillar-main a:hover, .page-body a:hover {
    color: var(--primary-orange-hover);
    border-bottom-color: var(--primary-orange-hover);
}

.blog-main ul, .pillar-main ul, .page-body ul {
    margin: 0 0 1.25rem 0;
    padding-left: 1.5rem;
    list-style: disc;
}
.blog-main ol, .pillar-main ol, .page-body ol {
    margin: 0 0 1.25rem 0;
    padding-left: 1.5rem;
    list-style: decimal;
}
.blog-main li, .pillar-main li, .page-body li {
    margin-bottom: 0.5rem;
    line-height: 1.7;
    color: var(--gray-700);
    font-size: 1.1rem;
}
.blog-main ul ul, .blog-main ol ol,
.pillar-main ul ul, .pillar-main ol ol,
.page-body ul ul, .page-body ol ol {
    margin-top: 0.35rem;
    margin-bottom: 0;
}

.blog-main strong, .pillar-main strong, .page-body strong {
    font-weight: 600;
    color: var(--text-dark);
}

.blog-main img, .pillar-main img, .page-body img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    margin: 1.5rem 0;
}

.blog-main table, .pillar-main table, .page-body table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    font-size: 1rem;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--gray-200);
}
.blog-main th, .pillar-main th, .page-body th {
    background: var(--text-dark);
    color: #fff;
    font-weight: 600;
    text-align: left;
    padding: 12px 16px;
    font-size: 0.95rem;
}
.blog-main td, .pillar-main td, .page-body td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--gray-200);
    color: var(--gray-700);
}
.blog-main tr:nth-child(even), .pillar-main tr:nth-child(even), .page-body tr:nth-child(even) {
    background: var(--gray-50);
}
.blog-main tr:hover, .pillar-main tr:hover, .page-body tr:hover {
    background: rgba(255,144,41,0.05);
}

.blog-main blockquote, .pillar-main blockquote, .page-body blockquote {
    background: var(--gray-50);
    border-left: 4px solid var(--primary-orange);
    padding: 1.25rem 1.5rem;
    margin: 1.5rem 0;
    border-radius: 0 12px 12px 0;
    font-style: italic;
    color: var(--gray-600);
    font-size: 1.1rem;
    line-height: 1.7;
}
.blog-main blockquote p:last-child, .pillar-main blockquote p:last-child, .page-body blockquote p:last-child {
    margin-bottom: 0;
}

.blog-main hr, .pillar-main hr, .page-body hr {
    border: none;
    border-top: 2px solid var(--gray-200);
    margin: 2rem 0;
}

.blog-main code, .pillar-main code, .page-body code {
    background: var(--gray-100);
    padding: 0.15em 0.4em;
    border-radius: 4px;
    font-size: 0.9em;
    color: var(--primary-orange);
}

.blog-main pre, .pillar-main pre, .page-body pre {
    background: #1a1a1a;
    color: #ccc;
    padding: 1.5rem;
    border-radius: 12px;
    overflow-x: auto;
    margin: 1.5rem 0;
    font-size: 0.9rem;
    line-height: 1.6;
}
.blog-main pre code, .pillar-main pre code, .page-body pre code {
    background: none;
    color: inherit;
    padding: 0;
}

/* Form styling */
.quote-form .form-field label,
.quote-form label {
    display: block;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--text-dark);
    margin-bottom: 6px;
}
.quote-form input[type="text"],
.quote-form input[type="email"],
.quote-form input[type="tel"],
.quote-form input[type="number"],
.quote-form select,
.quote-form textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    font-size: 1rem;
    font-family: var(--font-body);
    color: var(--text-dark);
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    -webkit-appearance: none;
}
.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus {
    outline: none;
    border-color: var(--primary-orange);
    box-shadow: 0 0 0 3px rgba(255,144,41,0.15);
}
.quote-form textarea {
    min-height: 120px;
    resize: vertical;
}
.quote-form select {
    cursor: pointer;
}
.quote-form .required {
    color: var(--primary-orange);
}
.quote-form .form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 24px;
}
.quote-form .form-field-full {
    grid-column: 1 / -1;
}

/* Mobile responsive for ALL content */
@media (max-width: 768px) {
    .blog-main, .pillar-main, .page-body,
    .service-main, .location-intro, .entry-content {
        font-size: 1rem;
    }
    .blog-main table, .pillar-main table, .page-body table,
    .service-main table, .entry-content table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
    }
    .blog-main img, .pillar-main img, .page-body img {
        margin: 1rem 0;
    }
    .quote-form .form-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================
   BLOG PAGINATION
   ============================================ */
.pagination {
    margin-top: 48px;
    text-align: center;
}
.pagination .nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 14px;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 500;
    text-decoration: none;
    color: var(--text-dark);
    background: #fff;
    border: 1px solid var(--gray-200);
    transition: all 0.2s;
}
.pagination .page-numbers:hover {
    background: var(--gray-50);
    border-color: var(--primary-orange);
    color: var(--primary-orange);
}
.pagination .page-numbers.current {
    background: var(--primary-orange);
    color: #fff;
    border-color: var(--primary-orange);
    font-weight: 600;
}
.pagination .page-numbers.dots {
    border: none;
    background: none;
    min-width: auto;
    padding: 0 4px;
    color: var(--gray-400);
}
.pagination .next,
.pagination .prev {
    font-weight: 600;
    gap: 4px;
}

/* ============================================
   BULLET & LIST OVERHAUL (site-wide)
   ============================================ */
.service-main ul,
.location-intro ul,
.page-content-wrapper ul,
.pillar-content ul,
.pillar-main ul,
.cost-guide-content ul,
.blog-main ul,
.page-body ul,
.entry-content ul {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 0 1.5rem 0 !important;
}
.service-main ul li,
.location-intro ul li,
.page-content-wrapper ul li,
.pillar-content ul li,
.pillar-main ul li,
.cost-guide-content ul li,
.blog-main ul li,
.page-body ul li,
.entry-content ul li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px !important;
    line-height: 1.7;
    font-size: 1.05rem;
    color: var(--gray-700);
}
.service-main ul li::before,
.location-intro ul li::before,
.page-content-wrapper ul li::before,
.pillar-content ul li::before,
.pillar-main ul li::before,
.cost-guide-content ul li::before,
.blog-main ul li::before,
.page-body ul li::before,
.entry-content ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--primary-orange);
    flex-shrink: 0;
}

/* Nested bullets — smaller, different color */
.service-main ul ul li::before,
.location-intro ul ul li::before,
.pillar-content ul ul li::before,
.pillar-main ul ul li::before,
.blog-main ul ul li::before,
.entry-content ul ul li::before {
    width: 6px;
    height: 6px;
    background: transparent;
    border: 2px solid var(--primary-orange);
    top: 11px;
}

/* Ordered lists */
.service-main ol,
.location-intro ol,
.page-content-wrapper ol,
.pillar-content ol,
.pillar-main ol,
.cost-guide-content ol,
.blog-main ol,
.page-body ol,
.entry-content ol {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 0 1.5rem 0 !important;
    counter-reset: list-counter;
}
.service-main ol li,
.location-intro ol li,
.page-content-wrapper ol li,
.pillar-content ol li,
.pillar-main ol li,
.cost-guide-content ol li,
.blog-main ol li,
.page-body ol li,
.entry-content ol li {
    position: relative;
    padding-left: 36px;
    margin-bottom: 12px !important;
    line-height: 1.7;
    font-size: 1.05rem;
    color: var(--gray-700);
    counter-increment: list-counter;
}
.service-main ol li::before,
.location-intro ol li::before,
.page-content-wrapper ol li::before,
.pillar-content ol li::before,
.pillar-main ol li::before,
.cost-guide-content ol li::before,
.blog-main ol li::before,
.page-body ol li::before,
.entry-content ol li::before {
    content: counter(list-counter);
    position: absolute;
    left: 0;
    top: 2px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--primary-orange);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Nested ordered — smaller circles */
.service-main ol ol li::before,
.pillar-content ol ol li::before,
.blog-main ol ol li::before,
.entry-content ol ol li::before {
    width: 20px;
    height: 20px;
    font-size: 0.7rem;
    background: transparent;
    border: 2px solid var(--primary-orange);
    color: var(--primary-orange);
}

/* Strong inside list items */
.service-main li strong,
.location-intro li strong,
.pillar-content li strong,
.pillar-main li strong,
.blog-main li strong,
.entry-content li strong {
    color: var(--text-dark);
    font-weight: 700;
}

/* Links inside list items */
.service-main li a,
.location-intro li a,
.pillar-content li a,
.pillar-main li a,
.blog-main li a,
.entry-content li a {
    color: var(--primary-orange);
    font-weight: 600;
    text-decoration: none;
}
.service-main li a:hover,
.location-intro li a:hover,
.pillar-content li a:hover,
.pillar-main li a:hover,
.blog-main li a:hover,
.entry-content li a:hover {
    text-decoration: underline;
}

/* ============================================
   PAGINATION FIX (override WP defaults)
   ============================================ */
nav.navigation.pagination {
    margin: 48px 0 16px !important;
    padding: 32px 0 !important;
    border-top: 1px solid var(--gray-200);
    text-align: center;
}
nav.navigation.pagination .nav-links {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}
nav.navigation.pagination .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 44px !important;
    height: 44px !important;
    padding: 0 16px !important;
    border-radius: 10px !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    font-family: var(--font-body) !important;
    text-decoration: none !important;
    color: var(--text-dark) !important;
    background: #fff !important;
    border: 1px solid var(--gray-200) !important;
    transition: all 0.2s !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
}
nav.navigation.pagination .page-numbers:hover {
    background: var(--gray-50) !important;
    border-color: var(--primary-orange) !important;
    color: var(--primary-orange) !important;
    box-shadow: 0 2px 8px rgba(255,144,41,0.15) !important;
}
nav.navigation.pagination .page-numbers.current {
    background: var(--primary-orange) !important;
    color: #fff !important;
    border-color: var(--primary-orange) !important;
    box-shadow: 0 2px 8px rgba(255,144,41,0.3) !important;
}
nav.navigation.pagination .page-numbers.dots {
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    min-width: auto !important;
    padding: 0 4px !important;
    color: var(--gray-400) !important;
}
nav.navigation.pagination .next.page-numbers,
nav.navigation.pagination .prev.page-numbers {
    gap: 4px !important;
    padding: 0 20px !important;
}
nav.navigation.pagination .screen-reader-text {
    clip: rect(1px,1px,1px,1px) !important;
    position: absolute !important;
    height: 1px !important;
    width: 1px !important;
    overflow: hidden !important;
}

/* Kill gap between pagination and CTA */
nav.navigation.pagination {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
.blog-article + .cta-banner,
.section:has(.navigation.pagination) + .cta-banner,
.section:has(.navigation.pagination) {
    padding-bottom: 0 !important;
}

.blog-list-section {
    padding-bottom: 0 !important;
}


/* Pagination mobile: single line + kill bottom gap */
nav.navigation.pagination {
    margin-bottom: -20px !important;
}
nav.navigation.pagination .nav-links {
    flex-wrap: nowrap !important;
}
@media (max-width: 768px) {
    nav.navigation.pagination .page-numbers {
        min-width: 38px !important;
        height: 38px !important;
        padding: 0 10px !important;
        font-size: 0.85rem !important;
    }
    nav.navigation.pagination .next.page-numbers,
    nav.navigation.pagination .prev.page-numbers {
        padding: 0 12px !important;
        font-size: 0.8rem !important;
        white-space: nowrap !important;
    }
}
.blog-list-section {
    margin-bottom: 0 !important;
}

/* Force white text on all primary buttons */
.btn-primary,
.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus,
.blog-inline-cta .btn-primary {
    color: #fff !important;
}

/* Remove mobile tap highlight */
* {
    -webkit-tap-highlight-color: transparent !important;
    -webkit-touch-callout: none;
}

/* Fix pagination clipping */
nav.navigation.pagination {
    margin-bottom: 32px !important;
    padding-bottom: 16px !important;
}
.blog-list-section {
    padding-bottom: 16px !important;
    overflow: visible !important;
}
.cta-banner {
    margin-top: 0 !important;
}

/* Footer copyright + hr — force white */
.footer-bottom {
    border-top-color: #fff !important;
}
.footer-copyright,
.footer-copyright p {
    color: #fff !important;
}

/* ProForms submit button — broad selectors */
#proforms-embed button,
#proforms-embed [type="submit"],
#proforms-embed .pf-btn,
#proforms-embed .pf-button,
#proforms-embed .pf-submit-btn,
[data-form] button[type="submit"],
.pf-form button,
.pf-form [type="submit"] {
    width: 100% !important;
    padding: 16px 32px !important;
    background: var(--primary-orange) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    font-family: var(--font-body) !important;
    cursor: pointer !important;
    transition: all 0.2s !important;
    margin-top: 8px !important;
    -webkit-appearance: none !important;
}
#proforms-embed button:hover,
#proforms-embed [type="submit"]:hover,
.pf-form button:hover,
.pf-form [type="submit"]:hover {
    background: var(--primary-orange-hover) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(255,144,41,0.3) !important;
}

/* Force dropdown arrow on ProForms select */
#proforms-embed select,
.pf-form select,
.pf-field select,
[data-form] select {
    cursor: pointer !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%278%27 viewBox=%270 0 12 8%27%3E%3Cpath fill=%27%23666%27 d=%27M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z%27/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    background-size: 12px !important;
    padding-right: 40px !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
}

/* Footer company h3 - tight spacing for SALT LLC tagline */
.footer-company h3 {
    margin-bottom: 4px !important;
}

/* Gallery CTA buttons — align height */
.gallery-cta .btn-primary,
.gallery-cta .btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    font-size: 1rem;
    vertical-align: middle;
    box-sizing: border-box;
}

/* Lock header height — no resize on scroll */
.site-header,
.site-header.scrolled {
    box-shadow: none !important;
    transition: none !important;
}
.header-main {
    padding: 14px 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    transition: none !important;
}

/* ============================================
   FRONT-PAGE HERO STYLES
   ============================================ */
.hero-section {
    min-height: 100vh;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--dark-section);
    color: var(--pure-white);
    position: relative;
    overflow: visible;
    padding-top: 120px;
}
.hero-title {
    color: var(--pure-white);
    margin-bottom: var(--space-lg);
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
}
.hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-lg);
    align-items: center;
}
.hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.hero-phone {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--primary-orange);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    transition: background 0.2s;
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--radius-lg);
    background-color: rgba(255,255,255,0.1);
}
.hero-phone:hover {
    background-color: rgba(255,255,255,0.15);
}
@media (max-width: 768px) {
    .hero-section { min-height: 80vh; padding-top: 80px; text-align: center; }
    .hero-cta { flex-direction: column; align-items: stretch; width: 100%; }
    .hero-cta .btn, .hero-phone { width: 100%; justify-content: center; }
    .hero-actions { flex-direction: column; width: 100%; }
}

/* ============================================
   PILLAR HERO STYLES
   ============================================ */
.pillar-hero {
    position: relative;
    min-height: 560px;
    display: flex;
    align-items: flex-end;
    overflow: visible;
}
.pillar-hero__content {
    position: relative;
    z-index: 2;
    padding: var(--space-5xl) 0 var(--space-3xl);
}
.pillar-hero__title {
    color: var(--pure-white);
    font-size: clamp(2.5rem, 5vw, 4rem);
    margin-bottom: var(--space-md);
    max-width: 800px;
}
@media (max-width: 768px) {
    .pillar-hero { min-height: 450px; }
    .pillar-hero__content { padding: var(--space-4xl) 0 var(--space-2xl); }
}

/* === TRUST BAR === */
/* Source: template-parts/trust-bar.php */
.trust-bar {
    background: linear-gradient(135deg, var(--gray-50) 0%, var(--pure-white) 100%);
    border-bottom: 1px solid var(--gray-200);
    position: relative;
}

.trust-bar::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 25% 25%, rgba(255, 144, 41, 0.03) 0%, transparent 50%),
        radial-gradient(circle at 75% 75%, rgba(51, 132, 63, 0.03) 0%, transparent 50%);
    pointer-events: none;
}

.trust-items {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-xl);
    text-align: center;
    position: relative;
    z-index: 2;
}

.trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-md);
    position: relative;
}

.trust-number {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    color: var(--primary-orange);
    line-height: 1;
    position: relative;
}

.trust-number::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 30px;
    height: 2px;
    background: linear-gradient(90deg, var(--primary-orange) 0%, var(--primary-orange-hover) 100%);
    border-radius: 1px;
}

.trust-stars {
    display: flex;
    gap: 2px;
    color: var(--primary-orange);
    margin-bottom: var(--space-xs);
}

.trust-badge {
    color: var(--accent-green);
    margin-bottom: var(--space-xs);
}

.trust-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--gray-700);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1.3;
}

/* Hover effects */
.trust-item {
    transition: transform var(--transition-normal);
    cursor: default;
}

.trust-item:hover {
    transform: translateY(-2px);
}

.trust-item:hover .trust-number {
    color: var(--primary-orange-hover);
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .trust-items {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-lg);
    }
    
    .trust-item {
        padding: var(--space-sm);
    }
    
    .trust-number {
        font-size: 2rem;
    }
}

@media (max-width: 480px) {
    .trust-items {
        grid-template-columns: 1fr;
        gap: var(--space-md);
    }
}

/* Animation for scroll reveal */
@media (prefers-reduced-motion: no-preference) {
    .trust-item:nth-child(1) { animation-delay: 0.1s; }
    .trust-item:nth-child(2) { animation-delay: 0.2s; }
    .trust-item:nth-child(3) { animation-delay: 0.3s; }
    .trust-item:nth-child(4) { animation-delay: 0.4s; }
}

/* === WHY CHOOSE US === */
/* Source: template-parts/why-choose-us.php */
.why-choose-us .section-title {
    color: var(--text-dark) !important;
}
.why-choose-us .section-header {
    position: relative;
    z-index: 2;
}
.why-choose-us .section-subtitle {
    color: var(--gray-600) !important;
}
.why-choose-us {
    background: url('<?php echo get_template_directory_uri(); ?>/assets/images/why-us-bg.webp') center/cover no-repeat,
                linear-gradient(135deg, var(--gray-50) 0%, var(--pure-white) 100%);
    position: relative;
}

.why-choose-us::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(249, 250, 251, 0.92);
    z-index: 1;
}

.why-choose-us::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 25% 30%, rgba(255, 144, 41, 0.03) 0%, transparent 40%),
        radial-gradient(circle at 75% 70%, rgba(51, 132, 63, 0.03) 0%, transparent 40%);
    pointer-events: none;
}

.why-grid {
    margin-bottom: var(--space-4xl);
    position: relative;
    z-index: 2;
}

.why-item {
    display: flex;
    gap: var(--space-lg);
    padding: var(--space-xl);
    background: var(--pure-white);
    border-radius: var(--radius-xl);
    border: 1px solid var(--gray-200);
    box-shadow: var(--shadow-sm);
    transition: all var(--transition-normal);
    position: relative;
    overflow: hidden;
}

.why-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(135deg, var(--primary-orange) 0%, var(--primary-orange-hover) 100%);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform var(--transition-normal);
}

.why-item:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    border-color: var(--primary-orange);
}

.why-item:hover::before {
    transform: scaleY(1);
}

.why-icon {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary-orange) 0%, var(--primary-orange-hover) 100%);
    color: var(--pure-white);
    border-radius: var(--radius-lg);
    transition: all var(--transition-normal);
}

.why-item:hover .why-icon {
    background: linear-gradient(135deg, var(--accent-green) 0%, #2a6f33 100%);
    transform: rotate(5deg) scale(1.05);
}

.why-content {
    flex: 1;
}

.why-title {
    font-size: 1.375rem;
    margin-bottom: var(--space-md);
    color: var(--text-dark);
    transition: color var(--transition-normal);
}

.why-item:hover .why-title {
    color: var(--primary-orange);
}

.why-description {
    color: var(--gray-600);
    line-height: 1.6;
}

.why-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-xl);
    padding: var(--space-2xl) 0;
    border-top: 1px solid var(--gray-200);
    position: relative;
    z-index: 2;
}

.stat-item {
    text-align: center;
    position: relative;
}

.stat-number {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    font-weight: 700;
    color: var(--primary-orange);
    line-height: 1;
    margin-bottom: var(--space-sm);
    position: relative;
}

.stat-number::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 2px;
    background: linear-gradient(90deg, var(--primary-orange) 0%, var(--accent-green) 100%);
    border-radius: 1px;
}

.stat-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--gray-700);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Responsive adjustments */
@media (max-width: 1024px) {
    .why-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-lg);
    }
}

@media (max-width: 768px) {
    .why-grid {
        grid-template-columns: 1fr;
    }
    
    .why-item {
        flex-direction: column;
        text-align: center;
        padding: var(--space-lg);
    }
    
    .why-icon {
        align-self: center;
    }
    
    .why-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-lg);
    }
}

@media (max-width: 480px) {
    .why-stats {
        grid-template-columns: 1fr;
    }
}

/* Animation delays for staggered reveal */
@media (prefers-reduced-motion: no-preference) {
    .why-item:nth-child(1) { animation-delay: 0.1s; }
    .why-item:nth-child(2) { animation-delay: 0.2s; }
    .why-item:nth-child(3) { animation-delay: 0.3s; }
    .why-item:nth-child(4) { animation-delay: 0.4s; }
    
    .stat-item:nth-child(1) { animation-delay: 0.5s; }
    .stat-item:nth-child(2) { animation-delay: 0.6s; }
    .stat-item:nth-child(3) { animation-delay: 0.7s; }
    .stat-item:nth-child(4) { animation-delay: 0.8s; }
}

/* === PROCESS STEPS === */
/* Source: template-parts/process-steps.php */
.process-section {
    background: var(--gray-50);
    position: relative;
    overflow: hidden;
}

.process-section .section-title {
    color: var(--text-dark);
}

.process-section .section-subtitle {
    color: var(--gray-600);
}

.process-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-lg);
}

.process-card {
    background: var(--pure-white);
    border-radius: var(--radius-xl);
    padding: var(--space-2xl) var(--space-xl);
    text-align: center;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-200);
    transition: all var(--transition-normal);
    position: relative;
}

.process-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-xl);
    border-color: var(--primary-orange);
}

.process-card-header {
    position: relative;
    margin-bottom: var(--space-xl);
}

.step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, var(--primary-orange), var(--primary-orange-hover));
    color: var(--pure-white);
    border-radius: 50%;
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(255, 144, 41, 0.3);
}

.process-card:hover .step-number {
    background: linear-gradient(135deg, var(--accent-green), #2a6f33);
    box-shadow: 0 4px 12px rgba(51, 132, 63, 0.3);
    transform: scale(1.1);
    transition: all var(--transition-normal);
}

/* Connector line between steps */
.step-connector {
    display: none;
}

.process-card-body {
    position: relative;
}

.step-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: var(--space-md);
    color: var(--text-dark);
}

.step-description {
    color: var(--gray-600);
    line-height: 1.6;
    font-size: 0.95rem;
}

/* Connector arrows between cards on desktop */
@media (min-width: 769px) {
    .process-card:not(:last-child)::after {
        content: '';
        position: absolute;
        top: calc(var(--space-2xl) + 32px);
        right: -14px;
        width: 0;
        height: 0;
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
        border-left: 12px solid var(--primary-orange);
        z-index: 1;
    }
}

@media (max-width: 1024px) {
    .process-steps {
        grid-template-columns: repeat(2, 1fr);
    }
    .process-card::after {
        display: none !important;
    }
}

@media (max-width: 640px) {
    .process-steps {
        grid-template-columns: 1fr;
    }
}

/* === CTA BANNER === */
/* Source: template-parts/cta-banner.php */
.cta-banner{background:linear-gradient(135deg,var(--primary-orange) 0%,var(--primary-orange-hover) 100%);color:#fff;text-align:center;position:relative;overflow:hidden}
.cta-background{position:absolute;inset:0;z-index:1}
.cta-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 30% 70%,rgba(255,255,255,0.1) 0%,transparent 50%),radial-gradient(circle at 70% 30%,rgba(51,132,63,0.1) 0%,transparent 50%);opacity:0.8}
.cta-content{position:relative;z-index:2;padding:80px 0}
.cta-title{color:#fff;margin-bottom:16px;font-size:clamp(2rem,4vw,3.5rem);font-weight:700;line-height:1.1}
.cta-text{font-size:clamp(1.1rem,2vw,1.35rem);color:rgba(255,255,255,0.95);margin-bottom:32px;max-width:700px;margin-left:auto;margin-right:auto;line-height:1.6}
.cta-actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:center;margin-bottom:40px}

.btn-cta-quote{display:inline-flex;align-items:center;justify-content:center;padding:16px 36px;background:#fff;color:var(--primary-orange);font-size:1.1rem;font-weight:700;border-radius:10px;text-decoration:none;border:none;box-shadow:0 4px 14px rgba(0,0,0,0.15);transition:all 0.2s}
.btn-cta-quote:hover{background:var(--gray-50);transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,0.2)}

.btn-cta-phone{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 36px;background:rgba(255,255,255,0.15);color:#fff;font-size:1.1rem;font-weight:700;border-radius:10px;text-decoration:none;border:2px solid rgba(255,255,255,0.4);backdrop-filter:blur(10px);transition:all 0.2s}
.btn-cta-phone:hover{background:rgba(255,255,255,0.25);transform:translateY(-2px)}

.cta-benefits{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;max-width:800px;margin:0 auto}
.benefit-item{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,0.95);font-size:0.95rem;font-weight:500}
.benefit-item svg{flex-shrink:0;background:rgba(255,255,255,0.2);border-radius:50%;padding:2px;width:20px;height:20px}

@media(max-width:768px){
    .cta-content{padding:60px 0}
    .cta-actions{flex-direction:column;align-items:stretch}
    .btn-cta-quote,.btn-cta-phone{width:100%}
    .cta-benefits{flex-direction:column;align-items:center;gap:14px}
}

/* === FEATURED PROJECTS === */
/* Source: template-parts/featured-projects.php */
.featured-projects {
    background: var(--dark-section);
    position: relative;
    overflow: hidden;
}
.projects-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background:
        radial-gradient(circle at 20% 50%, rgba(255,144,41,0.05) 0%, transparent 50%),
        radial-gradient(circle at 80% 50%, rgba(51,132,63,0.05) 0%, transparent 50%);
    z-index: 0;
}
.projects-content-wrap { position: relative; z-index: 1; }
.featured-projects .section-title { color: #fff; }
.featured-projects .section-subtitle { color: rgba(255,255,255,0.8); }
.projects-grid { margin-bottom: var(--space-4xl); }
.project-card {
    padding: 0;
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: var(--pure-white);
    border-radius: 12px;
}
.project-image-container { position: relative; height: 250px; overflow: hidden; }
.project-image {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform var(--transition-slow);
}
.project-card:hover .project-image { transform: scale(1.05); }
.project-overlay-badge {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
    padding: var(--space-xl) var(--space-lg) var(--space-md);
    color: white;
}
.project-type { display: block; font-size: 1.125rem; font-weight: 600; }
.project-location { font-size: 0.8rem; opacity: 0.85; }
.project-content { padding: var(--space-xl); flex: 1; display: flex; flex-direction: column; }
.project-title { font-size: 1.25rem; margin-bottom: var(--space-md); color: var(--text-dark); }
.project-description { color: var(--gray-600); margin-bottom: var(--space-lg); flex: 1; }
.project-features { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.feature-tag {
    background: var(--gray-100); color: var(--gray-700);
    padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-md);
    font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em;
}
.projects-cta { text-align: center; }
.projects-cta .btn {
    font-size: 1.125rem; padding: var(--space-md) var(--space-3xl);
    font-weight: 600; box-shadow: 0 4px 15px rgba(255,144,41,0.4);
}
@media (max-width: 768px) { .projects-grid { grid-template-columns: 1fr; } }

/* === SERVICES GRID === */
/* Source: template-parts/services-grid.php */
.services-section {
    background: var(--dark-section);
    position: relative;
}
.services-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(26,26,26,0.88);
    z-index: 0;
}
.services-content-wrap {
    position: relative;
    z-index: 1;
}
.services-section .section-title { color: #fff; }
.services-section .section-subtitle { color: rgba(255,255,255,0.8); }
.services-grid { margin-bottom: var(--space-4xl); }
.service-card {
    padding: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--gray-200);
    background: var(--pure-white);
    overflow: hidden;
    transition: all var(--transition-normal);
    text-decoration: none;
    border-radius: 12px;
}
.service-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-xl);
    border-color: var(--primary-orange);
}
.service-card-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}
.service-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: var(--space-xl);
}
.service-title {
    font-size: 1.375rem;
    margin-bottom: var(--space-md);
    color: var(--text-dark);
    transition: color var(--transition-normal);
}
.service-card:hover .service-title { color: var(--primary-orange); }
.service-description {
    color: var(--gray-600);
    margin-bottom: var(--space-lg);
    line-height: 1.6;
    flex: 1;
}
.service-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    font-weight: 600;
    color: var(--primary-orange);
    transition: all var(--transition-normal);
    margin-top: auto;
}
.service-card:hover .service-link { color: var(--accent-green); transform: translateX(4px); }
.services-cta { text-align: center; }
.services-cta .btn {
    font-size: 1.125rem;
    padding: var(--space-md) var(--space-3xl);
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(255,144,41,0.4);
}
@media (max-width: 768px) {
    .services-grid { grid-template-columns: 1fr; gap: var(--space-lg); }
}

/* === SERVICE AREAS === */
/* Source: template-parts/service-areas.php */
.service-areas {
    background: var(--gray-50);
    padding: 80px 0;
}
.service-areas .section-title { color: var(--text-dark); }
.service-areas .section-subtitle { color: var(--gray-600); }
.areas-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-2xl);
    margin-bottom: var(--space-2xl);
}
.county-group {
    background: var(--pure-white);
    border-radius: 12px;
    padding: var(--space-xl);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
}
.county-title {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-sm);
    border-bottom: 2px solid var(--primary-orange);
}
.county-title a {
    color: var(--primary-orange);
    text-decoration: none;
    transition: color var(--transition-fast);
}
.county-title a:hover { color: var(--primary-orange-hover); }
.area-list { list-style: none; padding: 0; margin: 0; }
.area-list li { margin-bottom: var(--space-sm); }
.area-list a {
    color: var(--gray-700);
    text-decoration: none;
    transition: all var(--transition-fast);
    display: block;
    padding: var(--space-xs) 0;
}
.area-list a:hover { color: var(--primary-orange); padding-left: var(--space-sm); }
.service-area-note {
    background: linear-gradient(135deg, rgba(255,144,41,0.1) 0%, rgba(51,132,63,0.1) 100%);
    border-radius: 12px;
    padding: var(--space-xl);
    text-align: center;
}
.note-text { color: var(--gray-700); font-style: italic; margin: 0; }
.note-text a { color: var(--primary-orange); font-weight: 600; }
@media (max-width: 1024px) { .areas-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .areas-grid { grid-template-columns: 1fr; } }

/* === TESTIMONIALS === */
/* Source: template-parts/testimonials.php */
@media (max-width: 768px) {
    .testimonials-grid { grid-template-columns: 1fr !important; }
}

/* === CONTACT PAGE === */
/* Source: page-contact.php */
.contact-section { padding: 80px 0; }
.contact-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}
.contact-info h2 {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 12px;
}
.contact-info > p {
    color: var(--gray-600);
    font-size: 1.05rem;
    line-height: 1.7;
    margin-bottom: 32px;
}
.contact-cards { display: flex; flex-direction: column; gap: 16px; margin-bottom: 32px; }
.contact-card {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 20px;
    background: var(--gray-50);
    border-radius: 12px;
    border: 1px solid var(--gray-200);
    text-decoration: none;
    color: inherit;
    transition: all 0.2s;
}
a.contact-card:hover {
    border-color: var(--primary-orange);
    box-shadow: 0 4px 12px rgba(255,144,41,0.1);
    transform: translateY(-2px);
}
.contact-card-icon {
    width: 48px;
    height: 48px;
    background: var(--primary-orange);
    color: #fff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.contact-card h3 {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 2px;
}
.contact-card p {
    font-size: 1rem;
    color: var(--text-dark);
    font-weight: 600;
    margin-bottom: 2px;
}
.contact-card span {
    font-size: 0.85rem;
    color: var(--gray-500);
}
.contact-form-wrapper { position: sticky; top: 100px; }
.contact-form-card {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    padding: 36px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}
.contact-form-card h2 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 6px;
}
.contact-form-card > p {
    color: var(--gray-500);
    font-size: 0.9rem;
    margin-bottom: 24px;
}

@media (max-width: 768px) {
    .contact-layout { grid-template-columns: 1fr; gap: 40px; }
    .contact-form-wrapper { position: static; }
    .contact-form-card { padding: 24px; }
}

/* === QUOTE PAGE === */
/* Source: page-quote.php */
.quote-form-section { padding: 80px 0; }
.quote-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}
.quote-sidebar h2 {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 32px;
}
.trust-features { display: flex; flex-direction: column; gap: 24px; margin-bottom: 32px; }
.trust-feature {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--gray-200);
}
.trust-feature:last-child { border-bottom: none; padding-bottom: 0; }
.feature-icon {
    width: 48px;
    height: 48px;
    background: var(--primary-orange);
    color: #fff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.trust-feature h3 {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 4px;
}
.trust-feature p {
    font-size: 0.9rem;
    color: var(--gray-600);
    line-height: 1.5;
    margin: 0;
}
.quote-phone {
    text-align: center;
    padding-top: 24px;
    border-top: 1px solid var(--gray-200);
}
.quote-phone p { margin-bottom: 8px; color: var(--text-dark); }
.phone-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--primary-orange);
    font-weight: 700;
    font-size: 1.2rem;
    text-decoration: none;
}
.phone-link:hover { color: var(--primary-orange-hover); }
.quote-phone span { display: block; font-size: 0.85rem; color: var(--gray-500); margin-top: 4px; }
.quote-form-wrapper { position: sticky; top: 100px; }
.quote-form-card {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    padding: 36px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}
.quote-form-card h2 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 6px;
}
.quote-form-card > p {
    color: var(--gray-500);
    font-size: 0.9rem;
    margin-bottom: 24px;
}
/* ProForms field styling */
#proforms-embed .pf-field { margin-bottom: 20px; }
#proforms-embed label { display: block; font-weight: 600; font-size: 0.9rem; color: var(--text-dark); margin-bottom: 6px; font-family: var(--font-body); }
#proforms-embed input[type="text"],
#proforms-embed input[type="email"],
#proforms-embed input[type="tel"],
#proforms-embed input[type="number"],
#proforms-embed select,
#proforms-embed textarea { width: 100%; padding: 12px 16px; border: 1px solid var(--gray-200); border-radius: 8px; font-size: 1rem; font-family: var(--font-body); color: var(--text-dark); background: #fff; transition: border-color 0.2s, box-shadow 0.2s; -webkit-appearance: none; box-sizing: border-box; }
#proforms-embed input:focus,
#proforms-embed select:focus,
#proforms-embed textarea:focus { outline: none; border-color: var(--primary-orange); box-shadow: 0 0 0 3px rgba(255,144,41,0.15); }
#proforms-embed textarea { min-height: 120px; resize: vertical; }
#proforms-embed select { cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%278%27 viewBox=%270 0 12 8%27%3E%3Cpath fill=%27%23666%27 d=%27M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z%27/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 12px; padding-right: 40px; }
#proforms-embed .pf-row { display: flex; gap: 16px; }
#proforms-embed .pf-row .pf-field { flex: 1; }
#proforms-embed button[type="submit"],
#proforms-embed .pf-submit { width: 100%; padding: 16px 32px; background: var(--primary-orange); color: #fff; border: none; border-radius: 10px; font-size: 1.05rem; font-weight: 700; font-family: var(--font-body); cursor: pointer; transition: all 0.2s; margin-top: 8px; }
#proforms-embed button[type="submit"]:hover,
#proforms-embed .pf-submit:hover { background: var(--primary-orange-hover); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(255,144,41,0.3); }
#proforms-embed .pf-required { color: var(--primary-orange); }
@media (max-width: 768px) {
.quote-layout { grid-template-columns: 1fr; gap: 40px; }
.quote-form-wrapper { position: static; }
.quote-form-card { padding: 24px; }
}

/* === CALCULATOR PAGE === */
/* Source: page-calculator.php */
.calc-range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: var(--gray-200);
    outline: none;
    cursor: pointer;
}
.calc-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--primary-orange);
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(255,144,41,0.3);
    transition: transform 0.15s;
}
.calc-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}
.calc-range::-moz-range-thumb {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--primary-orange);
    cursor: pointer;
    border: none;
    box-shadow: 0 2px 8px rgba(255,144,41,0.3);
}
@media (max-width: 768px) {
    .calc-card { padding: 24px !important; }
    #totalCost { font-size: 2rem !important; }
    .section > .container > div:last-child { grid-template-columns: repeat(2,1fr) !important; }
}
@media (max-width: 480px) {
    .section > .container > div:last-child { grid-template-columns: 1fr !important; }
}

/* === GALLERY PAGE === */
/* Source: page-gallery.php */
.gallery-section { padding: 60px 0 80px; }

.gallery-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-bottom: 48px;
    text-align: center;
}
.gallery-stat {
    padding: 24px;
    background: var(--gray-50);
    border-radius: 12px;
    border: 1px solid var(--gray-200);
}
.stat-num {
    display: block;
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary-orange);
    line-height: 1.2;
}
.stat-label {
    font-size: 0.85rem;
    color: var(--gray-600);
    font-weight: 500;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}
.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    cursor: pointer;
    aspect-ratio: 4/3;
}
.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}
.gallery-item:hover img { transform: scale(1.05); }
.gallery-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s;
    color: #fff;
}
.gallery-item:hover .gallery-overlay { opacity: 1; }

.gallery-cta {
    text-align: center;
    padding: 60px 0 0;
}
.gallery-cta h2 {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 12px;
}
.gallery-cta p {
    color: var(--gray-600);
    font-size: 1.05rem;
    margin-bottom: 24px;
}
.gallery-cta .btn { margin: 0 8px; }
.btn-outline {
    display: inline-block;
    padding: 14px 28px;
    border: 2px solid var(--primary-orange);
    color: var(--primary-orange);
    border-radius: 10px;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    transition: all 0.2s;
}
.btn-outline:hover {
    background: var(--primary-orange);
    color: #fff;
}

/* Lightbox */
.lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.92);
    z-index: 10000;
    align-items: center;
    justify-content: center;
    padding: 40px;
}
.lightbox.active { display: flex; }
.lightbox img {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: 4px;
}
.lightbox-close {
    position: absolute;
    top: 16px;
    right: 24px;
    background: none;
    border: none;
    color: #fff;
    font-size: 40px;
    cursor: pointer;
    z-index: 2;
    line-height: 1;
}
.lightbox-prev, .lightbox-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.15);
    border: none;
    color: #fff;
    font-size: 48px;
    cursor: pointer;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    z-index: 2;
}
.lightbox-prev:hover, .lightbox-next:hover { background: rgba(255,255,255,0.3); }
.lightbox-prev { left: 16px; }
.lightbox-next { right: 16px; }
.lightbox-counter {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255,255,255,0.7);
    font-size: 0.9rem;
}

@media (max-width: 1024px) {
    .gallery-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .gallery-stats { grid-template-columns: repeat(2, 1fr); }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .gallery-cta .btn { display: block; margin: 8px auto; max-width: 280px; }
    .lightbox { padding: 16px; }
    .lightbox-prev, .lightbox-next { width: 40px; height: 40px; font-size: 32px; }
}

/* === REVIEWS PAGE === */
/* Source: page-reviews.php */
@media (max-width: 768px) {
    .reviews-stats { grid-template-columns: repeat(2,1fr) !important; }
    .reviews-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 480px) {
    .reviews-stats { grid-template-columns: 1fr !important; }
}

/* === ABOUT PAGE === */
/* Source: page-about.php */
.about-story{font-size:1.1rem;line-height:1.8;max-width:800px;margin:0 auto}
.about-story h2{margin-top:var(--space-2xl)}
.about-story p{margin-bottom:var(--space-lg)}
.about-story img{max-width:100%;height:auto;border-radius:var(--radius-lg);margin:var(--space-xl) 0}

/* === COST GUIDE PAGE === */
/* Source: page-cost-guide.php */
.cost-table-wrap{overflow-x:auto;margin:0 auto;max-width:900px}
.cost-table{width:100%;border-collapse:collapse;font-size:1.05rem}
.cost-table th{background:var(--dark-section);color:var(--pure-white);padding:var(--space-lg);text-align:left;font-family:var(--font-display);font-weight:600}
.cost-table td{padding:var(--space-lg);border-bottom:1px solid var(--gray-200);vertical-align:top}
.cost-table td small{color:var(--gray-500);font-size:0.85rem}
.cost-table tr:hover td{background:rgba(255,144,41,0.04)}
.cost-table th:first-child{border-radius:var(--radius-lg) 0 0 0}
.cost-table th:last-child{border-radius:0 var(--radius-lg) 0 0}
.cost-rooms{max-width:800px;margin:0 auto}
.cost-room-item{border-bottom:1px solid var(--gray-300)}
.cost-room-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) 0;background:none;border:none;cursor:pointer;font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--text-dark);transition:color var(--transition-fast)}
.cost-room-toggle:hover{color:var(--primary-orange)}
.cost-room-range{color:var(--primary-orange);font-weight:700;white-space:nowrap}
.cost-room-detail{max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s ease}
.cost-room-detail.open{max-height:200px;padding-bottom:var(--space-lg)}
.cost-room-detail p{color:var(--gray-600);font-size:1rem;line-height:1.7}
.cost-calculator-cta{padding:var(--space-4xl) 0}
.faq-list{max-width:800px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--gray-200)}
.faq-question{width:100%;text-align:left;background:none;border:none;padding:var(--space-lg) 0;font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--text-dark);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}
.faq-question:hover{color:var(--primary-orange)}
.faq-question::after{content:'+';font-size:1.5rem;font-weight:400;flex-shrink:0}
.faq-question[aria-expanded="true"]::after{content:'−'}
.faq-answer{max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s ease}
.faq-answer.open{max-height:500px;padding-bottom:var(--space-lg)}
.faq-answer p{font-size:1.05rem;color:var(--gray-600);line-height:1.7}
@media(max-width:768px) {
.cost-table{font-size:0.9rem}
.cost-table td,.cost-table th{padding:var(--space-md)}
}

/* === PILLAR PAGE === */
/* Source: page-pillar.php */
.pillar-stats{display:flex;gap:var(--space-2xl);margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid rgba(255,255,255,0.15)}
.pillar-stat{display:flex;flex-direction:column;align-items:center}
.pillar-stat__num{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--primary-orange)}
.pillar-stat__label{font-size:0.8rem;text-transform:uppercase;letter-spacing:0.08em;color:rgba(255,255,255,0.6);margin-top:2px}
.pillar-layout{display:grid;grid-template-columns:260px 1fr;gap:var(--space-3xl);align-items:start}
.pillar-toc__sticky{position:sticky;top:100px}
.pillar-toc__title{font-size:1rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--gray-500);margin-bottom:var(--space-md);font-family:var(--font-body)}
.pillar-toc__nav{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-xl)}
.pillar-toc__nav a{display:block;padding:var(--space-sm) var(--space-md);font-size:0.9rem;color:var(--gray-600);text-decoration:none;border-left:2px solid var(--gray-200);transition:all var(--transition-fast)}
.pillar-toc__nav a:hover,.pillar-toc__nav a.active{color:var(--primary-orange);border-left-color:var(--primary-orange);background:rgba(255,144,41,0.05)}
.pillar-main{min-width:0}
.pillar-main h2{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--gray-200);scroll-margin-top:100px}
.pillar-main h2:first-child{margin-top:0;padding-top:0;border-top:none}
.pillar-main h3{scroll-margin-top:100px}
.pillar-main ul,.pillar-main ol{margin:0 0 var(--space-lg) var(--space-xl);font-size:1.1rem;color:var(--gray-700)}
.pillar-main li{margin-bottom:var(--space-sm)}
.pillar-main img{max-width:100%;height:auto;border-radius:var(--radius-lg);margin:var(--space-xl) 0}
.faq-list{max-width:800px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--gray-200)}
.faq-question{width:100%;text-align:left;background:none;border:none;padding:var(--space-lg) 0;font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--text-dark);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);transition:color var(--transition-fast)}
.faq-question:hover{color:var(--primary-orange)}
.faq-question::after{content:'+';font-size:1.5rem;font-weight:400;flex-shrink:0}
.faq-question[aria-expanded="true"]::after{content:'−'}
.faq-answer{max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s ease}
.faq-answer.open{max-height:500px;padding-bottom:var(--space-lg)}
.faq-answer p{font-size:1.05rem;color:var(--gray-600);line-height:1.7}
.related-card{text-decoration:none;display:block;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}
.related-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}
.card-link{color:var(--primary-orange);font-weight:600;font-size:0.95rem}
@media(max-width:1024px) {
.pillar-layout{grid-template-columns:1fr}
.pillar-toc{display:none}
}
@media(max-width:768px) {
.pillar-stats{flex-wrap:wrap;gap:var(--space-lg)}
}

/* === SERVICES HUB PAGE === */
/* Source: page-services.php */
/* Services Grid */
.services-hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
}
.service-hub-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    border: 1px solid var(--gray-200);
    transition: transform 0.25s, box-shadow 0.25s;
    display: flex;
    flex-direction: column;
}
.service-hub-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 36px rgba(0,0,0,0.1);
    border-color: var(--primary-orange);
}
.service-hub-img {
    height: 180px;
    background-size: cover;
    background-position: center;
    position: relative;
}
.service-hub-icon {
    position: absolute;
    bottom: -20px;
    left: 20px;
    width: 44px;
    height: 44px;
    background: #fff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.service-hub-content {
    padding: 28px 20px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.service-hub-content h3 {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 8px;
}
.service-hub-content p {
    font-size: 0.9rem;
    color: var(--gray-600);
    line-height: 1.55;
    flex: 1;
    margin-bottom: 12px;
}
.service-hub-link {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--primary-orange);
    transition: color 0.2s;
}
.service-hub-card:hover .service-hub-link { color: var(--accent-green); }
@media (max-width: 768px) {
.services-hub-grid { grid-template-columns: 1fr; }
}

/* === AREAS HUB PAGE === */
/* Source: page-areas.php */
.btn-outline-light {
    background: transparent; color: #fff; border: 2px solid rgba(255,255,255,0.4);
    padding: 12px 28px; border-radius: 8px; font-weight: 600; text-decoration: none;
    transition: all 0.2s; font-size: 1rem;
}
.btn-outline-light:hover { background: rgba(255,255,255,0.1); border-color: #fff; }
.btn-large { padding: 14px 32px; font-size: 1.05rem; }

.county-block {
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 40px;
    align-items: center;
}
.county-img {
    height: 260px;
    border-radius: 12px;
    background-size: cover;
    background-position: center;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}
.city-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}
.city-tag {
    display: inline-block;
    padding: 6px 14px;
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 20px;
    font-size: 0.85rem;
    color: var(--text-dark);
    text-decoration: none;
    font-weight: 500;
    transition: all 0.2s;
}
.city-tag:hover {
    background: var(--primary-orange);
    color: #fff;
    border-color: var(--primary-orange);
}
.county-link {
    font-weight: 600;
    color: var(--primary-orange);
    text-decoration: none;
    font-size: 0.95rem;
}
.county-link:hover { color: var(--accent-green); }

@media (max-width: 768px) {
    .county-block {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .county-img { height: 200px; }
}

/* === LOCATION PAGE === */
/* Source: page-location.php */
.location-intro{max-width:800px;font-size:1.1rem;line-height:1.8}
.location-intro p{margin-bottom:var(--space-lg)}
.location-quote{text-align:center;border:none;margin:0;padding:var(--space-2xl) 0}
.location-quote p{font-family:var(--font-display);font-size:clamp(1.25rem,3vw,1.75rem);color:var(--pure-white);line-height:1.6;font-style:italic;margin-bottom:var(--space-lg)}
.location-quote cite{color:var(--primary-orange);font-size:1rem;font-style:normal;font-weight:600}
.location-service-area{background:linear-gradient(135deg,var(--gray-50) 0%,var(--pure-white) 100%);padding:var(--space-5xl) 0}
.service-area-block{text-align:center;max-width:700px;margin:0 auto}
.service-area-block__icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:rgba(255,144,41,0.1);color:var(--primary-orange);margin-bottom:var(--space-xl)}
.service-area-block__title{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.5rem);color:var(--text-dark);margin-bottom:var(--space-lg)}
.service-area-block__text{color:var(--gray-600);font-size:1.1rem;line-height:1.7;margin-bottom:var(--space-2xl)}
.service-area-block__stats{display:flex;justify-content:center;align-items:center;gap:var(--space-xl);margin-bottom:var(--space-2xl);flex-wrap:wrap}
.stat-item{text-align:center}
.stat-number{display:block;font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--primary-orange);line-height:1.2}
.stat-label{display:block;font-size:0.85rem;color:var(--gray-500);margin-top:4px;text-transform:uppercase;letter-spacing:0.05em}
.stat-divider{width:1px;height:40px;background:var(--gray-200)}
@media(max-width:768px) {
.service-area-block__stats{gap:var(--space-lg)}
.stat-divider{display:none}
}
.related-card{text-decoration:none;display:block;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}
.related-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}
.card-link{color:var(--primary-orange);font-weight:600;font-size:0.95rem}
.service-layout{display:grid;grid-template-columns:1fr 380px;gap:var(--space-3xl);align-items:start}
.service-main{min-width:0}
.service-main h2{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--gray-200)}
.service-main h2:first-child{margin-top:0;padding-top:0;border-top:none}
.service-main ul,.service-main ol{margin:0 0 var(--space-lg) var(--space-xl);font-size:1.1rem;color:var(--gray-700)}
.service-main li{margin-bottom:var(--space-sm)}
.service-main img{max-width:100%;height:auto;border-radius:var(--radius-lg);margin:var(--space-xl) 0}
.sidebar-sticky{position:sticky;top:100px;display:flex;flex-direction:column;gap:var(--space-lg)}
.sidebar-card{background:var(--pure-white);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow-md);border:1px solid var(--gray-200)}
.sidebar-card h3,.sidebar-card h4{font-size:1.25rem;margin-bottom:var(--space-md)}
.sidebar-card p{font-size:1rem;color:var(--gray-600)}
.sidebar-card--cta{background:linear-gradient(135deg,var(--dark-section) 0%,#2a2a2a 100%);border:none;color:var(--pure-white)}
.sidebar-card--cta h3{color:var(--pure-white)}
.sidebar-card--cta p{color:rgba(255,255,255,0.8)}
.sidebar-card--phone{text-align:center}
.sidebar-card__label{font-size:0.85rem;color:var(--gray-500);margin-bottom:var(--space-sm)}
.sidebar-card__phone-link{display:inline-flex;align-items:center;gap:8px;font-size:1.25rem;font-weight:700;color:var(--primary-orange);text-decoration:none}
.sidebar-card__phone-link:hover{color:var(--primary-orange-hover)}
.sidebar-card--trust h4{text-align:center;color:var(--text-dark)}
.sidebar-trust-badges{display:flex;flex-direction:column;gap:var(--space-sm)}
.sidebar-badge{display:flex;align-items:center;gap:var(--space-sm);font-size:0.95rem;color:var(--gray-700)}
.sidebar-badge svg{color:var(--accent-green);flex-shrink:0}
@media(max-width:1024px) {
.service-layout{grid-template-columns:1fr}
.sidebar-sticky{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
}

/* === SERVICE PAGE === */
/* Source: page-service.php */
.service-layout{display:grid;grid-template-columns:1fr 380px;gap:var(--space-3xl);align-items:start}
.service-main{min-width:0}
.service-main h2{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--gray-200)}
.service-main h2:first-child{margin-top:0;padding-top:0;border-top:none}
.service-main ul,.service-main ol{margin:0 0 var(--space-lg) var(--space-xl);font-size:1.1rem;color:var(--gray-700)}
.service-main li{margin-bottom:var(--space-sm)}
.service-main img{max-width:100%;height:auto;border-radius:var(--radius-lg);margin:var(--space-xl) 0}
.sidebar-sticky{position:sticky;top:100px;display:flex;flex-direction:column;gap:var(--space-lg)}
.sidebar-card{background:var(--pure-white);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow-md);border:1px solid var(--gray-200)}
.sidebar-card h3,.sidebar-card h4{font-size:1.25rem;margin-bottom:var(--space-md)}
.sidebar-card p{font-size:1rem;color:var(--gray-600)}
.sidebar-card--cta{background:linear-gradient(135deg,var(--dark-section) 0%,#2a2a2a 100%);border:none;color:var(--pure-white)}
.sidebar-card--cta h3{color:var(--pure-white)}
.sidebar-card--cta p{color:rgba(255,255,255,0.8)}
.sidebar-card--phone{text-align:center;background:var(--gray-50)}
.sidebar-card__label{font-size:0.875rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--gray-500)!important;margin-bottom:var(--space-sm)!important}
.sidebar-card__phone-link{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--primary-orange);text-decoration:none;transition:color var(--transition-fast)}
.sidebar-card__phone-link:hover{color:var(--accent-green)}
.sidebar-trust-badges{display:flex;flex-direction:column;gap:var(--space-md)}
.sidebar-badge{display:flex;align-items:center;gap:var(--space-sm);font-size:0.95rem;font-weight:500;color:var(--gray-700)}
.sidebar-badge svg{color:var(--accent-green);flex-shrink:0}
.faq-list{max-width:800px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--gray-200)}
.faq-question{width:100%;text-align:left;background:none;border:none;padding:var(--space-lg) 0;font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--text-dark);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);transition:color var(--transition-fast)}
.faq-question:hover{color:var(--primary-orange)}
.faq-question::after{content:'+';font-size:1.5rem;font-weight:400;flex-shrink:0;transition:transform var(--transition-normal)}
.faq-question[aria-expanded="true"]::after{content:'−'}
.faq-answer{max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s ease}
.faq-answer.open{max-height:500px;padding-bottom:var(--space-lg)}
.faq-answer p{font-size:1.05rem;color:var(--gray-600);line-height:1.7}
.related-card{text-decoration:none;display:block;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}
.related-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}
.card-link{color:var(--primary-orange);font-weight:600;font-size:0.95rem}
.service-areas .section-subtitle{max-width:600px;margin-left:auto;margin-right:auto}
@media(max-width:1024px) {
.service-layout{grid-template-columns:1fr}
.sidebar-sticky{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
}
@media(max-width:768px) {
.sidebar-sticky{grid-template-columns:1fr}
}

/* === SINGLE POST / BLOG === */
/* Source: single.php */
/* Blog layout — content + right sidebar */
.blog-layout{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:start}
.blog-main{min-width:0;max-width:none}
.blog-main h2{scroll-margin-top:100px}
/* Inline expandable TOC */
.inline-toc{
    background:var(--gray-50);
    border:1px solid var(--gray-200);
    border-radius:12px;
    margin-bottom:32px;
    overflow:hidden;
}
.inline-toc-toggle{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    padding:16px 20px;
    background:none;
    border:none;
    cursor:pointer;
    font-family:var(--font-display);
    font-size:1rem;
    font-weight:700;
    color:var(--text-dark);
}
.inline-toc-toggle:hover{color:var(--primary-orange)}
.toc-icon{flex-shrink:0;color:var(--primary-orange)}
.toc-chevron{margin-left:auto;transition:transform 0.2s;color:var(--gray-400)}
.inline-toc.expanded .toc-chevron{transform:rotate(180deg)}
.inline-toc-list{
    list-style:none !important;
    margin:0 !important;
    padding:0 20px 0 0 !important;margin-bottom:0 !important;
    display:none;
    counter-reset:toc;
}
.inline-toc.expanded .inline-toc-list{display:block}
.inline-toc-list li{
    counter-increment:toc;
    border-top:1px solid var(--gray-200);
    padding-left:0 !important;
}
.inline-toc-list li::before{display:none !important;content:none !important;width:0 !important;height:0 !important;padding:0 !important;margin:0 !important}
.inline-toc-list li::marker{display:none !important;content:none !important}
.inline-toc-list li:first-child{border-top:none}
.inline-toc-list li{padding-left:0 !important;margin-left:0 !important}
.inline-toc-list li a{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    padding:6px 0 !important;padding-left:25px !important;margin-left:0 !important;
    color:var(--gray-700) !important;
    text-decoration:none !important;
    font-size:0.9rem;
    transition:color 0.2s;
    border-bottom:none !important;
}
.inline-toc-list li a:hover{color:var(--primary-orange) !important;text-decoration:none !important;border-bottom:none !important}
.inline-toc-list li a .toc-num{
    display:flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    min-width:28px;
    background:var(--primary-orange);
    color:#fff !important;
    border-radius:50%;
    font-size:0.8rem;
    font-weight:700;
    flex-shrink:0;
    line-height:1;
}
/* Right Sidebar */
.blog-sidebar{min-width:0}
.sidebar-sticky{position:sticky;top:100px;display:flex;flex-direction:column;gap:24px}
.sidebar-widget{
    background:#fff;
    border:1px solid var(--gray-200);
    border-radius:12px;
    padding:24px;
}
.sidebar-widget-title{
    font-family:var(--font-display);
    font-size:1rem;
    font-weight:700;
    color:var(--text-dark);
    margin-bottom:12px;
    padding-bottom:10px;
    border-bottom:2px solid var(--primary-orange);
}
.sidebar-widget p{font-size:0.9rem;color:var(--gray-600);line-height:1.6;margin-bottom:12px}
.sidebar-link{font-size:0.85rem;font-weight:600;color:var(--primary-orange);text-decoration:none}
.sidebar-link:hover{text-decoration:underline}
/* Recent posts */
.sidebar-recent-posts{list-style:none;margin:0;padding:0}
.sidebar-recent-posts li{border-bottom:1px solid var(--gray-100);padding-bottom:12px;margin-bottom:12px}
.sidebar-recent-posts li:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}
.sidebar-recent-posts a{display:flex;gap:12px;align-items:flex-start;text-decoration:none}
.sidebar-post-thumb{width:60px;height:60px;object-fit:cover;border-radius:8px;flex-shrink:0}
.sidebar-post-title{display:block;font-size:0.85rem;font-weight:600;color:var(--text-dark);line-height:1.4;margin-bottom:2px}
.sidebar-post-date{font-size:0.75rem;color:var(--gray-500)}
.sidebar-recent-posts a:hover .sidebar-post-title{color:var(--primary-orange)}
/* CTA Widget */
.sidebar-cta{
    background:linear-gradient(135deg,#1a1a1a 0%,#2a2a2a 100%);
    border-color:transparent;
}
/* Categories */
.sidebar-categories{list-style:none;margin:0;padding:0}
.sidebar-categories li{border-bottom:1px solid var(--gray-100);padding-bottom:8px;margin-bottom:8px}
.sidebar-categories li:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}
.sidebar-categories a{display:flex;justify-content:space-between;align-items:center;color:var(--gray-700);text-decoration:none;font-size:0.9rem}
.sidebar-categories a:hover{color:var(--primary-orange)}
.cat-count{background:var(--gray-100);color:var(--gray-500);font-size:0.75rem;padding:2px 8px;border-radius:10px}
/* Blog inline CTA */
.blog-inline-cta{background:linear-gradient(135deg,#1a1a1a 0%,#2a2a2a 100%);color:#fff;padding:32px;border-radius:12px;margin:40px 0;text-align:center}
.blog-inline-cta h3{color:#fff;margin-bottom:8px;font-family:var(--font-display)}
.blog-inline-cta p{color:rgba(255,255,255,0.8);margin-bottom:20px}
/* Author card */
.author-card{display:flex;gap:20px;align-items:flex-start;padding:28px;background:var(--gray-50);border-radius:16px;margin-top:40px;border:1px solid var(--gray-200)}
.author-card-avatar{flex-shrink:0}
.author-card-label{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--gray-500);margin-bottom:4px}
.author-card-name{font-family:var(--font-display);font-size:1.2rem;margin-bottom:2px}
.author-card-name a{color:var(--text-dark);text-decoration:none}
.author-card-name a:hover{color:var(--primary-orange)}
.author-card-title{font-size:0.85rem;color:var(--primary-orange);font-weight:600;margin-bottom:8px}
.author-card-bio{font-size:0.9rem;color:var(--gray-600);line-height:1.65;margin-bottom:8px}
.author-card-link{font-size:0.85rem;font-weight:600;color:var(--primary-orange);text-decoration:none}
.author-card-link:hover{text-decoration:underline}
@media(max-width:1024px) {
.blog-layout{grid-template-columns:1fr;gap:40px}
.blog-sidebar{order:2}
.sidebar-sticky{position:static}
}
@media(max-width:768px) {
.author-card{flex-direction:column;text-align:center;align-items:center}
}

/* === 404 ERROR PAGE === */
/* Source: 404.php */
.error-page {
    min-height: 70vh;
    display: flex;
    align-items: center;
    text-align: center;
    background: linear-gradient(135deg, var(--gray-50) 0%, var(--pure-white) 100%);
}

.error-content {
    max-width: 600px;
    margin: 0 auto;
}

.error-icon {
    color: var(--primary-orange);
    margin-bottom: var(--space-2xl);
    opacity: 0.7;
}

.error-title {
    font-size: clamp(2.5rem, 5vw, 4rem);
    color: var(--text-dark);
    margin-bottom: var(--space-lg);
}

.error-description {
    font-size: 1.25rem;
    color: var(--gray-600);
    margin-bottom: var(--space-2xl);
    line-height: 1.6;
}

.error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-lg);
    justify-content: center;
    margin-bottom: var(--space-4xl);
}

.search-section {
    background: var(--pure-white);
    border-radius: var(--radius-xl);
    padding: var(--space-2xl);
    margin-bottom: var(--space-4xl);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
}

.search-section h3 {
    color: var(--text-dark);
    margin-bottom: var(--space-lg);
}

.search-section .search-form {
    max-width: 400px;
    margin: 0 auto;
}

.helpful-links {
    background: var(--pure-white);
    border-radius: var(--radius-xl);
    padding: var(--space-2xl);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
    text-align: left;
}

.helpful-links h3 {
    text-align: center;
    color: var(--text-dark);
    margin-bottom: var(--space-2xl);
}

.links-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--space-2xl);
}

.link-group h4 {
    color: var(--primary-orange);
    margin-bottom: var(--space-lg);
    font-size: 1.125rem;
}

.link-group ul {
    list-style: none;
    padding: 0;
}

.link-group li {
    margin-bottom: var(--space-sm);
}

.link-group a {
    color: var(--gray-700);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.link-group a:hover {
    color: var(--primary-orange);
}

/* Search form styling */
.search-form {
    display: flex;
    gap: var(--space-sm);
    align-items: stretch;
}

.search-form .search-field {
    flex: 1;
    padding: var(--space-md);
    border: 2px solid var(--gray-300);
    border-radius: var(--radius-md);
    font-size: 1rem;
    transition: border-color var(--transition-normal);
}

.search-form .search-field:focus {
    outline: none;
    border-color: var(--primary-orange);
}

.search-form .search-submit {
    padding: var(--space-md) var(--space-lg);
    background: var(--primary-orange);
    color: var(--pure-white);
    border: none;
    border-radius: var(--radius-md);
    font-weight: 500;
    cursor: pointer;
    transition: background-color var(--transition-normal);
}

.search-form .search-submit:hover {
    background: var(--primary-orange-hover);
}

/* Responsive design */
@media (max-width: 768px) {
    .error-actions {
        flex-direction: column;
        align-items: stretch;
    }
    
    .error-actions .btn {
        width: 100%;
    }
    
    .links-grid {
        grid-template-columns: 1fr;
        gap: var(--space-lg);
    }
    
    .search-section,
    .helpful-links {
        padding: var(--space-xl);
    }
    
    .search-form {
        flex-direction: column;
    }
}

/* Animation */
@media (prefers-reduced-motion: no-preference) {
    .error-content {
        animation: fadeInUp 0.8s ease-out;
    }
    
    .error-icon {
        animation: float 3s ease-in-out infinite;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

/* === FOOTER === */
/* Source: footer.php */
.back-to-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 3rem;
    height: 3rem;
    background-color: var(--primary-orange);
    color: var(--pure-white);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-lg);
    transition: all var(--transition-normal);
}

.back-to-top:hover {
    background-color: var(--primary-orange-hover);
    transform: translateY(-2px);
}

/* Footer enhancements */
.footer-contact-info {
    margin: var(--space-lg) 0;
}

.contact-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
    margin-bottom: var(--space-sm);
}

.contact-item svg {
    margin-top: 0.2rem;
    flex-shrink: 0;
    color: var(--primary-orange);
}

.contact-item address {
    font-style: normal;
    line-height: 1.5;
}

.footer-social {
    display: flex;
    gap: var(--space-md);
    margin-top: var(--space-lg);
}

.footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background-color: var(--gray-700);
    color: var(--pure-white);
    border-radius: 50%;
    transition: all var(--transition-normal);
}

.footer-social a:hover {
    background-color: var(--primary-orange);
    transform: translateY(-2px);
}

.footer-section h3 {
    color: var(--pure-white);
    margin-bottom: var(--space-lg);
    font-size: 1.25rem;
}

.footer-section ul {
    list-style: none;
}

.footer-section li {
    margin-bottom: var(--space-sm);
}

.footer-section a {
    color: rgba(255,255,255,0.9);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.footer-section a:hover {
    color: var(--primary-orange);
}

.footer-cta {
    margin-top: var(--space-xl);
}

.footer-bottom { border-top: 1px solid rgba(255,255,255,0.9);
    padding-top: var(--space-lg);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-md);
}

.footer-tagline {
    color: rgba(255,255,255,0.6);
    font-size: 1.1rem;
    font-weight: 400;
    font-style: italic;
    margin-top: -8px;
    font-family: var(--font-display);
    letter-spacing: 0.01em;
    margin-bottom: 4px;
}

.footer-copyright {
    color: rgba(255,255,255,0.7);
    text-align: center;
    width: 100%;
}







/* Responsive adjustments */
@media (max-width: 768px) {
    .back-to-top {
        bottom: 1rem;
        right: 1rem;
        width: 2.5rem;
        height: 2.5rem;
    }
    
    .footer-bottom { border-top: 1px solid rgba(255,255,255,0.2);
        flex-direction: column;
        text-align: center;
    }
    
    .footer-social {
        justify-content: center;
    }
}

/* === HEADER === */
/* Source: header.php */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fff;border-bottom:1px solid rgba(0,0,0,0.06);transition:box-shadow .3s}

.header-main{padding:14px 0}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-logo{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--text-dark);text-decoration:none;white-space:nowrap;letter-spacing:-0.02em;flex-shrink:0;display:flex;align-items:center;gap:8px}
.site-logo .utah-icon{color:var(--primary-orange);flex-shrink:0}
.site-logo:hover{color:var(--primary-orange)}
.desktop-nav ul{list-style:none;display:flex;align-items:center;gap:28px;margin:0;padding:0}
.desktop-nav a{font-size:.9rem;font-weight:500;color:var(--text-dark);text-decoration:none;transition:color .2s;white-space:nowrap}
.desktop-nav a:hover{color:var(--primary-orange)}
.has-dropdown{position:relative}
.dropdown{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(16px);background:#fff;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,0.12);padding:12px 0;min-width:220px;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;z-index:100}
.has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(8px)}
.dropdown a{display:block;padding:10px 20px;font-size:.85rem;color:#333;transition:background .15s,color .15s}
.dropdown a:hover{background:var(--gray-50);color:var(--primary-orange)}
.header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}
.header-phone{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--primary-orange);text-decoration:none;font-size:.9rem;white-space:nowrap}
.header-cta-btn{font-size:.85rem!important;padding:10px 20px!important;border-radius:8px;font-weight:600;white-space:nowrap}
.hamburger{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-direction:column;gap:5px}
.hamburger span{display:block;width:24px;height:2.5px;background:var(--text-dark);border-radius:2px;transition:.3s}
.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:1001;opacity:0;transition:opacity .3s}
.mobile-overlay.active{display:block;opacity:1}
.mobile-drawer{position:fixed;top:0;right:0;bottom:0;width:320px;max-width:85vw;background:#fff;z-index:1002;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow-y:auto}
.mobile-drawer.active{transform:translateX(0)}
.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--gray-200)}
.mobile-drawer-logo{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--text-dark);display:flex;align-items:center;gap:6px}
.utah-icon{color:var(--primary-orange);flex-shrink:0}
.mobile-close{background:none;border:none;cursor:pointer;color:var(--text-dark);padding:4px}
.mobile-drawer-body{flex:1;padding:8px 0;overflow-y:auto}
.mobile-menu{list-style:none;margin:0;padding:0}
.mobile-menu>li>a,.mobile-expand-trigger>a{display:block;padding:14px 20px;font-size:1rem;font-weight:500;color:var(--text-dark);text-decoration:none;transition:color .15s}
.mobile-menu>li>a:hover,.mobile-expand-trigger>a:hover{color:var(--primary-orange)}
.mobile-expand-trigger{display:flex;align-items:center}
.mobile-expand-trigger>a{flex:1}
.mobile-expand-btn{background:none;border:none;padding:14px 20px;cursor:pointer;color:#999;transition:transform .2s}
.mobile-expand-btn.expanded{transform:rotate(180deg)}
.mobile-submenu{list-style:none;margin:0;padding:0;display:none;background:var(--gray-50)}
.mobile-submenu.show{display:block}
.mobile-submenu a{display:block;padding:12px 20px 12px 36px;font-size:.9rem;color:#555;text-decoration:none}
.mobile-submenu a:hover{color:var(--primary-orange)}
.mobile-drawer-footer{padding:20px;border-top:1px solid var(--gray-200);display:flex;flex-direction:column;gap:12px}
.mobile-phone-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--gray-50);border-radius:8px;color:var(--primary-orange);font-weight:600;text-decoration:none;font-size:1rem}
.mobile-hours{text-align:center;font-size:.8rem;color:#999;margin:0}
@media(max-width:1024px){.desktop-nav{display:none}.header-phone{display:none}.hamburger{display:flex}.header-cta-btn{font-size:.8rem!important;padding:8px 16px!important}}
@media(max-width:480px){.site-logo{font-size:1.2rem}.header-cta-btn{display:none}}

/* === AUTHOR PAGE === */
/* Source: author.php */
@media (max-width: 768px) {
.author-profile { flex-direction: column !important; align-items: center !important; text-align: center; }
.author-profile > div:last-child > div:last-child { justify-content: center; }
.section > .container > div:last-child > div { grid-template-columns: 1fr !important; }
}

/* Hero background image div */
.service-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}

/* Ensure overlay sits above bg image */
.hero-overlay,
.service-hero__overlay {
    z-index: 1;
}
.service-hero__bg {
    z-index: 0;
}
.hero-content,
.service-hero__content {
    position: relative;
    z-index: 2;
}
/* Page-hero overlay alias */
.page-hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(26,26,26,0.78);
    z-index: 1;
}

/* Footer copyright size override */
.footer-copyright { }

.footer-copyright, .footer-copyright p { font-size: 12px !important; }

/* Thank you page auto-scroll anchor */
#confirmation { scroll-margin-top: 80px; }
