.elementor-29348 .elementor-element.elementor-element-84ad03f{margin-top:0px;margin-bottom:0px;overflow:visible;}.elementor-29348 .elementor-element.elementor-element-7d40b60 > .elementor-element-populated{margin:-140px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;}.elementor-29348 .elementor-element.elementor-element-51f3c53{width:var( --container-widget-width, 101.065% );max-width:101.065%;--container-widget-width:101.065%;--container-widget-flex-grow:0;}.elementor-29348 .elementor-element.elementor-element-e9dad8c{margin-top:0px;margin-bottom:0px;overflow:visible;}.elementor-29348 .elementor-element.elementor-element-03c018b > .elementor-element-populated{margin:-140px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;}@media(max-width:767px){.elementor-29348 .elementor-element.elementor-element-84ad03f{margin-top:0px;margin-bottom:0px;padding:12px 12px 0px 12px;}.elementor-29348 .elementor-element.elementor-element-7d40b60{width:100%;}.elementor-29348 .elementor-element.elementor-element-7d40b60 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-29348 .elementor-element.elementor-element-7d40b60 > .elementor-element-populated{text-align:left;}.elementor-29348 .elementor-element.elementor-element-51f3c53{width:var( --container-widget-width, 380px );max-width:380px;--container-widget-width:380px;--container-widget-flex-grow:0;grid-column:span custom;}.elementor-29348 .elementor-element.elementor-element-51f3c53 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-29348 .elementor-element.elementor-element-e9dad8c{margin-top:0px;margin-bottom:0px;padding:12px 12px 0px 12px;}.elementor-29348 .elementor-element.elementor-element-03c018b{width:100%;}.elementor-29348 .elementor-element.elementor-element-03c018b > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-29348 .elementor-element.elementor-element-03c018b > .elementor-element-populated{text-align:left;}.elementor-29348 .elementor-element.elementor-element-f040b43{width:var( --container-widget-width, 380px );max-width:380px;--container-widget-width:380px;--container-widget-flex-grow:0;grid-column:span custom;}.elementor-29348 .elementor-element.elementor-element-f040b43 > .elementor-widget-container{margin:0px 0px 0px 0px;}}/* Start custom CSS for html, class: .elementor-element-51f3c53 *//* ===============================
   FULL-WIDTH FIXES (Safe & Scoped)
   =============================== */

/* --- Restore header & footer --- */
.elementor-location-header,
.elementor-location-header .elementor-section,
.elementor-location-footer,
.elementor-location-footer .elementor-section {
  position: static !important;
  left: auto !important;
  right: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  overflow: visible !important;
  z-index: auto !important;
}

.elementor-location-footer .elementor-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}
@media (max-width:640px){
  .elementor-location-footer .elementor-container {
    padding: 0 14px;
  }
}

