/*
  Global stylesheet for the BuildMaster Pro enhanced site.
  Defines a modern, responsive design with a focus on usability and
  consistency across the entire application. Variables are used to
  centralize colours and make dark‑mode toggling easy to implement.
*/

/* Colour palette inspired by an industrial construction theme.
   Colours are defined in HSL for easy theming and consistency. */
:root {
  /* Core palette */
  --primary-color: hsl(210, 50%, 25%);      /* deep industrial blue for headers and footers */
  --secondary-color: hsl(22, 96%, 50%);     /* construction orange accent for highlights and buttons */
  --background-color: hsl(0, 0%, 100%);     /* clean white page background */
  --text-color: hsl(210, 24%, 16%);         /* dark steel grey for body text */
  --heading-color: hsl(210, 24%, 16%);      /* same as text for headings */
  --light-grey: hsl(210, 16%, 93%);         /* light steel backdrop for panels */
  --dark-grey: hsl(210, 12%, 45%);          /* muted grey for secondary text */
  /* Semantic colours */
  --success-color: hsl(150, 86%, 65%);      /* success green matching design system */
  --danger-color: hsl(0, 84%, 60%);         /* error red matching design system */
  /* Accent colour used throughout CTAs and highlights */
  --accent-color: hsl(22, 96%, 50%);
  /* Gradients used for hero and accent sections */
  --gradient-hero: linear-gradient(135deg, hsl(210, 50%, 25%), hsl(210, 30%, 18%));
  --gradient-accent: linear-gradient(135deg, hsl(22, 96%, 50%), hsl(45, 100%, 55%));
    --background: 0 0% 100%;
            --foreground: 210 24% 16%;
            --card: 0 0% 100%;
            --card-foreground: 210 24% 16%;
            --popover: 0 0% 100%;
            --popover-foreground: 210 24% 16%;
            --primary: 210 50% 25%;
            --primary-foreground: 0 0% 98%;
            --secondary: 210 16% 93%;
            --secondary-foreground: 210 24% 16%;
            --muted: 210 20% 96%;
            --muted-foreground: 210 12% 45%;
            --accent: hsl(22 96% 50%);
            --accent-foreground: 0 0% 98%;
            --destructive: 0 84% 60%;
            --destructive-foreground: 0 0% 98%;
            --border: 210 20% 90%;
            --input: 210 20% 95%;
            --ring: 210 50% 25%;
            --radius: 0.75rem;
            --steel: 210 16% 82%;
            --steel-dark: 210 20% 25%;
            --construction-orange: 22 96% 50%;
            --construction-yellow: 45 100% 55%;
            --industrial-blue: 210 50% 25%;
            --deep-steel: 210 24% 16%;
            --gradient-hero: linear-gradient(135deg, hsl(var(--industrial-blue)), hsl(var(--steel-dark)));
            --gradient-card: linear-gradient(145deg, hsl(var(--background)), hsl(var(--muted)));
            --gradient-accent: linear-gradient(135deg, hsl(var(--construction-orange)), hsl(var(--construction-yellow)));
            --shadow-industrial: 0 8px 32px -8px hsl(var(--industrial-blue)/0.2);
            --shadow-card: 0 4px 16px -4px hsl(var(--deep-steel)/0.1);
            --shadow-accent: 0 8px 24px -8px hsl(var(--construction-orange)/0.3);
            --transition-smooth: all 0.3s cubic-bezier(0.4,0,0.2,1);
            --transition-bounce: all 0.4s cubic-bezier(0.68,-0.55,0.265,1.55);
}

/* Reset and base styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  /* Use Inter across the entire site for a clean, modern look */
  font-family: 'Inter', sans-serif;
  color: var(--text-color);
  line-height: 1.6;
  background-color: var(--background-color);
  scroll-behavior: smooth;
  min-height: 100%;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  color: var(--heading-color);
  margin-bottom: 0.5rem;
}

p {
  margin-bottom: 1rem;
  color: var(--dark-grey);
}

a {
  color: var(--primary-color);
  text-decoration: none;
  transition: color 0.3s;
}

a:hover {
  color: var(--secondary-color);
}

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

/* Layout container */
.container {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}

/* Header */
header {
  background-color: var(--primary-color);
  color: #fff;
  padding: 0.8rem 0;
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

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

.logo {
  display: flex;
  align-items: center;
}

.logo img{
  max-width: 8%;
  height: auto;
} .logo-accent {
  color: var(--accent-color);
}

.logo h1 {
  color: #fff;
  font-size: 1.8rem;
  margin-left: 0.5rem;
}

.logo-icon {
  font-size: 2rem;
  color: var(--secondary-color);
}

nav ul {
  display: flex;
  list-style: none;
}

nav ul li {
  /* Reduce left margin to accommodate additional nav items */
  margin-left: 1rem;
}

nav ul li a {
  color: #fff;
  font-weight: 500;
  position: relative;
  font-size: 0.9rem;
}

nav ul li a:hover,
nav ul li a.active {
  color: var(--secondary-color);
}

/* Dropdown menu styles for the header navigation */
nav ul li.dropdown {
  position: relative;
}

nav ul li .dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background-color: var(--primary-color);
  min-width: 12rem;
  list-style: none;
  padding: 0.5rem 0;
  border-radius: 0 0 4px 4px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  display: none;
  z-index: 1001;
}

nav ul li.open > .dropdown-menu,
nav ul li:hover > .dropdown-menu,
nav ul li:focus-within > .dropdown-menu {
  display: block;
}

nav ul li .dropdown-menu li {
  margin: 0;
}

nav ul li .dropdown-menu a {
  display: block;
  padding: 0.5rem 1rem;
  color: #fff;
  white-space: nowrap;
  font-size: 0.85rem;
}

nav ul li .dropdown-menu a:hover {
  background-color: var(--secondary-color);
}


/* Search icon in header */
.search-trigger {
  font-size: 1.2rem;
  color: #fff;
  margin-left: 1rem;
  cursor: pointer;
  transition: color 0.3s;
}

