/*
Theme Name: X1Techs 
Theme URI: https://x1techs.com/
Description: Child theme for Hello Elementor with light/dark mode foundations.
Author: X1Techs
Author URI: https://x1techs.com/
Template: hello-elementor
Version: 1.0.7
Text Domain: x1techs-child
*/

/*
 * Keep this file for child-theme metadata and optional global overrides.
 * Core design tokens and base styles are loaded from assets/css/*.css.
 */




.header {
    background-color: transparent;

}

.header.elementor-sticky--effects {
    backdrop-filter: blur(60px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.light .header.elementor-sticky--effects {
 border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.light .header{
    background-color: rgba(255, 255, 255, 0.5);
}
.header-btn a {
    width: max-content;
}

.dark .header-menu a {
    color: var(--color-text-muted);
}

.dark .header-menu a:hover {
    color: var(--color-white);
}

.dark .header-menu .elementor-item-active {
    color: var(--color-white);
}

.hero-tagline p {
    color: var(--color-text-muted);
    text-transform: uppercase;
}
@media(max-width:1024px){
    .hero-tagline p {
        font-size: 14px;
    }
}

.dark .header-btn a {
    border-radius: 20px;
    background-color: var(--color-brand-green);
}

.light .header-btn a {
    border-radius: 20px;
    background-color: var(--color-light-ink);
}

.light .header-menu a {
    color: var(--color-text-muted);
}

.light .header-menu a:hover {
    color: var(--color-black);
}

.light .header-menu .elementor-item-active {
    color: var(--color-black);
}

.light .header-menu-tab .elementor-menu-toggle {
    background-color: var(--color-light-ink);
}

.header-menu-tab .elementor-menu-toggle svg {
    fill: var(--color-white);
}

.dark .header-menu-tab .elementor-menu-toggle {
    background-color: var(--color-brand-green);
}

.dark .header-menu-tab .elementor-nav-menu {
    background-color: var(--color-black);
}

.dark .header-menu-tab .elementor-nav-menu a {
    color: var(--color-text-muted);
}

.dark .header-menu-tab .current-menu-item a,
.dark .header-menu-tab a:hover {
    color: var(--color-white);
    background-color: var(--color-brand-green);
}

.light .header-menu-tab .current-menu-item a,
.light .header-menu-tab a:hover {
    background-color: var(--color-light-ink);
}



.home-hero h1 {
    font-size: 5rem;
    font-weight: 800;
}

.dark .home-hero h1 .highlighted-text {
    color: var(--color-brand-green);
}

.dark .hero-subheading p {
    color: var(--color-text-muted);

}

.button-primary a {
    padding: 16px 32px;
    border-radius: 50px;
    align-self: center;
    align-items: center;
    display: inline-flex;
}

.button-primary a:hover {
    transform: translateY(-5px);
}

.button-primary .elementor-button-text {
    align-self: center;
}

.button-primary a .elementor-button-icon {
    padding: 8px;
    background-color: var(--color-brand-green-bright);
    border-radius: 50px;
    transform: rotate(-45deg);
    transition: all 0.3s ease-in-out;
}

.light .button-primary a .elementor-button-icon {
    background-color: var(--color-light-green-glass);
}
.button-primary a:hover .elementor-button-icon {
    scale: 1.05;
}

.dark .button-primary a {
    background-color: var(--color-brand-green);
    backdrop-filter: blur(20px);
}

.light .button-primary a {
    background-color: var(--color-light-ink);
    backdrop-filter: blur(20px);
}


.hero-counter-grid .hero-counter .elementor-counter-number {
    font-size: 36px;
    margin-bottom: 10px;
}

.hero-counter-grid .hero-counter .elementor-counter-number-suffix {
    font-size: 27px;
    color: var(--color-brand-green);
}

.hero-counter-grid .hero-counter .elementor-counter-title {
    font-size: 12px;
    text-align: center;
}

.hero-counter-grid {
    border-radius: 24px !important;
    padding: 30px !important;
}

.dark .hero-counter-grid {
    background-color: var(--color-white), 0.1;
    backdrop-filter: blur(20px);
}

.hero-counter-grid .hero-counter:not(:last-child) {
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}


/* ══════════════════════════════════════════
   HERO BACKGROUND
   ══════════════════════════════════════════ */
.light .home-hero {
    background: linear-gradient(180deg, var(--color-white), var(--color-light-bg));
}

.dark .home-hero {
    background: radial-gradient(80% 50% at 50% 20%, rgba(16, 185, 129, 0.15) 0%, transparent 60%), radial-gradient(60% 60% at 50% 80%, rgba(16, 185, 129, 0.08) 0%, transparent 50%), radial-gradient(100% 100%, rgba(16, 185, 129, 0.03) 0%, transparent 70%), rgb(0, 0, 0);
}

@keyframes txt-shimmer {
    0% {
        background-position: 200% center;
    }
    100% {
        background-position: -200% center; /* travels exactly 2× background-size = seamless tile */
    }
}

.light .highlighted-text,
.dark .highlighted-text {
    background: linear-gradient(110deg,
            var(--color-text)          0%,
            var(--color-text)          26%,
            var(--color-brand-green)   40%,
            var(--color-brand-green-bright) 50%,
            var(--color-brand-green)   60%,
            var(--color-text)          74%,
            var(--color-text)          100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    will-change: background-position;
    animation: txt-shimmer 4s linear infinite; /* linear = no velocity snap at loop */
}


/* ══════════════════════════════════════════
   COUNTER SECTION
   ══════════════════════════════════════════ */

.light .hero-counter-grid {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid color-mix(in srgb, var(--color-brand-green) 10%, transparent);
    box-shadow: 0 4px 30px rgba(255, 255, 255, 0.302), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.dark .hero-counter-grid {
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.hero-counter-grid .stat {
    position: relative;
    z-index: 1;
}

.light .hero-counter-grid .stat {
    color: var(--color-light-ink);
}

.dark .hero-counter-grid .stat {
    color: var(--color-text-muted);
}

@media (max-width:1024px) {
    .hero-counter-grid .hero-counter .elementor-counter-number {
        font-size: 24px;
    }

    .hero-counter .elementor-counter .elementor-counter-title {
        line-height: 1.5em;
        font-size: 11px;

    }

    .hero-counter-grid .hero-counter:not(:last-child) {
        border-right: none;
    }

    .hero-counter-grid .hero-counter .elementor-counter-number-suffix {
        font-size: 20px;
    }
}



.light .what-we-do {
    background-color: white;
}

.section-tagline p {
    color: var(--color-brand-green);
}

.section-title {
    font-weight: 800;
}

.section-subheading p {
    color: var(--color-text-muted);
    line-height: 1.7em;
    letter-spacing: -0.02em;
}

.service-icon svg {
    width: 24px;
    height: 24px;
    line-height: 1em;
    fill: var(--color-brand-green);

}

.light .service-card {
    background-color: var(--color-light-bg);
}

.service-icon {
    padding: 0.5em;
    font-size: 24px;
    background-color: var(--color-light-green-glass);
    border-radius: 12px;

}

.service-icon .elementor-icon-wrapper {
    line-height: 24px;
}

.service-card {
    background-color: var(--color-bg-alt);
    padding: 36px !important;
    border-radius: 24px !important;
    border: 1px solid var(--color-surface);
}

.service-card .badge {
    text-transform: uppercase;
    background-color: var(--color-brand-green-bright);
    font-size: 10px;
    padding: 5px 10px;
    border-radius: 12px;
}

.service-card .badge p {
    font-size: 12px;
    line-height: 1em;
}

.service-card-btn a {
    padding: 0px;
    background-color: transparent;
    color: var(--color-brand-green-bright);
}

.service-card-btn svg {
    fill: var(--color-brand-green-bright);
}

.service-card-description p {
    color: var(--color-text-muted);
    letter-spacing: -0.02em;
}

.service-card-list li {
    color: var(--color-text-muted);
}

.service-card-list svg {
    fill: var(--color-brand-green-bright);

}

.featured-service {
    background-color: var(--color-brand-green);
}

.featured-service .service-icon svg {
    fill: white;
}

.featured-service .service-card-description p {
    color: white;
}

.featured-service .service-card-list li {
    color: white;
}

.featured-service .service-card-list svg {
    fill: white;
}



.featured-service .badge {
    background-color: var(--color-light-ink);
}

.featured-service .service-icon {
    background-color: var(--color-brand-green-bright);
}

.service-card-title h3 {
    font-weight: 700;
    line-height: 1.2;
}

.featured-service {
    grid-column: span 2;
}

.glass-bg {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(16, 185, 129, 0.05) 100%);
    border-color: rgba(16, 185, 129, 0.2);
}

.featured-alt .service-icon {
    background-color: rgba(5, 150, 105, 0.25);
}

.featured-alt .badge {
    background: var(--color-brand-green-bright);
}

.service-top-container {
    margin-bottom: 10px;
}

.service-card:hover {
    transform: translateY(-5px);
    border-color: var(--color-brand-green-bright);

}

@media(max-width:1024px) {
    .featured-service {
        grid-column: span 1;
    }

    .service-card .service-card-list li {

        line-height: 1.4em;
    }

    .service-card-list .elementor-icon-list-text {
        font-size: 14px;
    }

    .service-card {
        padding: 24px !important;
    }

    .service-card .service-card-title h3 {
        font-size: 20px;
    }

    .service-card .service-card-description p {
        line-height: 1.4em;
        font-size: 14px;
    }
    .section-tagline{
        font-size: 12px;
    }
}

.light .featured-service .badge p {
    color: white;
}




.light .featured-service {
    background-color: var(--color-light-ink);
}

.light .featured-service .service-card-title h3 {
    color: white;
}

.light .featured-service .badge {
    background-color: var(--color-brand-green-bright);
}
.section-tagline{
    text-transform: uppercase;
}
.section-title h2{
    font-weight: 800;
}


.light .service-card-btn a {
    color: var(--color-light-ink);
}
.light .service-card-btn svg {
    fill: var(--color-light-ink);
}
.featured-service .service-card-btn a {
    color: white;
}
.featured-service .service-card-btn svg {
    fill: white;
}


.dark .our-work{
  background: linear-gradient(180deg, var(--color-black), var(--color-dark-surface));
}
.dark .what-we-do{
  background: linear-gradient(0deg, var(--color-black), var(--color-dark-surface));
}
.project{
    border-radius: 24px !important;
    background-color: var(--color-bg-alt);
}


.project .badge span{
  background-color: var(--color-light-ink);
  padding: 5px 15px;
  border-radius: 15px;
  margin-left: 5px ;
}
.project-description p{
    color: var(--color-text-muted);
}
.light .badge span{
    color: white;
}
.project-footer{
    border-top: 1px solid #ffffff20;
    padding-top: 20px !important;
}
.light .project-footer{
    border-top: 1px solid var(--color-light-bg);
}
.project-counter{
    background-color: var(--color-light-ink);
    padding: 10px 20px;
    border-radius: 16px;
}
.project{
    border:1px solid var(--color-light-ink);
}
.light .project{
    border:1px solid var(--color-light-bg);
}
.project:hover {
    box-shadow: 0 10px 30px rgba(16, 185, 129, 0.3);
    transform: translateY(-5px);
}
.light .project-counter{
    color: white;
}
@media(max-width:1024px){
    .section-tagline p{
        font-size: 12px;
    }
    .project .badge span{
        font-size: 12px ;
    }
}
.accent-text{
    color: var(--color-brand-green);
}

.dark .why-choose-us{
  background: linear-gradient(0deg, var(--color-black), var(--color-dark-surface));
}
.light .why-choose-us{
  background: white;
}
 .icon-box-list .icon-box svg{
    fill: var(--color-brand-green);
    
}

.icon-box-list .elementor-icon{
    padding: 12px;
    background-color: var(--color-light-green-glass);
    border-radius: 10px;
}
.icon-box:hover svg{
    fill: white;
}

.icon-box:hover .elementor-icon{
    background-color: var(--color-brand-green);
}
.icon-box-list .icon-box p{
    color: var(--color-text-muted);
}
.why-choose-us::before {
    content: '';
    position: absolute;
    top: 5%;
    left: 0%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.1) 0%, transparent 70%);

    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}
.why-choose-us .counter{
    background-color: var(--color-bg);
}
.light .featured.counter{
    background-color: var(--color-brand-green);
    color: white;
}
.why-choose-us{
    overflow: hidden;
}
.button-primary a:hover{
    box-shadow:  0 10px 30px rgba(16, 185, 129, 0.3);
;
}


.testimonial-carousel .elementor-swiper-button-prev svg{
    transform: rotate(180deg);
    
}
.testimonials .client-info{
    border-top: 1px solid var(--color-light-ink);
    padding-top: 20px;
}
.light .testimonials .client-info{
    border-top: 1px solid var(--color-bg-alt);
    padding-top: 20px;
}
.testimonials{
    background-color: black;
}
.light .testimonials{
    background-color: white;
}
.testimonial-single{
    background-color: var(--color-bg-alt);
}
.light .testimonial-single{
    background-color: var(--color-bg);
}
.testimonial-single .elementor-image-box-wrapper{
  
    display: flex;
     flex-direction: row;
    align-items: center;
    gap: 10px;
}

.testimonial-carousel .elementor-swiper-button-prev svg{
    transform: rotate(180deg);
    
}
.testimonials .client-info{
    border-top: 1px solid var(--color-light-ink);
    padding-top: 20px;
}
.light .testimonials .client-info{
    border-top: 1px solid var(--color-bg-alt);
    padding-top: 20px;
}
.testimonials{
    background-color: black;
}
.light .testimonials{
    background-color: white;
}
.testimonial-single{
    background-color: var(--color-bg-alt);
}
.light .testimonial-single{
    background-color: var(--color-bg);
}
.testimonial-single .elementor-image-box-wrapper{
  
    display: flex;
     flex-direction: row;
    align-items: center;
    gap: 10px;
}

.button-alt a{
    background-color: transparent;
    border:1px solid var(--color-light-ink);
    border-radius: 50px;
    padding: 16px 32px;
    
}
.button-alt a svg{
    transform: rotate(-45deg);
    
}
.button-alt .elementor-button-text{
    align-items: center;
}
.button-alt a:hover{
    background-color: var(--color-light-ink);
    color: white;
    border-color: var(--color-light-ink);
    box-shadow: 0 10px 30px rgba(16, 185, 129, 0.3);
    transform: translateY(-5px);
}
.button-alt .elementor-button-icon{
    background-color: var(--color-surface);
    border-radius: 20px;
    padding: 8px;
}
@media(max-width:1024px){
    .button-alt a{
        padding: 16px 24px;
    }
}
.elementor-button-content-wrapper{
    display: flex;
    align-items: center;
    gap: 10px;
}
.light .button-alt a{
   color: var(--color-light-ink);
}
.light .button-alt .elementor-button-icon{
    background-color: var(--color-light-green-glass);
}
.light .button-alt svg{
    fill: var(--color-light-ink);
}
.light .button-alt a:hover{
    background-color: var(--color-light-ink);
    color: white;
    border-color: var(--color-light-ink);
}
.light .button-alt a:hover svg{ 
    fill: white;
}




.light .hero {
    background: linear-gradient(180deg, var(--color-white), var(--color-light-bg));
}

.hero{
   background: radial-gradient(80% 50% at 50% 20%, rgba(16, 185, 129, 0.15) 0%, transparent 60%), radial-gradient(60% 60% at 50% 80%, rgba(16, 185, 129, 0.08) 0%, transparent 50%), radial-gradient(100% 100%, rgba(16, 185, 129, 0.03) 0%, transparent 70%), rgb(0, 0, 0);

}

.dark .services{
    background-color: var(--color-bg-alt);
}
.light .services{
    background-color: white;
}
.dark .services .service-card:not(.featured-service){
    background-color: black;
    border: 1px solid #ffffff10;
}

.dark .selected-projects{
    background-color: black;
}
.badge{
    background-color: var(--color-light-ink);
    padding: 5px 20px;
    border-radius: 50px;

}

.selected-projects .project-desc p{
    color:var(--color-text-muted);
    font-weight: 300;
}

.selected-projects .project-desc h3{
    font-weight: 600;
    font-size: 1.6em;
    line-height: 1.4;
}

@media(max-width:1024px){
.selected-projects .project-desc h3{
    font-weight: 600;
    font-size: 1em;
    line-height: 1.4;
}
}

.project-icon svg{
   fill:#000000;
    
    
}
.project-icon{
    background-color: #ffffff18;
    border-radius: 16px;
    
}
.light .project-icon{
    background-color:var(--color-light-bg);
}
.project-detail{
    border-bottom: 1px solid #ffffff10;
}
.light .project-detail{
    border-bottom: 1px solid #00000010;
}
.section-tagline{
    letter-spacing: 1px;
}


.process-step{
    background-color: var(--color-surface);
}
.step-badges span{
    padding: 8px 16px;
    background-color: var(--color-bg);
    border-radius: 20px;
    margin-right: 10px;
    line-height: 42px;
}
@media(max-width:1024px){
    .step-desc p{
        font-size: 13px;
    }
}


.services-counters .counter{
    background-color: var(--color-dark-panel);
}
.light .services-counters .counter{
    background-color: white;
}


.dark .faqs .e-n-accordion-item-title span{
    color: white;
    
}
.dark .faqs .e-n-accordion-item-title span svg{
    fill:white;
}
.dark .faqs .e-n-accordion-item-title, .dark .faqs .faqs-answers {
    background-color: var(--color-surface);
}
.dark .faqs .e-n-accordion-item-title-icon{
    background-color: var(--color-dark-surface-2);
    padding: 8px;
    border-radius: 20px;
    transition: all 0.3s ease-in-out;
}
.dark .faqs .e-n-accordion-item:hover .e-n-accordion-item-title-icon, .dark .faqs .e-n-accordion-item[open] .e-n-accordion-item-title-icon{
    background-color: var(--color-brand-green);
}
.light .faqs-section{
    background-color: white;
}
.light .faqs .e-n-accordion-item-title, .light .faqs .faqs-answers {
    background-color: var(--color-light-bg);
}

.ticker {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.ticker-track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: ticker-scroll linear infinite;
}

/* animation speed controlled via JS */
@keyframes ticker-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.about-trust-track {
  display: flex;
  align-items: center;
  white-space: nowrap;
  min-width: max-content;
}

.about-trust-track span {
  margin: 0 12px;
  font-size: 14px;
}

.trust-dot {
  opacity: 0.6;
}

/* pause on hover */
.ticker:hover .ticker-track {
  animation-play-state: paused;
}


.post-card .post-details{
    padding: 24px;
}
.post-card-image img{
    border-radius: 16px 16px 0px 0px;
    transition: all 0.5s ease-in-out;
}
.post-card .post-details{
    background-color:var(--color-bg-alt);
    border-radius: 0px 0px 16px 16px;
}
.post-card-title h3{
    font-size:24px;
    line-height: 1.5em;
    font-weight: 700;
}
.post-card-excerpt{
    color:var(--color-text-muted);
}
.post-card-meta .elementor-post-info__terms-list{
    background-color: var(--color-bg);
    padding: 6px 16px;
    border-radius: 20px;
    
}
.dark .post-card-meta .elementor-post-info__terms-list{
    background-color: var(--color-light-ink);

}
.dark .post-card-meta .elementor-post-info__terms-list a{
 color:white;
}
.post-card-meta span{ 
    font-size: 12px;
    color: var(--color-text-muted);
}

.post-details .elementor-button span{
    color: var(--color-brand-green);
}
.post-details .elementor-button .elementor-button-icon svg{
    fill:var(--color-brand-green)
}
.post-card{
    border-radius: 16px;
    overflow: hidden;
}
.post-card:hover img{
    scale: 1.05;
}
.post-card:hover{
 box-shadow:0 4px 8px 0 rgb(34 47 48 / 5%), 0 6px 20px 0 rgb(5 150 105 / 5%);
}
@media(max-width:768px){
    .post-card .post-card-title h3{
        font-size:18px;
        line-height: 1.5em;
    }
    .post-card .post-details .post-card-excerpt {
        font-size: 14px;
    }
.section-subheading{
    font-size:14px;

    
}
}
.dark .post-details{
    background-color: black;
}
.client-logos img{
    filter: grayscale(100%) invert(0.2);

}