/* --- Hero or Section Background full width --- */
/* Add class="full-bleed-bg" to the section in Elementor */
.full-bleed-bg {
  position: relative;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.full-bleed-bg > .elementor-container {
  max-width: 1200px;   /* keep content centered */
  margin: 0 auto;
  padding: 0 24px;
}
@media (max-width:640px){
  .full-bleed-bg > .elementor-container {
    padding: 0 14px;
  }
}

/* --- YouTube Video full width --- */
/* Add class="full-bleed-media" to the section that holds the video */
.full-bleed-media .video-container,
.full-bleed-media .elementor-widget-video,
.full-bleed-media .elementor-widget-video .elementor-wrapper {
  position: relative;
  left: 50%;
  margin-left: -50vw !important;
  width: 100vw !important;
}

.full-bleed-media .video-container {
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
}
.full-bleed-media .video-container iframe,
.full-bleed-media .elementor-widget-video iframe {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  border: 0;
}
/* Kill unwanted Elementor background overlays */
.elementor-section::before,
.elementor-background-overlay {
  background: none !important;
}


/* ===== Responsive Enhancements (append at the end) ===== */

/* 1) Universal image & iframe safety */
img, iframe, video {max-width:100%; height:auto}

/* 2) Prevent sticky subnav from covering targets */
[id] { scroll-margin-top: 78px; }          /* tweak if your subnav height changes */
@media (max-width: 640px){
  [id] { scroll-margin-top: 64px; }
}

/* 3) Friendlier mobile spacing for sections & step cards */
section { padding: clamp(24px, 5vw, 48px) clamp(14px, 4vw, 24px); }
.step { margin: 8px 0; padding: 16px 16px 16px 52px; }

/* 4) Timeline line & dot alignment on small screens */
.timeline:before { left: 22px; }
.step .dot { left: 13px; top: 18px; }

/* 5) Subnav chips: wrap nicely, bigger touch targets */
.subnav .inner { gap: 10px; padding: 8px 12px; }
.chip { padding: 10px 14px; font-size: 14px; }
@media (max-width: 640px){
  .subnav .inner { gap: 8px; }
  .chip { padding: 9px 12px; font-size: 13px; }
}

/* 6) Headings & lead text scale */
h1 { font-size: clamp(24px, 6vw, 36px); line-height: 1.15; }
h2 { font-size: clamp(20px, 4.2vw, 32px); }
.lead { font-size: clamp(15px, 2.6vw, 19px); }

/* 7) KPI row: already collapses once, ensure safe spacing */
.kpis { gap: 14px; margin-top: 20px; }
@media (max-width: 768px){
  .kpis { grid-template-columns: 1fr !important; }
}

/* 8) Grid cards: keep them airy but compact on phones */
.grid { gap: 14px; }
.card { padding: clamp(14px, 3.5vw, 22px); }

/* 9) Galleries: responsive columns */
.gallery { gap: 12px; }
@media (max-width: 1024px){ .gallery { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 640px){  .gallery { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 380px){  .gallery { grid-template-columns: 1fr; } }

/* 10) Showcase sections inside steps: trim vertical padding */
.step .showcase { padding-top: 18px; padding-bottom: 18px; }

/* 11) Improve smooth-scroll accessibility */
@media (prefers-reduced-motion: reduce){
  html { scroll-behavior: auto; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-f040b43 *//* Ensure Elementor 'Hide on desktop' actually hides */
@media (min-width: 1025px){
  .elementor-hidden-desktop{ display: none !important; }
}

/* --- Showcase Gallery --- */
.showcase{padding:56px 24px}
.showcase .wrap{max-width:1200px;margin:auto}
.showcase .section-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.showcase .bar{width:6px;height:26px;border-radius:3px;background:var(--gold)}
.showcase h2{margin:0;font-size:clamp(22px,3.2vw,36px)}
.showcase p{margin:6px 0 20px;color:var(--ink-50)}

.gallery{
  display:grid;gap:14px;
  grid-template-columns:repeat(2,1fr);
}
@media (min-width:720px){ .gallery{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1040px){ .gallery{grid-template-columns:repeat(4,1fr)} }

.tile{
  position:relative;overflow:hidden;border-radius:16px;
  border:1px solid #ececf4;background:#fff;box-shadow:var(--shadow);
}
.tile a{display:block;line-height:0}
.tile img{
  width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;
  transition:transform .35s ease, filter .35s ease;
}
.tile:hover img{transform:scale(1.04)}
.tile .cap{
  position:absolute;left:10px;bottom:10px;
  background:rgba(51,58,77,.72);color:#fff;border-radius:999px;
  padding:6px 10px;font-size:12px;font-weight:700;backdrop-filter:blur(4px)
}

/* Pure CSS lightbox using :target */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.8);
  display:none;align-items:center;justify-content:center;padding:20px;z-index:1000}
.lightbox img{max-width:95vw;max-height:90vh;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox:target{display:flex}
.lightbox a.close{
  position:absolute;top:16px;right:16px;text-decoration:none;
  background:#fff;border-radius:999px;padding:8px 12px;font-weight:800;color:var(--ink);box-shadow:var(--shadow)
}
.lightbox a.nav{
  position:absolute;top:50%;transform:translateY(-50%);text-decoration:none;
  background:#fff;border-radius:999px;padding:10px 14px;font-weight:800;color:var(--ink);box-shadow:var(--shadow)
}
.lightbox a.prev{left:16px}
.lightbox a.next{right:16px}

/* --- Mobile-only fixes without changing desktop --- */
@media (max-width: 719px) {
  .showcase { padding: 32px 12px; }
  .showcase .wrap { max-width: none; margin: 0; }

  /* Full-width, single-column gallery */
  .gallery {
    grid-template-columns: 1fr !important;
    gap: 16px;
    margin: 0;
    width: 100%;
  }

  /* Larger, edge-to-edge images */
  .tile {
    border-radius: 12px;
  }
  .tile a { line-height: 0; }
  .tile img {
    width: 100%;
    height: auto;            /* let image set its own height */
    aspect-ratio: auto;      /* override 4/3 on mobile */
    object-fit: cover;
    display: block;
  }

  /* Caption below image (no overlay/background) */
  .tile .cap {
    position: static !important;
    background: transparent !important;
    color: var(--ink);
    border-radius: 0;
    padding: 8px 2px;
    font-size: 14px;
    font-weight: 700;
    backdrop-filter: none;
    text-align: left;
  }

  /* Lightbox fits small screens better */
  .lightbox { padding: 12px; }
  .lightbox img { max-width: 100vw; max-height: 85vh; }
}
/* Mobile full-width fix */
@media (max-width: 767px) {
  .showcase .wrap,
  .execution-section,
  .execution-section .step-card {
    max-width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
  }

  /* Ensure each card uses all screen width */
  .execution-section .step-card {
    border-radius: 0;   /* optional, makes them flush edge-to-edge */
  }

  /* Optional: give inner text breathing space */
  .execution-section .step-card > * {
    padding-left: 0px;
    padding-right: 0px;
  }
}


/* Videos full width on mobile */
video,
.showcase video,
.single-step-image video {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  border-radius: 0 !important;   /* optional: remove rounding for true edge-to-edge */
  display: block;
}/* End custom CSS */
/* Start custom CSS *//* Ensure Elementor 'Hide on desktop' actually hides */
@media (min-width: 1025px){
  .elementor-hidden-desktop{ display: none !important; }
}

/* Unblock clicks when an Elementor background overlay is covering the page */
.elementor-background-overlay { pointer-events: none !important; }/* End custom CSS */