.search-trigger:hover {
  color: var(--secondary-color);
}

/* ------------------------------------------------------------------
 * Enhanced hero styling (imported from design mockup)
 *
 * The following styles are adapted from the provided `index.html` mockup
 * to achieve visual parity for the hero section.  They introduce a
 * detailed, layered hero with background images, overlays, feature
 * lists, call‑to‑action buttons and animated decorations.  All
 * variables are scoped in :root to avoid conflicts with the rest of
 * the design.  New custom properties define vibrant construction
 * colours which complement the existing palette.
 * ------------------------------------------------------------------ */

:root {
  /* Extended palette for hero section */
  --construction-orange: 22 96% 50%;
  --construction-yellow: 45 100% 55%;
  --industrial-blue: 210 50% 25%;
  --steel-dark: 210 20% 25%;
  --deep-steel: 210 24% 16%;
  --accent-foreground: 0 0% 98%;
}

/* Base hero container.  Each .hero-slide uses these rules to
   structure its background, overlay and content layers. */
/*
 * Each hero slide occupies the full extent of the slider.  We set
 * absolute positioning here to allow fading transitions controlled by
 * the `.hero-slider .hero-slide` rules.  Without this, slides would
 * remain in normal flow and overlap during transitions.  The
 * min-height ensures that content vertically centres within the
 * viewport.
 */
.hero-slider .hero {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background: var(--gradient-hero);
  overflow: hidden;
}

/* Background image container */
.hero-slider .hero-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.hero-slider .hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.8;
}

/* Dark gradient overlay to improve text contrast */
.hero-slider .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right,
      hsl(var(--industrial-blue)/0.9),
      hsl(var(--industrial-blue)/0.7),
      transparent);
}

/* Content container sits above overlay */
.hero-slider .hero-content {
  position: relative;
  z-index: 10;
  max-width: 56rem;
  padding: 1rem;
}

