.elementor-kit-6{--e-global-color-primary:#B8873E;--e-global-color-secondary:#D4782A;--e-global-color-text:#3D3531;--e-global-color-accent:#2B2420;--e-global-typography-primary-font-family:"Roboto Condensed";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Open Sans";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Open Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto Condensed";--e-global-typography-accent-font-weight:500;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ========================================
   NM RECYCLING - MASTER CSS
   Based on Brand Guidelines
======================================== */

/* ========================================
   1. CSS VARIABLES (Custom Properties)
======================================== */
:root {
  /* Primary Colors */
  --color-primary-dark: #2B2420;
  --color-primary-bronze: #B8873E;
  --color-primary-copper: #D4782A;
  
  /* Neutral Colors */
  --color-charcoal: #1A1614;
  --color-dark-grey: #3D3531;
  --color-medium-grey: #6B6158;
  --color-light-grey: #D4CFC9;
  --color-off-white: #F7F5F3;
  --color-white: #FFFFFF;
  
  /* Accent Colors */
  --color-silver: #8C8C8C;
  --color-industrial-blue: #2C5F7F;
  
  /* Functional Colors */
  --color-success: #2D7A4A;
  --color-warning: #D67D28;
  --color-error: #C4302B;
  --color-info: #2C5F7F;
  
  /* Typography */
  --font-heading: 'Roboto Condensed', sans-serif;
  --font-body: 'Open Sans', sans-serif;
  
  /* Spacing */
  --spacing-xs: 8px;
  --spacing-sm: 16px;
  --spacing-md: 24px;
  --spacing-lg: 40px;
  --spacing-xl: 64px;
  
  /* Border Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  
  /* Transitions */
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;
}

/* ========================================
   2. TYPOGRAPHY SYSTEM
======================================== */

/* Headings Base */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: var(--font-heading);
  font-weight: 700;
  margin-bottom: var(--spacing-sm);
  line-height: 1.3;
}

/* H1 - Main Page Titles */
h1,
.elementor-widget-heading h1.elementor-heading-title {
  font-size: 48px;
  line-height: 1.2;
  letter-spacing: -0.5px;
  color: var(--color-charcoal);
  text-transform: uppercase;
  font-weight: 700;
}

/* H2 - Section Headings */
h2,
.elementor-widget-heading h2.elementor-heading-title {
  font-size: 36px;
  line-height: 1.3;
  letter-spacing: -0.3px;
  color: var(--color-primary-dark);
  font-weight: 700;
}

/* H3 - Subsection Headings */
h3,
.elementor-widget-heading h3.elementor-heading-title {
  font-size: 28px;
  line-height: 1.4;
  letter-spacing: 0;
  color: var(--color-primary-dark);
  font-weight: 600;
}

/* H4 - Small Headings */
h4,
.elementor-widget-heading h4.elementor-heading-title {
  font-size: 22px;
  line-height: 1.4;
  color: var(--color-dark-grey);
  font-weight: 600;
}

/* H5 - Labels & Small Titles */
h5,
.elementor-widget-heading h5.elementor-heading-title {
  font-size: 18px;
  line-height: 1.5;
  color: var(--color-dark-grey);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* H6 - Tiny Headings */
h6,
.elementor-widget-heading h6.elementor-heading-title {
  font-size: 16px;
  line-height: 1.5;
  color: var(--color-medium-grey);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Body Text */
body,
p,
.elementor-widget-text-editor {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-dark-grey);
  font-weight: 400;
}

/* Lead Text (Large Body) */
.lead-text,
.body-large {
  font-size: 20px;
  line-height: 1.6;
  color: var(--color-dark-grey);
}

/* Small Text */
.body-small,
.small-text {
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-medium-grey);
}

/* Mobile Typography */
@media (max-width: 767px) {
  h1, .elementor-widget-heading h1.elementor-heading-title {
    font-size: 32px;
  }
  
  h2, .elementor-widget-heading h2.elementor-heading-title {
    font-size: 28px;
  }
  
  h3, .elementor-widget-heading h3.elementor-heading-title {
    font-size: 24px;
  }
  
  h4, .elementor-widget-heading h4.elementor-heading-title {
    font-size: 20px;
  }
  
  h5, .elementor-widget-heading h5.elementor-heading-title {
    font-size: 16px;
  }
}

/* ========================================
   3. BUTTON STYLES
======================================== */

/* Primary Button */
.elementor-button.btn-primary,
.elementor-button-primary {
  background-color: var(--color-primary-bronze);
  color: var(--color-white);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 16px;
  padding: 16px 32px;
  border-radius: var(--radius-sm);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border: none;
  transition: all var(--transition-normal);
  display: inline-block;
}

