.skip-to-content {
  position: absolute;
  top: -100%;
  left: 50%;
  transform: translateX(-50%);
  background: #2D2D2D;
  color: #fff;
  padding: 12px 24px;
  z-index: 100000;
  font-family: "DM Sans", sans-serif;
  font-size: 14px;
  text-decoration: none;
  border-radius: 0 0 4px 4px;
  transition: top 0.2s;
}
.skip-to-content:focus {
  top: 0;
  outline: 2px solid #91A78D;
  outline-offset: 2px;
}
a:focus, button:focus, input:focus, select:focus, textarea:focus, [tabindex]:focus {
  outline: 2px solid #91A78D !important;
  outline-offset: 2px !important;
}
/* Breadcrumbs */
.breadcrumbs {
  padding: 10px 50px;
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  font-weight: 300;
  color: #4A4A4A;
  background: transparent;
  letter-spacing: 0.3px;
}
.breadcrumbs a {
  color: #91A78D;
  text-decoration: none;
}
.breadcrumbs a:hover {
  text-decoration: underline;
}
.breadcrumbs span {
  color: #4A4A4A;
}
@media (max-width: 767px) {
  .breadcrumbs {
    padding: 8px 20px;
    font-size: 12px;
  }
}

/* Fix broken dropdown arrow icon */
.hfe-menu-toggle.sub-arrow {
  display: none !important;
}

/* News page blog grid layout */
.premium-blog-wrap.premium-blog-even {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 20px;
  margin: 0 !important;
  justify-content: center;
  margin-right: 75px !important;
}
.premium-blog-wrap .premium-blog-post-outer-container {
  width: calc(29% - 14px) !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}
.premium-blog-post-container {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  height: 280px;
}
.premium-blog-thumbnail-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.premium-blog-thumbnail-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.premium-blog-post-container:hover .premium-blog-thumbnail-container img {
  transform: scale(1.05);
}

/* Title always visible, excerpt on hover */
.premium-blog-skin-modern .premium-blog-content-wrapper,
.premium-blog-content-wrapper {
  position: absolute !important;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(transparent, rgba(0,0,0,0.75)) !important;
  padding: 30px 15px 12px !important;
  top: auto !important;
  max-height: 100%;
  overflow: hidden;
  z-index: 3;
}
.premium-blog-entry-title {
  margin: 0 0 2px !important;
}
.premium-blog-entry-title a {
  color: #fff !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  font-family: "Montserrat", sans-serif !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.premium-blog-content-inner-wrapper {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, opacity 0.3s ease;
  opacity: 0;
}
.premium-blog-post-container:hover .premium-blog-content-inner-wrapper {
  max-height: 120px;
  opacity: 1;
}
.premium-blog-post-content {
  color: rgba(255,255,255,0.9) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  line-height: 1.5 !important;
  font-family: "DM Sans", sans-serif !important;
  margin: 8px 0 0 !important;
}
.premium-blog-entry-meta {
  display: none !important;
}

/* Shape divider - hide on news grid */
.premium-blog-shape-divider-svg {
  display: none !important;
}

/* Diagonal overlay - hide */
.premium-blog-effect-container {
  display: none !important;
}

/* Responsive */
@media (max-width: 1024px) {
  .premium-blog-wrap .premium-blog-post-outer-container {
    width: calc(50% - 10px) !important;
  }
}
@media (max-width: 767px) {
  .premium-blog-wrap .premium-blog-post-outer-container {
    width: calc(50% - 10px) !important;
  }
  .premium-blog-post-container {
    height: 180px;
  }
  .premium-blog-entry-title a {
    font-size: 12px !important;
    -webkit-line-clamp: 2;
  }
}

/* ==================== */
/* FOOTER REDESIGN      */
/* ==================== */
footer#colophon {
  font-family: "DM Sans", sans-serif;
}

/* Main footer container - cleaner background */
.elementor-576 .elementor-element.elementor-element-7ec848a {
  --padding-top: 25px !important;
  --padding-bottom: 10px !important;
  --padding-left: 80px !important;
  --padding-right: 80px !important;
}
.elementor-576 .elementor-element.elementor-element-0e877d3::before,
.elementor-576 .elementor-element.elementor-element-ff8e02f::before,
.elementor-576 .elementor-element.elementor-element-0fea6cc::before {
  margin-bottom: 8px !important;
}
.elementor-576 .elementor-element.elementor-element-0e877d3 p,
.elementor-576 .elementor-element.elementor-element-ff8e02f p,
.elementor-576 .elementor-element.elementor-element-0fea6cc p {
  margin-block-end: 4px !important;
}
.elementor-576 .elementor-element.elementor-element-7ec848a::before {
  background-image: none !important;
  background-color: rgba(0,0,0,0.15) !important;
}