/* Tagline pill at top of hero */
.hero-slider .hero-tag {
  display: inline-block;
  padding: 0.5rem 1rem;
  background-color: hsl(var(--construction-orange)/0.1);
  border: 1px solid hsl(var(--construction-orange)/0.2);
  border-radius: 9999px;
  color: hsl(var(--construction-orange));
  font-weight: 600;
  font-size: 0.875rem;
  backdrop-filter: blur(4px);
  margin-bottom: 1.5rem;
}

 /* Equipment Categories */
        .equipment-section {
            padding: 5rem 0;
            background-color: hsl(var(--background));
        }
         .equipment.container {
            width: 100%;
            max-width: 1400px;
            margin: 0 auto;
            padding: 0 1rem;
        }
          .section-header {
            text-align: center;
            margin-bottom: 4rem;
        } 
        
        .section-tag {
            display: inline-block;
            padding: 0.5rem 1rem;
            background-color: hsl(var(--primary)/0.1);
            border: 1px solid hsl(var(--primary)/0.2);
            border-radius: 9999px;
            color: hsl(var(--primary));
            font-weight: 600;
            font-size: 0.875rem;
            margin-bottom: 1rem;
        }

        .section-title {
            font-size: 2.25rem;
            font-weight: 700;
            color: hsl(var(--foreground));
            margin-bottom: 1.5rem;
        }

        @media (min-width: 768px) {
            .section-title {
                font-size: 3rem;
            }
        }

        .section-title-accent {
            color: hsl(var(--construction-orange));
        }

        .section-description {
            font-size: 1.25rem;
            color: hsl(var(--muted-foreground));
            max-width: 48rem;
            margin: 0 auto;
        }

        .category-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 2rem;
        }

        .category-title {
            font-size: 1.875rem;
            font-weight: 700;
            color: hsl(var(--foreground));
        }

        .view-all-btn {
            display: none;
            align-items: center;
            gap: 0.5rem;
            border: 1px solid hsl(var(--input));
            background-color: hsl(var(--background));
            border-radius: 0.5rem;
            height: 2.5rem;
            padding: 0 1rem;
            font-size: 0.875rem;
            font-weight: 500;
            transition: all 0.3s ease;
            cursor: pointer;
        }

        @media (min-width: 768px) {
            .view-all-btn {
                display: flex;
            }
        }

        .view-all-btn:hover {
            background-color: hsl(var(--accent));
            color: hsl(var(--accent-foreground));
        }

        .equipment-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 1rem;
            margin-bottom: 5rem;
        }

        @media (min-width: 768px) {
            .equipment-grid {
                grid-template-columns: repeat(4, 1fr);
            }
        }

        @media (min-width: 1024px) {
            .equipment-grid {
                grid-template-columns: repeat(8, 1fr);
            }
        }

        .equipment-card {
            padding: 1rem;
            background: var(--gradient-card);
            border: 1px solid hsl(var(--border));
            border-radius: 0.5rem;
            text-align: center;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .equipment-card:hover {
            box-shadow: var(--shadow-card);
            transform: scale(1.05);
        }

        .equipment-card:hover .equipment-name {
            color: hsl(var(--primary));
        }

        .equipment-icon {
            font-size: 1.5rem;
            margin-bottom: 0.5rem;
            transition: transform 0.3s ease;
        }

        .equipment-card:hover .equipment-icon {
            transform: scale(1.1);
        }

        .equipment-name {
            font-size: 0.875rem;
            font-weight: 600;
            color: hsl(var(--foreground));
            transition: color 0.3s ease;
        }

        .power-tools-grid {
            display: grid;
            grid-template-columns: repeat(1, 1fr);
            gap: 1.5rem;
        }

        @media (min-width: 768px) {
            .power-tools-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (min-width: 1024px) {
            .power-tools-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        .power-tool-card {
            padding: 1.5rem;
            background: var(--gradient-card);
            border: 1px solid hsl(var(--border));
            border-radius: 0.5rem;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .power-tool-card:hover {
            box-shadow: var(--shadow-industrial);
            transform: scale(1.05);
        }

        .power-tool-card:hover .power-tool-title {
            color: hsl(var(--primary));
        }

        .power-tool-header {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            margin-bottom: 1rem;
        }

        .power-tool-emoji {
            font-size: 1.875rem;
            transition: transform 0.3s ease;
        }

        .power-tool-card:hover .power-tool-emoji {
            transform: scale(1.1);
        }

        .power-tool-count {
            font-size: 0.75rem;
            background-color: hsl(var(--construction-orange)/0.1);
            color: hsl(var(--construction-orange));
            padding: 0.25rem 0.5rem;
            border-radius: 9999px;
            font-weight: 500;
        }

        .power-tool-title {
            font-size: 1.25rem;
            font-weight: 700;
            color: hsl(var(--foreground));
            margin-bottom: 0.5rem;
            transition: color 0.3s ease;
        }

        .power-tool-description {
            font-size: 0.875rem;
            color: hsl(var(--muted-foreground));
            margin-bottom: 1rem;
        }

        .power-tool-link {
            display: flex;
            align-items: center;
            gap: 0.25rem;
            font-size: 0.875rem;
            font-weight: 500;
            color: hsl(var(--primary));
            transition: color 0.3s ease;
        }

        .power-tool-card:hover .power-tool-link {
            color: hsl(var(--construction-orange));
        }

        .power-tool-link-icon {
            transition: transform 0.3s ease;
        }

        .power-tool-card:hover .power-tool-link-icon {
            transform: translateX(0.25rem);
        }

        .features-grid {
            display: grid;
            grid-template-columns: repeat(1, 1fr);
            gap: 2rem;
            margin-top: 4rem;
            padding-top: 4rem;
            border-top: 1px solid hsl(var(--border));
        }

        @media (min-width: 768px) {
            .features-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        .feature-card {
            text-align: center;
        }

        .feature-icon {
            width: 4rem;
            height: 4rem;
            background-color: hsl(var(--construction-orange)/0.1);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 1rem;
        }

        .feature-icon svg {
            width: 2rem;
            height: 2rem;
            color: hsl(var(--construction-orange));
        }

        .feature-title {
            font-size: 1.25rem;
            font-weight: 700;
            color: hsl(var(--foreground));
            margin-bottom: 0.5rem;
        }

        .feature-description {
            color: hsl(var(--muted-foreground));
        }

        /* Featured Products */
        .featured-section {
            padding: 5rem 0;
            background-color: hsl(var(--muted)/0.5);
        }

        .featured-tag {
            display: inline-block;
            padding: 0.5rem 1rem;
            background-color: hsl(var(--construction-orange)/0.1);
            border: 1px solid hsl(var(--construction-orange)/0.2);
            border-radius: 9999px;
            color: hsl(var(--construction-orange));
            font-weight: 600;
            font-size: 0.875rem;
            margin-bottom: 1rem;
        }

        .products-grid {
            display: grid;
            grid-template-columns: repeat(1, 1fr);
            gap: 2rem;
        }

        @media (min-width: 768px) {
            .products-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (min-width: 1024px) {
            .products-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        .product-card {
            background-color: hsl(var(--background));
            border: 1px solid hsl(var(--border));
            border-radius: 0.5rem;
            overflow: hidden;
            transition: all 0.3s ease;
        }

        .product-card:hover {
            box-shadow: var(--shadow-industrial);
            transform: scale(1.05);
        }

        .product-card:hover .product-title {
            color: hsl(var(--primary));
        }

        .product-image {
            position: relative;
            overflow: hidden;
        }

        .product-img {
            width: 100%;
            height: 12rem;
            object-fit: cover;
            transition: transform 0.5s ease;
        }

        .product-card:hover .product-img {
            transform: scale(1.1);
        }

        .product-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, rgb(0 0 0 / 0.2), transparent);
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .product-card:hover .product-overlay {
            opacity: 1;
        }

        .product-badge {
            position: absolute;
            top: 1rem;
            left: 1rem;
            padding: 0.25rem 0.75rem;
            color: white;
            font-size: 0.75rem;
            font-weight: 700;
            border-radius: 9999px;
        }

        .badge-orange {
            background-color: hsl(var(--construction-orange));
        }

        .badge-blue {
            background-color: hsl(var(--industrial-blue));
        }

        .badge-yellow {
            background-color: hsl(var(--construction-yellow));
        }

        .badge-dark {
            background-color: hsl(var(--deep-steel));
        }

        .product-actions {
            position: absolute;
            top: 1rem;
            right: 1rem;
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .product-card:hover .product-actions {
            opacity: 1;
        }

        .action-btn {
            width: 2rem;
            height: 2rem;
            background-color: rgb(255 255 255 / 0.9);
            border-radius: 0.375rem;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s ease;
        }

        .action-btn:hover {
            background-color: white;
        }

        .action-btn svg {
            width: 1rem;
            height: 1rem;
        }

        .product-content {
            padding: 1.5rem;
        }

        .product-category {
            display: inline-block;
            border-radius: 9999px;
            border: 1px solid transparent;
            background-color: hsl(var(--secondary));
            color: hsl(var(--secondary-foreground));
            padding: 0.25rem 0.625rem;
            font-size: 0.75rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
        }

        .product-title {
            font-size: 1.125rem;
            font-weight: 700;
            color: hsl(var(--foreground));
            margin-bottom: 0.5rem;
            transition: color 0.3s ease;
        }

        .product-rating {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            margin-bottom: 0.75rem;
        }

        .stars {
            display: flex;
            align-items: center;
        }

        .star {
            width: 1rem;
            height: 1rem;
        }

        .star.filled {
            color: hsl(var(--construction-yellow));
            fill: currentColor;
        }

        .star.outline {
            color: hsl(var(--muted-foreground));
        }

        .rating-text {
            font-size: 0.875rem;
            color: hsl(var(--muted-foreground));
        }

        .product-features {
            font-size: 0.875rem;
            color: hsl(var(--muted-foreground));
            margin-bottom: 1rem;
        }

        .feature-list {
            list-style: none;
        }

        .feature-item {
            display: flex;
            align-items: center;
            margin-bottom: 0.25rem;
        }

        .feature-bullet {
            width: 0.375rem;
            height: 0.375rem;
            background-color: hsl(var(--construction-orange));
            border-radius: 50%;
            margin-right: 0.5rem;
            flex-shrink: 0;
        }

        .product-pricing {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 1rem;
        }

        .product-price {
            font-size: 1.5rem;
            font-weight: 700;
            color: hsl(var(--foreground));
        }

        .product-old-price {
            font-size: 0.875rem;
            color: hsl(var(--muted-foreground));
            text-decoration: line-through;
        }

        .product-discount {
            color: rgb(22 163 74);
            font-size: 0.875rem;
            font-weight: 600;
        }

        .product-buttons {
            display: flex;
            gap: 0.5rem;
        }

        .add-to-cart-btn {
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            background-color: hsl(var(--construction-orange));
            color: white;
            font-weight: 700;
            height: 2.5rem;
            padding: 0 1rem;
            border-radius: 0.375rem;
            box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
            transition: all 0.3s ease;
            cursor: pointer;
        }

        .add-to-cart-btn:hover {
            background-color: hsl(var(--construction-orange)/0.9);
            box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1);
            transform: scale(1.05);
        }

        .add-to-cart-btn svg {
            width: 1rem;
            height: 1rem;
        }

        .wishlist-btn {
            width: 2.5rem;
            height: 2.5rem;
            border: 1px solid hsl(var(--input));
            background-color: hsl(var(--background));
            border-radius: 0.375rem;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s ease;
            cursor: pointer;
        }

        .wishlist-btn:hover {
            background-color: hsl(var(--accent));
            color: hsl(var(--accent-foreground));
        }

        .wishlist-btn svg {
            width: 1rem;
            height: 1rem;
        }

        .view-all-products {
            text-align: center;
            margin-top: 3rem;
        }

        .view-all-btn-large {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            background: var(--gradient-accent);
            color: hsl(var(--accent-foreground));
            font-weight: 600;
            height: 2.75rem;
            padding: 0 2rem;
            border-radius: 0.5rem;
            box-shadow: var(--shadow-accent);
            transition: all 0.3s ease;
            cursor: pointer;
        }

        .view-all-btn-large:hover {
            box-shadow: 0 8px 24px -8px hsl(var(--construction-orange)/0.4);
            transform: scale(1.05);
        }

        .view-all-btn-large svg {
            width: 1.25rem;
            height: 1.25rem;
        }
/* Main hero title */
.hero-slider .hero-title {
  font-size: 3rem;
  font-weight: 700;
  color: white;
  margin-bottom: 1.5rem;
  line-height: 1.25;
}

@media (min-width: 768px) {
  .hero-slider .hero-title {
    font-size: 2.5rem;
  }
}

.hero-slider .hero-title-accent {
  display: block;
  color: hsl(var(--construction-orange));
}

/* Hero description paragraph */
.hero-slider .hero-description {
  font-size: 1.25rem;
  color: rgb(229 231 235);
  margin-bottom: 2rem;
  max-width: 42rem;
  line-height: 1.625;
}

/* Feature list within hero */
.hero-slider .hero-features {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}

@media (min-width: 768px) {
  .hero-slider .hero-features {
    grid-template-columns: repeat(3, 1fr);
  }
}

.hero-slider .hero-feature {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: white;
}

.hero-slider .hero-feature-icon {
  width: 1.25rem;
  height: 1.25rem;
  color: hsl(var(--construction-orange));
  flex-shrink: 0;
}

.hero-slider .hero-feature-text {
  font-weight: 500;
}

/* Button row in hero */
.hero-slider .hero-buttons {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 4rem;
}

@media (min-width: 640px) {
  .hero-slider .hero-buttons {
    flex-direction: row;
  }
}

/* Primary CTA button */
.hero-slider .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  border-radius: 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
  height: 2.75rem;
  padding: 0 2rem;
  background: var(--gradient-accent);
  color: hsl(var(--accent-foreground));
  box-shadow: 0 8px 24px -8px hsl(var(--construction-orange)/0.3);
  transition: all 0.3s ease;
  text-decoration: none;
  border: none;
}

.hero-slider .btn-primary:hover {
  box-shadow: 0 8px 24px -8px hsl(var(--construction-orange)/0.4);
  transform: scale(1.05);
}

/* Secondary CTA button */
.hero-slider .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  border-radius: 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
  height: 2.75rem;
  padding: 0 2rem;
  background-color: transparent;
  color: white;
  border: 1px solid rgb(255 255 255 / 0.3);
  transition: all 0.3s ease;
  text-decoration: none;
}

.hero-slider .btn-secondary:hover {
  background-color: rgb(255 255 255 / 0.1);
}

/* Stats section beneath hero CTAs */
.hero-slider .hero-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid rgb(255 255 255 / 0.2);
}

@media (min-width: 768px) {
  .hero-slider .hero-stats {
    grid-template-columns: repeat(4, 1fr);
  }
}

.hero-slider .hero-stat {
  text-align: center;
}

.hero-slider .hero-stat-number {
  font-size: 1.875rem;
  font-weight: 700;
  color: hsl(var(--construction-orange));
  margin-bottom: 0.5rem;
}

.hero-slider .hero-stat-label {
  font-size: 0.875rem;
  color: rgb(209 213 219);
}

/* Floating blurred circles used as decorations */
.hero-slider .hero-decoration {
  position: absolute;
  border-radius: 50%;
  filter: blur(24px);
  opacity: 0.6;
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.hero-slider .hero-decoration-1 {
  top: 5rem;
  right: 5rem;
  width: 8rem;
  height: 8rem;
  background-color: hsl(var(--construction-orange)/0.1);
}

.hero-slider .hero-decoration-2 {
  bottom: 10rem;
  left: 5rem;
  width: 6rem;
  height: 6rem;
  background-color: hsl(var(--construction-yellow)/0.1);
  animation-delay: 1s;
}

@keyframes pulse {
  0%, 100% {
    opacity: 0.6;
  }
  50% {
    opacity: 0.3;
  }
}

/* Ensure hero slider navigation arrows appear above hero content */
.hero-slider .slider-prev,
.hero-slider .slider-next {
  z-index: 20;
}

/* Hero section */
/*
 * Hero section styling. Instead of a static background we support a
 * full‑width slider. The hero itself is a container that holds
 * absolutely positioned slides and navigation. Colour is kept light
 * so that white text remains visible over images.
 */
.hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  padding: 0;
  min-height: 60vh;
  text-align: center;
  background: var(--gradient-hero);
}

.hero h2 {
  font-size: 2.8rem;
  margin-bottom: 1rem;
}

.hero p {
  font-size: 1.2rem;
  max-width: 700px;
  margin: 0 auto 2rem;
  color: #f2f2f2; /* lighten hero paragraph text for better contrast */
}

.btn {
  display: inline-block;
  background-color: var(--secondary-color);
  color: #fff;
  padding: 0.8rem 1.6rem;
  border-radius: 4px;
  font-weight: 500;
  transition: background-color 0.3s;
  white-space: nowrap;
}

.btn:hover {
  /* Use brightness filter instead of SASS darken() */
  filter: brightness(0.9);
}

/* Section headings */
.section-title {
  text-align: center;
  margin: 3rem 0 1rem;
  position: relative;
}

.section-title::after {
  content: '';
  display: block;
  width: 80px;
  height: 4px;
  background: var(--secondary-color);
  margin: 10px auto;
}

/* Equipment grid and cards */
.equipment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.card {
  /* Soft gradient background on cards for subtle depth */
  background: linear-gradient(145deg, var(--background-color), hsl(210, 20%, 96%));
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
  transition: transform 0.3s, box-shadow 0.3s;
  display: flex;
  flex-direction: column;
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0,0,0,0.1);
}

.card-img {
  height: 200px;
  overflow: hidden;
}

.card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}

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

.card-body {
  padding: 1rem 1.2rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.card-body h3 {
  margin-bottom: 0.5rem;
  font-size: 1.4rem;
  color: var(--heading-color);
}

.card-body p {
  flex: 1;
  margin-bottom: 0.8rem;
  font-size: 0.95rem;
  color: var(--dark-grey);
}

.price {
  font-weight: bold;
  color: var(--primary-color);
  margin-bottom: 0.8rem;
}

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

.card-actions button {
  flex: 1;
  margin-right: 0.4rem;
  padding: 0.5rem;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-weight: 500;
  transition: background-color 0.3s;
}

.card-actions button:last-child {
  margin-right: 0;
}

.add-quote-btn {
  background: var(--secondary-color);
  color: #fff;
}

.add-quote-btn:hover {
  filter: brightness(0.9);
}

.compare-btn {
  background: var(--primary-color);
  color: #fff;
}

.compare-btn:hover {
  filter: brightness(0.9);
}

/* Filter bar */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  gap: 1rem;
}

.filter-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.filter-group label {
  margin-right: 0.5rem;
  font-weight: 500;
}

.filter-group input[type="checkbox"] {
  margin-right: 0.25rem;
}

.filter-group input[type="range"] {
  width: 120px;
}

/* Quote sidebar */
.quote-sidebar {
  position: fixed;
  top: 0;
  right: 0;
  width: 360px;
  height: 100%;
  background: #fff;
  box-shadow: -2px 0 8px rgba(0,0,0,0.1);
  transform: translateX(100%);
  transition: transform 0.4s;
  z-index: 2000;
  display: flex;
  flex-direction: column;
}

.quote-sidebar.open {
  transform: translateX(0);
}

.quote-header {
  padding: 1rem 1.5rem;
  background: var(--primary-color);
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.quote-header h3 {
  margin: 0;
  font-size: 1.3rem;
}

.quote-header button {
  background: transparent;
  border: none;
  color: #fff;
  font-size: 1.3rem;
  cursor: pointer;
}

.quote-items {
  flex: 1;
  overflow-y: auto;
  padding: 0.5rem 1rem;
}

.quote-item {
  border-bottom: 1px solid var(--light-grey);
  padding: 0.8rem 0;
}

.quote-item:last-child {
  border-bottom: none;
}

.quote-item h4 {
  margin: 0;
  font-size: 1rem;
  color: var(--primary-color);
}

.quote-item .quantity-controls {
  display: flex;
  align-items: center;
  margin: 0.5rem 0;
}

.quantity-controls button {
  width: 24px;
  height: 24px;
  border: none;
  background: var(--secondary-color);
  color: #fff;
  border-radius: 4px;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}

.quantity-controls span {
  display: inline-block;
  width: 32px;
  text-align: center;
  font-size: 0.9rem;
}

.quote-item .options {
  font-size: 0.85rem;
  margin-bottom: 0.4rem;
}

.quote-item .options label {
  display: block;
  margin-top: 0.3rem;
}

.quote-item .options input[type="checkbox"] {
  margin-right: 0.3rem;
}

.quote-item .item-totals {
  font-size: 0.9rem;
  display: flex;
  justify-content: space-between;
  margin-top: 0.5rem;
}

.quote-footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--light-grey);
  background: #fff;
}