.elementor-button.btn-primary:hover,
.elementor-button-primary:hover {
  background-color: var(--color-primary-copper);
  color: var(--color-white);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(184, 135, 62, 0.3);
}

/* Secondary Button */
.elementor-button.btn-secondary {
  background-color: transparent;
  border: 2px solid var(--color-primary-bronze);
  color: var(--color-primary-bronze);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 16px;
  padding: 14px 30px;
  border-radius: var(--radius-sm);
  text-transform: uppercase;
  transition: all var(--transition-normal);
}

.elementor-button.btn-secondary:hover {
  background-color: var(--color-primary-bronze);
  color: var(--color-white);
  border-color: var(--color-primary-bronze);
}

/* Ghost Button */
.elementor-button.btn-ghost {
  background-color: transparent;
  border: none;
  color: var(--color-primary-dark);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 16px;
  padding: 8px 0;
  text-decoration: underline;
  transition: color var(--transition-fast);
}

.elementor-button.btn-ghost:hover {
  color: var(--color-primary-bronze);
}

/* Large CTA Button */
.elementor-button.btn-cta-large {
  background-color: var(--color-primary-bronze);
  color: var(--color-white);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 18px;
  padding: 20px 40px;
  border-radius: var(--radius-sm);
  text-transform: uppercase;
  letter-spacing: 1px;
  box-shadow: 0 4px 8px rgba(43, 36, 32, 0.2);
  transition: all var(--transition-normal);
}

.elementor-button.btn-cta-large:hover {
  background-color: var(--color-primary-copper);
  box-shadow: 0 6px 16px rgba(43, 36, 32, 0.3);
  transform: translateY(-3px);
}

/* ========================================
   4. LINK STYLES
======================================== */

/* Body Text Links */
a,
.elementor-widget-text-editor a {
  color: var(--color-primary-bronze);
  text-decoration: underline;
  font-weight: 600;
  transition: color var(--transition-fast);
}

a:hover,
.elementor-widget-text-editor a:hover {
  color: var(--color-primary-copper);
}

/* Navigation Links */
.nav-link,
.elementor-nav-menu a {
  color: var(--color-dark-grey);
  text-decoration: none;
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.5px;
  transition: all var(--transition-fast);
  border-bottom: 2px solid transparent;
  padding-bottom: 4px;
}

.nav-link:hover,
.elementor-nav-menu a:hover {
  color: var(--color-primary-bronze);
  border-bottom-color: var(--color-primary-bronze);
}

/* ========================================
   5. SECTION & CONTAINER BACKGROUNDS
======================================== */

/* White Section */
.section-white {
  background-color: var(--color-white);
}

/* Off-White Section */
.section-off-white {
  background-color: var(--color-off-white);
}

/* Dark Section */
.section-dark {
  background-color: var(--color-primary-dark);
  color: var(--color-white);
}

.section-dark h1,
.section-dark h2,
.section-dark h3,
.section-dark h4,
.section-dark h5,
.section-dark h6 {
  color: var(--color-white);
}

.section-dark p {
  color: rgba(255, 255, 255, 0.9);
}

/* ========================================
   6. CARDS & BOXES
======================================== */

/* Standard Card */
.card,
.service-card,
.location-card {
  background-color: var(--color-white);
  border-radius: var(--radius-md);
  padding: var(--spacing-lg);
  box-shadow: 0 2px 8px rgba(26, 22, 20, 0.08);
  transition: all var(--transition-normal);
  border: 1px solid var(--color-light-grey);
}

.card:hover,
.service-card:hover,
.location-card:hover {
  box-shadow: 0 8px 24px rgba(26, 22, 20, 0.12);
  transform: translateY(-4px);
}

/* Info Box */
.info-box {
  background-color: var(--color-off-white);
  border-left: 4px solid var(--color-industrial-blue);
  padding: var(--spacing-md);
  border-radius: var(--radius-sm);
  margin: var(--spacing-md) 0;
}

/* Success Box */
.success-box {
  background-color: rgba(45, 122, 74, 0.1);
  border-left: 4px solid var(--color-success);
  padding: var(--spacing-md);
  border-radius: var(--radius-sm);
  margin: var(--spacing-md) 0;
}

/* Warning Box */
.warning-box {
  background-color: rgba(214, 125, 40, 0.1);
  border-left: 4px solid var(--color-warning);
  padding: var(--spacing-md);
  border-radius: var(--radius-sm);
  margin: var(--spacing-md) 0;
}

/* ========================================
   7. BORDERS & DIVIDERS
======================================== */