/* Logo - smaller */
.elementor-576 .elementor-element.elementor-element-a9cf786 img {
  width: 30% !important;
  opacity: 0.9;
}

/* Footer nav columns - add headings via ::before, reduce font size */
.elementor-576 .elementor-element.elementor-element-0e877d3,
.elementor-576 .elementor-element.elementor-element-ff8e02f,
.elementor-576 .elementor-element.elementor-element-0fea6cc {
  font-size: 14px !important;
  font-weight: 300 !important;
  letter-spacing: 0.3px !important;
}
.elementor-576 .elementor-element.elementor-element-0e877d3 p,
.elementor-576 .elementor-element.elementor-element-ff8e02f p,
.elementor-576 .elementor-element.elementor-element-0fea6cc p {
  margin-block-end: 10px !important;
}
.elementor-576 .elementor-element.elementor-element-0e877d3 a,
.elementor-576 .elementor-element.elementor-element-ff8e02f a,
.elementor-576 .elementor-element.elementor-element-0fea6cc a {
  color: rgba(255,255,255,0.85) !important;
  text-decoration: none !important;
  transition: color 0.2s;
}
.elementor-576 .elementor-element.elementor-element-0e877d3 a:hover,
.elementor-576 .elementor-element.elementor-element-ff8e02f a:hover,
.elementor-576 .elementor-element.elementor-element-0fea6cc a:hover {
  color: #fff !important;
  text-decoration: underline !important;
}

/* Column headings via ::before pseudo-elements */
.elementor-576 .elementor-element.elementor-element-0e877d3::before {
  content: "Quick Links";
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  margin-bottom: 16px;
  letter-spacing: 0.5px;
}
.elementor-576 .elementor-element.elementor-element-ff8e02f::before {
  content: "Legal";
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  margin-bottom: 16px;
  letter-spacing: 0.5px;
}
.elementor-576 .elementor-element.elementor-element-0fea6cc::before {
  content: "Get in Touch";
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  margin-bottom: 16px;
  letter-spacing: 0.5px;
}

/* Copyright bar - visual separation */
.elementor-576 .elementor-element.elementor-element-9edd90e {
  border-top: 1px solid rgba(255,255,255,0.2) !important;
  margin-top: 12px !important;
  padding-top: 8px !important;
}
.elementor-576 .elementor-element.elementor-element-960520a,
.elementor-576 .elementor-element.elementor-element-82326db {
  font-size: 13px !important;
  font-weight: 300 !important;
  color: rgba(255,255,255,0.6) !important;
}
.elementor-576 .elementor-element.elementor-element-82326db a {
  color: rgba(255,255,255,0.6) !important;
}
.elementor-576 .elementor-element.elementor-element-82326db a:hover {
  color: #fff !important;
}

/* Mobile footer */
@media (max-width: 767px) {
  .elementor-576 .elementor-element.elementor-element-7ec848a {
    --padding-left: 30px !important;
    --padding-right: 30px !important;
    --padding-top: 40px !important;
  }
  .elementor-576 .elementor-element.elementor-element-a9cf786 img {
    width: 35% !important;
  }
}

/* Hero slideshow */
.homeHeroSlider .swiper {
  width: 100%;
  height: 700px;
  max-height: 700px;
}
.homeHeroSlider .swiper-slide {
  overflow: hidden;
  height: 700px;
}
.homeHeroSlider .swiper-slide-image {
  width: 100%;
  height: 700px;
  object-fit: cover;
  object-position: center;
}
@media (max-width: 767px) {
  .homeHeroSlider .swiper,
  .homeHeroSlider .swiper-slide,
  .homeHeroSlider .swiper-slide-image {
    height: 350px;
    max-height: 350px;
  }
}
.homeHeroSlider .elementor-swiper-button {
  display: none !important;
}
.customHeroNav {
  cursor: pointer;
}
.customHeroNav .elementor-icon {
  transition: opacity 0.2s;
}
.customHeroNav .elementor-icon:hover {
  opacity: 0.7;
}

/* Hide "Tell Us Your Plans" header bar */
.elementor-24 .elementor-element.elementor-element-233ad72 {
  display: none !important;
}

/* Testimonial carousel */
.about-testimonial-swiper {
  overflow: hidden !important;
}
.about-testimonial-swiper .swiper-wrapper {
  display: flex !important;
}
.about-testimonial-swiper .swiper-slide {
  flex-shrink: 0;
  width: 100% !important;
}
.customTestimonialNav {
  display: flex;
  gap: 15px;
  justify-content: center;
  margin-top: 15px;
}
.customTestimonialNav .elementor-icon {
  cursor: pointer;
  transition: opacity 0.2s;
}
.customTestimonialNav .elementor-icon:hover {
  opacity: 0.7;
}