.quote-summary {
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.quote-summary div {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.3rem;
}

.request-quote-btn {
  width: 100%;
  padding: 0.8rem;
  background: var(--secondary-color);
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.3s;
}

.request-quote-btn:hover {
  filter: brightness(0.9);
}

/* Compare modal */
.compare-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.6);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 3000;
}

.compare-overlay.show {
  display: flex;
}

.compare-modal {
  background: #fff;
  border-radius: 6px;
  width: 90%;
  max-width: 900px;
  max-height: 80vh;
  overflow-y: auto;
  padding: 1.5rem;
  position: relative;
}

.compare-modal h3 {
  margin-bottom: 1rem;
  font-size: 1.5rem;
}

.compare-table {
  width: 100%;
  border-collapse: collapse;
  overflow-x: auto;
}

.compare-table th,
.compare-table td {
  border: 1px solid var(--light-grey);
  padding: 0.5rem;
  text-align: left;
  font-size: 0.9rem;
}

.compare-table th {
  background: var(--primary-color);
  color: #fff;
}

.compare-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 1.3rem;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--primary-color);
}

/* Search overlay */
.search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.6);
  display: none;
  justify-content: center;
  align-items: flex-start;
  padding-top: 10vh;
  z-index: 4000;
}

.search-overlay.show {
  display: flex;
}

