.elementor-kit-7{--e-global-color-primary:#262324;--e-global-color-secondary:#CBC5BB;--e-global-color-text:#262324;--e-global-color-accent:#F3F0EC;--e-global-color-5615879:#FFFFFF;--e-global-color-4f47ba6:#000000;--e-global-typography-primary-font-family:"Inter Tight";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Inter Tight";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Manrope";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter Tight";--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;background-color:var( --e-global-color-5615879 );color:var( --e-global-color-primary );}.elementor-kit-7 e-page-transition{background-color:var( --e-global-color-5615879 );}.elementor-kit-7 a{color:var( --e-global-color-primary );}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );}.elementor-kit-7 img{border-style:none;}.elementor-kit-7 label{color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );}.elementor-kit-7 input:not([type="button"]):not([type="submit"]),.elementor-kit-7 textarea,.elementor-kit-7 .elementor-field-textual{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-primary );accent-color:var( --e-global-color-secondary );background-color:var( --e-global-color-5615879 );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:7px 7px 7px 7px;padding:20px 16px 20px 16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1700px;}.e-con{--container-max-width:1700px;--container-default-padding-top:80px;--container-default-padding-right:5%;--container-default-padding-bottom:80px;--container-default-padding-left:5%;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:576px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --InterTight:Inter Tight; --White:#fff; --Black:#262324; --Transparent:#ffffff00; --Manrope:Manrope; --LightBeige:#EEEEEB; --Beige:#CBC5BB; --Borders:#26232445; }
/* Start custom CSS *//* Improved Animations */

@keyframes fadeDown {
    from {
        opacity: 0;
        transform: translate3d(0,-30px,0)
    }

    to {
        opacity: 1;
        transform: none
    }
}

.elementor-element.fadeInDown {
    animation-name: fadeDown
}

@keyframes fadeLeft {
    from {
        opacity: 0;
        transform: translate3d(-30px,0,0)
    }

    to {
        opacity: 1;
        transform: none
    }
}

.elementor-element.fadeInLeft {
    animation-name: fadeLeft
}

@keyframes fadeRight {
    from {
        opacity: 0;
        transform: translate3d(30px,0,0)
    }

    to {
        opacity: 1;
        transform: none
    }
}

.elementor-element.fadeInRight {
    animation-name: fadeRight
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translate3d(0,30px,0)
    }

    to {
        opacity: 1;
        transform: none
    }
}

.elementor-element.fadeInUp {
    animation-name: fadeUp
}

/*CUSTOM CSS*/
.elementor-widget ul li {
    margin-bottom: 10px;
}

.elementor-widget ul {
    padding-left: 20px;
}

.elementor-widget-nav-menu ul {
       padding-left: 0px; 
}

.btn::after,
.elementor-field-type-submit button .elementor-button-content-wrapper::after {
    content: "";
    display: inline-block;
    width: 40px;
    height: 40px;
    margin-left: 15px;
    transition: transform 0.25s ease;
    -webkit-mask: url(/wp-content/uploads/Btn-Arrow.svg) no-repeat center / contain;
    mask: url(/wp-content/uploads/Btn-Arrow.svg) no-repeat center / contain;
    background-color: currentColor;
}

.btn:hover::after,
.elementor-field-type-submit button .elementor-button-content-wrapper:hover::after {
    transform: rotate(-45deg);
}

.btn.down::after {
    transform: rotate(90deg);
}

.our-services-loop .e-loop-item #services-arrow {
    transition: all 0.5s ease;
}

.our-services-loop .e-loop-item:hover #services-arrow {
    transform: rotate(-45deg) scale(1.15);
    transition: all 0.5s ease;
}

.our-services-loop .e-loop-item #services-icon {
    transition: all 0.5s ease;
}

.our-services-loop .e-loop-item:hover #services-icon {
    transform: scale(1.1);
    transition: all 0.5s ease;
}

.our-services-loop .e-loop-item {
    border-top: 1px solid var(--Borders)!important;
}

.our-services-loop .e-loop-item:nth-last-child(-n+2) {
    border-bottom: 1px solid var(--Borders)!important;
}