.divider {
  height: 1px;
  background-color: var(--color-light-grey);
  margin: var(--spacing-lg) 0;
}

.divider-thick {
  height: 2px;
  background-color: var(--color-primary-bronze);
  margin: var(--spacing-lg) 0;
}

/* ========================================
   8. SPACING UTILITIES
======================================== */

.spacing-top-xs { padding-top: var(--spacing-xs); }
.spacing-top-sm { padding-top: var(--spacing-sm); }
.spacing-top-md { padding-top: var(--spacing-md); }
.spacing-top-lg { padding-top: var(--spacing-lg); }
.spacing-top-xl { padding-top: var(--spacing-xl); }

.spacing-bottom-xs { padding-bottom: var(--spacing-xs); }
.spacing-bottom-sm { padding-bottom: var(--spacing-sm); }
.spacing-bottom-md { padding-bottom: var(--spacing-md); }
.spacing-bottom-lg { padding-bottom: var(--spacing-lg); }
.spacing-bottom-xl { padding-bottom: var(--spacing-xl); }

.margin-top-xs { margin-top: var(--spacing-xs); }
.margin-top-sm { margin-top: var(--spacing-sm); }
.margin-top-md { margin-top: var(--spacing-md); }
.margin-top-lg { margin-top: var(--spacing-lg); }
.margin-top-xl { margin-top: var(--spacing-xl); }

.margin-bottom-xs { margin-bottom: var(--spacing-xs); }
.margin-bottom-sm { margin-bottom: var(--spacing-sm); }
.margin-bottom-md { margin-bottom: var(--spacing-md); }
.margin-bottom-lg { margin-bottom: var(--spacing-lg); }
.margin-bottom-xl { margin-bottom: var(--spacing-xl); }

/* ========================================
   9. ICONS & BADGES
======================================== */

.icon-bronze {
  color: var(--color-primary-bronze);
  font-size: 48px;
}

.icon-copper {
  color: var(--color-primary-copper);
  font-size: 48px;
}

.badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.badge-bronze {
  background-color: var(--color-primary-bronze);
  color: var(--color-white);
}

.badge-success {
  background-color: var(--color-success);
  color: var(--color-white);
}


/* ========================================
   11. RESPONSIVE UTILITIES
======================================== */

/* Hide on Mobile */
@media (max-width: 767px) {
  .hide-mobile {
    display: none !important;
  }
}

/* Hide on Desktop */
@media (min-width: 768px) {
  .hide-desktop {
    display: none !important;
  }
}

/* ========================================
   12. CUSTOM ELEMENTOR WIDGET STYLES
======================================== */

/* Icon Box Custom */
.elementor-widget-icon-box .elementor-icon {
  color: var(--color-primary-bronze);
  font-size: 48px;
  margin-bottom: var(--spacing-sm);
}

.elementor-widget-icon-box .elementor-icon-box-title {
  color: var(--color-primary-dark);
  font-family: var(--font-heading);
  font-weight: 700;
}

/* Image Box Custom */
.elementor-widget-image-box .elementor-image-box-title {
  color: var(--color-primary-dark);
  font-family: var(--font-heading);
  font-weight: 700;
}

/* Testimonial Custom */
.elementor-testimonial-wrapper {
  background-color: var(--color-off-white);
  padding: var(--spacing-lg);
  border-radius: var(--radius-md);
  border-left: 4px solid var(--color-primary-bronze);
}

/* ========================================
   13. LOCATION-SPECIFIC STYLES
======================================== */

.location-header {
  background-color: var(--color-primary-dark);
  color: var(--color-white);
  padding: var(--spacing-xl) 0;
  text-align: center;
}

.location-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--spacing-md);
  margin: var(--spacing-lg) 0;
}

.location-contact-box {
  background-color: var(--color-off-white);
  padding: var(--spacing-md);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-light-grey);
}

.location-contact-box h4 {
  color: var(--color-primary-bronze);
  margin-bottom: var(--spacing-sm);
}

/* ========================================
   14. ACCESSIBILITY
======================================== */

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

/* Skip to Content Link */
.skip-to-content {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--color-primary-bronze);
  color: var(--color-white);
  padding: 8px 16px;
  text-decoration: none;
  z-index: 100;
}

.skip-to-content:focus {
  top: 0;
}

/* ========================================
   15. IMAGE STYLES & OVERLAYS
======================================== */

/* Image Hover Effects */
.image-hover-lift {
  transition: transform var(--transition-normal);
}

.image-hover-lift:hover {
  transform: translateY(-8px);
}

.image-hover-zoom img {
  transition: transform var(--transition-normal);
  overflow: hidden;
}