.search-box {
  background: #fff;
  border-radius: 6px;
  width: 90%;
  max-width: 600px;
  padding: 1rem;
  position: relative;
}

.search-box input[type="text"] {
  width: 100%;
  padding: 0.8rem;
  border: 1px solid var(--light-grey);
  border-radius: 4px;
  font-size: 1rem;
}

.search-results {
  max-height: 300px;
  overflow-y: auto;
  margin-top: 0.8rem;
}

.search-results li {
  list-style: none;
  padding: 0.6rem;
  border-bottom: 1px solid var(--light-grey);
  cursor: pointer;
}

.search-results li:hover {
  background: var(--light-grey);
}

.search-close {
  position: absolute;
  top: 0.4rem;
  right: 0.4rem;
  font-size: 1.2rem;
  color: var(--dark-grey);
  cursor: pointer;
}

/* Program pages */
.program-header {
  /* Use a soft gradient for program header backgrounds instead of a flat colour */
  background: linear-gradient(135deg, var(--primary-color), hsl(210, 30%, 20%));
  color: #fff;
  padding: 4rem 0;
  text-align: center;
}

.program-header h2 {
  font-size: 2.4rem;
  margin-bottom: 0.5rem;
}

.program-header p {
  font-size: 1.1rem;
  max-width: 700px;
  margin: 0 auto;
}