@media (max-width: 880px) {
    .our-services-loop .e-loop-item:nth-last-child(2) {
        border-bottom: none;
        border-top: none;
    }
    .our-services-loop .e-loop-item:last-child {
        border-bottom: 1px solid var(--Borders)!important;
        border-top: none!important;
    }
}

.hover-cta {
    min-height: 700px;
    height: 80vh;
}

.hover-cta:hover .hover-cta-image {
    opacity: 0;
    transition: all 0.5s ease;
}

.hover-cta .hover-cta-image {
    opacity: 1;
    transition: all 0.5s ease;
}

.hover-cta:hover  {
    background: #fff!important;   
    transition: all 0.5s ease;
}

.hover-cta.alt:hover  {
    background: var(--LightBeige)!important;
    transition: all 0.5s ease;
}

.hover-cta:hover h1,
.hover-cta:hover .btn,
.hover-cta:hover .body{
    color: #000!important;
    transition: all 0.5s ease;
}

.hover-cta:hover .btn::after {
    transform: rotate(-45deg) scale(1.2);
    transition: all 0.5s ease;
}

.hover-cta .btn {
    gap: 0px;
    transition: all 0.5s ease;
}

.hover-cta:hover .btn {
    position: relative;
    gap: 15px;
    transition: all 0.5s ease;
}

#project-grid-card:hover #project-grid-img {
    transform: scale(1.04);
}

#project-grid-card .elementor-icon-wrapper {
     transition: all 0.5s ease;
}
#project-grid-card:hover .elementor-icon-wrapper {
     transform: rotate(-45deg) scale(1.1);
     transition: all 0.5s ease;
}

@media (min-width: 1101px) {
    
    .portfolio-loop .elementor-loop-container {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 60px !important; 
    }

    .portfolio-loop .elementor-loop-container .e-loop-item:nth-of-type(3n-2) {
        grid-row: span 2 !important;
    }

    .portfolio-loop .elementor-loop-container .e-loop-item {
        height: 100% !important;
    }

    .portfolio-loop .elementor-loop-container .e-loop-item .e-con-parent {
        height: 100% !important;
    }

    .portfolio-loop .e-con-boxed {
        height: 100%;
    }
}

@media (max-width: 1100px) {
    
    .portfolio-loop .elementor-loop-container {
        display: flex !important;
        flex-direction: column !important;
        gap: 30px !important;
    }
    
    .portfolio-loop .elementor-loop-container .e-loop-item {
        grid-row: auto !important;
        height: auto !important;
    }
}

header .elementor-sticky--effects {
    background: var(--White)!important
}

header .elementor-sticky--effects .elementor-icon {
    color: var(--Black)!important;
}

/*GSAP Titles*/
body:not(.elementor-editor-active) .h1:not(.gsap-processed),
body:not(.elementor-editor-active) .h2:not(.gsap-processed) {
  opacity: 0;
  visibility: hidden;
}

.word-wrapper {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  white-space: pre; 
}

.word-inner {
  display: inline-block;
  transform: translateY(100%);
  opacity: 0;
  will-change: transform, opacity;
}
/*GSAP Titles END*/

@media (max-width: 767px) {
.footer-menu ul {
    display: flex;
    flex-direction: column;
    align-items: center;
}
}

/*HERO REVEAL GSAP*/
.hero-reveal-container {
  position: relative;
  overflow: hidden;
}

body:not(.elementor-editor-active) .hero-reveal-img {
  clip-path: inset(0% 0% 100% 0%);
  will-change: clip-path, transform;
}

body:not(.elementor-editor-active) .hero-reveal-container.reverse .hero-reveal-img {
  clip-path: inset(100% 0% 0% 0%);
}

.hero-reveal-img {
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  top: 0;
  left: 0;
  transform: scale(1);
}
/*HERO REVEAL GSAP END*/


input[type="file"] {
   padding: 16px!important;
   width: 100%;
}

/*ELEMENTOR GALLERY START*/
.e-child :not(.elementor-motion-effects-element-type-background),
:not(.elementor-motion-effects-element-type-background){
    background-size: cover;
    background-position: center;
}