/* How It Works - recent projects section mobile fix */
@media (max-width: 767px) {
  .elementor-1191 .elementor-element.elementor-element-2796458 .elementor-heading-title {
    color: #91A78D !important;
  }
  .elementor-1191 .elementor-element.elementor-element-0dd8aea {
    color: #4A4A4A !important;
  }
}

/* How It Works - mobile layout fixes */
@media (max-width: 767px) {
  /* Remove excessive left padding */
  .elementor-1191 [class*="elementor-element"] {
    --padding-left: 15px !important;
    --padding-right: 15px !important;
  }
  
  /* Force all step rows to stack vertically */
  .elementor-1191 .e-con[style*="flex-direction:row"],
  .elementor-1191 [class*="elementor-element"][style*="--flex-direction:row"] {
    --flex-direction: column !important;
  }
  
  /* Make all child containers full width on mobile */
  .elementor-1191 .e-con-full.e-con.e-child {
    --width: 100% !important;
    width: 100% !important;
  }
  
  /* Reduce gaps between sections */
  .elementor-1191 .e-con {
    --gap: 20px 20px !important;
    --row-gap: 20px !important;
    --column-gap: 20px !important;
  }
  
  /* Step images - full width and reasonable height */
  .elementor-1191 .elementor-widget-image img {
    width: 100% !important;
    height: auto !important;
    border-radius: 8px;
  }
  
  /* Step headings - smaller on mobile */
  .elementor-1191 .elementor-heading-title {
    font-size: 28px !important;
  }
  
  /* Banner heading */
  .elementor-1191 .elementor-element.elementor-element-2b4e75b .elementor-heading-title {
    font-size: 32px !important;
  }
  
  /* Section headings */
  .elementor-1191 .elementor-element .elementor-heading-title[class*="elementor-size-default"] {
    font-size: 24px !important;
  }
  
  /* Body text */
  .elementor-1191 .elementor-widget-text-editor {
    font-size: 15px !important;
  }
  
  /* Recent projects section - fix padding */
  .elementor-1191 .elementor-element.elementor-element-8eca7d6 {
    --padding-left: 15px !important;
    --padding-right: 15px !important;
  }
}

/* How It Works - "Explore our recent" mobile fix */
@media (max-width: 767px) {
  .elementor-1191 .elementor-element.elementor-element-0dd8aea {
    color: #4A4A4A !important;
    font-size: 14px !important;
    text-align: center !important;
  }
}

/* How It Works - Recent Projects section mobile layout */
@media (max-width: 767px) {
  /* Parent section - kill the 150px padding and gradient split */
  .elementor-1191 .elementor-element.elementor-element-8eca7d6 {
    --padding-left: 0px !important;
    --padding-right: 0px !important;
    --padding-top: 30px !important;
    --padding-bottom: 30px !important;
    background-image: none !important;
    background-color: #91A78D !important;
  }
  
  /* Row container - stack vertically, centre everything */
  .elementor-1191 .elementor-element.elementor-element-9371f5f {
    --flex-direction: column !important;
    --align-items: center !important;
    --gap: 10px !important;
    padding: 0 20px !important;
  }
  
  /* Heading container - full width, centred */
  .elementor-1191 .elementor-element.elementor-element-74ae92d {
    --width: 100% !important;
    text-align: center !important;
  }
  
  /* Heading text - white on green, centred */
  .elementor-1191 .elementor-element.elementor-element-2796458 .elementor-heading-title {
    color: #FFFFFF !important;
    text-align: center !important;
    font-size: 24px !important;
  }
  
  /* Subtext container - full width, centred */
  .elementor-1191 .elementor-element.elementor-element-7e9dc25 {
    --width: 100% !important;
    text-align: center !important;
  }
  
  /* Subtext - white on green, centred */
  .elementor-1191 .elementor-element.elementor-element-0dd8aea {
    color: rgba(255,255,255,0.85) !important;
    font-size: 14px !important;
    text-align: center !important;
  }
  
  /* Blog cards container */
  .elementor-1191 .elementor-element.elementor-element-ec6b6d3 {
    padding: 0 15px !important;
  }
}