.program-section {
  padding: 3rem 0;
}

.program-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
}

.program-card {
  /* Soft gradient background on program cards */
  background: linear-gradient(145deg, var(--background-color), hsl(210, 20%, 96%));
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.program-card h4 {
  margin-bottom: 0.5rem;
  font-size: 1.3rem;
  color: var(--primary-color);
}

.program-card p {
  font-size: 0.95rem;
  margin-bottom: 1rem;
  color: var(--dark-grey);
}

.program-card .price {
  font-size: 1.4rem;
  color: var(--secondary-color);
  margin-bottom: 0.8rem;
}

.program-card .btn {
  align-self: flex-start;
}

.social-icons a {
  color: #fff;
  font-size: 1.4rem;
  margin: 0 0.4rem;
  transition: color 0.3s;
}

.social-icons a:hover {
  color: var(--secondary-color);
}

/* Responsive design */
@media (max-width: 768px) {
  .header-content {
    /*flex-direction: column;*/
    align-items: flex-start;
  }
  nav ul {
    margin-top: 0.5rem;
    flex-wrap: wrap;
  }
  nav ul li {
    margin-left: 0.8rem;
    margin-bottom: 0.5rem;
  }
  .hero h2 {
    font-size: 2.2rem;
  }
  .program-header h2 {
    font-size: 2rem;
  }
}

@media (max-width: 480px) {
  .hero h2 {
    font-size: 1.8rem;
  }
  .hero p {
    font-size: 1rem;
  }
  .program-header h2 {
    font-size: 1.6rem;
  }
}

/* Hero slider styles: provides structure and positioning for the
 * image carousel on the hero section. Each slide stretches to
 * full width and height, with navigation dots centred at the
 * bottom of the hero. */
.hero-slider {
  width: 100%;
  height: 70vh;
  position: relative;
}

.hero-slider .slider-container {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
}

.hero-slider .slider {
  display: flex;
  height: 100%;
  transition: transform 0.6s ease;
}

.hero-slider .slide {
  min-width: 100%;
  height: 100%;
  position: relative;
}

.hero-slider .slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-slider .slide-content {
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  color: #fff;
  max-width: 80%;
}

.hero-slider .slider-nav {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  z-index: 10;
}

.hero-slider .slider-dot {
  width: 12px;
  height: 12px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  margin: 0 5px;
  cursor: pointer;
  transition: background 0.3s;
}

.hero-slider .slider-dot.active {
  background: var(--accent-color);
}

/* ------------------------------------------------------------
 * Site footer styling
 *
 * The new BuildMaster Pro footer is split into several sections:
 * 1. Newsletter call‑to‑action with a bold gradient backdrop.
 * 2. Main footer area with four columns of links and contact info.
 * 3. A thin bottom bar containing copyright and policy links.
 * These styles were inspired by the ConstructPro template provided by the user
 * and adapted to fit within our existing CSS framework and variables.
 * ------------------------------------------------------------ */

/* Wrapper for the entire footer */
.site-footer {
  margin-top: 0rem;
  font-size: 0.95rem;
  color: #fff;
  background: var(--primary-color);
}

/* Newsletter / call‑to‑action section */
.site-footer .newsletter-section {
  background: var(--gradient-accent);
  color: #fff;
  padding: 3rem 0;
  text-align: center;
}

.site-footer .newsletter-section h3 {
  font-size: 2rem;
  margin-bottom: 0.8rem;
  font-weight: 700;
}

.site-footer .newsletter-section p {
  max-width: 600px;
  margin: 0 auto 1.5rem;
  color: #fff;
  font-size: 1.1rem;
}

.newsletter-form {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  max-width: 500px;
  margin: 0 auto;
}

.newsletter-form input[type="email"] {
  flex: 1;
  padding: 0.8rem 1rem;
  border: none;
  border-radius: 4px;
  font-size: 1rem;
  color: var(--heading-color);
}

.newsletter-form .btn {
  /* Override the global .btn styles for the newsletter subscribe button.
     Use background-color rather than shorthand to ensure proper precedence. */
  background-color: #fff;
  color: var(--secondary-color);
  padding: 0.8rem 1.6rem;
  border-radius: 4px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: filter 0.3s;
}

/* Increase specificity for the subscribe button to guarantee override */
.site-footer .newsletter-form .btn {
  background-color: #fff !important;
  color: var(--secondary-color) !important;
  border: none !important;
}

/* Final override for the newsletter subscribe button to remove default border in some browsers */
.site-footer .newsletter-section button {
  background-color: #fff !important;
  color: var(--secondary-color) !important;
  border: none !important;
}

.newsletter-form .btn:hover {
  filter: brightness(0.95);
}

/* Main footer area */
.footer-main {
  padding: 3rem 0;
  background: var(--primary-color);
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem;
}

.footer-col h4 {
  margin-bottom: 1rem;
  font-size: 1.2rem;
  font-weight: 600;
  color: #fff;
}

.footer-col ul {
  list-style: none;
  padding-left: 0;
}

.footer-col ul li {
  margin-bottom: 0.6rem;
}

.footer-col ul li a {
  color: #e0e6f0;
  transition: color 0.3s;
  font-size: 0.95rem;
}

.footer-col ul li a:hover {
  color: var(--secondary-color);
}

.footer-brand {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.brand-primary {
  color: #fff;
}

.brand-accent {
  color: var(--secondary-color);
}

.footer-social a {
  display: inline-block;
  color: #e0e6f0;
  font-size: 1.3rem;
  margin-right: 0.6rem;
  transition: color 0.3s;
}

.footer-social a:hover {
  color: var(--secondary-color);
}

/* Contact list within the footer */
.contact-list {
  list-style: none;
  padding: 0;
  margin-bottom: 1rem;
}

.contact-list li {
  display: flex;
  align-items: center;
  margin-bottom: 0.5rem;
  color: #e0e6f0;
}

.contact-list i {
  margin-right: 0.6rem;
  color: var(--secondary-color);
}

.quick-links-title {
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: #fff;
}

/* Bottom bar */
.footer-bottom {
  background: hsl(210, 24%, 8%);
  padding: 1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-bottom-content {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-size: 0.85rem;
  color: #e0e6f0;
}

.footer-bottom-content a {
  color: #e0e6f0;
  margin-left: 1rem;
  transition: color 0.3s;
  font-size: 0.85rem;
}

.footer-bottom-content a:hover {
  color: var(--secondary-color);
}

.policy-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

/* Responsive adjustments for footer */
@media (max-width: 768px) {
  .newsletter-form {
    flex-direction: column;
    align-items: stretch;
  }
  .footer-bottom-content {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .footer-bottom-content a {
    margin-left: 0;
  }
}



/* ====================================================================
 * Catalogue Page
 *
 * These styles power the dynamic catalogue page created for this
 * project.  The product grid is responsive and modern, with soft
 * gradients and clear typography.  A fixed comparison bar sits at
 * the bottom of the viewport to surface the user’s selected items.
 */

.catalogue-section {
  padding: 3rem 0;
}

.section-subtitle {
  text-align: center;
  margin: 0 auto 2rem;
  max-width: 700px;
  color: var(--dark-grey);
}

/* Filter bar */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.5rem;
  justify-content: space-between;
}

.filter-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.filter-group input[type="text"],
.filter-group select {
  padding: 0.5rem;
  border: 1px solid var(--light-grey);
  border-radius: 4px;
  font-size: 0.9rem;
  background: #fff;
  color: var(--text-color);
}

.compare-btn-group button {
  white-space: nowrap;
}

/* Product cards */
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 1.5rem;
}

.product-card {
  background: linear-gradient(145deg, var(--background-color), hsl(210, 20%, 96%));
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: transform 0.3s, box-shadow 0.3s;
  display: flex;
  flex-direction: column;
}

.product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.product-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.product-card-content {
  padding: 0.8rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.product-card-content h4 {
  font-size: 1.1rem;
  margin-bottom: 0.4rem;
  color: var(--heading-color);
}

.product-card-content .brand {
  font-size: 0.85rem;
  color: var(--dark-grey);
  margin-bottom: 0.2rem;
}

.product-card-content .price {
  font-weight: bold;
  color: var(--primary-color);
  margin-bottom: 0.3rem;
}

.product-card-content .status {
  font-size: 0.8rem;
  background: var(--light-grey);
  color: var(--dark-grey);
  padding: 0.2rem 0.4rem;
  border-radius: 3px;
  display: inline-block;
  margin-bottom: 0.4rem;
}

.product-card-content .compare-label {
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  cursor: pointer;
  margin-top: auto;
}

.product-card-content .compare-label input {
  accent-color: var(--secondary-color);
}

/* Comparison bar */
.compare-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--primary-color);
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  padding: 0.8rem 1rem;
  z-index: 2000;
}

.compare-bar.hidden {
  display: none;
}

.compare-bar .btn {
  background: var(--secondary-color);
  color: #fff;
}

.link-btn {
  background: none;
  border: none;
  color: var(--secondary-color);
  cursor: pointer;
  text-decoration: underline;
  font-size: 0.9rem;
}

/* Comparison modal overlay and dialog */
.compare-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 4000;
}