.elementor-gallery-item__title.elementor-animated-item--move-up {
    bottom: -50px;
    position: relative;
    opacity: 0;
}

.e-gallery-item:hover .elementor-gallery-item__title.elementor-animated-item--move-up {
    bottom: -30px;
    position: relative;
     opacity: 1;
}

@media (max-width: 1024px) {
    .elementor-1283 .elementor-element.elementor-element-617b17e .e-gallery-item {
        height: unset !important;
    }
}

body .elementor-widget-gallery .e-gallery-image,
body .elementor-widget-gallery .e-gallery-item,
body .elementor-widget-gallery .elementor-gallery-item__overlay {
    transform: scale(1) !important;
}
/*ELEMENTOR GALLERY END*/

/*SINGLE PROJECT START*/
.project-details-flex-container {
    width: 100%;
    border-top: 1px solid var(--Black)!important;
}

.project-details-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px 0;
    border-bottom: 1px solid var(--Black)!important;
}

.project-details-label,
.project-details-value{
    flex: 0 0 50%;
}

.key-aspects-flex-container,
.solutions-flex-container{
    display: flex;
    flex-direction: column;
    gap: 25px;
}
/*SINGLE PROJECT END*/

/*SINGLE SERVICES START*/
.single-service #services-icon.invert  {
    filter: invert();
}

.capabilities-flex-container {
    width: 100%;
    display: flex;
    flex-direction: column;
}

.capabilities-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    background-color: var(--LightBeige)!important;
}

.capabilities-row:nth-child(even) {
    flex-direction: row-reverse;
}

.capabilities-text-col {
    flex: 0 0 50%;
    padding: 50px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-height: 400px;
    justify-content: center;
}

.capabilities-img-col {
    flex: 0 0 50%;
    width: 100%;
    min-height: stretch;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.capabilities-img-col img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    position: absolute;
    background-position: center center;
}

@media (max-width: 767px) {
   .capabilities-row,
   .capabilities-row:nth-child(even){
    flex-direction: column;
    }
    .capabilities-img-col {
        min-height: 350px;
    }
}

@media (max-width: 575px) {
    .capabilities-img-col {
        min-height: 250px;
    }
}


@media (max-width: 500px) {
   .capabilities-text-col {
    padding: 50px 20px;
}
}
/*SINGLE SERVICES END*/

p {
    white-space: break-spaces;
}

footer .elementor-icon-list-item > a {
    color: var(--White)!important;
    text-decoration: underline;
}

/*HERO SLIDER START*/
.hero-slider-outer-wrap {
    display: block !important;
    width: 100% !important;
    height: 100vh !important; 
    min-height: 500px !important;
    position: relative !important;
    overflow: hidden !important;
    visibility: visible !important;
    opacity: 1 !important;
}

@media(max-width: 767px) {
    .hero-slider-outer-wrap {
    height: 70vh !important; 
}
}

.ele-hero-swiper.swiper,
.ele-hero-swiper.swiper-container {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
}

.ele-hero-swiper .swiper-wrapper {
    display: flex !important;
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    transform: translate3d(0px, 0px, 0px) !important;
}

.ele-hero-swiper .swiper-slide {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;
    flex-shrink: 0 !important;
    width: 100% !important;
    height: 100% !important;
    position: relative !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    opacity: 0 !important;
    transition: opacity 1500ms ease-in-out !important;
    pointer-events: none;
}

/* By default, everything toggles instantly on load with zero fading */
/*.ele-hero-swiper .swiper-slide {*/
/* opacity: 0 !important;*/
/* transition: none !important;*/
/*}*/

/* Force the active slide to be instantly visible on load */
/*.ele-hero-swiper .swiper-slide-active {*/
/* opacity: 1 !important;*/
/* z-index: 1 !important;*/
/*}*/

/* ONLY apply the smooth fade transition while the slider is actively animating */
/*.ele-hero-swiper.is-animating .swiper-slide {*/
/* transition: opacity 1500ms ease-in-out !important;*/
/*}*/