/* Homepage - Recent Projects section mobile layout */
@media (max-width: 767px) {
  /* Parent section - solid green, proper padding */
  .elementor-20 .elementor-element.elementor-element-2ae2958 {
    --padding-left: 0px !important;
    --padding-right: 0px !important;
    --padding-top: 30px !important;
    --padding-bottom: 30px !important;
    background-image: none !important;
    background-color: #91A78D !important;
  }
  
  /* Row container - stack vertically, centre */
  .elementor-20 .elementor-element.elementor-element-6e5a22d {
    --flex-direction: column !important;
    --align-items: center !important;
    --gap: 8px !important;
    padding: 0 20px !important;
  }
  
  /* Heading container - full width */
  .elementor-20 .elementor-element.elementor-element-5aa3aa8 {
    --width: 100% !important;
    text-align: center !important;
  }
  
  /* Heading text */
  .elementor-20 .elementor-element.elementor-element-f4478e0 .elementor-heading-title {
    font-size: 24px !important;
    text-align: center !important;
  }
  
  /* Subtext container - full width */
  .elementor-20 .elementor-element.elementor-element-e423dd9 {
    --width: 100% !important;
    text-align: center !important;
  }
  
  /* Subtext */
  .elementor-20 .elementor-element.elementor-element-2168acc {
    font-size: 14px !important;
    color: rgba(255,255,255,0.85) !important;
    text-align: center !important;
  }
}

/* Homepage - Recent Projects section desktop layout fixes */
@media (min-width: 768px) {
  /* Balanced padding */
  .elementor-20 .elementor-element.elementor-element-2ae2958 {
    --padding-left: 80px !important;
    --padding-right: 80px !important;
  }
  
  /* Heading/subtext row - tighter, vertically centred */
  .elementor-20 .elementor-element.elementor-element-6e5a22d {
    --align-items: flex-end !important;
    --gap: 40px !important;
    margin-bottom: 30px;
  }
  
  /* Heading - slightly wider */
  .elementor-20 .elementor-element.elementor-element-5aa3aa8 {
    --width: 35% !important;
  }
  
  /* Heading text - slightly smaller for better proportion */
  .elementor-20 .elementor-element.elementor-element-f4478e0 .elementor-heading-title {
    font-size: 32px !important;
    line-height: 1.2 !important;
  }
  
  /* Subtext - narrower, smaller, lighter */
  .elementor-20 .elementor-element.elementor-element-e423dd9 {
    --width: 40% !important;
  }
  .elementor-20 .elementor-element.elementor-element-2168acc {
    font-size: 15px !important;
    font-weight: 300 !important;
    line-height: 1.6 !important;
    color: rgba(255,255,255,0.85) !important;
  }
  
  /* Blog card titles - reduce from 28px */
  .elementor-20 .elementor-element.elementor-element-e44a361 .premium-blog-entry-title a {
    font-size: 18px !important;
  }
}

/* Homepage - Blog cards desktop layout */
@media (min-width: 768px) {
  /* The carousel container - horizontal scroll */
  .homeNews .premium-blog-wrap {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 20px;
    padding-bottom: 15px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.3) transparent;
  }
  .homeNews .premium-blog-wrap::-webkit-scrollbar {
    height: 6px;
  }
  .homeNews .premium-blog-wrap::-webkit-scrollbar-track {
    background: transparent;
  }
  .homeNews .premium-blog-wrap::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.3);
    border-radius: 3px;
  }
  
  /* Each card - fixed width, no shrink */
  .homeNews .premium-blog-post-outer-container {
    width: 300px !important;
    min-width: 300px !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    scroll-snap-align: start;
  }
  
  /* Card container - fixed height with image overlay */
  .homeNews .premium-blog-post-container {
    height: 350px;
    border-radius: 12px;
    overflow: hidden;
    background: #2D2D2D;
  }
  
  /* Image fills the card */
  .homeNews .premium-blog-thumb-effect-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  .homeNews .premium-blog-thumbnail-container {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  .homeNews .premium-blog-thumbnail-container img,
  .homeNews .premium-blog-thumbnail-container picture {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  /* Content overlay - always at bottom */
  .homeNews .premium-blog-content-wrapper {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    background: linear-gradient(transparent, rgba(0,0,0,0.75)) !important;
    padding: 40px 15px 15px !important;
    max-height: none !important;
    opacity: 1 !important;
    z-index: 3;
  }
  
  /* Title styling */
  .homeNews .premium-blog-entry-title a {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    font-family: "Montserrat", sans-serif !important;
    text-decoration: none !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  
  /* Hide the old grey background */
  .homeNews .premium-blog-post-container.premium-blog-skin-classic {
    background-color: transparent !important;
  }
}

/* How It Works - remove tab buttons, show all content */
.elementor-1191 .e-n-tabs-heading {
  display: none !important;
}
.elementor-1191 .e-n-tabs-content {
  display: flex !important;
  flex-direction: column !important;
}
.elementor-1191 .e-n-tabs-content > [role="tabpanel"] {
  display: block !important;
  opacity: 1 !important;
  height: auto !important;
  overflow: visible !important;
  visibility: visible !important;
}
