.elementor-712 .elementor-element.elementor-element-4bfe70c9{--display:flex;--overflow:hidden;}.elementor-712 .elementor-element.elementor-element-4bfe70c9:not(.elementor-motion-effects-element-type-background), .elementor-712 .elementor-element.elementor-element-4bfe70c9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-712 .elementor-element.elementor-element-4b6b95bf{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-712 .elementor-element.elementor-element-2d2e9c32{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--gap:32px 32px;--row-gap:32px;--column-gap:32px;--flex-wrap:nowrap;--padding-top:100px;--padding-bottom:64px;--padding-left:0px;--padding-right:0px;}.elementor-712 .elementor-element.elementor-element-1744ee91{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;}.elementor-712 .elementor-element.elementor-element-49b7d8fa img{width:180px;}.elementor-712 .elementor-element.elementor-element-591664d{margin:16px 0px calc(var(--kit-widget-spacing, 0px) + 28px) 0px;text-align:start;font-family:"Inter Tight", Sans-serif;font-size:16px;font-weight:400;line-height:1.5em;color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-44c43891{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;}.elementor-712 .elementor-element.elementor-element-6b296346 .elementor-icon-wrapper{text-align:center;}.elementor-712 .elementor-element.elementor-element-6b296346.elementor-view-stacked .elementor-icon{background-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-6b296346.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-6b296346.elementor-view-default .elementor-icon{color:#1A1A1C;border-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-6b296346.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-6b296346.elementor-view-default .elementor-icon svg{fill:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-6b296346 .elementor-icon{font-size:16px;}.elementor-712 .elementor-element.elementor-element-6b296346 .elementor-icon svg{height:16px;}.elementor-712 .elementor-element.elementor-element-1ffe68b6 .elementor-icon-wrapper{text-align:center;}.elementor-712 .elementor-element.elementor-element-1ffe68b6.elementor-view-stacked .elementor-icon{background-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-1ffe68b6.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-1ffe68b6.elementor-view-default .elementor-icon{color:#1A1A1C;border-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-1ffe68b6.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-1ffe68b6.elementor-view-default .elementor-icon svg{fill:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-1ffe68b6 .elementor-icon{font-size:16px;}.elementor-712 .elementor-element.elementor-element-1ffe68b6 .elementor-icon svg{height:16px;}.elementor-712 .elementor-element.elementor-element-5c66c1a6 .elementor-icon-wrapper{text-align:center;}.elementor-712 .elementor-element.elementor-element-5c66c1a6.elementor-view-stacked .elementor-icon{background-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-5c66c1a6.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-5c66c1a6.elementor-view-default .elementor-icon{color:#1A1A1C;border-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-5c66c1a6.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-5c66c1a6.elementor-view-default .elementor-icon svg{fill:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-5c66c1a6 .elementor-icon{font-size:16px;}.elementor-712 .elementor-element.elementor-element-5c66c1a6 .elementor-icon svg{height:16px;}.elementor-712 .elementor-element.elementor-element-19a98829 .elementor-icon-wrapper{text-align:center;}.elementor-712 .elementor-element.elementor-element-19a98829.elementor-view-stacked .elementor-icon{background-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-19a98829.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-19a98829.elementor-view-default .elementor-icon{color:#1A1A1C;border-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-19a98829.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-19a98829.elementor-view-default .elementor-icon svg{fill:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-19a98829 .elementor-icon{font-size:16px;}.elementor-712 .elementor-element.elementor-element-19a98829 .elementor-icon svg{height:16px;}.elementor-712 .elementor-element.elementor-element-4b84ea63 .elementor-icon-wrapper{text-align:center;}.elementor-712 .elementor-element.elementor-element-4b84ea63.elementor-view-stacked .elementor-icon{background-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-4b84ea63.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-4b84ea63.elementor-view-default .elementor-icon{color:#1A1A1C;border-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-4b84ea63.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-4b84ea63.elementor-view-default .elementor-icon svg{fill:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-4b84ea63 .elementor-icon{font-size:16px;}.elementor-712 .elementor-element.elementor-element-4b84ea63 .elementor-icon svg{height:16px;}.elementor-712 .elementor-element.elementor-element-7e852157 .elementor-icon-wrapper{text-align:center;}.elementor-712 .elementor-element.elementor-element-7e852157.elementor-view-stacked .elementor-icon{background-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-7e852157.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-7e852157.elementor-view-default .elementor-icon{color:#1A1A1C;border-color:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-7e852157.elementor-view-framed .elementor-icon, .elementor-712 .elementor-element.elementor-element-7e852157.elementor-view-default .elementor-icon svg{fill:#1A1A1C;}.elementor-712 .elementor-element.elementor-element-7e852157 .elementor-icon{font-size:16px;}.elementor-712 .elementor-element.elementor-element-7e852157 .elementor-icon svg{height:16px;}.elementor-712 .elementor-element.elementor-element-c2f0606{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--flex-wrap:nowrap;--padding-top:0px;--padding-bottom:0px;--padding-left:120px;--padding-right:62px;}.elementor-712 .elementor-element.elementor-element-23656ce{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-712 .elementor-element.elementor-element-8f0909d .elementor-heading-title{font-family:"Inter Tight", Sans-serif;font-size:20px;font-weight:400;line-height:1.4em;}.elementor-712 .elementor-element.elementor-element-a889058{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-712 .elementor-element.elementor-element-05b58c2 .elementor-button{font-family:"Inter Tight", Sans-serif;font-size:16px;font-weight:400;line-height:1.5em;}.elementor-712 .elementor-element.elementor-element-37d1c38{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-712 .elementor-element.elementor-element-e0cf93c .elementor-heading-title{font-family:"Inter Tight", Sans-serif;font-size:20px;font-weight:400;line-height:1.4em;}.elementor-712 .elementor-element.elementor-element-87a9a1b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-712 .elementor-element.elementor-element-142fbf0{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-712 .elementor-element.elementor-element-5e6c678 .elementor-heading-title{font-family:"Inter Tight", Sans-serif;font-size:20px;font-weight:400;line-height:1.4em;}.elementor-712 .elementor-element.elementor-element-fd44b08{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-712 .elementor-element.elementor-element-36f0cfab{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--padding-top:24px;--padding-bottom:60px;--padding-left:0px;--padding-right:0px;}.elementor-712 .elementor-element.elementor-element-4eedf81b{--divider-border-style:solid;--divider-color:#E3E7ED;--divider-border-width:1px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 24px) 0px;}.elementor-712 .elementor-element.elementor-element-4eedf81b .elementor-divider-separator{width:100%;}.elementor-712 .elementor-element.elementor-element-4eedf81b .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-712 .elementor-element.elementor-element-2f1da0c3{text-align:center;font-family:"Inter Tight", Sans-serif;font-size:14px;font-weight:400;line-height:1.5em;color:#1A1A1C;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-712 .elementor-element.elementor-element-4b6b95bf{--content-width:1290px;}.elementor-712 .elementor-element.elementor-element-1744ee91{--width:306px;}}@media(max-width:1024px) and (min-width:768px){.elementor-712 .elementor-element.elementor-element-1744ee91{--width:100%;}}@media(max-width:1024px){.elementor-712 .elementor-element.elementor-element-2d2e9c32{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:64px;--padding-bottom:64px;--padding-left:0px;--padding-right:0px;}}/* Start custom CSS *//**
 * NextSaaS Footer Complete CSS
 * Base styles + animations for the footer template matching app-development.html
 * Version: 1.0.0
 */

/* ==========================================================================
   CSS Variables
   ========================================================================== */
:root {
  --ns-footer-bg: #FFFFFF;
  --ns-footer-text-primary: #1A1A1C;
  --ns-footer-text-secondary: rgba(26, 26, 28, 0.6);
  --ns-footer-stroke: #DFE4EB;
  --ns-footer-divider: #E3E7ED;
  --ns-footer-primary: #864FFE;
  --ns-footer-font: 'Inter Tight', sans-serif;
  --ns-footer-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
   Footer Section Container
   ========================================================================== */
.ns-footer {
  background-color: var(--ns-footer-bg) !important;
  position: relative !important;
  overflow: hidden !important;
}

.ns-footer-three {
  /* Footer variant 3 specific styles */
}

/* ==========================================================================
   Footer Main Container
   ========================================================================== */
.ns-footer-main-container {
  max-width: 1290px !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
}

/* ==========================================================================
   Footer Content Grid
   ========================================================================== */
.ns-footer-content-grid {
  padding-top: 100px !important;
  padding-bottom: 64px !important;
}

@media (max-width: 1024px) {
  .ns-footer-content-grid {
    padding-top: 64px !important;
  }
}

.ns-footer-content-grid.e-con {
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: space-between !important;
  gap: 32px !important;
}

@media (max-width: 1024px) {
  .ns-footer-content-grid.e-con {
    flex-direction: column !important;
    gap: 64px !important;
  }
}

/* ==========================================================================
   Footer Brand Column
   ========================================================================== */
.ns-footer-brand-column {
  width: 306px !important;
  max-width: 306px !important;
  flex-shrink: 0 !important;
}

@media (max-width: 1024px) {
  .ns-footer-brand-column {
    width: 100% !important;
    max-width: 100% !important;
  }
}

.ns-footer-brand-column.e-con {
  flex-direction: column !important;
  align-items: flex-start !important;
}

/* Footer Logo */
.ns-footer-logo img {
  max-width: 180px !important;
  height: auto !important;
}

/* Footer Description */
.ns-footer-description {
  margin-top: 16px !important;
  margin-bottom: 28px !important;
}

.ns-footer-description p {
  font-family: var(--ns-footer-font) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--ns-footer-text-primary) !important;
  margin: 0 !important;
}

/* ==========================================================================
   Footer Social Icons
   ========================================================================== */
.ns-footer-social-icons {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
}

.ns-footer-social-icons.e-con {
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

/* Social Link */
.ns-footer-social-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: var(--ns-footer-transition) !important;
}

.ns-footer-social-link .elementor-icon {
  font-size: 16px !important;
}

.ns-footer-social-link .elementor-icon i {
  color: var(--ns-footer-text-primary) !important;
  font-size: 16px !important;
  transition: var(--ns-footer-transition) !important;
}

.ns-footer-social-link:hover .elementor-icon i {
  color: var(--ns-footer-primary) !important;
}

/* Social Divider */
.ns-footer-social-divider {
  width: 1px !important;
  height: 20px !important;
  background-color: var(--ns-footer-stroke) !important;
}

.ns-footer-social-divider-wrap {
  display: flex !important;
  align-items: center !important;
}

/* ==========================================================================
   Footer Links Wrapper
   ========================================================================== */
.ns-footer-links-wrapper {
  flex: 1 !important;
}

.ns-footer-links-wrapper.e-con {
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: space-between !important;
  gap: 0 !important;
}

@media (max-width: 768px) {
  .ns-footer-links-wrapper.e-con {
    flex-direction: column !important;
    gap: 32px !important;
  }
}

/* ==========================================================================
   Footer Link Columns
   ========================================================================== */
.ns-footer-link-column {
  flex: 1 !important;
}

.ns-footer-link-column.e-con {
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 32px !important;
}

/* Column Title */
.ns-footer-column-title .elementor-heading-title {
  font-family: var(--ns-footer-font) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  color: var(--ns-footer-text-primary) !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  .ns-footer-column-title .elementor-heading-title {
    font-size: 16px !important;
  }
}

/* ==========================================================================
   Footer Links List
   ========================================================================== */
.ns-footer-links-list {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 16px !important;
  width: 100% !important;
}

.ns-footer-links-list.e-con {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 16px !important;
  flex-wrap: nowrap !important;
}

/* Footer Link - Using Heading Widget */
.ns-footer-link {
  display: block !important;
  width: auto !important;
}

.ns-footer-link .elementor-heading-title {
  font-family: var(--ns-footer-font) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--ns-footer-text-primary) !important;
  transition: var(--ns-footer-transition) !important;
  cursor: pointer !important;
}

.ns-footer-link .elementor-heading-title:hover {
  color: var(--ns-footer-primary) !important;
}

.ns-footer-link a {
  text-decoration: none !important;
  color: inherit !important;
}

/* Footer Link v2 - Using Button Widget */
.ns-footer-link-v2 {
  display: block !important;
  width: auto !important;
}

.ns-footer-link .elementor-button,
.ns-footer-link-v2 .elementor-button {
  font-family: var(--ns-footer-font) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--ns-footer-text-primary) !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: auto !important;
  transition: var(--ns-footer-transition) !important;
  text-decoration: none !important;
  position: relative !important;
}

.ns-footer-link .elementor-button:hover,
.ns-footer-link-v2 .elementor-button:hover {
  color: var(--ns-footer-primary) !important;
  background: transparent !important;
}

/* Remove Elementor button styles */
.ns-footer-link .elementor-button-wrapper,
.ns-footer-link-v2 .elementor-button-wrapper {
  display: inline-block !important;
}

.ns-footer-link .elementor-button-content-wrapper,
.ns-footer-link-v2 .elementor-button-content-wrapper {
  display: inline-flex !important;
  align-items: center !important;
}

/* ==========================================================================
   Footer Bottom
   ========================================================================== */
.ns-footer-bottom {
  padding-top: 24px !important;
  padding-bottom: 60px !important;
  text-align: center !important;
  position: relative !important;
  overflow: hidden !important;
}

.ns-footer-bottom.e-con {
  flex-direction: column !important;
  align-items: center !important;
}

/* Footer Divider */
.ns-footer-divider-wrap {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
}

.ns-footer-divider {
  width: 0;
  height: 1px;
  background-color: var(--ns-footer-divider);
  margin: 0 auto;
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

/* Footer Copyright */
.ns-footer-copyright p {
  font-family: var(--ns-footer-font) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--ns-footer-text-primary) !important;
  margin: 0 !important;
  text-align: center !important;
}

/* ==========================================================================
   Elementor Widget Overrides
   ========================================================================== */
.ns-footer .elementor-widget {
  margin-bottom: 0 !important;
}

.ns-footer .e-con {
  --widgets-spacing: 0px;
}

/* Image Widget */
.ns-footer .elementor-widget-image {
  line-height: 0 !important;
}

/* Text Editor Widget */
.ns-footer .elementor-widget-text-editor {
  line-height: 1.5 !important;
}

/* Heading Widget */
.ns-footer .elementor-widget-heading .elementor-heading-title {
  padding: 0 !important;
  margin: 0 !important;
}

/* Icon Widget */
.ns-footer .elementor-widget-icon .elementor-icon {
  font-size: 16px !important;
  line-height: 1 !important;
}

/* HTML Widget */
.ns-footer .elementor-widget-html {
  line-height: 0 !important;
}

/* ==========================================================================
   Elementor Container Overrides
   ========================================================================== */
.ns-footer .e-con {
  --container-max-width: 1290px;
}

/* Force proper layout */
.ns-footer-content-grid.e-con,
.ns-footer .ns-footer-content-grid.e-con {
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}

.ns-footer-links-wrapper.e-con,
.ns-footer .ns-footer-links-wrapper.e-con {
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: space-between !important;
}

.ns-footer-link-column.e-con,
.ns-footer .ns-footer-link-column.e-con {
  flex: 1 !important;
}

@media (max-width: 1024px) {
  .ns-footer-content-grid.e-con,
  .ns-footer .ns-footer-content-grid.e-con {
    flex-direction: column !important;
  }
}

@media (max-width: 768px) {
  .ns-footer-links-wrapper.e-con,
  .ns-footer .ns-footer-links-wrapper.e-con {
    flex-direction: column !important;
    gap: 32px !important;
  }
  
  .ns-footer-link-column.e-con,
  .ns-footer .ns-footer-link-column.e-con {
    flex: 0 0 100% !important;
    width: 100% !important;
  }
}

/* ==========================================================================
   Animation Keyframes
   ========================================================================== */

/* Footer Divider Expand Animation */
@keyframes footerDividerExpand {
  from {
    width: 0;
    opacity: 0;
  }
  to {
    width: 100%;
    opacity: 1;
  }
}

/* Fade In Up Animation */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fade In Left Animation */
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Fade In Right Animation */
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Scale In Animation */
@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* ==========================================================================
   Footer Divider Animation
   ========================================================================== */
.ns-footer-divider {
  width: 0;
  height: 1px;
  background-color: var(--ns-footer-divider, #E3E7ED);
  margin: 0 auto;
  opacity: 0;
  animation: footerDividerExpand 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 0.7s;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

/* ==========================================================================
   Footer Content Animations (with data-ns-animate attribute support)
   ========================================================================== */

/* Brand Column Animation */
.ns-footer-brand-column {
  opacity: 0;
  animation: fadeInLeft 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 0.3s;
}

/* Link Columns Staggered Animation */
.ns-footer-link-column:nth-child(1) {
  opacity: 0;
  animation: fadeInUp 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 0.4s;
}

.ns-footer-link-column:nth-child(2) {
  opacity: 0;
  animation: fadeInUp 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 0.5s;
}

.ns-footer-link-column:nth-child(3) {
  opacity: 0;
  animation: fadeInUp 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 0.6s;
}

/* Copyright Animation */
.ns-footer-copyright {
  opacity: 0;
  animation: fadeInUp 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 0.7s;
}

/* ==========================================================================
   Social Icons Hover Animations
   ========================================================================== */
.ns-footer-social-link {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}

.ns-footer-social-link::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background-color: rgba(134, 79, 254, 0.1);
  transform: translate(-50%, -50%);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: -1;
}

.ns-footer-social-link:hover::before {
  width: 40px;
  height: 40px;
}

.ns-footer-social-link .elementor-icon {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.ns-footer-social-link:hover .elementor-icon {
  transform: translateY(-3px);
}

.ns-footer-social-link .elementor-icon i {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.ns-footer-social-link:hover .elementor-icon i {
  color: var(--ns-footer-primary, #864FFE) !important;
}

/* ==========================================================================
   Footer Link Animations
   ========================================================================== */
.ns-footer-link .elementor-button,
.ns-footer-link-v2 .elementor-button {
  position: relative;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Underline Slide Effect */
.ns-footer-link .elementor-button::after,
.ns-footer-link-v2 .elementor-button::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background-color: var(--ns-footer-primary, #864FFE);
  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.ns-footer-link .elementor-button:hover::after,
.ns-footer-link-v2 .elementor-button:hover::after {
  width: 100%;
}

/* Slight Slide Effect on Hover */
.ns-footer-link .elementor-button:hover,
.ns-footer-link-v2 .elementor-button:hover {
  transform: translateX(3px);
}

/* Stagger Animation for Links in List */
.ns-footer-links-list .ns-footer-link,
.ns-footer-links-list .ns-footer-link-v2 {
  opacity: 0;
  animation: fadeInUp 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.ns-footer-links-list .ns-footer-link:nth-child(1),
.ns-footer-links-list .ns-footer-link-v2:nth-child(1) {
  animation-delay: 0.5s;
}

.ns-footer-links-list .ns-footer-link:nth-child(2),
.ns-footer-links-list .ns-footer-link-v2:nth-child(2) {
  animation-delay: 0.6s;
}

.ns-footer-links-list .ns-footer-link:nth-child(3),
.ns-footer-links-list .ns-footer-link-v2:nth-child(3) {
  animation-delay: 0.7s;
}

.ns-footer-links-list .ns-footer-link:nth-child(4),
.ns-footer-links-list .ns-footer-link-v2:nth-child(4) {
  animation-delay: 0.8s;
}

.ns-footer-links-list .ns-footer-link:nth-child(5),
.ns-footer-links-list .ns-footer-link-v2:nth-child(5) {
  animation-delay: 0.9s;
}

/* ==========================================================================
   Social Divider Animation
   ========================================================================== */
.ns-footer-social-divider {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Pulse effect when hovering over adjacent social icons */
.ns-footer-social-link:hover + .ns-footer-social-divider-wrap .ns-footer-social-divider {
  transform: scaleY(1.4);
  background-color: var(--ns-footer-primary, #864FFE);
}

/* ==========================================================================
   Logo Animation
   ========================================================================== */
.ns-footer-logo {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.ns-footer-logo:hover {
  transform: scale(1.05);
}

/* ==========================================================================
   Column Title Hover Effect
   ========================================================================== */
.ns-footer-column-title .elementor-heading-title {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}

.ns-footer-column-title .elementor-heading-title::before {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--ns-footer-primary, #864FFE) 0%, transparent 100%);
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.ns-footer-link-column:hover .ns-footer-column-title .elementor-heading-title::before {
  width: 40px;
}

/* ==========================================================================
   Scroll Reveal Animation (Optional - requires JS)
   ========================================================================== */
.ns-footer[data-scroll-reveal] {
  opacity: 0;
  transform: translateY(50px);
  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
}

.ns-footer[data-scroll-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
   Responsive Adjustments - Base Styles
   ========================================================================== */

/* Tablet */
@media (max-width: 1024px) {
  .ns-footer-content-grid {
    padding-top: 64px !important;
    gap: 64px !important;
  }
  
  .ns-footer-brand-column {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Mobile */
@media (max-width: 768px) {
  .ns-footer-main-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  
  .ns-footer-content-grid {
    gap: 48px !important;
  }
  
  .ns-footer-links-wrapper {
    gap: 32px !important;
  }
  
  .ns-footer-social-icons {
    flex-wrap: wrap !important;
  }
  
  .ns-footer-bottom {
    padding-bottom: 40px !important;
  }
}

/* Small Mobile */
@media (max-width: 480px) {
  .ns-footer-logo img {
    max-width: 150px !important;
  }
  
  .ns-footer-description p,
  .ns-footer-link .elementor-button,
  .ns-footer-link-v2 .elementor-button {
    font-size: 14px !important;
  }
  
  .ns-footer-column-title .elementor-heading-title {
    font-size: 16px !important;
  }
}

/* ==========================================================================
   Reduced Motion Support
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  
  .ns-footer-brand-column,
  .ns-footer-link-column,
  .ns-footer-copyright,
  .ns-footer-links-list .ns-footer-link,
  .ns-footer-links-list .ns-footer-link-v2 {
    opacity: 1 !important;
    animation: none !important;
  }
  
  .ns-footer-divider {
    width: 100% !important;
    opacity: 1 !important;
    animation: none !important;
  }
}

/* ==========================================================================
   Dark Mode Animation Adjustments
   ========================================================================== */
.dark .ns-footer-social-link::before,
[data-theme="dark"] .ns-footer-social-link::before {
  background-color: rgba(165, 133, 255, 0.1);
}

.dark .ns-footer-social-link:hover + .ns-footer-social-divider-wrap .ns-footer-social-divider,
[data-theme="dark"] .ns-footer-social-link:hover + .ns-footer-social-divider-wrap .ns-footer-social-divider {
  background-color: var(--ns-footer-primary, #A585FF);
}

/* ==========================================================================
   Mobile Optimization
   ========================================================================== */
@media (max-width: 768px) {
  /* Reduce animation complexity on mobile */
  .ns-footer-brand-column,
  .ns-footer-link-column:nth-child(1),
  .ns-footer-link-column:nth-child(2),
  .ns-footer-link-column:nth-child(3) {
    animation: fadeInUp 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  }
  
  /* Simplify hover effects on touch devices */
  .ns-footer-social-link:hover .elementor-icon {
    transform: none;
  }
  
  .ns-footer-link .elementor-button:hover,
  .ns-footer-link-v2 .elementor-button:hover {
    transform: none;
  }
}

/* ==========================================================================
   Performance Optimization
   ========================================================================== */
.ns-footer * {
  will-change: auto;
}

.ns-footer-social-link:hover,
.ns-footer-link:hover,
.ns-footer-link-v2:hover {
  will-change: transform;
}

/* Force GPU acceleration for animations */
.ns-footer-brand-column,
.ns-footer-link-column,
.ns-footer-copyright,
.ns-footer-divider {
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000px;
}/* End custom CSS */