.ele-hero-swiper .swiper-slide-active,
.ele-hero-swiper .swiper-slide-duplicate-active {
    opacity: 1 !important;
    pointer-events: auto;
    z-index: 1 !important;
}

.ele-hero-swiper .video-background {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

.ele-hero-swiper .video-background video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.ele-hero-swiper .slide-content {
    position: relative !important;
    z-index: 3 !important;
    padding: 80px 0px !important;
    width: 100% !important;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
}

.slide-content-wrap {
    margin: 0 auto;
    width: 100%;
    max-width: 1700px;
}

.ele-hero-swiper .slide-content .h1 {
    color: var(--White)!important;
    text-align: left;
    margin: 0!important;
}

.slide-buttons-right {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: center;
}

.slide-buttons-right a,
.slide-text-left p {
   color: var(--White)!important;
}

.slide-text-left {
    display: flex;
    gap: 20px;
    flex-direction: column;
}

@media (max-width: 1850px) {
    .slide-content-wrap {
    padding: 0px 5% 80px 5% !important;
    }
    .ele-hero-swiper .slide-content {
        padding: 0px!important;
    }
}

@media (max-width: 1200px) {
    .slide-content {
        align-items: flex-start!important;
        flex-direction: column;
    }
    .hero-eyebrow {
        gap: 5px;
    }
}

.video-background {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.video-background video {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(180deg, #26232400 50%, #000000 100%);
    z-index: 2;
    pointer-events: none;
}
/*HERO SLIDER END*/

/* Gallery Shortcode Projects Page START */
.project-gallery-grid-wrapper {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 320px;
    gap: 20px;
    width: 100%;
}

.pgg-item {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
}

.pgg-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.4s ease;
}

/* --- 6-ITEM REPEATING ROW RATIOS --- */

/* Row 1 Pattern: 3/12 | 5/12 | 4/12 */
.pgg-item:nth-child(6n + 1) { grid-column: span 3; }
.pgg-item:nth-child(6n + 2) { grid-column: span 5; }
.pgg-item:nth-child(6n + 3) { grid-column: span 4; }

/* Row 2 Pattern: 5/12 | 4/12 | 3/12 */
.pgg-item:nth-child(6n + 4) { grid-column: span 5; }
.pgg-item:nth-child(6n + 5) { grid-column: span 4; }
.pgg-item:nth-child(6n + 0) { grid-column: span 3; }


/* --- HOVER EFFECT & OVERLAY STYLING --- */

.pgg-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0) 60%);
    display: flex;
    align-items: flex-end;
    padding: 24px;
    opacity: 0;
    transition: opacity 0.35s ease;
}

.pgg-title {
    color: #ffffff;
    font-family: inherit;
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1.3;
    transform: translateY(12px);
    transition: transform 0.35s ease;
}

/* Hover Animations */
.pgg-item:hover .pgg-overlay {
    opacity: 1;
}

.pgg-item:hover .pgg-title {
    transform: translateY(0);
}

.pgg-item:hover img {
    transform: scale(1.04);
}


/* --- TABLET & MOBILE BREAKPOINTS --- */

@media (max-width: 900px) {
    .project-gallery-grid-wrapper {
        grid-auto-rows: 260px; /* Slightly shorter rows for tablet */
    }
    .pgg-item:nth-child(n) {
        grid-column: span 6;
    }
}

@media (max-width: 600px) {
    .project-gallery-grid-wrapper {
        grid-auto-rows: 220px; /* Shorter rows for mobile */
    }
    .pgg-item:nth-child(n) {
        grid-column: span 12;
    }
    .pgg-overlay {
        opacity: 1;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 80%);
    }
    .pgg-title {
        transform: translateY(0);
    }
}

/* Gallery Shortcode Projects Page END */

/* Prevent Firefox video frame desync and speed-up glitch */
@-moz-document url-prefix() {
  .elementor-popup-modal video {
    /* Force GPU composition layer to lock framerate */
    transform: translateZ(0) !important;
    image-rendering: -webkit-optimize-contrast !important;
    backface-visibility: hidden !important;
  }
}/* End custom CSS */