.compare-modal.hidden {
  display: none;
}

.compare-modal .compare-dialog {
  background: #fff;
  border-radius: 6px;
  width: 90%;
  max-width: 900px;
  max-height: 80vh;
  overflow-y: auto;
  padding: 1.5rem;
  position: relative;
}

.compare-modal h3 {
  margin-bottom: 1rem;
  font-size: 1.5rem;
  color: var(--primary-color);
}

.compare-close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  font-size: 1.5rem;
  background: none;
  border: none;
  color: var(--dark-grey);
  cursor: pointer;
}

.compare-table {
  width: 100%;
  border-collapse: collapse;
}

.compare-table th,
.compare-table td {
  border: 1px solid var(--light-grey);
  padding: 0.5rem;
  font-size: 0.85rem;
}

.compare-table th {
  background: var(--primary-color);
  color: #fff;
}

.compare-table .highlight {
  background: hsl(0, 0%, 95%);
}

/* ====================================================================
 * Sales Team / Contact Section
 *
 * The contact page includes a dedicated section highlighting our
 * sales representatives.  Each card displays a photo, title,
 * bio and a set of calls‑to‑action for phone, email and meeting.
 */

.sales-team {
  padding: 3rem 0;
  background: var(--light-grey);
}

.sales-team h2 {
  text-align: center;
  margin-bottom: 2rem;
  color: var(--heading-color);
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2rem;
}