.image-hover-zoom:hover img {
  transform: scale(1.05);
}

/* Image Overlays */
.image-overlay-dark {
  position: relative;
  overflow: hidden;
}

.image-overlay-dark::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgba(26, 22, 20, 0.3) 0%, rgba(26, 22, 20, 0.7) 100%);
  z-index: 1;
  transition: opacity var(--transition-normal);
}

.image-overlay-dark:hover::after {
  opacity: 0.5;
}

/* Bronze Overlay */
.image-overlay-bronze {
  position: relative;
  overflow: hidden;
}

.image-overlay-bronze::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(184, 135, 62, 0.7) 0%, rgba(212, 120, 42, 0.8) 100%);
  z-index: 1;
  opacity: 0;
  transition: opacity var(--transition-normal);
}

.image-overlay-bronze:hover::after {
  opacity: 1;
}

/* Light Overlay (for text readability on hero images) */
.image-overlay-light {
  position: relative;
}

.image-overlay-light::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(247, 245, 243, 0.4);
  z-index: 1;
}

/* Dark Gradient Overlay (Hero sections) */
.image-overlay-gradient-dark {
  position: relative;
}

.image-overlay-gradient-dark::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, rgba(43, 36, 32, 0.4) 0%, rgba(43, 36, 32, 0.8) 100%);
  z-index: 1;
}

/* Ensure content appears above overlays */
.image-overlay-dark > *,
.image-overlay-bronze > *,
.image-overlay-light > *,
.image-overlay-gradient-dark > * {
  position: relative;
  z-index: 2;
}

/* Image Borders */
.image-border-bronze {
  border: 4px solid var(--color-primary-bronze);
  border-radius: var(--radius-sm);
}

.image-border-light {
  border: 2px solid var(--color-light-grey);
  border-radius: var(--radius-sm);
}

/* Image Shadows */
.image-shadow-soft {
  box-shadow: 0 4px 16px rgba(26, 22, 20, 0.12);
  border-radius: var(--radius-sm);
}

.image-shadow-strong {
  box-shadow: 0 8px 32px rgba(26, 22, 20, 0.2);
  border-radius: var(--radius-md);
}

/* Lazy Load Placeholder */
.lazy-placeholder {
  background: linear-gradient(90deg, var(--color-off-white) 0%, var(--color-light-grey) 50%, var(--color-off-white) 100%);
  background-size: 200% 100%;
  animation: loading 1.5s infinite;
}

@keyframes loading {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Icon Overlay on Images (e.g., play button, link icon) */
.image-icon-overlay {
  position: relative;
  overflow: hidden;
}

.image-icon-overlay::before {
  content: '\f0c1'; /* Font Awesome link icon - change as needed */
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 48px;
  color: var(--color-white);
  opacity: 0;
  z-index: 3;
  transition: opacity var(--transition-normal);
}

.image-icon-overlay:hover::before {
  opacity: 1;
}

/* Before/After Images (for comparison) */
.before-after-container {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-md);
}

.before-after-container .after-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 100%;
  overflow: hidden;
  border-right: 3px solid var(--color-primary-bronze);
}

/* Image Aspect Ratios */
.aspect-ratio-16-9 {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.aspect-ratio-4-3 {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.aspect-ratio-1-1 {
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.aspect-ratio-16-9 img,
.aspect-ratio-4-3 img,
.aspect-ratio-1-1 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Gallery Spacing */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--spacing-md);
  margin: var(--spacing-lg) 0;
}

.gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius-sm);
  transition: transform var(--transition-normal);
}

.gallery-grid img:hover {
  transform: scale(1.03);
  box-shadow: 0 8px 24px rgba(26, 22, 20, 0.15);
}

/* Team/Staff Photos */
.team-photo {
  border-radius: 50%;
  border: 4px solid var(--color-primary-bronze);
  width: 180px;
  height: 180px;
  object-fit: cover;
}

/* Logo Images */
.partner-logo,
.certification-logo {
  filter: grayscale(100%);
  opacity: 0.6;
  transition: all var(--transition-fast);
  max-height: 80px;
  width: auto;
}

.partner-logo:hover,
.certification-logo:hover {
  filter: grayscale(0%);
  opacity: 1;
}

/* Background Images with Text Overlay */
.bg-image-section {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}

.bg-image-section::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(43, 36, 32, 0.6);
  z-index: 1;
}

.bg-image-section > * {
  position: relative;
  z-index: 2;
}

/* ========================================
   END IMAGE STYLES
======================================== */

/* ========================================
   END MASTER CSS
======================================== *//* End custom CSS */