.heading-text-animation {
     opacity: 1; /*set to 0 and unhide the js if u want these back on*/
}

.heading-text-animation span.char,
.heading-text-animation span.over span.char,
.heading-text-animation+p span.char {
    transition: 0.7s;
    display: inline-block;
    opacity: 0;
    position: relative;
    left: 40px;
}

.heading-text-animation span.word,
.heading-text-animation span.over span.word,
.heading-text-animation+p span.word {
    white-space: nowrap;
    display: inline-block;
}

/* images square and rounded with border */
img.square {
    aspect-ratio: 1/1;
    object-fit: cover;
}

img.round {
    border-radius: 0;
    object-fit: cover;
}

img.bordered {
    max-width: 278px;
    border: 2px solid #fff;
}

/* animations */
.animation-box {
    opacity: 0 !important;
    transform: translate3d(0, 40px, 0);
    transition: transform 1s, opacity 2s;
    transition-delay: var(--delay);
}

.animation-box.slideFromLeft {
    transform: translate3d(-40px, 0, 0);
}

.animation-box.slideFromRight {
    transform: translate3d(40px, 0, 0);
}

.animation-box.slideFromBottom {
    transform: translate3d(0px, 40px, 0);
}

.animation-box.scale {
    transform: scale(.5);
}

.animation-box.animated {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0);
}

.animation-box.scale.animated {
    transform: scale(1);
}

/* particles animation */

#particles-js {
    position: fixed;
    width: 100%;
    height: 100%;
    background-image: url('');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50% 50%;
    z-index: -1;
}


#cursor-dot {
    position: fixed;
    width: 10px;
    height: 10px;
    /* background-color: #E0922F; */
    background-color: #44c8f4;
    border-radius: 0;
    pointer-events: none;
    transform: translate(-50%, -50%);
    transition: width 0.3s ease, height 0.3s ease, opacity 0.3s ease, color 0.3s ease, background-color 0.3s ease, left 0.3s ease, top 0.3s ease, border-radius 0.1s ease, box-shadow 0.2s ease;
    z-index: 99;
    /* mix-blend-mode: exclusion; */
}

.dc-tags-container {
    position: relative;
    width: 104%;
    height: 32vh;
    overflow: hidden;
}

.dc-tags-container > div{
    width: 60px !important;
    height: 60px !important;
}

.dc-tags-container canvas {
    position: absolute;
    top: 0;
    left: -2px;
    bottom: -2px;
    z-index: 0;
    width: calc(100% + 4px) !important;
}