.team-card {
  background: #fff;
  border-radius: 8px;
  padding: 2rem 1.5rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.3s, box-shadow 0.3s;
}

.team-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.team-card img {
  width: 120px;
  height: 120px;
  object-fit: cover;
  border-radius: 50%;
  margin-bottom: 1rem;
}

.team-card h4 {
  font-size: 1.2rem;
  margin-bottom: 0.2rem;
  color: var(--heading-color);
}

.team-card .title {
  font-size: 0.9rem;
  color: var(--secondary-color);
  margin-bottom: 0.8rem;
}

.team-card p {
  font-size: 0.85rem;
  color: var(--dark-grey);
  margin-bottom: 1rem;
}

.team-card .contact-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}

.team-card .contact-buttons a {
  padding: 0.5rem 1rem;
  border-radius: 4px;
  font-size: 0.85rem;
  color: #fff;
  text-decoration: none;
}

.team-card .contact-buttons a.phone {
  background: var(--primary-color);
}

.team-card .contact-buttons a.email {
  background: var(--secondary-color);
}

.team-card .contact-buttons a.meeting {
  background: var(--success-color);
}

.team-card .contact-buttons a:hover {
  filter: brightness(0.9);
}

/* --------------------------------------------------------------------
 * Hero slider styles
 *
 * These styles support the dynamic hero slider used on the home page.
 * The slider displays multiple slides with background images and
 * centralised text.  Navigation arrows and dots enable manual
 * switching, while opacity transitions provide smooth fades.
 * ------------------------------------------------------------------ */
.hero-slider {
  position: relative;
  width: 100%;
  height: 75vh;
  overflow: hidden;
}

.hero-slider .hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* Hide inactive slides completely using opacity and visibility. */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}

.hero-slider .hero-slide.active {
  opacity: 1;
  visibility: visible;
  z-index: 1;
}

.hero-slider .hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-slider .slide-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: #fff;
  max-width: 80%;
}

.hero-slider .slide-content h2 {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.hero-slider .slide-content p {
  font-size: 1.125rem;
  margin-bottom: 1.5rem;
  line-height: 1.4;
}

.hero-slider .slide-content .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: var(--gradient-accent);
  color: hsl(var(--accent-foreground));
  padding: 0.6rem 1.5rem;
  border-radius: 0.5rem;
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  box-shadow: var(--shadow-accent);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hero-slider .slide-content .btn:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 24px -8px hsl(var(--construction-orange)/0.4);
}

.hero-slider .slider-prev,
.hero-slider .slider-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.4);
  color: #fff;
  border: none;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.3s ease;
  z-index: 2;
}

.hero-slider .slider-prev:hover,
.hero-slider .slider-next:hover {
  background: rgba(0, 0, 0, 0.6);
}

.hero-slider .slider-prev {
  left: 1rem;
}

.hero-slider .slider-next {
  right: 1rem;
}

.hero-slider .slider-dots {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
  z-index: 2;
}

.hero-slider .slider-dot {
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: background 0.3s ease;
  border: none;
}

.hero-slider .slider-dot.active {
  background: hsl(var(--construction-orange));
}
.section-head{text-align:center;margin:56px 0 28px;}
.section-head h2 {
    font-size: clamp(22px, 3.2vw, 32px);
    margin: 0 0 10px;
    color: white;
}
.section-head p{color:var(--muted); margin:0}

.project-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:24px}
.project-card{background:var(--card); border:1px solid var(--card-edge); border-radius:var(--radius); box-shadow:var(--shadow-sm); overflow:hidden}
.project-media{position:relative; margin:0}
.project-media img{width:100%; height:280px; object-fit:cover; display:block}
.project-media figcaption{position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:16px; background:linear-gradient(to top, rgba(6,12,22,.75), rgba(6,12,22,0))}
.badge{background:var(--accent); color:#1b1406; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:800; width:max-content; margin-bottom:8px}
.project-title {
    margin: 0;
    font-size: clamp(18px, 2.4vw, 22px);
    background: wheat;
    width: max-content;
    padding: 0 14px;
    border-radius: 8px;
}
.project-lede{padding:16px 16px 0; color:#062a64; line-height:1.6}
.project-info-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; padding:16px}
.info-card{background:linear-gradient(180deg, #0f2136 0%, #0b1b2e 100%); border:1px solid #1d2e47; border-left:5px solid #f59e0b; border-radius:12px; padding:14px; min-height:120px}
.info-card h4{margin:0 0 6px; font-size:15px; color:#dbe6f9}
.info-card p{margin:0; color:#aab9cf; font-size:14px; line-height:1.5}

.provide{padding:20px 0 6px}
.provide-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px}
.provide-item{background:var(--card); border:1px solid var(--card-edge); border-radius:14px; padding:16px; display:flex; flex-direction:column; gap:6px}
.pi-emoji{font-size:24px}
.provide .is-extra{display:none}
.actions-centered{display:flex; justify-content:center; margin:18px 0 8px}


