/* NeuralTrix AI - components added on top of the base theme (style.css) */

.nt-card {
    background: #fff;
    border: 1px solid #fdeced;
    border-radius: 10px;
    padding: 30px;
    height: 100%;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .03);
    transition: transform .25s ease, box-shadow .25s ease;
}
.nt-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .06);
}
.nt-card .nt-icon {
    width: 56px;
    height: 56px;
    border-radius: 10px;
    background: #feeff0;
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    margin-bottom: 20px;
}
.nt-card .nt-step-no {
    display: block;
    font-size: 34px;
    font-weight: 700;
    line-height: 1;
    color: var(--color-primary);
    margin-bottom: 18px;
}
.nt-card h5 {
    margin-bottom: 10px;
}
.nt-card p {
    margin-bottom: 0;
}
.nt-card ul {
    padding-left: 18px;
    margin: 15px 0 0;
}
.nt-card ul li {
    color: #5D666F;
    margin-bottom: 6px;
}
.nt-card .nt-link {
    display: inline-block;
    margin-top: 18px;
    font-weight: 600;
    color: var(--color-primary);
}

.nt-case-card {
    padding: 0;
    overflow: hidden;
}
.nt-case-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}
.nt-case-card .nt-case-body {
    padding: 25px;
}
.nt-case-card .nt-tag {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary);
    background: #feeff0;
    border-radius: 30px;
    padding: 4px 12px;
    margin-bottom: 12px;
}

.nt-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}
.nt-chip {
    padding: 10px 20px;
    border: 1px solid #fbd9dc;
    border-radius: 30px;
    background: #fff;
    color: #1f2328;
    font-weight: 500;
}
a.nt-chip:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.nt-info-box {
    background: #fef7f7;
    border: 1px solid #fdeced;
    border-radius: 10px;
    padding: 30px 35px;
}

.nt-faq-category + .nt-faq-category {
    margin-top: 60px;
}
.nt-faq-category .nt-faq-heading {
    font-size: 26px;
    margin-bottom: 25px;
}

.nt-map iframe {
    width: 100%;
    height: 420px;
    border: 0;
    border-radius: 10px;
}

.contact-form-main-wrapper-contact .single-input > select,
.contact-form-style-one select {
    width: 100%;
    height: 50px;
    border: 1px solid #f9dbdd;
    border-radius: 4px;
    padding: 0 15px;
    background-color: #fff;
}
.contact-form-style-one select {
    height: 56px;
    border-color: #fbd9dc;
    border-radius: 0;
    margin-bottom: 20px;
}
.nt-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 15px 0 5px;
}
.nt-consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 4px;
}
.nt-consent label {
    margin: 0;
    font-size: 15px;
}
.nt-consent label a {
    color: var(--color-primary);
}

.consulting-step .single-consulting-one .right-area {
    flex: 0 0 300px;
    max-width: 300px;
}
@media only screen and (max-width: 767px) {
    .consulting-step .single-consulting-one .right-area {
        flex: 1 1 auto;
        max-width: none;
    }
}

/* Closing dot at the right end of the dashed process timeline */
.working-process-three-main {
    position: relative;
}
.working-process-three-main::after {
    content: "";
    position: absolute;
    top: -7px;
    right: 0;
    width: 12px;
    height: 12px;
    background: url(/assets/themes/tokenwave/images/process/05.svg) center / cover no-repeat;
}
.demo-app-development .working-process-three-main::after,
.demo-machine-learning .working-process-three-main::after {
    background-image: url(/assets/themes/tokenwave/images/process/06.svg);
}

/* Sticky hero: the section after the hero scrolls up over it.
   body overflow must be "clip" (not "hidden"), otherwise body becomes the scroll container and sticky never engages. */
.header-one.header--sticky:not(.header-relative) {
    position: fixed !important;
}
@supports (overflow: clip) {
    body {
        overflow: visible;
        overflow-x: clip;
    }
    .header-one.header-relative.header--sticky,
    .header-one.header-relative.header--sticky.sticky {
        position: sticky !important;
        top: 0;
        background: #fff;
    }
    body > header.header-one + * {
        position: sticky;
        top: 0;
        z-index: 0;
    }
    body > header.header-one + * ~ :not(script):not(.rts-footer-one ~ *) {
        position: relative;
    }
    :where(body > header.header-one + * ~ :not(script):not(.rts-footer-one ~ *)) {
        background-color: #fff;
    }
    /* Any later section can pin the same way; the section after it slides over it. */
    body > .nt-stack-pin {
        position: sticky !important;
        top: 0;
        z-index: 0;
    }
    body > header.header-one + * + :not(script):not(.rts-footer-one),
    body > .nt-stack-pin + :not(script) {
        box-shadow: 0 -14px 30px rgba(25, 28, 32, 0.08);
    }
}

/* Justified body text from tablet width up; phones keep left alignment to avoid wide word gaps.
   Centered intros, call-to-action boxes, banners, the footer and the cookie notice stay as designed. */
@media only screen and (min-width: 768px) {
    :is(.disc, .disc1, .accordion-body, .accordion-body p, .career-right-two-wrapper p, .nt-card p,
        .single-job-opening-card p, .cs-outcome p, .pricing-wrapper-machine p, .title-left-wrapper p, .cs-note,
        .single-values-in-action .information p):not(:is(.title-center-wrapper, .call-to-action-wrapper-three, .breadcrumb-area, .ai-platform-single-card,
             .text-center, .quote-area, .copyright-1, .left-wiget, .nt-cookie, .rts-footer-one, .side-bar,
             .rts-mega-menu, form) *):not(.text-center) {
        text-align: justify;
        text-justify: inter-word;
        hyphens: auto;
        -webkit-hyphens: auto;
    }
    .title-center-wrapper p.nt-overview {
        text-align: justify;
        text-align-last: center;
        hyphens: auto;
        -webkit-hyphens: auto;
    }
}

/* ---- TokenWave AI: zig-zag text / image sections (classes set by js/site.js) ---- */
[style*="Inter Tight"] { font-family: var(--font-primary) !important; }

.tw-key-points ul { list-style: none; margin: 0; padding: 0; }
.tw-key-points li {
    position: relative;
    padding-left: 34px;
    margin: 0 0 14px;
    color: #1F2328;
    font-size: 16px;
    line-height: 1.55;
    text-align: left;
}
.tw-key-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #ef3340 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 14px no-repeat;
}

@media (min-width: 992px) {
    .tw-media-left > .tw-zz-media { order: 1; }
    .tw-media-left > .tw-zz-text { order: 2; }
    .tw-media-right > .tw-zz-text { order: 1; }
    .tw-media-right > .tw-zz-media { order: 2; }

    /* Spacing written for the original side moves with the column. */
    .tw-media-left > .tw-zz-media.offset-lg-1 { margin-left: 0; }
    .tw-media-left:has(> .tw-zz-media.offset-lg-1) > .tw-zz-text { margin-left: 8.333333%; }
    .tw-media-right > .tw-zz-text.offset-lg-1 { margin-left: 0; }
    .tw-media-right:has(> .tw-zz-text.offset-lg-1) > .tw-zz-media { margin-left: 8.333333%; }
    .tw-media-left > .tw-zz-media[class*="pl--"] { padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5); padding-right: 50px; }
    .tw-media-right > .tw-zz-text[class*="pl--"] { padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5); padding-right: 60px; }
}