.dc-tags-container i {
    z-index: 1;
    position: absolute;
    width: 40px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    border-radius: 0;
    color: white;
    font-size: 24px;
    pointer-events: none;
    padding: 4px;
    box-sizing: border-box;
    user-select: none;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.dc-tags-container i::before {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.dc-why-dominate {
    background: linear-gradient(180deg,rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 70%, rgba(68, 200, 244, 0.93) 100%);
}


.text-large {
    font-size: 24px;
}


.dc-logo-slider .dc-logo-item-holder.vertical-center {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 300px;
}

@media (max-width: 767px) {
    .dc-logo-slider .dc-logo-item-holder.vertical-center {    
    height: 200px;
}
}


/* .dc-typewriter p.text-primary.heading-text-animation.lead.large.blue  {
    margin-bottom: -10px;
    font-weight: 600;
} */




.banner-spacer {
    padding-top: 300px;
}

@media (max-width: 1200px){
.banner-spacer {
    padding-top: 150px;
}
}

.hero-variant.hero-v11.hero-video {
  position: relative; 
  overflow: hidden;  
  min-height: 100vh; 
  margin-bottom: 50px;
}

@media (max-width: 767px){
 h2 span.over.text-white.heading-text-animation {  
 font-size: 20px;
}
 h1.heading-text-animation {  
 font-size: 38px;
}
p.heading-text-animation.caveat {
font-size: 30px;
}


}

.hero-variant.hero-v11.hero-video::before {
  content: "";
  position: absolute;
  inset: 0; /* top:0; right:0; bottom:0; left:0 */
  background: rgba(0, 0, 0, 0.5); /* adjust alpha for darkness */
  z-index: 1; /* sits above iframe */
}

.hero-variant.hero-v11.hero-video .container {
  position: relative;
  z-index: 2; /* pulls your text above overlay */
}

/* GALLERY */


.custom-flex-row-gallery {
  --gap: 5px;                 /* tweak spacing here */
  display: flex;
  flex-wrap: wrap;            /* you added flex-wrap; we’ll respect it */
  gap: var(--gap);
  margin: 0;                  /* keep edges clean */
  padding: 0;
}

/* Kill BS3 float/padding inside this flex context */
.custom-flex-row-gallery > [class*="col-"] {
  float: none;
  padding: 0;
}

/* ===== Fifths logic using calc() =====
   We subtract total gaps within a row so items fit perfectly. */

/* XS (phones): you set col-xs-6 => 2-up */
.custom-flex-row-gallery .col-xs-6 {
  flex: 0 0 calc((100% - var(--gap)) / 2);
}

/* SM (≥768px): 5-up using .col-sm-fifth */
@media (min-width: 768px) {
  .custom-flex-row-gallery .col-sm-fifth {
    flex: 0 0 calc((100% - (4 * var(--gap))) / 5);
  }
}

/* MD (≥992px): 5-up using .col-md-fifth */
@media (min-width: 992px) {
  .custom-flex-row-gallery .col-md-fifth {
    flex: 0 0 calc((100% - (4 * var(--gap))) / 5);
  }
}

/* Optional: XL (≥1200px) keep 5-up; remove if not needed */
@media (min-width: 1200px) {
  .custom-flex-row-gallery .col-md-fifth {
    flex: 0 0 calc((100% - (4 * var(--gap))) / 5);
  }
}

/* Image hygiene */
.custom-flex-row-gallery .clipped-image {
  display: block;
  width: 100%;
  height: auto;
}

/* Make anchor fill the card so the whole tile is clickable */
.custom-flex-row-gallery .single-image-modal {
  display: block;
}




.clipped-image{
  display:block;
  width:100%;
  height:auto;          /* ✅ critical */
  aspect-ratio:4 / 3;   /* lock 4:3 tiles */
  object-fit:cover;
  object-position:center;  /* default; per-image inline can override */
  max-width:none;
  max-height:none;
}

.hiding-gallery-placement {
    display: none;
}

@media (min-width: 1338px) {
.hiding-gallery-placement {
    display: block;
    position: absolute;
    width: 300px;
    height: auto;
    top: -124px;
    right: 80px;
}
}



/* GALLERY END */




.dhr-animation-placement {
    /* display: block; */
    position: absolute;
    width: 900px;
    height: auto;
    bottom: 0px;
    right: 50%;
}



/* Custom Graphics Slider  */

/* Reserve space for arrows and prevent FOUC until init */
.custom-graphic-slider {
  position: relative;
  padding-bottom: 84px;
  visibility: hidden;
}
.custom-graphic-slider.is-inited {
  visibility: visible;
  animation: sliderFadeIn .25s ease;
}
@keyframes sliderFadeIn { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:translateY(0)} }

/* Keep layout steady before images load */
.custom-graphic-slider .slick-list { min-height: 380px; }
.custom-graphic-slider img { display:block;width:100%;height:auto; }

/* Arrows: centered under slider */
.custom-graphic-slider .slick-prev,
.custom-graphic-slider .slick-next {
  position: absolute !important;
  top: auto;
  bottom: 50px;              
  left: 50%;
  width: 48px;
  height: 48px;
  border-radius: 0;
  background: #E0922F;        /* orange fill */
  border: 2px solid #E0922F;  /* orange border */
  color: #fff !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 5;                 /* lift above nearby content */
  box-shadow: 0 8px 18px rgba(15,124,187,.28);
  transition: transform .15s ease, box-shadow .15s ease;
  font-size: 0;
  user-select: none;
}
/* pair centering */
.custom-graphic-slider .slick-prev { margin-left: -56px; }
.custom-graphic-slider .slick-next { margin-left:   8px; }

/* FA chevrons */
.custom-graphic-slider .slick-prev:before,
.custom-graphic-slider .slick-next:before {
  font-family: "Font Awesome 6 Pro","Font Awesome 6 Free";
  font-weight: 900;
  font-size: 18px;
  line-height: 1;
  color: #fff;
  opacity: 1;
}
.custom-graphic-slider .slick-prev:before { content: "\f053"; }
.custom-graphic-slider .slick-next:before { content: "\f054"; }

/* hover/active */
.custom-graphic-slider .slick-prev:hover,
.custom-graphic-slider .slick-next:hover {
  transform: translateY(-1px) scale(1.05);
  box-shadow: 0 12px 26px rgba(15,124,187,.36);
}
.custom-graphic-slider .slick-prev:active,
.custom-graphic-slider .slick-next:active {
  transform: scale(.96);
  box-shadow: 0 6px 14px rgba(15,124,187,.34);
}

/* mobile */
@media (max-width: 768px) {
  .custom-graphic-slider { padding-bottom: 72px; }
  .custom-graphic-slider .slick-prev,
  .custom-graphic-slider .slick-next {
    width: 44px; height: 44px; bottom: 50px;
  }
  .custom-graphic-slider .slick-prev { margin-left: -52px; }
  .custom-graphic-slider .slick-next { margin-left:   8px; }
}


/* Custom Graphics Slider  END*/

.bg-primary {
    background: #000;
}

.bg-secondary {
    background: #3C3C3C;
}