/* Table of Contents:
1. Import Statements
2. Keyframes and Property Animations    
3. Custom Properties
4. Global Styles
5. Typography Styles
6. Heading and Subheadings
7. Form and Inputs
8. Maps Elements
9. Header and Navbar
10. Section and Container
11. Background and Setting Color
12. Swiper Setting
13. Button and Links
14. Overlay
15. Utility Classes
16. Social and Contact Setting
17. Breadcrumb
18. Spesific Media Queries
19. Card Setting
20. Progress and Rating 
21. Accordion
*/

/* ---------------------------- */
/* Import Statements            */
/* ---------------------------- */
@import url('../css/vendor/fontawesome/all.css');
@import url('../css/vendor/fontawesome/all.min.css');
@import url('../css/vendor/fontawesome/brands.css');
@import url('../css/vendor/fontawesome/brands.min.css');
@import url('../css/vendor/fontawesome/fontawesome.css');
@import url('../css/vendor/fontawesome/fontawesome.min.css');
@import url('../css/vendor/fontawesome/regular.css');
@import url('../css/vendor/fontawesome/regular.min.css');
@import url('../css/vendor/fontawesome/solid.css');
@import url('../css/vendor/fontawesome/solid.min.css');
@import url('../css/vendor/bootstrap.min.css');
@import url('../css/vendor/swiper-bundle.min.css');
@import url('../css/vendor/rtmicons.css');
@import url('../css/vendor/font-icons/bootstrap-icons.css');
@import url('../css/vendor/font-icons/bootstrap-icons.min.css');
@import url('../css/vendor/font-icons/bootstrap-icons.scss');
@import url('../css/vendor/manrope/stylesheet.css');


/* ---------------------------- */
/* Keyframes and Property Animations            */
/* ---------------------------- */
@property --progress {
    syntax: '<integer>';
    inherits: true;
    initial-value: 0;
}

@keyframes load {
    to {
        --progress: var(--value)
    }
}

@keyframes background_animation {
    from {
        background-size: 100%;
    }

    to {
        background-size: 110%;
    }
}

@keyframes ripple {
    from {
        opacity: 1;
        transform: scale3d(1, 1, 1);
        transform-origin: center;
        border-width: 0px;
    }

    to {
        opacity: 0;
        transform: scale3d(1.7, 1.7, 1.8);
        transform-origin: center;
        border-width: 13px;
    }
}

/* ---------------------------- */
/*  Custom Properties            */
/* ---------------------------- */
:root {
    --primary: #0B0F0E;
    --text-color: #FAFAFA;
    --text-color-2: #B3B8C4;
    --accent-color: #2DAEE4;
    --accent-color-2: #7DD3FC;
    --accent-color-3: #0D1B2F;
    --accent-color-4: #183153;
    --accent-color-5: #323232;
    --accent-color-6: linear-gradient(90deg, rgba(45, 174, 228, 1) 0%, rgba(125, 211, 252, 0.8) 100%);
    --accent-color-7: radial-gradient(50% 50% at 50% 50%, #C8F0FF 0%, #2DAEE4 100%);
    --accent-color-8: ;
    --font-1: "Manrope", sans-serif;
}


/* ---------------------------- */
/* Global Styles                */
/* ---------------------------- */
body {
    font-family: var(--font-1);
    color: var(--text-color);
    background-color: var(--primary);
}


/* ---------------------------- */
/* Typography                   */
/* ---------------------------- */
h1 {
    font-size: 72px;
    font-weight: 600;
}

h2 {
    font-size: 64px;
    font-weight: 600;
}

h3 {
    font-size: 48px;
    font-weight: 600;
}

h4 {
    font-size: 32px;
    font-weight: 600;
}

h5 {
    font-size: 24px;
    font-weight: 600;
}

h6 {
    font-size: 20px;
    font-weight: 600;
}

button,
a {
    font-size: 16px;
    font-family: var(--font-1);
}

p {
    font-size: 16px;
    font-family: var(--font-1);
    color: var(--text-color-2);
}

ul {
    list-style: none;
}

ol li {
    color: var(--text-color);
    font-family: var(--font-1);
    font-size: 20px;
    font-weight: 500;
}

.list-circle li {
    list-style-type: disc;
}

.list-circle li::marker {
    color: var(--text-color);
}

li {
    font-size: 16px;
}

img {
    object-fit: cover;
}

.small-text {
    font-size: 14px;
    font-weight: 500;
}

.extra-small-text {
    font-size: 12px;
}

.step-text {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: bolder;
    color: rgba(240, 90, 48, 0.3);
    font-style: italic;
}

.counter-text {
    font-size: 72px;
    font-weight: 600;
}

.text-404 {
    font-size: 320px;
    font-weight: 600;
}

.large-text {
    font-size: 100px;
    font-weight: bold;
    text-transform: uppercase;
}

.text-accent {
    background: linear-gradient(50deg,
            rgba(45, 174, 228, 1) 0%,
            rgba(232, 210, 255, 1) 50%,
            rgba(45, 174, 228, 1) 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: moveGradienttext 5s ease-in-out infinite alternate;
}

@keyframes moveGradienttext {
    0% {
        background-position: 0% center;
    }

    100% {
        background-position: 100% center;
    }
}


h3 span {
    position: relative;
    color: var(--text-color);
    transition: all 0.75s;
    transition-delay: 0.6s;
}

h3 span.active {
    color: var(--accent-color-5);
}

h3 span.active_.text {
    visibility: hidden;

}

/* ---------------------------- */
/* Headings and Subheadings      */
/* ---------------------------- */
.banner-heading {
    font-size: 5.5rem;
}

.sub-heading {
    color: var(--accent-color);
    background-color: var(--accent-color-2);
    box-shadow: 0px 8px 12px rgba(0, 0, 0, 0.06);
    border-radius: 40px;
    padding: 8px 16px;
}

.sub-heading.footer {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(8.3px);
    color: var(--accent-color-3);
}

.text-color {
    color: var(--text-color);
}

.text-color-2 {
    color: var(--text-color-2);
}

.p-banner {
    color: var(--primary);
}

/* ---------------------------- */
/* Forms and Inputs             */
/* ---------------------------- */
.form-control {
    padding: 15px 24px;
    border: none;
}

.form input,
.form select,
.form textarea {
    background-color: transparent;
    border: solid 1px var(--text-color);
    border-radius: 12px;
    color: var(--text-color);
    outline: none;
    font-family: var(--font-2);
}

.form input:focus,
.form textarea:focus,
.form select:focus {
    background-color: var(--text-color);
    box-shadow: none;
    border: 1px solid transparent;
    color: var(--primary);
    font-weight: 500;
}

.form input:autofill,
.form input:autofill:focus {
    color: var(--primary);
    transition: background-color 5000s ease-in-out;
    box-shadow: 0 0 0px 1000px var(--text-color) inset !important;
    -webkit-text-fill-color: var(--primary);
    font-family: var(--font-2);
    font-weight: 700;
    border-radius: 12px;
}

.form input::placeholder,
.form textarea::placeholder {
    color: var(--text-color-2);
    font-family: var(--font-2);
}

.form-check-input:checked[type=checkbox] {
    --bs-form-check-bg-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="blue" class="bi bi-check-xl" viewBox="0 0 16 16"><path d="M12.736 3.97a.733.733 0 0 1 1.047 0c.286.289.29.756.01 1.05L7.88 12.01a.733.733 0 0 1-1.065.02L3.217 8.384a.757.757 0 0 1 0-1.06.733.733 0 0 1 1.047 0l3.052 3.093 5.4-6.425a.247.247 0 0 1 .02-.022Z"/></svg>');
}

.form input.form-check-input {
    background-color: transparent;
    border: 1px solid gray;
}

.form input.form-check-input:checked {
    border: 1px solid blue;
    color: blue;
}

.custom-input-group {
    border: 1px solid var(--accent-color-3);
    border-radius: 12px;
    background: var(--accent-color-3);
    padding: 4px;
}

.custom-email-input {
    border: none !important;
    background: var(--accent-color-3) !important;
    color: var(--text-color) !important;
    padding-block: 5px !important;
    padding-left: 24px !important;
    padding-right: 0;
    font-size: 18px;
}

.custom-email-input::placeholder {
    color: var(--text-color);
}

/* ---------------------------- */
/* Map Elements       */
/* ---------------------------- */
.maps {
    width: 100%;
    height: 100%;
    transition: filter 0.5s;
    display: block;
}


/* ---------------------------- */
/* Header and Navbar       */
/* ---------------------------- */
#header {
    transition: all 0.5s ease;
}


.offcanvas-header {
    justify-content: end;
}

.offcanvas-fullwidth {
    width: 25vw !important;
    max-width: 100vw;
    overflow-y: auto;
}

.offcanvas-body {
    overflow: visible;
    padding: 3rem;
    padding-top: 0;
}

.logo-container {
    max-width: 180px;
}

.logo-partner {
    filter: brightness(200%) contrast(0%) saturate(0%) blur(0px) hue-rotate(0deg);
    transition-duration: 0.5s;
}

.logo-partner:hover {
    filter: none;
}

.navbar .container-fluid {
    width: 1440px;
    gap: 1rem;
    padding-inline: 20px;
    padding-block: 10px;
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(45px) !important;
    -webkit-backdrop-filter: blur(11px);
    border-radius: 16px;
}

.navbar {
    padding-block: 1rem;
}

.navbar-expand-xl .navbar-nav .nav-link,
.navbar-expand-xxl .navbar-nav .nav-link {
    padding: 12px 24px;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.language-switch {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border: 1px solid rgba(24, 49, 83, 0.20);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.74);
    box-shadow: 0 8px 20px rgba(2, 8, 23, 0.08);
}

.language-switch a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 32px;
    padding: 0 10px;
    border-radius: 999px;
    color: #183153;
    font-size: 0.82rem;
    font-weight: 800;
    text-decoration: none;
    transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.language-switch a.active {
    color: #FFFFFF !important;
    background: linear-gradient(135deg, #183153 0%, #2DAEE4 100%);
    box-shadow: 0 8px 18px rgba(45, 174, 228, 0.22);
}

.language-switch a:hover {
    color: #071426;
    background: rgba(125, 211, 252, 0.20);
}

.language-switch-nav {
    display: flex;
    justify-content: center;
    padding-top: 0.35rem;
}

.nav-item.dropdown:hover .dropdown-menu {
    display: block;
    margin-top: 0;
}

.dropdown-menu {
    transition: all 0.3s ease;
}

.navbar-nav .nav-link:focus {
    color: var(--accent-color);
    text-align: center;
}

.navbar-nav .nav-link.show {
    color: var(--accent-color);
}

.navbar-nav {
    padding: 5px;
}

.nav-link {
    border-bottom: 2px solid transparent;
    font-size: 16px;
    font-family: var(--font-1);
    color: var(--text-color);
    text-align: end;
}

.nav-link:hover {
    color: var(--accent-color) !important;
    text-align: center;
}

.nav-link.active {
    color: var(--accent-color) !important;
    text-align: center;
}

.navbar-toggler {
    border: none;
    color: var(--accent-color);
}

.navbar-toggler:focus {
    box-shadow: none;
    background-color: transparent;
    color: var(--accent-color-2);
}

.nav-tabs {
    border-bottom: none;
}

.nav-tabs .nav-link {
    background-color: transparent;
    color: var(--accent-color);
    border: none;
    position: relative;
}

.nav-tabs .nav-link:hover {
    border: none;
    color: white;
}

.nav-tabs .nav-link.active {
    background-color: transparent;
    border: none;
}

.nav-tabs .nav-link.active::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--accent-color);
}

.dropdown-menu {
    border-radius: 0;
    border: none;
    padding: 0;
    -webkit-box-shadow: 0px 0px 24px 0px rgba(0, 0, 0, 0.3);
    -moz-box-shadow: 0px 0px 24px 0px rgba(0, 0, 0, 0.3);
    box-shadow: 0px 0px 24px 0px rgba(0, 0, 0, 0.3);
}

.dropdown-item {
    padding-block: 0.75rem;
    color: var(--text-color);
    font-family: var(--font-1);
    font-size: 16px;
    padding-inline: 2rem;
    background-color: var(--primary);
}

.dropdown-item.active {
    color: var(--text-color);
    background-color: var(--accent-color);
}

.dropdown-item:hover {
    background-color: var(--accent-color);
    color: var(--text-color);
}

.dropdown-item:focus {
    color: var(--text-color);
}

/* ---------------------------- */
/* Section and Container       */
/* ---------------------------- */
.section {
    padding: 6em 2em 6em 2em;
    overflow: hidden;
    background-size: cover;
    background-position: center;
}

.r-container {
    max-width: 1440px;
    margin-right: auto;
    margin-left: auto;
}

.doubleContain {
    padding-bottom: 12em;
}


/* ---------------------------- */
/* Background and Setting Color      */
/* ---------------------------- */
.bg-accent-primary {
    background-color: var(--primary);
}

.bg-accent-color {
    background-color: var(--accent-color);
}

.bg-accent-color-2 {
    background-color: var(--accent-color-2);
}

.bg-accent-color-3 {
    background-color: var(--accent-color-3);
}

.bg-accent-color-4 {
    background-color: var(--accent-color-4);
}

.bg-accent-color-5 {
    background-color: var(--accent-color-5);
}

.bg-accent-color-6 {
    background-color: var(--accent-color-6);
}

.bg-accent-color-7 {
    background: var(--accent-color-7);
}

.bg-accent {
    background-color: var(--background-color);
}

.bg-text-color {
    background-color: var(--text-color);
}

.bg-text-color-2 {
    background-color: var(--text-color-2);
}

.bg-accent-color-hover:hover {
    background-color: var(--accent-color);
    color: white;
}

.bg-dark-transparent {
    background-color: #232323b7;
}

.heading-bg {
    padding: 32px;
    background-color: var(--primary);
    margin-left: -7em;
}

.accent-color-primary {
    color: var(--primary);
}

.accent-color {
    color: var(--accent-color);
}

.accent-color-2 {
    color: var(--accent-color-2);
}

.accent-color-3 {
    color: var(--accent-color-3);
}

.accent-color-4 {
    color: var(--accent-color-4);
}

.accent-color-5 {
    color: var(--accent-color-5);
}

.accent-color-6 {
    color: var(--accent-color-6);
}

.accent-color-7 {
    color: var(--accent-color-7);
}

.accent {
    color: var(--background-color);
}

.border-text-accent {
    border-color: var(--text-color) !important;
}

.border-accent {
    border-color: var(--accent-color) !important;
}

.border-accent-3 {
    border-color: var(--accent-color-3);
}

.border-accent-6 {
    border-color: var(--accent-color-6) !important;
}

.border-primary {
    border-color: var(--primary) !important;
}

.border-testimonial {
    border-right: 5px solid var(--accent-color-2);
}

.border-bottom-hover:hover {
    border-bottom: 2px solid var(--accent-color);
}

.border-accent-color {
    border-color: var(--accent-color-3) !important;
}

.custom-border {
    border-width: 5px;
    border-style: solid;
    border-color: white;
    border-radius: 20px;
}

.outline {
    color: transparent;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: var(--accent-color);
}

.text-gray {
    color: grey !important;
}

/* ---------------------------- */
/* Swiper Setting              */
/* ---------------------------- */
.container-wrapper-marquee {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    height: 100%;
    width: 100%;
}

.container-wrapper-marquee .marquee-container {
    padding-block: 0;
}

.container-wrapper-marquee .marquee-item {
    padding-inline: 0.5rem;
    margin-right: 0;
}

.container-wrapper-marquee::before,
.container-wrapper-marquee::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 100%;
    width: 100%;
    z-index: 2;
    pointer-events: none;
}

.container-wrapper-marquee::before {
    right: 0;
    background: linear-gradient(to right, rgba(11, 15, 14, 1), transparent 70%);
}

.container-wrapper-marquee::after {
    left: 0;
    background: linear-gradient(to left, rgba(11, 15, 14, 1), transparent 70%);
}

.marquee-container {
    overflow: hidden;
    /* white-space: nowrap; */
    width: 100%;
    display: flex;
    flex-direction: row;
    padding-block: 1.5rem;
    --gap: 1rem;
    --speed: 20;
    /* gap: var(--gap); */
}

.marquee-container.partner::before,
.marquee-container.partner::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 100%;
    width: 100%;
    z-index: 2;
    pointer-events: none;
}

.marquee-container.partner::before {
    right: 0;
    background: linear-gradient(to right, rgba(11, 15, 14, 1), transparent);
}

.marquee-container.partner::after {
    left: 0;
    background: linear-gradient(to left, rgba(11, 15, 14, 1), transparent);
}

.marquee {
    animation: marquee calc(700s / var(--speed)) infinite linear;
}

.reverse .marquee {
    animation-direction: reverse;
}

.marquee-content {
    display: inline-flex;
}

.marquee-item {
    text-wrap: nowrap;
    padding-inline: var(--gap);
    margin-right: 1rem;
}

.marquee-container.partner .marquee-item {
    width: 300px;
}

@keyframes marquee {
    from {
        transform: translateX(0%);
    }

    to {
        transform: translateX(calc(-100% - 1rem));
    }
}

.marquee-vertical-container {
    overflow: hidden;
    height: 1400px;
    display: flex;
    flex-direction: column;
    --gap: 1rem;
    --speed: 20;
    position: relative;
}

.marquee-vertical {
    display: flex;
    flex-direction: column;
    animation: marquee-vertical calc(500s / var(--speed)) infinite linear;
}

.reverse-vertical .marquee-vertical {
    animation-direction: reverse;
}

.marquee-vertical-content {
    display: inline-flex;
    flex-direction: column;
}

.marquee-vertical-item {
    padding-block: var(--gap);
    width: 100%;
}

.marquee-vertical-item img {
    display: block;
    height: auto;
    border-radius: 10px;
}

@keyframes marquee-vertical {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-50%);
    }
}

.service-scroll {
    height: 610px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 3rem;
}

/* width */
.service-scroll::-webkit-scrollbar {
    width: 6px;
}

/* Track */
.service-scroll::-webkit-scrollbar-track {
    background: #e0e0e0;
    border-radius: 10px;
}

/* Handle */
.service-scroll::-webkit-scrollbar-thumb {
    background: var(--accent-color);
    border-radius: 10px;
}

/* Handle on hover */

.swiper-slide {
    background-color: transparent;
}

.swiperImage {
    position: relative;
}

.swiperTeam {
    position: relative;
    padding-top: 5rem;
}

.swiperTestimonials {
    position: relative;
}

.swiperTestimonials3 {
    position: relative;
    padding-bottom: 2rem;
}

.swiperTestimonials.singlepage {
    position: relative;
    padding-bottom: 1px;
}

.swiper-pagination {
    margin-block: 1rem;
    position: relative;
}

.swiper-slide {
    padding: 0.5rem;
}

.swiper-pagination {
    margin-block: 1rem;
    position: relative;
}


.swiper-pagination-bullet {
    background: var(--accent-color-4);
    margin: 0 5px;
    border-radius: 50px;
    transition: all 0.3s ease;
    opacity: 0.5;
}

.swiper-pagination-bullet-active {
    background: var(--accent-color);
    opacity: 1;
}

.swiper-button-next::after,
.swiper-button-prev::after {
    font-size: 20px;
}

.swiper-button-next,
.swiper-button-prev {
    top: 18rem;
    width: 40px;
    height: 40px;
    border: 1px solid var(--accent-color-4);
    background-color: var(--accent-color-4);
    color: var(--text-color);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
    border: 1px solid var(--text-color);
    background-color: var(--text-color);
    color: var(--accent-color-4);
}

.swiper-button-next {
    top: 5px;
    right: 0%;
    transform: translateY(20px);
}

.swiper-button-prev {
    top: 5px;
    left: 87%;
    transform: translateY(20px);
}

.swiperProject .swiper-button-next {
    right: 0%;
    transform: translateY(20px);
}

.swiperProject .swiper-button-prev {
    left: 95%;
    transform: translateY(20px);
}

.swiperProject {
    padding-top: 3rem;
}

/* ---------------------------- */
/* Buttons & Links              */
/* ---------------------------- */
button {
    padding-inline: 1rem;
    padding-block: 0.5rem;
    text-decoration: none;
    transition: all 0.5s;
}

button:hover {
    color: var(--accent-color-2);
}

a {
    text-decoration: none;
}

.w-max-content {
    width: max-content;
}

.read-more {
    color: var(--text-color);
    transition: all 0.5s;
    font-weight: 500;
}

.read-more:hover {
    color: var(--accent-color);
}

.tags {
    background: rgba(250, 250, 250, 0.08);
    border: 1px solid #323232;
    border-radius: 90px;
    padding: 4px 24px 4px 4px;
    font-family: var(--font-1);
    color: var(--text-color);
    transition: all 0.5s ease;
    display: flex;
    flex-direction: row;
    gap: 1rem;
    align-items: center;
}

.tags.accent {
    background: transparent;
    border: 1px solid #323232;
    border-radius: 90px;
    padding: 8px 16px;
    font-family: var(--font-1);
    color: var(--text-color);
    width: max-content;
    transition: all 0.5s ease;
}

.card-blog:hover .tags {
    background-color: var(--accent-color-4);
    border: 1px solid var(--accent-color-4);
}

.tags.service {
    background: var(--accent-color-4);
    border: none;
    border-radius: 90px;
    padding: 8px 16px;
    font-family: var(--font-1);
    color: var(--text-color);
    width: max-content;
    transition: all 0.5s ease;
}

.tags.service.active {
    background-color: var(--accent-color);
}

.tags.service:hover {
    background-color: var(--accent-color);
}

.tags.study {
    border: none;
    border-radius: 90px;
    padding: 8px 16px;
    font-family: var(--font-1);
    color: var(--text-color);
    width: max-content;
    transition: all 0.5s ease;
    background: rgba(250, 250, 250, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 60px;
    border: 1px solid rgba(250, 250, 250, 0.2);
}

.btn {
    font-size: 18px;
    padding: 14px 24px;
    align-items: center;
    justify-content: center;
    font-family: var(--font-1);
    position: relative;
    pointer-events: auto;
    cursor: pointer;
}

.btn::before,
.btn::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.btn-close {
    color: var(--text-color);
}

.btn-close:hover {
    color: var(--text-color);
}

.btn-toggler-accent {
    font-size: 22px;
    width: 3rem;
    height: 3rem;
    padding: 0;
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    color: var(--text-color);
}

.btn-toggler-accent:hover {
    background-color: var(--text-color);
    color: var(--primary);
}

.btn-accent {
    background-color: rgba(45, 174, 228, 0.92) !important;
    color: var(--text-color);
    transition: all 0.5s;
    overflow: hidden;
    border-radius: 12px !important;
    border: 4px solid rgba(255, 255, 255, 0.08);
}

.btn-accent.line {
    background: transparent !important;
    color: var(--text-color);
    border: 1px solid var(--text-color);
}

.btn-accent:hover {
    color: var(--text-color);
    border: 4px solid transparent;
    box-shadow: 0 4px 20px rgba(45, 174, 228, 0.28);
}

.btn-accent.line:hover {
    background: var(--accent-color-6);
    color: var(--text-color);
    border: 1px solid var(--accent-color);
}

.btn-accent:hover i {
    color: var(--primary);
}

.btn-accent span {
    display: block;
    position: relative;
    z-index: 10;
}

.btn-accent:hover i {
    animation: MoveScaleUpInitial 0.3s forwards, MoveScaleUpEnd 0.3s forwards 0.3s;
}

.btn-accent i {
    display: block;
    position: relative;
    z-index: 10;
}

.btn-accent:hover span {
    animation: MoveScaleUpInitial 0.3s forwards, MoveScaleUpEnd 0.3s forwards 0.3s;
}

@keyframes MoveScaleUpInitial {
    to {
        transform: translate3d(0, -105%, 0) scale3d(1, 2, 1);
        opacity: 0;
    }
}

@keyframes MoveScaleUpEnd {
    from {
        transform: translate3d(0, 100%, 0) scale3d(1, 2, 1);
        opacity: 0;
    }

    to {
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
}

.btn-accent::before {
    content: '';
    background: transparent;
    width: 120%;
    height: 0;
    padding-bottom: 120%;
    top: -110%;
    left: -10%;
    border-radius: 50%;
    transform: translate3d(0, 68%, 0) scale3d(0, 0, 0);
}

.btn-accent.line::before {
    background: var(--accent-color);
}

.btn-accent:hover::before {
    transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
    transition: transform 0.4s cubic-bezier(0.1, 0, 0.3, 1);
}

.btn-accent::after {
    content: '';
    background: transparent;
    transform: translate3d(0, -100%, 0);
    transition: transform 0.4s cubic-bezier(0.1, 0, 0.3, 1);
}

.btn-accent.line::after {
    background: var(--accent-color);
}

.btn-accent:hover::after {
    transform: translate3d(0, 0, 0);
    transition-duration: 0.05s;
    transition-delay: 0.4s;
    transition-timing-function: linear;
}

.btn-accent-underline {
    background-color: transparent;
    border-bottom: 1px solid var(--text-color);
    color: var(--text-color);
    white-space: nowrap;
    cursor: pointer;
    position: relative;
}

.btn-accent-underline:hover {
    color: var(--accent-color);
}

.btn-accent-underline::before {
    transform-origin: 0% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.3s;
}

.btn-accent-underline:hover::before {
    transform: scale3d(1, 1, 1);
}

.btn-accent-underline::after {
    content: '';
    top: calc(100% + 4px);
    transition: transform 0.3s;
    transform-origin: 100% 50%;
}

.btn-accent-underline::before,
.btn-accent-underline::after {
    position: absolute;
    width: 100%;
    height: 1px;
    background: currentColor;
    top: 100%;
    left: 0;
    pointer-events: none;
}

.btn-accent-underline:hover::after {
    transform: scale3d(0, 1, 1);
}

.btn-play {
    cursor: pointer;
    border: none;
    align-self: flex-start;
    background: rgba(255, 255, 255, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    color: var(--accent-color-2);
    width: 150px;
    height: 150px;
    border-radius: 50%;
    overflow: hidden;
    position: relative;
    display: grid;
    place-content: center;
    transition:
        background 300ms,
        transform 200ms;
    font-weight: normal;
    margin-bottom: -5rem;
    margin-left: -5rem;
    z-index: 3;
}

.btn-play__text {
    position: absolute;
    inset: 0;
    animation: text-rotation 15s linear infinite;
    margin: 0.25rem;

}

.btn-play__text>span {
    position: absolute;
    transform: rotate(calc(10.5deg * var(--index)));
    inset: 1px;
    color: var(--text-color);
    font-size: 16px;
}

.btn-play__circle {
    position: relative;
    width: 40px;
    height: 40px;
    overflow: hidden;
    color: var(--background-color);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: bold;
}

.btn-play__circle i {
    font-weight: bold;
}

.btn-play__icon--copy {
    position: absolute;
    transform: translate(-150%, 150%);
}

.btn-play:hover {
    transform: scale(1.05);
}

.btn-play:hover .btn-play__icon {
    color: var(--background-color);
}

.btn-play:hover .btn-play__icon:first-child {
    transition: transform 0.3s ease-in-out;
    transform: translate(150%, -150%);
}

.btn-play:hover .btn-play__icon--copy {
    transition: transform 0.3s ease-in-out 0.1s;
    transform: translate(0);
}

@keyframes text-rotation {
    to {
        rotate: 360deg;
    }
}

.card .link {
    color: var(--accent-color);
    transition: color 0.5s;
}

.card .link:hover {
    color: var(--primary);
}

.link.accent-color {
    color: var(--accent-color);
    transition: color 0.5s;
}

.link.accent-color:hover {
    color: var(--dark-bg);
}

.link {
    color: var(--text-color);
    font-family: var(--font-1);
    font-weight: 600;
    transition: all 0.5s;
}

.link.menu {
    text-decoration: none;
}

.link.active {
    color: var(--accent-color);
}

.link:hover {
    color: var(--accent-color);
}

/* ---------------------------- */
/* Overlay                      */
/* ---------------------------- */
.blog-overlay {
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 69, 81, 0.6) 100%);
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.image-overlay {
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    position: absolute;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 69, 81, 0.8) 100%)
}

.overlay {
    color: var(--accent-color-2);
    opacity: 0.3;
}

.bg-overlay {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) -78.74%, #004551 99.63%);
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.bg-overlay-footer {
    background: linear-gradient(to top, #8EBBFF 0%, rgba(142, 187, 255, 0.6) 10%, rgba(142, 187, 255, 0.2) 50%, transparent 100%);
    position: absolute;
    width: 100%;
    height: 100%;
    bottom: 0;
    left: 0;
    border-radius: 1rem;

}

.testimonial-overlay {
    background: linear-gradient(0deg, rgba(255, 239, 225, 0.96), rgba(255, 239, 225, 0.96));
    position: absolute;
    width: 75%;
    height: 100%;
    top: 0;
    right: 0;
}

.bg-accent-opacity {
    background: linear-gradient(0deg, rgba(43, 43, 43, 0.86), rgba(43, 43, 43, 0.86));
}

.linear-gradient {
    padding: 14px 42px;
    background-color: var(--accent-color-2);
    border-radius: 50px;
    width: max-content;
}

.cta-overlay {
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.video-overlay {
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

/* ---------------------------- */
/* Utility Classes              */
/* ---------------------------- */
.devider {
    border-left: 2px solid var(--black-1);
    margin-bottom: 1rem;
    height: 10rem;
    margin-left: 0;
}

.devider-progress {
    height: 5rem;
    border-left: 2px solid var(--text-color);
    display: block;
    margin-left: 2.6rem;
}

.hover-transform:hover {
    transform: translateY(-10px);
}

.font-1 {
    font-family: var(--font-1);
}

.font-2 {
    font-family: var(--font-1);
}

.font-3 {
    font-family: var(--font-1);
}

.ls-2 {
    letter-spacing: 2px;
}

.fs-7 {
    font-size: 0.8rem !important;
}

.fs-very-large {
    font-size: 4.125rem;
}

.fw-black {
    font-weight: 900 !important;
}

.team-detail {
    background-color: var(--background-color);
    color: var(--accent-color);
    transition: all 0.5s;
}

.team-detail:hover {
    background-color: var(--accent-color);
    color: var(--primary);
}

.divider {
    display: flex;
    align-items: center;
}

.divider::after {
    display: block;
    content: "";
    border-bottom: 0;
    flex-grow: 1;
    border-top: 3px solid #8692af;
    max-width: 30px;
    min-width: 30px;
}


.divider-element {
    letter-spacing: 2px;
    flex-shrink: 0;
    flex-grow: 1;
    margin: 0;
    margin-left: 1rem;
    font-weight: 400;
}

.image-infinite-bg {
    height: 90vh;
}

.animation-bg {
    animation: background_animation 10s forwards;
}

.bg-attach-fixed {
    background-attachment: fixed;
    background-position: center;
    width: 100%;
    height: 100%;
}

.bg-attach-cover {
    background-size: cover;
    background-position: center;
    width: 100%;
    height: 100%;
}

.social-container {
    display: flex;
    flex-direction: row;
    gap: 1rem;
}

.social-container.column {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.character-img {
    position: relative;
    z-index: 2;
}

.masked-img {
    object-fit: cover;
    aspect-ratio: 3/2;
    width: 100%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    background-color: transparent;
}

.masked-img.first {
    mask-image: url("../image/mask-shape.svg");
    -webkit-mask-image: url("../image/mask-shape.svg");
}

.masked-img.second {
    mask-image: url("../image/mask-shape2.svg");
    -webkit-mask-image: url("../image/mask-shape2.svg");
}

.masked-img.third {
    mask-image: url("../image/mask-shape3.svg");
    -webkit-mask-image: url("../image/mask-shape3.svg");
}

.masked-img.fourth {
    mask-image: url("../image/mask-shape4.svg");
    -webkit-mask-image: url("../image/mask-shape4.svg");
}

.masked-img.fifth {
    mask-image: url("../image/mask-shape5.svg");
    -webkit-mask-image: url("../image/mask-shape5.svg");
}

.masked-img.sixth {
    mask-image: url("../image/mask-shape6.svg");
    -webkit-mask-image: url("../image/mask-shape6.svg");
}

.masked-img.seventh {
    mask-image: url("../image/mask-shape7.svg");
    -webkit-mask-image: url("../image/mask-shape7.svg");
}

.masked-img.eighth {
    mask-image: url("../image/mask-shape8.svg");
    -webkit-mask-image: url("../image/mask-shape8.svg");
}

.masked-img.ninth {
    mask-image: url("../image/mask-shape9.svg");
    -webkit-mask-image: url("../image/mask-shape9.svg");
}

.masked-img.tenth {
    mask-image: url("../image/mask-shape10.svg");
    -webkit-mask-image: url("../image/mask-shape10.svg");
}

.masked-img.eleventh {
    mask-image: url("../image/mask-shape11.svg");
    -webkit-mask-image: url("../image/mask-shape9.svg");
}

.masked-img.twelveth {
    transform: rotate(180deg);
}

.w-70 {
    width: 70%;
}

.stock-img {
    position: relative;
    z-index: 20;
}

.customer-item {
    border-radius: 50%;
    aspect-ratio: 1/1;
    width: 52px;
    height: 52px;
    transition: all 0.5s;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--accent-color-2);
    color: var(--text-color);
    margin-left: -15px;
    overflow: hidden;
}

.testimonial-item {
    border-radius: 50%;
    aspect-ratio: 1/1;
    font-size: 19px;
    width: 5rem;
    height: 5rem;
    transition: all 0.5s;
    display: flex;
    justify-content: center;
    margin-left: -6px;
    overflow: hidden;
}

.button-box {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: 23px;
    padding: 12px;
    aspect-ratio: 1/1;
    border: 1px solid var(--accent-color);
    border-radius: 50%;
    color: var(--primary);
    background-color: var(--accent-color);
    transition: 0.5s all;
}

.icon-box {
    display: flex;
    justify-content: center;
    font-size: 24px;
    align-items: center;
    text-align: center;
    aspect-ratio: 1/1;
    transition: all 0.5s;
    border-radius: 12px;
    color: var(--text-color);
    background: var(--accent-color-6);
    padding: 16px;
    width: max-content;
    height: max-content;
}

.icon-box svg {
    fill: var(--text-color);
}

.icon-box.circle-white {
    background: var(--text-color);
    color: var(--primary);
    border-radius: 50%;
}

.icon-box.circle-gradient {
    background: var(--accent-color-7);
    color: var(--primary);
    border-radius: 50%;
}

.icon-box.circle-glass {
    color: var(--primary);
    border-radius: 50%;
    background: radial-gradient(50% 50% at 50% 50%, rgba(219, 183, 255, 0.36) 0%, rgba(168, 85, 247, 0.36) 100%);
    backdrop-filter: blur(10px);
}

.icon-box.cta {
    position: relative;
    padding: 0;
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 107px;
    height: 107px;
    border-radius: 8px;
    background: var(--primary);
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
    overflow: hidden;
    transition: all 0.5s ease;
}

.icon-box.cta:has(svg):before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 8px;
    background: var(--accent-color-7);
    opacity: 0;
    transition: opacity 0.8s ease;
    z-index: 0;
}

.icon-box.cta svg {
    fill: var(--primary);
    position: relative;
    z-index: 1;
    transition: fill 0.5s ease;
}

.icon-box.cta.active::before {
    opacity: 1;
    /* fade-in gradient */
}

.icon-box.cta.active svg {
    fill: var(--text-color);
}

.author-box {
    border-radius: 50%;
    aspect-ratio: 1/1;
    width: 15rem;
    transition: all 0.5s;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: -6px;
    overflow: hidden;
}

.post-button {
    background-color: transparent;
    color: var(--accent-color) !important;
    border: none !important;
}

.post-button:hover {
    background-color: transparent !important;
    color: var(--accent-color) !important;
    transform: scale(1.15);
}

.position-xl-absolute {
    position: absolute;
}

.w-60 {
    width: 60% !important;
}

.shadow-double {
    box-shadow: 40px -40px 0px -4px var(--accent-color), -54px 44px 0px -3px var(--text-color-2);
}

.shadow-single-left {
    box-shadow: -54px 44px 0px -3px var(--accent-color);
}

.shadow-single-right {
    box-shadow: 40px -40px 0px -4px var(--accent-color);
}

.shadow-accent-2 {
    -webkit-box-shadow: -90px -23px 0px 0px var(--accent-color);
    -moz-box-shadow: -90px -23px 0px 0px var(--accent-color);
    box-shadow: -90px -23px 0px 0px var(--accent-color);
}

.rounded-end {
    border-top-right-radius: 1rem;
    border-bottom-right-radius: 1rem;
}

.floating-blog {
    margin-top: -9rem;
}

.image-container {
    position: relative;
    display: inline-block;
}

.hotspot {
    position: absolute;
    width: 50px;
    height: 50px;
    background: transparent;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transform: translate(-50%, -50%);
}

.tooltip {
    position: absolute;
    bottom: 125%;
    left: 50%;
    width: max-content;
    transform: translateX(-50%) translateY(10px);
    background: var(--primary);
    color: var(--text-color);
    padding: 6px 12px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    white-space: nowrap;
    z-index: 10;
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s ease;
}

.tooltip::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

.hotspot:hover .tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.hotspot.active .tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.tooltip img {
    width: 20px;
    height: auto;
    border-radius: 3px;
}

.d-inline-block {
    display: inline-block;
}

.position-responsive {
    position: absolute;
}

.list .icon-box {
    width: 4.3rem;
    height: 4.3rem;
}

.list-flush-horizontal {
    display: flex;
    flex-direction: row;
    list-style: none;
    margin: 0;
    padding: 1rem;
}

.list-flush-horizontal .list-item:first-child,
.list-flush-horizontal .list-item {
    border-right: 1px solid white;
}

.list-flush-horizontal .list-item:last-child {
    border-left: 1px solid white;
    border-right: none;
}

.list-flush-horizontal .list-item:nth-last-child(2) {
    border: none;
}

.list-group-item {
    background-color: transparent;
    border-radius: 10px;
}

.list-group .list-group-item .link {
    background-color: transparent;
    border: none;
    color: var(--text-color);
    transition: all 0.5s;
    font-size: 24px;
    font-weight: 500;
    font-family: var(--font-1);
}

.list-group .list-group-item .link:hover {
    color: var(--accent-color) !important;
}

.list-group .list-group-item i {
    color: var(--text-color);
    transition: all 0.5s;
}

.list-group .list-group-item:hover i {
    color: var(--accent-color);
    transform: rotate(-45deg);
}

.list-group .list-group-item.active {
    background-color: var(--accent-color-2);
    color: var(--accent-color);
}

.list-group .list-group-item.list-group-item-action:hover {
    background-color: var(--accent-color-2);
    color: white;
}

.list {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    padding-inline: 0.5rem;
}

.list .link {
    font-weight: 400;
    text-wrap: nowrap;
}

.list li {
    padding: 0;
    font-size: 16px;
    font-family: var(--font-1);
}

.list li .link {
    transition: all 0.5s;
    color: var(--text-color-2);
}

.list li i {
    transition: all 0.5s;
    color: var(--accent-color);
}

.list.text-black i {
    color: #131313;
}

.list li .link:hover,
.list li .link:hover i {
    color: var(--accent-color);
}

.countdown {
    display: flex;
    gap: 20px;
}

.countdown-box {
    background-color: var(--accent-color-3);
    color: var(--text-color);
    text-align: center;
    padding: 30px;
    width: 200px;
    border-radius: 8px;
}

.countdown-box h2 {
    margin: 0;
}

.countdown-box p {
    margin: 0;
}

/* ---------------------------- */
/* Social and Contact Setting    */
/* ---------------------------- */
.customer-container {
    display: flex;
}

.customer-item:nth-child(1) {
    z-index: 3;
    margin-left: 0;
}

.customer-item:nth-child(2) {
    z-index: 4;
}

.customer-item:nth-child(3) {
    z-index: 5;
}

.customer-item:nth-child(4) {
    z-index: 6;
}

.subscribe-container {
    box-sizing: border-box;
    margin-bottom: -8em;
}

.contact-item {
    border-radius: 50%;
    aspect-ratio: 1/1;
    font-size: 40px;
    height: 2rem;
    transition: all 0.5s;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
}


.social-item {
    border-radius: 8px;
    aspect-ratio: 1/1;
    font-size: 20px;
    width: 2.3rem;
    height: 2.3rem;
    transition: all 0.5s;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--text-color);
    border: 1px solid var(--text-color);
    background: var(--primary);
}

.social-item:hover {
    background: var(--accent-color-6);
    color: var(--text-color);
    border: solid 1px var(--accent-color);
}

.social-item.team {
    border: none;
    background: transparent;
}

.social-item.team:hover {
    background: var(--accent-color-6);
    color: var(--text-color);
    border: solid 1px var(--accent-color);
}

.social-container .share-button {
    background-color: var(--accent-color-1);
    aspect-ratio: 1/1;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.share-button:hover {
    background-color: var(--accent-color-2);
}

/* ---------------------------- */
/* Breadcrumb    */
/* ---------------------------- */
.breadcrumb {
    align-items: center;
    font-family: var(--font-1);
    color: var(--text-color);
    font-size: 20px;
}

.breadcrumb .breadcrumb-item {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
}

.breadcrumb .breadcrumb-item>a {
    color: var(--text-color);
    font-family: var(--font-1);
    text-decoration: none;
    font-size: 20px;
}

.breadcrumb .breadcrumb-item.active {
    color: var(--text-color);
    font-size: 20px;
}

.breadcrumb-item+.breadcrumb-item::before {
    content: none;
    color: var(--text-color-2);
}


/* ---------------------------- */
/* Specific Media Queries       */
/* ---------------------------- */
.video-e119 {
    width: 60%;
    margin-bottom: -3rem;
    margin-left: -3rem;
}

.ifr-video {
    aspect-ratio: 16/9;
    width: 100%;
}

.video-container {
    aspect-ratio: 3/2;
    background-size: cover;
    background-position: center;
    position: relative;
    border: 5px solid white;
    border-radius: 10px;
}

.video-iframe {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

.video-btn {
    border-radius: 50%;
    aspect-ratio: 1/1;
    width: 4rem;
    background-color: var(--accent-color);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    font-size: 2rem;
    color: white;
    border: none;
    opacity: 0.7;
}

.video-btn:hover {
    opacity: 1;
    color: white;
}

.request-loader {
    position: relative;
    height: 60px;
    width: 60px;
    border-radius: 50% !important;
    border: solid 1px var(--accent-color);
    background-color: var(--accent-color);
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--primary);
    font-size: 24px;
    aspect-ratio: 1/1;
}

.request-loader.banner {
    position: relative;
    height: 90px;
    width: 90px;
    border-radius: 50% !important;
    border: solid 6px var(--primary);
    background-color: var(--text-color);
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--primary);
    font-size: 45px;
    aspect-ratio: 1/1;
}

.request-loader:hover {
    border: solid 2px var(--primary);
    color: var(--accent-color);
    background-color: var(--primary);
}

.request-loader::after,
.request-loader::before {
    opacity: 0.2;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    position: absolute;
    content: '';
    height: 100%;
    width: 100%;
    color: var(--accent-color);
    border: 4px solid currentColor;
    border-radius: 50%;
    animation-name: ripple;
    animation-iteration-count: infinite;
    animation-timing-function: cubic-bezier(.65, 0, .34, 1);
    z-index: 0;

}

.request-loader:hover::after,
.request-loader:hover::before {
    color: var(--primary);
    animation-name: ripple;
    animation-iteration-count: infinite;
    animation-timing-function: cubic-bezier(.65, 0, .34, 1);
    z-index: 0;
}

.request-loader::after {
    animation-delay: 0.5s;
    animation-duration: 3s;
}

.request-loader::before {
    animation-delay: 0.2s;
    animation-duration: 3s;
}

.request-loader.accent {
    width: 40px;
    height: 40px;
    font-size: 16px;
    background-color: var(--accent-color);
    border: 1px solid var(--accent-color);
    color: var(--primary);
}

.request-loader.accent:hover {
    border: solid 2px var(--text-color);
    color: var(--accent-color-4);
    background-color: var(--text-color);
}


/* ---------------------------- */
/* card Setting       */
/* ---------------------------- */
.card {
    border: none;
    transition: all 0.5s;
    background-color: unset;
}

.card:hover {
    transform: translateY(-10px);
    width: 100%;
    top: 0;
    left: 0;
}

.card-title {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.card-title p {
    max-width: 400px;
}

.card-title.middle {
    align-items: center;
    text-align: center;
}

.card-service {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 32px;
    align-items: flex-start;
    gap: 1rem;
    height: 100%;
    color: var(--text-color);
    background-color: var(--accent-color-3);
    border-radius: 16px;
}

.card-service svg {
    fill: var(--text-color);
}

.service-card-custom,
.service-card-ai,
.service-card-web,
.service-card-mobile {
    overflow: hidden;
    min-height: 510px;
}

.service-card-custom figure,
.service-card-ai figure,
.service-card-web figure,
.service-card-mobile figure {
    position: relative;
    width: 100%;
    height: 210px;
    margin: 0 0 auto;
    overflow: hidden;
    border: 1px solid rgba(125, 211, 252, 0.12);
    border-radius: 14px;
    background:
        linear-gradient(rgba(125, 211, 252, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(125, 211, 252, 0.06) 1px, transparent 1px),
        radial-gradient(circle at 70% 30%, rgba(45, 174, 228, 0.22), transparent 38%),
        rgba(7, 20, 38, 0.42);
    background-size: 30px 30px, 30px 30px, auto, auto;
}

.service-card-custom figure img,
.service-card-ai figure img,
.service-card-web figure img,
.service-card-mobile figure img {
    display: none;
}

.service-card-custom figure::before,
.service-card-ai figure::before,
.service-card-web figure::before,
.service-card-mobile figure::before {
    content: "";
    position: absolute;
    inset: 34px;
    border: 1px solid rgba(200, 240, 255, 0.28);
    border-radius: 16px;
    background:
        radial-gradient(circle at 50% 50%, rgba(45, 174, 228, 0.34), rgba(16, 43, 72, 0.32) 58%, transparent 72%),
        rgba(13, 27, 47, 0.42);
    box-shadow: 0 22px 52px rgba(2, 8, 23, 0.26), inset 0 0 34px rgba(45, 174, 228, 0.12);
}

.service-card-custom figure::after,
.service-card-ai figure::after,
.service-card-web figure::after,
.service-card-mobile figure::after {
    content: "";
    position: absolute;
    inset: auto 34px 36px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.85), transparent);
}

.service-card-custom figure::before {
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 24 24' fill='none' stroke='%23F7FAFC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 9-4 3 4 3'/%3E%3Cpath d='m16 9 4 3-4 3'/%3E%3Cpath d='m14 5-4 14'/%3E%3Cpath d='M5 5h14' opacity='.45'/%3E%3Cpath d='M5 19h14' opacity='.45'/%3E%3C/svg%3E") center / 82px 82px no-repeat,
        radial-gradient(circle at 50% 50%, rgba(45, 174, 228, 0.34), rgba(16, 43, 72, 0.32) 58%, transparent 72%),
        rgba(13, 27, 47, 0.42);
}

.service-card-ai figure::before {
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 24 24' fill='none' stroke='%23F7FAFC' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='6' width='14' height='12' rx='3'/%3E%3Cpath d='M9 10h.01'/%3E%3Cpath d='M15 10h.01'/%3E%3Cpath d='M9.5 14h5'/%3E%3Cpath d='M12 2v4'/%3E%3Cpath d='M8 2h8' opacity='.5'/%3E%3Cpath d='M3 11h2'/%3E%3Cpath d='M19 11h2'/%3E%3Cpath d='M8 18l-1.5 3' opacity='.65'/%3E%3Cpath d='M16 18l1.5 3' opacity='.65'/%3E%3C/svg%3E") center / 86px 86px no-repeat,
        radial-gradient(circle at 50% 50%, rgba(45, 174, 228, 0.42), rgba(16, 43, 72, 0.34) 58%, transparent 72%),
        rgba(13, 27, 47, 0.42);
}

.service-card-web figure::before {
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 24 24' fill='none' stroke='%23F7FAFC' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='13' rx='2'/%3E%3Cpath d='M8 21h8'/%3E%3Cpath d='M12 17v4'/%3E%3Cpath d='M7 8h4' opacity='.55'/%3E%3Cpath d='M7 11h10' opacity='.55'/%3E%3Cpath d='M7 14h7' opacity='.55'/%3E%3Cpath d='m15.5 7.8 1.8 1.7-1.8 1.7'/%3E%3Cpath d='m13 11.2-1.8-1.7L13 7.8'/%3E%3C/svg%3E") center / 82px 82px no-repeat,
        radial-gradient(circle at 50% 50%, rgba(45, 174, 228, 0.34), rgba(16, 43, 72, 0.32) 58%, transparent 72%),
        rgba(13, 27, 47, 0.42);
}

.service-card-mobile figure::before {
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 24 24' fill='none' stroke='%23F7FAFC' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='2.8' width='10' height='18.4' rx='2.2'/%3E%3Cpath d='M10 6h4' opacity='.55'/%3E%3Cpath d='M10 17.5h4' opacity='.55'/%3E%3Cpath d='M10 9h4v4h-4z'/%3E%3Cpath d='M9.5 15h5' opacity='.55'/%3E%3C/svg%3E") center / 82px 82px no-repeat,
        radial-gradient(circle at 50% 50%, rgba(45, 174, 228, 0.34), rgba(16, 43, 72, 0.32) 58%, transparent 72%),
        rgba(13, 27, 47, 0.42);
}

.service-card-custom .icon-box,
.service-card-ai .icon-box,
.service-card-web .icon-box,
.service-card-mobile .icon-box {
    width: 58px;
    height: 58px;
    padding: 0;
}

.service-card-custom .icon-box svg,
.service-card-ai .icon-box svg,
.service-card-web .icon-box svg,
.service-card-mobile .icon-box svg {
    display: none;
}

.service-card-custom .icon-box::before,
.service-card-ai .icon-box::before,
.service-card-web .icon-box::before,
.service-card-mobile .icon-box::before {
    content: "";
    width: 28px;
    height: 28px;
    display: block;
}

.service-card-custom .icon-box::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 9-4 3 4 3'/%3E%3Cpath d='m16 9 4 3-4 3'/%3E%3Cpath d='m14 5-4 14'/%3E%3C/svg%3E") center / contain no-repeat;
}

.service-card-ai .icon-box::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='6' width='14' height='12' rx='3'/%3E%3Cpath d='M9 10h.01'/%3E%3Cpath d='M15 10h.01'/%3E%3Cpath d='M9.5 14h5'/%3E%3Cpath d='M12 2v4'/%3E%3Cpath d='M3 11h2'/%3E%3Cpath d='M19 11h2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.service-card-web .icon-box::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='13' rx='2'/%3E%3Cpath d='M8 21h8'/%3E%3Cpath d='M12 17v4'/%3E%3Cpath d='m15.5 7.8 1.8 1.7-1.8 1.7'/%3E%3Cpath d='m13 11.2-1.8-1.7L13 7.8'/%3E%3C/svg%3E") center / contain no-repeat;
}

.service-card-mobile .icon-box::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='2.8' width='10' height='18.4' rx='2.2'/%3E%3Cpath d='M10 6h4'/%3E%3Cpath d='M10 17.5h4'/%3E%3Cpath d='M10 9h4v4h-4z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.references-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(5, 17, 33, 0) 0%, rgba(8, 24, 43, 0.94) 12%, rgba(7, 20, 38, 0.96) 88%, rgba(5, 17, 33, 0) 100%),
        radial-gradient(circle at 16% 20%, rgba(45, 174, 228, 0.2), transparent 28%),
        radial-gradient(circle at 84% 72%, rgba(26, 188, 156, 0.13), transparent 32%);
}

.references-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(rgba(125, 211, 252, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(125, 211, 252, 0.045) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
}

.references-section::after {
    content: "";
    position: absolute;
    inset: 34px 0 auto;
    height: 1px;
    pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(45, 174, 228, 0.65), transparent);
}

.references-section .r-container {
    position: relative;
    z-index: 1;
}

.section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--accent-color);
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
}

.section-kicker::before {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--accent-color);
    box-shadow: 0 0 18px rgba(45, 174, 228, 0.65);
}

.references-lead {
    max-width: 620px;
    margin: 0 0 0 auto;
    color: var(--text-color-2);
    font-size: 1.08rem;
    line-height: 1.75;
}

.references-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px;
}

.reference-card {
    position: relative;
    display: grid;
    grid-column: span 3;
    grid-template-columns: 190px minmax(0, 1fr);
    align-items: center;
    min-height: 210px;
    padding: 24px;
    overflow: hidden;
    border: 1px solid rgba(125, 211, 252, 0.16);
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(125, 211, 252, 0.08), transparent 42%),
        rgba(9, 25, 45, 0.82);
    box-shadow: 0 22px 70px rgba(2, 8, 23, 0.22);
}

.reference-card::after {
    content: "";
    position: absolute;
    inset: auto 24px 0;
    height: 2px;
    background: linear-gradient(90deg, rgba(45, 174, 228, 0.85), transparent);
}

.reference-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 154px;
    min-height: 116px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.94);
}

.reference-logo-text {
    color: #183153;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.reference-logo-text span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 76px;
}

.reference-logo img {
    width: 100%;
    max-height: 78px;
    object-fit: contain;
}

.reference-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.reference-content h5 {
    margin: 0;
    color: var(--text-color);
    font-size: 1.35rem;
}

.reference-content p {
    margin: 0;
    color: var(--text-color-2);
    font-size: 0.98rem;
    line-height: 1.65;
}

.card-feature {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 32px;
    align-items: flex-start;
    background-color: var(--accent-color-3);
    border-radius: 16px;
}


.card-feature.animated-gradient {
    background-image: none;
    background-color: var(--accent-color-3);
    transition: all 0.5s;
}

.card-feature:hover.animated-gradient {
    width: 100%;
    background-color: hsla(255, 22%, 10%, 1);
    background-image:
        radial-gradient(at 100% 53%, rgba(45, 174, 228, 0.42) 0px, transparent 50%),
        radial-gradient(at 87% 99%, rgba(125, 211, 252, 0.28) 0px, transparent 50%);
    background-size: 130% 130%;
    animation: moveGradient 5s ease-in-out infinite alternate;
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
}

.card-feature.active.animated-gradient {
    width: 100%;
    background-color: hsla(255, 22%, 10%, 1);
    background-image:
        radial-gradient(at 100% 53%, rgba(45, 174, 228, 0.42) 0px, transparent 50%),
        radial-gradient(at 87% 99%, rgba(125, 211, 252, 0.28) 0px, transparent 50%);
    background-size: 130% 130%;
    animation: moveGradient 5s ease-in-out infinite alternate;
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
}

.stack-container {
    position: relative;
    width: 70%;
    height: 300px;
    margin-top: 5rem;
}

.card-content {
    position: absolute;
    width: 100%;
    height: 100%;
    padding: 40px;
    box-sizing: border-box;
    background: var(--accent-color-3);
    color: var(--text-color);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    transition: transform 0.4s ease, opacity 0.4s ease;
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
    border-radius: 16px;
}

.animated-gradient {
    background-color: rgba(45, 174, 228, 0.92);
    background-image:
        radial-gradient(at 82% 16%, rgba(200, 240, 255, 0.88) 0px, transparent 50%),
        radial-gradient(at 16% 86%, rgba(45, 174, 228, 0.92) 0px, transparent 50%);
    background-size: 200% 200%;
    animation: moveGradient 3s ease-in-out infinite alternate;
}

.animated-gradient.heroheader {
    width: 100%;
    background-color: hsla(165, 15%, 5%, 1);
    background-image:
        radial-gradient(ellipse 30% 60% at 100% 0%, rgba(45, 174, 228, 0.36) 0%, transparent 100%),
        radial-gradient(ellipse 60% 50% at 0% 10%, rgba(125, 211, 252, 0.28) 0%, transparent 100%),
        radial-gradient(ellipse 60% 60% at 100% 100%, rgba(45, 174, 228, 0.46) 0%, transparent 100%);
    background-size: 130% 130%;
}

.animated-gradient.card-image-single {
    width: 100%;
    background-color: hsla(255, 22%, 10%, 1);
    background-image:
        radial-gradient(ellipse 100% 70% at 100% 100%, rgba(45, 174, 228, 0.92) 0%, transparent 100%),
        radial-gradient(ellipse 80% 50% at 0% 100%, rgba(125, 211, 252, 0.74) 0%, transparent 100%);
    background-size: 160% 110%;
    animation: moveGradient 3s ease-in-out infinite alternate;
}

.animated-gradient.card-service {
    width: 100%;
    background-color: hsla(255, 22%, 10%, 1);
    background-image:
        radial-gradient(ellipse 100% 70% at 100% 100%, rgba(45, 174, 228, 0.92) 0%, transparent 100%),
        radial-gradient(ellipse 80% 50% at 0% 100%, rgba(125, 211, 252, 0.74) 0%, transparent 100%);
    background-size: 160% 110%;
    animation: moveGradient 3s ease-in-out infinite alternate;
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
}

.animated-gradient.cta {
    width: 100%;
    background-color: hsla(165, 15%, 5%, 1);
    background-image:
        radial-gradient(ellipse 50% 40% at 100% 50%, rgba(45, 174, 228, 0.42) 0%, transparent 100%),
        radial-gradient(ellipse 50% 45% at 0% 46%, rgba(125, 211, 252, 0.28) 0%, transparent 100%);
    background-size: 150% 100%;
    animation: moveGradient 5s ease-in-out infinite alternate;
}

.animated-gradient.middle {
    width: 100%;
    background-color: hsla(165, 15%, 5%, 1);
    background-image:
        radial-gradient(ellipse 40% 15% at 100% 50%, rgba(45, 174, 228, 0.42) 0%, transparent 100%),
        radial-gradient(ellipse 60% 20% at 0% 50%, rgba(125, 211, 252, 0.28) 0%, transparent 100%);
    background-size: 150% 100%;
    animation: moveGradient 5s ease-in-out infinite alternate;
}

.animated-gradient.team {
    width: 100%;
    background-color: hsla(165, 15%, 5%, 1);
    background-image:
        radial-gradient(ellipse 60% 40% at 0% 46%, rgba(45, 174, 228, 0.18) 0%, transparent 100%),
        radial-gradient(ellipse 50% 60% at 100% 50%, rgba(125, 211, 252, 0.20) 0%, transparent 100%);
    background-size: 130% 100%;
    animation: moveGradient 2s ease-in-out infinite alternate;
}

.animated-gradient.footer {
    width: 100%;
    background-color: hsla(165, 15%, 5%, 1);
    background-image:
        radial-gradient(ellipse 60% 40% at 10% 0%, rgba(45, 174, 228, 0.30) 0%, transparent 100%);
    background-size: 160% 100%;
    animation: moveGradient 5s ease-in-out infinite alternate;
}


@keyframes moveGradient {
    0% {
        background-position: 20% 0%;
    }

    50% {
        background-position: 90% 40%;
    }

    100% {
        background-position: 20% 100%;
    }
}

.glass-box {
    position: relative;
    color: var(--accent-color-2);
    background: rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(7px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

.blog {
    display: flex;
    flex-direction: column;
}

.card-blog {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    border-radius: 16px;
    background-color: var(--accent-color-3);
    transition: all 0.5s;
    padding: 32px;
    color: var(--text-color);
}

.card-blog:hover {
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
}

.card-team {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--text-color);
    padding-inline: 32px;
}

.card-image {
    background-color: var(--accent-color-3);
    aspect-ratio: 1/1;
    border-radius: 50%;
    transition: all 0.5s;
    overflow: hidden;
}

.card-image:hover {
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
}

.card-team h6 {
    color: var(--text-color);
    transition: all 0.5s;
}

.card-team:hover h6 {
    color: var(--accent-color);
}

.card-about {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 32px;
    background: var(--primary);
    color: var(--text-color);
    border-radius: 16px;
    transition: all 0.5s;
    gap: 32px;
}

.card-about:hover {
    background: var(--accent-color-3);
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
}

.card-about svg {
    fill: var(--text-color);
}

.card-about:hover svg {
    fill: var(--accent-color);
}

.card-about p {
    max-width: 250px;
}

.card-404 {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    justify-content: center;
    background: rgba(250, 250, 250, 0.12);
    backdrop-filter: blur(10px);
    border-radius: 16px;
    padding: 40px 32px;
    margin-top: -10rem;
}

.card-contact {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    justify-content: center;
    color: var(--text-color);
    background-color: var(--accent-color-3);
    border-radius: 12px;
    height: 100%;
    transition: all 0.5s;
}

.card-contact:hover {
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
}

.tab-container {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
}

.tabs {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    border-radius: 50px;
    align-items: center;
    justify-content: center;
    width: max-content;
    cursor: pointer;
}

.tab {
    padding: 8px 12px;
    border-radius: 12px;
    min-width: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--text-color);
    transition: all 0.5s;
}

.tab.active {
    color: var(--text-color);
    background: var(--accent-color-6);
    border: 1px solid var(--accent-color);
}

.tab:hover {
    color: var(--text-color);
    background: var(--accent-color-6);
    border: 1px solid var(--accent-color);
}

.tab-content {
    width: 100%;
    padding: 10px;
    background-color: var(--accent-color-2);
    border-radius: 16px;
}

.content {
    display: none;
    transition: all 0.5s;
}

.content.active {
    display: block;
}

.background-hover {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
}

.image-hover {
    opacity: 0;
    position: absolute;
}

.image-swiper {
    overflow: hidden;
    transition: all 0.5s;
}

.image-swiper:hover {
    transform: translateY(-8px);

}

.card-pricing {
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 1rem;
    padding: 37px;
    border-radius: 16px;
    background-color: var(--accent-color-3);
    transition: all 0.5s;
}

.card-pricing.animated-gradient {
    background-image: none;
    background-color: var(--accent-color-3);
    transition: all 0.5s;
}

.card-pricing:hover.animated-gradient {
    width: 100%;
    background-color: hsla(255, 22%, 10%, 1);
    background-image:
        radial-gradient(at 100% 53%, rgba(45, 174, 228, 0.42) 0px, transparent 50%),
        radial-gradient(at 87% 99%, rgba(125, 211, 252, 0.28) 0px, transparent 50%);
    background-size: 130% 130%;
    animation: moveGradient 5s ease-in-out infinite alternate;
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
}

.card-pricing.active.animated-gradient {
    width: 100%;
    background-color: hsla(255, 22%, 10%, 1);
    background-image:
        radial-gradient(at 100% 53%, rgba(45, 174, 228, 0.42) 0px, transparent 50%),
        radial-gradient(at 87% 99%, rgba(125, 211, 252, 0.28) 0px, transparent 50%);
    background-size: 130% 130%;
    animation: moveGradient 5s ease-in-out infinite alternate;
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
}

.card-pricing .btn-accent {
    background-color: var(--text-color);
}

.card-overlay {
    position: relative;
}

.card-overlay i {
    font-size: 23px;
    padding: 12px;
    display: inline-block;
    border: 1px solid var(--accent-color);
    border-radius: 50%;
    color: var(--primary);
    background-color: var(--accent-color);
    transition: 0.5s all;
}

.card-overlay i:hover {
    border: 1px solid var(--primary);
    background-color: var(--primary);
    color: var(--accent-color);
    transform: rotate(45deg);
    transition: 0.5s all;
}

.card-overlay .card-body {
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    bottom: 0;
    opacity: 0;
    padding: 3rem;
    display: flex;
    flex-direction: row;
    gap: 1rem;
    justify-content: space-between;
    align-items: end;
    width: 100%;
    transform: scaleY(0);
    transform-origin: bottom;
    transition: all 0.5s;
    background: linear-gradient(0deg, rgba(25, 28, 37, 0.75), rgba(25, 28, 37, 0.75));
}


.card-overlay:hover .card-body {
    transform: scaleY(1);
    opacity: 1;
}

.card:hover .icon-box.bg-accent-color {
    background-color: white;
    color: var(--accent-color);
}

.card:hover p {
    transition: all 0.5s;
}

.testimonial-container {
    background-color: var(--accent-color-3);
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
    border-radius: 16px;
    height: 250px;
    justify-content: space-between;
}

.card-counter {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    padding-inline: 2rem;
    transition: all 0.5s;
}

/* ---------------------------- */
/* Progress and Rating       */
/* ---------------------------- */
.r-progress {
    --value: 17;
    --progress-color: var(--accent-color);
    --secondary-progress-color: var(--accent-color-3);
    --animation-duration: 2000;
}

.r-progress-bar {
    position: relative;
    height: 5px;
    background-color: var(--secondary-progress-color);
    display: flex;
    border-radius: 8px;
    /* overflow: hidden; */
}

.r-progress-bar .progress-value {
    height: 100%;
    border-radius: 8px;
    width: calc(var(--progress) * 1%);
    background-color: var(--progress-color);
    position: relative;
    animation: load;
    animation-fill-mode: forwards;
    animation-duration: calc(var(--animation-duration) * 1ms);
    animation-timing-function: linear;
    animation-delay: 500ms;
    color: black;
}

.r-progress-bar.percentage-label::after {
    counter-reset: percentage var(--progress);
    content: counter(percentage) '%';
    display: block;
    position: absolute;
    left: calc((var(--progress) * 1%));
    animation: load;
    animation-fill-mode: forwards;
    animation-duration: calc(var(--animation-duration) * 1ms);
    animation-timing-function: linear;
    animation-delay: 500ms;
    font-size: 16px;
    line-height: 1.2;
    /* font-weight: 700; */
    font-family: var(--font-1);
    bottom: calc(100% + 0.5rem);
}

.rating {
    list-style: none;
    display: flex;
    flex-direction: row;
    gap: 0.75rem;
    padding: 0;
    margin: 0;
}

.rating li {
    color: #f1c644;
}

.rating li.inactive {
    color: #d9d9d9;
}

.glass-effect {
    background: transparent;
}

/* ---------------------------- */
/* Accordion                    */
/* ---------------------------- */
.accordion {
    --bs-accordion-bg: transparent;
}

.accordion .accordion-item {
    border: 1px solid var(--accent-color-3);
    background-color: var(--accent-color-2);
    color: var(--text-color-2);
    outline: none;
    padding: 0;
    background: var(--accent-color-3);
    box-shadow: inset 0px 0px 45px rgba(192, 132, 252, 0.12);
    border-radius: 16px;
}

.accordion-button:focus {
    box-shadow: none;
}

.accordion .accordion-button {
    background-color: transparent;
    padding: 28px !important;
    color: var(--text-color);
    outline: none;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    gap: 1rem;
    justify-content: left;
    color: var(--text-color);
    font-size: 20px;
    font-weight: 500;
    border-radius: 16px !important;
    font-family: var(--font-1);
}

.accordion .accordion-button.accent {
    box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
}

.accordion-button::after {
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23FAFAFA" class="bi bi-plus" viewBox="0 0 16 16"><path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4"/></svg>');
}

.accordion-button:not(.collapsed)::after {
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23FAFAFA" class="bi bi-dash" viewBox="0 0 16 16"><path d="M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8"/></svg>');
}

.accordion .accordion-button:not(.collapsed) {
    color: var(--text-color);
    background-color: var(--accent-color-6);
    border: none !important;
    border-radius: 8px !important;
    box-shadow: none;
}

.accordion .accordion-body {
    background-color: transparent;
    font-size: 16px;
    color: var(--text-color-2);
    font-family: var(--font-1);
    padding-bottom: 28px;
    padding-left: 28px;
    padding-right: 10rem;
    padding-top: 0;
}

.accordion-item:last-of-type .accordion-button.collapsed {
    border-radius: 0;
}

.accordion.hero .accordion-body {
    background-color: var(--accent-color-2);
    font-size: 16px;
    color: var(--text-color-2);
    font-family: var(--font-1);
    padding-inline: 0;
    text-align: start;
    border-radius: 16px;
    padding: 32px;
}

.accordion.hero .accordion-button {
    background-color: var(--accent-color-3);
    padding: 12px !important;
    color: var(--text-color);
    outline: none;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    gap: 1rem;
    justify-content: left;
    color: var(--text-color);
    font-size: 16px;
    font-weight: 400;
    border-radius: 16px !important;
    font-family: var(--font-1);
}

.accordion.hero .accordion-button span {
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50px;
    background-color: var(--accent-color);
    color: var(--accent-color-2);
}

.accordion.hero .accordion-button .title {
    background-color: var(--accent-color-2);
    padding: 12px;
    width: 100%;
    color: var(--text-color);
}

.accordion.hero .accordion-item {
    border: 1px solid var(--accent-color-3);
    background-color: var(--accent-color-2);
    color: var(--text-color-2);
    outline: none;
    padding: 0;
    border-radius: 16px;
}

.accordion.hero .accordion-button::after {
    display: none;
}

.accordion.hero .accordion-button:not(.collapsed)::after {
    background-image: none;
}

.accordion.hero .accordion-button::after {
    background-color: var(--accent-color);
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 24px;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23FFFFFF" class="bi bi-plus" viewBox="0 0 16 16"><path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4"/></svg>');
}

.accordion.hero .accordion .accordion-button:not(.collapsed) {
    color: var(--accent-color);
    box-shadow: none;
    border: none;
    padding: 0;
}

@media only screen and (max-width:1023px) {

    /* ---------------------------- */
    /* Typography                   */
    /* ---------------------------- */
    h1 {
        font-size: 30px;
    }

    h2 {
        font-size: 38px;
    }

    h3 {
        font-size: 28px;
    }

    h4 {
        font-size: 22px;
    }

    h5 {
        font-size: 18px;
    }

    h6 {
        font-size: 14px;
    }

    p,
    button,
    a {
        font-size: 13px;
    }

    .heading-bg {
        padding: 0;
        margin-left: 0;
    }

    .text-404 {
        font-size: 50px;
    }

    .counter-text {
        font-size: 42px;
    }

    .large-text {
        font-size: 40px;
    }

    .testimonial-text {
        font-size: 16px;
    }

    /* ---------------------------- */
    /* Button and Links Setting     */
    /* ---------------------------- */
    .btn {
        font-size: 13px;
        width: 100%;
    }

    /* ---------------------------- */
    /* Header and Navigation Setting  */
    /* ---------------------------- */
    .logo-container {
        max-width: 100px;
    }

    .nav-link {
        padding-block: 0.2rem;
        text-align: center;
    }

    #header {
        background: transparent;
    }

    .offcanvas-fullwidth {
        width: 100vw !important;
        max-width: 100vw;
    }

    /* ---------------------------- */
    /* Utility Classes              */
    /* ---------------------------- */
    .p-banner {
        color: var(--text-color);
    }

    .w-max-content {
        width: 100%;
    }

    .section {
        padding: 4em 2em 4em 2em;
    }

    .doubleContain {
        padding-bottom: 8em;
    }

    .divider {
        width: 330px;
    }

    .fs-very-large {
        font-size: 3.125rem;
    }

    .text-404 {
        font-size: 8rem;
        font-weight: 700;
    }

    .image-absolute-1 {
        left: 45%;
        top: 35%;
    }

    .image-infinite-bg {
        background-size: cover !important;
    }


    .border-custom {
        border-width: 0px 0px 1px 0px;
    }

    .outer-margin {
        margin-right: 0;
    }

    .banner-image {
        margin: 0;
        transform: none;
    }

    .testimonial-img {
        margin: 0;
        margin-bottom: 1rem;
    }

    .dropdown-menu {
        width: 100%;
        box-shadow: none;
    }

    .video-e119 {
        width: 85%;
        margin-left: -1.5rem;
    }

    .dropdown-item {
        padding-block: 0.35rem;
        text-align: center;
        background-color: var(--accent-color-4);
    }

    .floating-image {
        margin-left: 0;
    }

    .floating-price {
        top: -2.5rem;
        right: -7.5rem;
    }

    .floating-heading {
        margin-left: 0;
    }

    .floating-banner {
        top: 0;
        left: 0;
        right: 0;
        margin-right: 1rem;
        margin-left: 1rem;
        margin-top: -10rem;
    }

    .floating-top {
        margin-top: 0;
    }

    .floating-testi {
        margin-bottom: 1rem;
        margin-top: 1rem;
        margin-left: 1rem;
        margin-right: 1rem;
    }

    .floating-services {
        position: relative;
        z-index: 9999;
        margin-top: 3rem;
        margin-bottom: 1rem;
    }

    .floating-services-2 {
        margin-left: 0;
    }

    .floating-services-2 .padding {
        padding-left: 3rem;
    }

    .floating-services-3 {
        position: relative;
        margin-top: 1rem;
        margin-bottom: -3rem;
    }

    .floating-services-3 .padding {
        padding-left: 3rem;
        padding-right: 3rem;
    }

    .floating-bottom {
        position: initial;
        top: 0;
        left: 0;
    }

    .floating-bottom-1 {
        position: initial;
        bottom: 0;
        right: 0;
        left: 0;
    }

    .floating-bottom-2 {
        position: initial;
        bottom: 0;
        right: 0;
        left: 0;
        margin-top: 1rem;
    }

    .floating-contact {
        margin-left: 0rem;
    }

    .floating-counter {
        position: relative;
        margin-top: -5rem;
        z-index: 9999;
    }

    .floating-blog {
        margin-top: 0;
    }

    .border-testimonial {
        border-right: none;
    }

    .card-counter {
        align-items: start;
    }

    .card-content {
        flex-direction: column;
    }

    .service-container {
        background-color: transparent;
        padding: 30px;
        display: flex;
        flex-direction: column;
        gap: 1.75rem;
        box-shadow: 0px 0px 18px 0px rgba(0, 0, 0, 0.1);
        height: 100%;
    }

    .navigation {
        display: flex;
        flex-direction: column;
        align-items: start;
        justify-content: space-between;
        gap: 1rem;
    }

    .navigation img {
        margin-block: 0;
        height: 0;
    }

    .navigation:hover img {
        height: 100%;
    }

    .appointment-box {
        top: -2rem;
        bottom: 0;
        left: 0;
        right: 0;
        height: 8rem;
    }

    .w-md-70 {
        width: 70%;
    }

    .w-md-60 {
        width: 60%;
    }

    .position-responsive {
        position: relative;
    }

    .form-appointment-container {
        position: relative;
        transform: translateY(0);
    }

    .list-flush-horizontal {
        flex-direction: column;
    }

    .list-flush-horizontal .list-item:first-child,
    .list-flush-horizontal .list-item {
        border-right: none;
        border-bottom: 1px solid white;
    }

    .list-flush-horizontal .list-item:last-child {
        border-left: none;
        border-bottom: none;
        border-top: 1px solid white;
    }

    .position-xl-absolute {
        position: static;
    }

    .banner-heading {
        font-size: 2.5rem;
    }

    .tab-container {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
    }

    .class-container {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
    }

    footer .d-flex.flex-column {
        text-align: center;
        justify-content: center;
        align-items: center;
        margin-bottom: 20px;
        padding: 0 0 0 0;
    }

    footer .link.d-flex.flex-row {
        text-align: center;
        justify-content: center;
        align-items: center;

    }

    footer .list {
        padding: 0 0 0 0;
    }

    .footer {
        position: relative;
    }

    .footer-img {
        position: relative;
    }

    .features-container {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
    }

    .testimonial-container {
        background-color: var(--accent-color-2);
        padding: 1rem;
        border-radius: 10px;

    }

    .swiperTestimonials2 {
        height: 500px;
    }

    .swiperImage {
        padding-bottom: 0;
    }

    .service-scroll {
        padding-right: 1rem;
    }

    .swiper-button-next,
    .swiper-button-prev {
        visibility: hidden;
        display: none;
    }

    .swiper-button-next::after,
    .swiper-button-prev::after {
        visibility: hidden;
        display: none;
    }

    .btn-play {
        margin-left: 70%;
    }

    .card-feature {
        margin-left: 0px;
        max-width: 100%;
    }

    .cta p {
        color: var(--text-color-2);
    }

    .cta h2 {
        color: var(--text-color);
    }

}

/* ---------------------------- */
/* DediCode.ai Brand Palette     */
/* ---------------------------- */
:root {
    --primary: #071426;
    --text-color: #F7FAFC;
    --text-color-2: #B9C7D6;
    --accent-color: #2DAEE4;
    --accent-color-2: #C8F0FF;
    --accent-color-3: #0D1B2F;
    --accent-color-4: #183153;
    --accent-color-5: #6D8AA8;
    --accent-color-6: linear-gradient(110deg, #183153 0%, #2DAEE4 55%, #7DD3FC 100%);
    --accent-color-7: radial-gradient(50% 50% at 50% 50%, rgba(125, 211, 252, 0.95) 0%, #2DAEE4 100%);
}

body {
    background:
        radial-gradient(ellipse 90% 60% at 90% -10%, rgba(45, 174, 228, 0.18), transparent 60%),
        radial-gradient(ellipse 75% 55% at -10% 20%, rgba(24, 49, 83, 0.58), transparent 62%),
        var(--primary);
}

.navbar .container-fluid {
    background: rgba(247, 250, 252, 0.92);
    border: 1px solid rgba(45, 174, 228, 0.18);
    box-shadow: 0 18px 45px rgba(7, 20, 38, 0.22);
}

.logo-container {
    max-width: 230px;
}

.navbar .nav-link,
.navbar .dropdown-item {
    color: var(--accent-color-4);
}

.navbar .nav-link:hover,
.navbar .nav-link.active,
.navbar .dropdown-item:hover,
.navbar .dropdown-item:focus {
    color: var(--accent-color) !important;
}

.navbar-toggler .accent-color {
    color: var(--accent-color-4);
}

.dropdown-menu {
    background: rgba(247, 250, 252, 0.97);
    border: 1px solid rgba(45, 174, 228, 0.16);
}

.text-accent {
    background: linear-gradient(50deg, #183153 0%, #2DAEE4 48%, #7DD3FC 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.sub-heading,
.tags.accent,
.testimonial-container {
    background-color: rgba(45, 174, 228, 0.14);
    color: var(--accent-color-2);
    border: 1px solid rgba(45, 174, 228, 0.24);
}

.btn-accent {
    background: var(--accent-color-6) !important;
    color: var(--text-color);
    border-color: rgba(200, 240, 255, 0.22);
    box-shadow: 0 14px 30px rgba(45, 174, 228, 0.22);
}

.btn-accent:hover {
    color: var(--text-color);
    box-shadow: 0 16px 36px rgba(45, 174, 228, 0.35);
}

.btn-accent.line:hover,
.btn-accent.line::before,
.btn-accent.line::after,
.btn-accent::before,
.btn-accent::after {
    background: linear-gradient(135deg, #2DAEE4 0%, #183153 100%);
}

.animated-gradient,
.animated-gradient.heroheader,
.animated-gradient.card-image-single,
.animated-gradient.card-service,
.animated-gradient.cta,
.animated-gradient.middle,
.animated-gradient.team,
.animated-gradient.footer {
    background-color: var(--primary);
    background-image:
        radial-gradient(ellipse 55% 45% at 88% 8%, rgba(45, 174, 228, 0.42) 0%, transparent 64%),
        radial-gradient(ellipse 70% 55% at 4% 16%, rgba(24, 49, 83, 0.92) 0%, transparent 68%),
        linear-gradient(135deg, #071426 0%, #0D1B2F 52%, #102B48 100%);
}

.animated-gradient.heroheader {
    position: relative;
    background-color: #071426;
    background-image:
        linear-gradient(90deg, rgba(7, 20, 38, 0.98) 0%, rgba(7, 20, 38, 0.88) 40%, rgba(7, 20, 38, 0.48) 65%, rgba(7, 20, 38, 0.16) 100%),
        linear-gradient(180deg, rgba(7, 20, 38, 0.18) 0%, rgba(7, 20, 38, 0.74) 100%),
        url("../image/hero-background-ai.png") !important;
    background-position: center, center, right center;
    background-size: cover, cover, cover;
    background-repeat: no-repeat;
}

.card-feature.animated-gradient,
.card-pricing.animated-gradient,
.card-content,
.card,
.accordion-item,
.icon-box {
    box-shadow: inset 0 0 45px rgba(45, 174, 228, 0.10);
}

.card-feature:hover.animated-gradient,
.card-feature.active.animated-gradient,
.card-pricing:hover.animated-gradient,
.card-pricing.active.animated-gradient {
    background-color: #10233D;
    background-image:
        radial-gradient(at 96% 28%, rgba(45, 174, 228, 0.45) 0px, transparent 52%),
        radial-gradient(at 10% 88%, rgba(125, 211, 252, 0.22) 0px, transparent 54%);
    box-shadow: inset 0 0 45px rgba(45, 174, 228, 0.16);
}

.icon-box.circle-gradient,
.request-loader.accent,
.swiper-pagination-bullet-active,
.progress-bar,
.bg-accent-color,
.bg-accent-color-hover:hover {
    background: var(--accent-color-6) !important;
}

.accent-color,
.accent-color-2,
.link.accent-color,
.btn-accent-underline:hover,
.card:hover .icon-box.bg-accent-color {
    color: var(--accent-color) !important;
}

.border-accent,
.border-accent-6,
.border-accent-color {
    border-color: var(--accent-color) !important;
}

footer img[src="image/logo.png"] {
    background: rgba(247, 250, 252, 0.96);
    border: 1px solid rgba(45, 174, 228, 0.18);
    border-radius: 14px;
    padding: 12px 16px;
}

.dedicode-footer {
    position: relative;
    overflow: hidden;
    background: #071426;
}

.dedicode-footer-marquee {
    border-top: 1px solid rgba(125, 211, 252, 0.12);
    border-bottom: 1px solid rgba(125, 211, 252, 0.12);
    background:
        linear-gradient(90deg, rgba(45, 174, 228, 0.08), transparent 30%, rgba(125, 211, 252, 0.06)),
        rgba(13, 27, 47, 0.42);
}

.dedicode-footer-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    padding: 18px 2rem;
}

.dedicode-footer-strip span {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    color: rgba(216, 231, 244, 0.86);
    font-family: var(--font-2);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.35;
}

.dedicode-footer-strip span::before {
    content: "";
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #2DAEE4;
    box-shadow: 0 0 14px rgba(45, 174, 228, 0.45);
}

.dedicode-footer-main {
    min-height: 0 !important;
    padding-top: 4.5em !important;
    padding-bottom: 2em !important;
    border-top: 1px solid rgba(45, 174, 228, 0.10);
    background:
        radial-gradient(ellipse 48% 58% at 14% 8%, rgba(45, 174, 228, 0.16), transparent 68%),
        radial-gradient(ellipse 46% 58% at 92% 78%, rgba(125, 211, 252, 0.08), transparent 70%),
        linear-gradient(135deg, #071426 0%, #0D1B2F 62%, #071426 100%);
}

.dedicode-footer-grid {
    display: grid;
    grid-template-columns: minmax(280px, 1.45fr) repeat(3, minmax(150px, 0.75fr));
    gap: 2rem;
    align-items: start;
}

.dedicode-footer-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
    max-width: 520px;
}

.dedicode-footer-logo img {
    background: rgba(247, 250, 252, 0.96);
    border: 1px solid rgba(45, 174, 228, 0.18);
    border-radius: 14px;
    padding: 12px 16px;
}

.dedicode-footer-brand p {
    max-width: 470px;
    margin: 0;
    color: #C8D7E8;
    line-height: 1.65;
}

.dedicode-footer-column {
    display: flex;
    flex-direction: column;
    gap: 0.72rem;
    color: #C8D7E8;
    font-family: var(--font-2);
    font-size: 0.92rem;
}

.dedicode-footer-column h6 {
    margin-bottom: 0.45rem;
    color: #F7FAFC;
    font-size: 0.98rem;
}

.dedicode-footer-column a,
.dedicode-footer-column span {
    color: #C8D7E8;
    text-decoration: none;
    line-height: 1.5;
}

.dedicode-footer-column a:hover {
    color: #7DD3FC;
}

.dedicode-footer-contact span {
    color: #AFC2D6;
}

.dedicode-footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 3rem;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(125, 211, 252, 0.12);
    color: rgba(200, 215, 232, 0.68);
    font-family: var(--font-2);
    font-size: 0.86rem;
}

.heroheader h1:not(.text-accent),
.heroheader h2,
.heroheader h3 {
    color: var(--text-color) !important;
    text-shadow: 0 8px 28px rgba(7, 20, 38, 0.38);
}

.heroheader h1 {
    font-size: clamp(3rem, 4.45vw, 4.15rem);
    line-height: 1.08;
    margin: 0;
}

.heroheader .col:first-child .flex-wrap {
    row-gap: 0.8rem !important;
    column-gap: 1rem !important;
}

.hero-title-main {
    flex: 0 1 auto;
    max-width: none;
    white-space: nowrap;
}

.heroheader .col:first-child .flex-wrap > h1.text-accent {
    flex-basis: 100%;
}

.heroheader .scrollanimation,
.heroheader .animated {
    opacity: 1 !important;
    visibility: visible !important;
}

.heroheader .text-accent {
    background: linear-gradient(50deg, #7DD3FC 0%, #2DAEE4 45%, #F7FAFC 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.heroheader p,
.heroheader .text-color-2 {
    color: #D6E4F2 !important;
}

.heroheader .tags {
    background: rgba(7, 20, 38, 0.34);
    border: 1px solid rgba(125, 211, 252, 0.16);
    margin-top: 0.15rem;
    color: var(--text-color);
}

.hero-service-badge {
    width: max-content;
    max-width: min(100%, 520px);
    gap: 0.72rem;
    padding: 10px 18px 10px 14px;
    border-radius: 12px;
    box-shadow: none;
    backdrop-filter: blur(10px);
}

.hero-service-badge .icon-box.circle-white {
    width: 9px;
    height: 9px;
    min-width: 9px;
    padding: 0;
    border: 1px solid rgba(200, 240, 255, 0.68);
    background: #2DAEE4;
    box-shadow: 0 0 16px rgba(45, 174, 228, 0.52);
}

.hero-service-badge .icon-box.circle-white svg {
    display: none;
}

.hero-service-badge h6 {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.55rem;
    color: #F7FAFC;
    font-size: 0.95rem;
    line-height: 1.35;
}

.hero-service-badge h6 span {
    color: #7DD3FC;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hero-visual-spacer {
    display: flex;
    min-height: 440px;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.hero-gif-overlay {
    width: min(72%, 520px);
    max-height: 520px;
    object-fit: contain;
    filter: hue-rotate(-92deg) saturate(1.08) brightness(0.96) contrast(1.04);
    opacity: 0.82;
    mix-blend-mode: screen;
}

/* Homepage density and final brand cleanup */
.heroheader {
    min-height: 840px;
}

.heroheader .row {
    align-items: center;
}

.heroheader .col:first-child > .d-flex {
    max-width: 820px;
    gap: 1.45rem !important;
}

.heroheader .home-hero-main {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    width: 100%;
    align-content: center;
    padding-top: 7rem;
    padding-bottom: 4rem;
}

.heroheader p {
    max-width: 620px !important;
    line-height: 1.72;
}

.heroheader .home-competency-strip {
    flex: 0 0 auto;
    width: 100%;
    margin-top: 0.5rem;
    margin-bottom: 2.5rem;
}

.hero-proof-panel {
    width: min(100%, 560px);
    margin-left: auto;
    padding: 28px;
    border: 1px solid rgba(125, 211, 252, 0.24);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(247, 250, 252, 0.08), rgba(247, 250, 252, 0.025)),
        radial-gradient(ellipse 90% 70% at 100% 0%, rgba(45, 174, 228, 0.22), transparent 60%),
        rgba(8, 23, 42, 0.82);
    box-shadow: 0 24px 80px rgba(2, 8, 23, 0.36), inset 0 0 60px rgba(45, 174, 228, 0.08);
    backdrop-filter: blur(16px);
}

.hero-proof-top,
.hero-proof-bottom {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.hero-proof-top {
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(125, 211, 252, 0.18);
}

.hero-proof-top span,
.hero-proof-bottom span,
.hero-proof-grid span {
    color: var(--accent-color);
    font-family: var(--font-2);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
}

.hero-proof-top strong {
    color: var(--text-color);
    font-size: 1.55rem;
    line-height: 1.2;
}

.hero-proof-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 20px 0;
}

.hero-proof-grid > div {
    min-height: 170px;
    padding: 18px;
    border: 1px solid rgba(125, 211, 252, 0.16);
    border-radius: 12px;
    background: rgba(247, 250, 252, 0.055);
}

.hero-proof-grid strong {
    display: block;
    margin-top: 10px;
    color: var(--text-color);
    font-size: 1rem;
    line-height: 1.25;
}

.hero-proof-grid p,
.hero-proof-bottom p {
    margin: 8px 0 0;
    color: #C8D7E8;
    font-size: 0.92rem;
    line-height: 1.55;
}

.home-competency-strip {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1.35rem;
    padding: 18px 24px;
    overflow: hidden;
    border: 1px solid rgba(125, 211, 252, 0.12);
    border-radius: 12px;
    background:
        linear-gradient(90deg, rgba(125, 211, 252, 0.06), transparent 34%, rgba(45, 174, 228, 0.05)),
        rgba(7, 20, 38, 0.36);
    box-shadow:
        inset 0 1px 0 rgba(247, 250, 252, 0.06),
        0 18px 50px rgba(2, 8, 23, 0.12);
}

.home-competency-strip span {
    position: relative;
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    justify-content: flex-start;
    gap: 0.58rem;
    padding: 0;
    border-right: 0;
    color: rgba(216, 231, 244, 0.86);
    font-family: var(--font-2);
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
    background: transparent;
}

.home-competency-strip span::before {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border: 1px solid rgba(200, 240, 255, 0.52);
    border-radius: 50%;
    background: #2DAEE4;
    box-shadow: 0 0 14px rgba(45, 174, 228, 0.42);
}

.home-framework-visual {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(125, 211, 252, 0.16);
    border-radius: 22px;
    background:
        radial-gradient(circle at 50% 50%, rgba(45, 174, 228, 0.12) 0 9%, transparent 10%),
        radial-gradient(circle at 50% 50%, rgba(45, 174, 228, 0.07) 0 22%, transparent 23%),
        radial-gradient(circle at 50% 50%, rgba(125, 211, 252, 0.05) 0 34%, transparent 35%),
        linear-gradient(90deg, transparent 0 49.85%, rgba(125, 211, 252, 0.16) 49.85% 50.15%, transparent 50.15% 100%),
        linear-gradient(0deg, transparent 0 49.85%, rgba(125, 211, 252, 0.12) 49.85% 50.15%, transparent 50.15% 100%),
        radial-gradient(ellipse 70% 60% at 50% 50%, rgba(45, 174, 228, 0.20), transparent 70%),
        rgba(7, 20, 38, 0.18);
    box-shadow:
        inset 0 0 80px rgba(45, 174, 228, 0.08),
        0 26px 70px rgba(2, 8, 23, 0.20);
}

.home-framework-visual::before {
    content: "";
    position: absolute;
    width: min(520px, 50vw);
    aspect-ratio: 1;
    left: 50%;
    top: 50%;
    z-index: -1;
    border: 1px solid rgba(125, 211, 252, 0.32);
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 50%, rgba(247, 250, 252, 0.10) 0 6%, transparent 7%),
        radial-gradient(circle at 50% 50%, rgba(45, 174, 228, 0.38) 0 20%, rgba(45, 174, 228, 0.16) 21% 48%, rgba(13, 27, 47, 0.20) 49% 100%);
    box-shadow:
        0 0 0 58px rgba(45, 174, 228, 0.035),
        0 0 0 112px rgba(125, 211, 252, 0.025),
        0 0 84px rgba(45, 174, 228, 0.20);
    transform: translate(-50%, -50%);
}

.home-framework-visual::after {
    content: "";
    position: absolute;
    inset: 44px 9%;
    z-index: -2;
    opacity: 0.72;
    background:
        linear-gradient(35deg, transparent 0 48%, rgba(125, 211, 252, 0.10) 48.2% 48.55%, transparent 48.8% 100%),
        linear-gradient(145deg, transparent 0 48%, rgba(45, 174, 228, 0.12) 48.2% 48.55%, transparent 48.8% 100%),
        radial-gradient(circle at 18% 26%, rgba(45, 174, 228, 0.18) 0 4px, transparent 5px),
        radial-gradient(circle at 82% 27%, rgba(45, 174, 228, 0.18) 0 4px, transparent 5px),
        radial-gradient(circle at 18% 75%, rgba(45, 174, 228, 0.18) 0 4px, transparent 5px),
        radial-gradient(circle at 82% 75%, rgba(45, 174, 228, 0.18) 0 4px, transparent 5px);
    pointer-events: none;
}

.home-framework-visual > .row {
    position: relative;
    z-index: 1;
}

.home-unused-block {
    display: none !important;
}

.contact-details-section {
    background:
        radial-gradient(ellipse 46% 60% at 12% 20%, rgba(45, 174, 228, 0.12), transparent 70%),
        radial-gradient(ellipse 48% 58% at 88% 86%, rgba(125, 211, 252, 0.09), transparent 68%),
        #071426;
}

.contact-details-section .card-contact {
    min-height: 190px;
    justify-content: center;
    border: 1px solid rgba(125, 211, 252, 0.16);
    background:
        linear-gradient(180deg, rgba(247, 250, 252, 0.035), transparent 68%),
        rgba(13, 27, 47, 0.72);
}

.contact-details-section .card-contact h6 {
    margin-bottom: 0;
    line-height: 1.45;
}

.contact-details-section .contact-icon {
    position: relative;
    width: 64px;
    height: 64px;
    padding: 0;
    margin-inline: auto;
    overflow: hidden;
    border: 1px solid rgba(125, 211, 252, 0.36);
    border-radius: 16px;
    background:
        radial-gradient(circle at 28% 20%, rgba(255, 255, 255, 0.22), transparent 30%),
        linear-gradient(135deg, #0b84b5, #55cdf7);
    box-shadow: 0 16px 34px rgba(45, 174, 228, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.contact-details-section .contact-icon i {
    display: none;
}

.contact-details-section .contact-icon::before {
    content: "";
    width: 32px;
    height: 32px;
    display: block;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.contact-details-section .contact-icon-email::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='%23F7FAFC' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='13' rx='2.4'/%3E%3Cpath d='m4.5 7 7.5 6 7.5-6'/%3E%3Cpath d='m8.5 12.3-4 3.6' opacity='.65'/%3E%3Cpath d='m15.5 12.3 4 3.6' opacity='.65'/%3E%3C/svg%3E");
}

.contact-details-section .contact-icon-location::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='%23F7FAFC' stroke-width='1.85' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s6-5.25 6-11a6 6 0 0 0-12 0c0 5.75 6 11 6 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.25'/%3E%3Cpath d='M5 21h14' opacity='.7'/%3E%3Cpath d='M8 18.5 6.5 21' opacity='.55'/%3E%3Cpath d='M16 18.5l1.5 2.5' opacity='.55'/%3E%3C/svg%3E");
}

.contact-details-section .contact-icon-register::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='%23F7FAFC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3.5h7l3 3V20a1.5 1.5 0 0 1-1.5 1.5h-7A1.5 1.5 0 0 1 7 20V3.5Z'/%3E%3Cpath d='M14 3.5V7h3.5'/%3E%3Cpath d='M9.5 11h5'/%3E%3Cpath d='M9.5 14h5'/%3E%3Cpath d='M9.5 17h3'/%3E%3C/svg%3E");
}

.section.subpage-hero.animated-gradient {
    min-height: 520px;
    margin-top: 118px;
    padding-top: 3.5em !important;
    padding-bottom: 4em !important;
}

.subpage-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.65fr);
    align-items: center;
    gap: 42px;
}

.subpage-hero-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
}

.subpage-hero-copy h1 {
    max-width: 650px;
    margin: 0;
    font-size: clamp(2.2rem, 2.75vw, 3.35rem);
    line-height: 1.13;
}

.subpage-hero-copy p {
    max-width: 620px;
    color: var(--text-color-2);
    font-size: 1rem;
    line-height: 1.72;
}

.subpage-hero-panel,
.content-card,
.team-profile-card,
.contact-form-card {
    border: 1px solid rgba(125, 211, 252, 0.16);
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(125, 211, 252, 0.08), transparent 46%),
        rgba(13, 27, 47, 0.78);
    box-shadow: 0 24px 70px rgba(2, 8, 23, 0.22);
}

.subpage-hero-panel {
    padding: 30px;
}

.subpage-hero-panel h5,
.content-card h5,
.team-profile-card h5 {
    margin: 0;
    font-size: 1.18rem;
    line-height: 1.28;
}

.subpage-hero-panel p,
.subpage-hero-panel li,
.content-card p,
.team-profile-card p {
    margin: 0;
    color: var(--text-color-2);
    line-height: 1.7;
}

.check-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 0;
    margin: 1.25rem 0 0;
    list-style: none;
}

.check-list li {
    position: relative;
    padding-left: 28px;
}

.check-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--accent-color);
    box-shadow: 0 0 18px rgba(45, 174, 228, 0.72);
}

.subpage-section {
    position: relative;
}

.muted-band {
    background:
        radial-gradient(circle at 12% 12%, rgba(45, 174, 228, 0.12), transparent 32%),
        rgba(8, 24, 43, 0.48);
}

.split-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.55fr);
    align-items: end;
    gap: 32px;
    margin-bottom: 34px;
}

.split-heading h2 {
    margin: 0;
    font-size: clamp(1.85rem, 2.25vw, 2.7rem);
    line-height: 1.18;
}

.split-heading p {
    margin: 0;
    color: var(--text-color-2);
    line-height: 1.75;
}

.content-grid,
.service-list-grid,
.timeline-grid {
    display: grid;
    gap: 18px;
}

.content-grid.two {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    align-items: start;
}

.content-grid.two h2 {
    max-width: 560px;
    font-size: clamp(1.85rem, 2.55vw, 3rem);
    line-height: 1.16;
}

.content-grid.three,
.service-list-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.content-card,
.team-profile-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 240px;
    padding: 26px;
}

.content-card > span,
.team-profile-card > span,
.timeline-grid span {
    width: max-content;
    color: var(--accent-color);
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.content-card-featured {
    border-color: rgba(125, 211, 252, 0.34) !important;
    background:
        radial-gradient(ellipse 80% 55% at 100% 0%, rgba(45, 174, 228, 0.26), transparent 66%),
        linear-gradient(135deg, rgba(13, 43, 70, 0.88), rgba(7, 20, 38, 0.82)) !important;
    box-shadow: 0 22px 70px rgba(2, 8, 23, 0.22), inset 0 0 42px rgba(45, 174, 228, 0.08);
}

.content-card-featured > span {
    padding: 7px 10px;
    border-radius: 999px;
    color: #071426;
    background: linear-gradient(135deg, #7DD3FC, #2DAEE4);
    box-shadow: 0 12px 26px rgba(45, 174, 228, 0.24);
}

.company-experience-section {
    background:
        radial-gradient(circle at 12% 18%, rgba(45, 174, 228, 0.16), transparent 34%),
        radial-gradient(circle at 88% 82%, rgba(125, 211, 252, 0.10), transparent 30%),
        rgba(7, 20, 38, 0.42);
}

.company-group-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr);
    align-items: center;
    gap: 24px;
    margin-top: 18px;
    padding: 26px;
    border: 1px solid rgba(125, 211, 252, 0.18);
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(125, 211, 252, 0.07), transparent 48%),
        rgba(13, 27, 47, 0.72);
}

.company-group-panel h5 {
    margin: 14px 0 0;
    font-size: 1.18rem;
    line-height: 1.45;
}

.company-group-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.company-group-links a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid rgba(125, 211, 252, 0.22);
    border-radius: 999px;
    color: #C8F0FF;
    font-weight: 800;
    background: rgba(7, 20, 38, 0.45);
}

.company-group-links a:hover {
    color: #FFFFFF;
    border-color: rgba(200, 240, 255, 0.58);
    background: rgba(13, 43, 70, 0.74);
}

.process-list {
    display: grid;
    gap: 16px;
}

.process-list > div {
    padding: 22px;
    border-left: 2px solid rgba(45, 174, 228, 0.65);
    background: rgba(13, 27, 47, 0.48);
}

.process-list h5,
.process-list p {
    margin: 0;
}

.process-list h5 {
    font-size: 1.08rem;
    line-height: 1.3;
}

.process-list p {
    color: var(--text-color-2);
    line-height: 1.7;
}

.timeline-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.timeline-grid > div {
    min-height: 190px;
    padding: 24px;
    border: 1px solid rgba(125, 211, 252, 0.16);
    border-radius: 16px;
    background: rgba(13, 27, 47, 0.72);
}

.timeline-grid h5,
.timeline-grid p {
    margin: 0;
}

.timeline-grid h5 {
    font-size: 1.08rem;
    line-height: 1.3;
}

.timeline-grid p {
    color: var(--text-color-2);
    line-height: 1.65;
}

.contact-page-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1fr);
    gap: 38px;
    align-items: start;
}

.contact-form-copy {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.contact-form-copy h2,
.contact-form-copy p {
    margin: 0;
}

.contact-form-copy h2 {
    font-size: clamp(1.85rem, 2.25vw, 2.7rem);
    line-height: 1.18;
}

.contact-form-copy p {
    color: var(--text-color-2);
    line-height: 1.75;
}

.contact-form-card {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 28px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.form-field,
.form-consent {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-field-full {
    grid-column: 1 / -1;
}

.form-field span,
.form-consent span {
    color: var(--text-color);
    font-size: 0.94rem;
    font-weight: 700;
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    border: 1px solid rgba(125, 211, 252, 0.2);
    border-radius: 12px;
    padding: 14px 16px;
    color: var(--text-color);
    background: rgba(5, 17, 33, 0.72);
    outline: none;
}

.form-field textarea {
    resize: vertical;
    min-height: 170px;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: rgba(45, 174, 228, 0.8);
    box-shadow: 0 0 0 3px rgba(45, 174, 228, 0.14);
}

.form-consent {
    flex-direction: row;
    align-items: flex-start;
}

.form-consent input {
    margin-top: 0.35em;
}

.contact-info-stack {
    display: grid;
    gap: 18px;
}

.contact-info-stack div {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.contact-info-stack span {
    color: var(--accent-color);
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.contact-info-stack a,
.contact-info-stack p {
    margin: 0;
    color: var(--text-color);
    font-size: 1.05rem;
    line-height: 1.55;
}

.section:not(.heroheader):not(.footer):not(.home-unused-block) {
    padding-top: 5.5em;
    padding-bottom: 5.5em;
}

main > .section.animated-gradient.cta:not(.home-unused-block) {
    height: auto !important;
    min-height: 560px;
}

.card-service,
.card-feature,
.card-about,
.accordion-item,
.card-content {
    border-color: rgba(125, 211, 252, 0.15) !important;
    background-color: rgba(13, 27, 47, 0.72);
}

.card-service.animated-gradient,
.card-feature.animated-gradient,
.card-feature.active.animated-gradient,
.animated-gradient.card-service,
.animated-gradient.cta,
.animated-gradient.middle,
.animated-gradient.team,
.animated-gradient.footer {
    background-image:
        radial-gradient(ellipse 70% 55% at 90% 0%, rgba(45, 174, 228, 0.34) 0%, transparent 65%),
        radial-gradient(ellipse 70% 60% at 0% 100%, rgba(125, 211, 252, 0.16) 0%, transparent 62%),
        linear-gradient(135deg, #071426 0%, #0D1B2F 58%, #102B48 100%) !important;
}

.circle-glass,
.icon-box.cta,
.icon-box.circle-gradient {
    background: linear-gradient(135deg, #183153 0%, #2DAEE4 62%, #7DD3FC 100%) !important;
    box-shadow: 0 14px 36px rgba(45, 174, 228, 0.24), inset 0 0 22px rgba(247, 250, 252, 0.16);
}

.btn-accent.animated-gradient {
    background-image: linear-gradient(110deg, #183153 0%, #2DAEE4 58%, #7DD3FC 100%) !important;
}

/* Premium button system */
.btn,
.btn-accent,
button.btn-accent,
.submit_form.btn-accent,
.submit_subscribe.btn-accent {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 52px;
    padding: 0 22px;
    border-radius: 10px !important;
    font-family: var(--font-2);
    font-size: 0.94rem;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.2;
    text-align: center;
    vertical-align: middle;
    text-transform: none;
}

.btn-accent,
button.btn-accent,
.submit_form.btn-accent,
.submit_subscribe.btn-accent,
.btn-accent.animated-gradient {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    color: #F7FAFC !important;
    border: 1px solid rgba(125, 211, 252, 0.54) !important;
    background:
        linear-gradient(180deg, rgba(247, 250, 252, 0.10), rgba(247, 250, 252, 0.02)),
        linear-gradient(135deg, #102B48 0%, #0D1B2F 58%, #071426 100%) !important;
    box-shadow:
        0 10px 28px rgba(2, 8, 23, 0.28),
        0 0 0 1px rgba(45, 174, 228, 0.10) inset;
    transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.btn-accent::before,
.btn-accent::after,
button.btn-accent::before,
button.btn-accent::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.btn-accent::before,
button.btn-accent::before {
    inset: 0;
    z-index: -1;
    width: auto;
    height: auto;
    padding-bottom: 0;
    border-radius: inherit;
    background:
        linear-gradient(90deg, transparent 0%, rgba(125, 211, 252, 0.20) 50%, transparent 100%),
        linear-gradient(135deg, rgba(45, 174, 228, 0.36), transparent 58%);
    opacity: 0;
    transform: translateX(-18%);
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.btn-accent::after,
button.btn-accent::after {
    inset: 1px;
    z-index: -2;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(45, 174, 228, 0.16), rgba(247, 250, 252, 0.02));
    transform: none;
}

.btn-accent:hover,
button.btn-accent:hover,
.submit_form.btn-accent:hover,
.submit_subscribe.btn-accent:hover {
    color: #FFFFFF !important;
    transform: translateY(-2px);
    border-color: rgba(200, 240, 255, 0.86) !important;
    box-shadow:
        0 16px 38px rgba(2, 8, 23, 0.34),
        0 0 30px rgba(45, 174, 228, 0.22),
        0 0 0 1px rgba(125, 211, 252, 0.22) inset;
}

.btn-accent:hover::before,
button.btn-accent:hover::before {
    opacity: 1;
    transform: translateX(0);
}

.btn-accent span,
.btn-accent i {
    position: relative;
    z-index: 2;
}

.btn-accent:hover span,
.btn-accent:hover i {
    animation: none;
}

.btn-accent.line {
    color: #C8F0FF !important;
    border: 1px solid rgba(125, 211, 252, 0.48) !important;
    background: rgba(7, 20, 38, 0.34) !important;
    box-shadow: 0 0 0 1px rgba(45, 174, 228, 0.08) inset;
}

.btn-accent.line::before {
    background: linear-gradient(135deg, rgba(45, 174, 228, 0.18), rgba(125, 211, 252, 0.08));
}

.btn-accent.line::after {
    background: transparent;
}

.btn-accent.line:hover {
    color: #FFFFFF !important;
    background: rgba(13, 43, 70, 0.82) !important;
    border-color: rgba(200, 240, 255, 0.82) !important;
}

.card-content .btn-accent,
.card-service .btn-accent {
    min-height: 44px;
    padding: 0 16px;
    font-size: 0.86rem;
}

/* Feature card visuals */
.feature-card-enhanced {
    min-height: 460px;
    height: 100% !important;
    gap: 1.25rem !important;
    justify-content: space-between;
    overflow: hidden;
}

.feature-card-enhanced .tags,
.feature-card-enhanced .d-flex.flex-column {
    position: relative;
    z-index: 2;
}

.feature-card-enhanced p {
    margin-bottom: 0;
}

.feature-visual {
    position: relative;
    width: 100%;
    height: 154px;
    margin: 0.75rem 0 0.4rem;
    overflow: hidden;
    border: 1px solid rgba(125, 211, 252, 0.18);
    border-radius: 18px;
    background:
        radial-gradient(circle at 72% 18%, rgba(125, 211, 252, 0.24), transparent 34%),
        radial-gradient(circle at 18% 84%, rgba(45, 174, 228, 0.18), transparent 36%),
        linear-gradient(135deg, rgba(7, 20, 38, 0.42), rgba(16, 43, 72, 0.52));
    box-shadow: inset 0 0 36px rgba(45, 174, 228, 0.08);
}

.feature-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(125, 211, 252, 0.075) 1px, transparent 1px),
        linear-gradient(90deg, rgba(125, 211, 252, 0.075) 1px, transparent 1px);
    background-size: 28px 28px;
    mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
    opacity: 0.48;
}

.feature-visual span {
    position: absolute;
    z-index: 2;
    display: block;
    border: 1px solid rgba(200, 240, 255, 0.34);
    background: linear-gradient(135deg, rgba(45, 174, 228, 0.36), rgba(125, 211, 252, 0.10));
    box-shadow: 0 16px 36px rgba(2, 8, 23, 0.22), 0 0 26px rgba(45, 174, 228, 0.14);
}

.feature-visual-product span:nth-child(1) {
    left: 9%;
    top: 31px;
    width: 49%;
    height: 72px;
    border-radius: 14px;
}

.feature-visual-product span:nth-child(2) {
    right: 12%;
    top: 24px;
    width: 28%;
    height: 44px;
    border-radius: 12px;
}

.feature-visual-product span:nth-child(3) {
    right: 16%;
    bottom: 28px;
    width: 42%;
    height: 16px;
    border-radius: 999px;
}

.feature-visual-security::before {
    content: "";
    position: absolute;
    z-index: 2;
    left: 50%;
    top: 21px;
    width: 88px;
    height: 104px;
    transform: translateX(-50%);
    clip-path: polygon(50% 0, 88% 16%, 78% 76%, 50% 100%, 22% 76%, 12% 16%);
    border: 1px solid rgba(200, 240, 255, 0.34);
    background: linear-gradient(160deg, rgba(125, 211, 252, 0.48), rgba(45, 174, 228, 0.18) 62%, rgba(16, 43, 72, 0.54));
    box-shadow: 0 18px 42px rgba(2, 8, 23, 0.28), 0 0 34px rgba(45, 174, 228, 0.18);
}

.feature-visual-security span:nth-child(1) {
    left: 21%;
    top: 62px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
}

.feature-visual-security span:nth-child(2) {
    right: 20%;
    top: 42px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
}

.feature-visual-security span:nth-child(3) {
    right: 24%;
    bottom: 30px;
    width: 90px;
    height: 8px;
    border-radius: 999px;
}

.feature-visual-scale span {
    bottom: 28px;
    width: 18%;
    border-radius: 14px 14px 7px 7px;
}

.feature-visual-scale span:nth-child(1) {
    left: 17%;
    height: 48px;
}

.feature-visual-scale span:nth-child(2) {
    left: 41%;
    height: 78px;
}

.feature-visual-scale span:nth-child(3) {
    right: 17%;
    height: 108px;
}

@media only screen and (max-width: 991px) {
    .heroheader {
        height: auto !important;
        min-height: auto !important;
        padding-top: 8.5em;
        padding-bottom: 4em;
    }

    .heroheader .home-hero-main {
        padding-top: 0;
        padding-bottom: 1.5rem;
    }

    .heroheader .home-competency-strip {
        margin-bottom: 0;
    }

    .hero-proof-panel {
        margin: 24px auto 0;
    }

    .home-competency-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.85rem 1.25rem;
        padding: 16px 18px;
    }

    .dedicode-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dedicode-footer-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding-inline: 1.25rem;
    }

    .dedicode-footer-brand {
        grid-column: 1 / -1;
    }
}

@media only screen and (max-width: 576px) {
    .home-competency-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem 1rem;
        padding: 14px 16px;
    }

    .hero-proof-grid {
        grid-template-columns: 1fr;
    }

    .hero-proof-grid > div {
        min-height: 0;
    }

    .dedicode-footer-grid {
        grid-template-columns: 1fr;
    }

    .dedicode-footer-strip {
        grid-template-columns: 1fr;
        gap: 0.8rem;
        padding-block: 16px;
    }

    .dedicode-footer-bottom {
        flex-direction: column;
    }
}

/* Mobile layout refinements */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

@media only screen and (max-width: 1399px) {
    .navbar {
        margin-inline: 0.75rem !important;
        padding-block: 0.75rem;
    }

    .navbar .container-fluid {
        width: 100%;
        gap: 0.75rem;
        padding: 10px 12px;
        border-radius: 12px;
    }

    .navbar-collapse {
        order: 4;
        flex-basis: 100%;
        max-height: calc(100svh - 92px);
        overflow-y: auto;
        padding-top: 0.75rem;
    }

    .navbar-nav {
        align-items: stretch;
        width: 100%;
        margin-inline: 0 !important;
        padding: 0;
    }

    .navbar-expand-xl .navbar-nav .nav-link,
    .navbar-expand-xxl .navbar-nav .nav-link,
    .nav-link {
        padding: 10px 12px;
        text-align: left;
    }

    #header .header-actions {
        display: none;
    }

    .nav-link:hover,
    .nav-link.active {
        text-align: left;
    }

    .dropdown-menu {
        width: 100%;
        max-height: 52svh;
        overflow-y: auto;
        border-radius: 10px;
        box-shadow: none;
    }
}

@media only screen and (max-width: 991px) {
    .section,
    .section:not(.heroheader):not(.footer):not(.home-unused-block) {
        padding: 4.5em 1.25em;
    }

    .r-container {
        width: 100%;
    }

    .w-max-content {
        width: 100%;
    }

    .heroheader {
        min-height: auto !important;
        padding-top: 6.75em;
        padding-bottom: 3.25em;
    }

    .heroheader .r-container {
        gap: 1.75rem;
    }

    .heroheader .home-hero-main {
        gap: 1rem;
        margin-inline: 0;
    }

    .heroheader .home-hero-main > .col:first-child {
        position: relative;
        z-index: 2;
    }

    .animated-gradient.heroheader {
        background-image:
            linear-gradient(180deg, rgba(7, 20, 38, 0.94) 0%, rgba(7, 20, 38, 0.88) 42%, rgba(7, 20, 38, 0.96) 100%),
            url("../image/hero-background-ai.png") !important;
        background-position: center, 64% top;
        background-size: cover, auto 56%;
    }

    .hero-visual-spacer {
        position: absolute;
        top: 5.6rem;
        right: -8vw;
        z-index: 1;
        display: flex;
        width: min(70vw, 320px);
        min-height: 0;
        opacity: 0.2;
    }

    .hero-gif-overlay {
        width: 100%;
        max-height: 280px;
    }

    .heroheader h1 {
        max-width: 100%;
        font-size: clamp(2.35rem, 10vw, 3.15rem);
        line-height: 1.06;
        text-wrap: balance;
    }

    .heroheader .col:first-child .flex-wrap {
        gap: 0.65rem !important;
    }

    .hero-title-main,
    .heroheader .col:first-child .flex-wrap > h1.text-accent {
        flex-basis: 100%;
        white-space: normal;
    }

    .heroheader p {
        max-width: none !important;
        font-size: 1rem;
        line-height: 1.7;
    }

    .heroheader .d-flex.flex-xl-row.flex-column.gap-4 {
        gap: 0.85rem !important;
    }

    .heroheader .btn,
    .heroheader .w-max-content {
        width: 100%;
    }

    .home-framework-visual {
        min-height: 0 !important;
        padding: 1.25rem !important;
        border-radius: 16px;
        background:
            radial-gradient(ellipse 85% 38% at 50% 8%, rgba(45, 174, 228, 0.18), transparent 72%),
            linear-gradient(135deg, rgba(7, 20, 38, 0.48), rgba(13, 27, 47, 0.78));
    }

    .home-framework-visual::before,
    .home-framework-visual::after {
        display: none;
    }

    .home-framework-visual > .row {
        min-height: 0 !important;
        gap: 1.25rem;
    }

    .home-framework-visual .col,
    .home-framework-visual .col-xl-12 {
        margin-bottom: 0 !important;
    }

    .home-framework-visual .col > .d-flex {
        min-height: 0;
        justify-content: flex-start !important;
        text-align: left !important;
        align-items: flex-start !important;
        padding: 1rem;
        border: 1px solid rgba(125, 211, 252, 0.14);
        border-radius: 14px;
        background: rgba(13, 27, 47, 0.58);
    }

    .home-framework-visual .text-xl-end,
    .home-framework-visual .text-xl-start {
        text-align: left !important;
    }

    .home-framework-visual .col:empty,
    .home-framework-visual .col-xl-12 {
        display: none !important;
    }

    .card-service,
    .card-feature,
    .feature-card-enhanced,
    .card-about,
    .accordion-item,
    .card-content {
        min-height: 0 !important;
        height: auto !important;
    }

    .card-content {
        position: relative;
        flex-direction: column;
        gap: 1.25rem;
        padding: 1.25rem;
    }

    .references-grid {
        grid-template-columns: 1fr;
    }

    .reference-card {
        grid-column: auto;
        grid-template-columns: 160px minmax(0, 1fr);
        transform: none !important;
    }

    .subpage-hero {
        min-height: 0;
        margin-top: 96px;
        padding-top: 2.75em !important;
    }

    .subpage-hero-grid,
    .split-heading,
    .content-grid.two,
    .contact-page-grid {
        grid-template-columns: 1fr;
    }

    .content-grid.three,
    .service-list-grid,
    .timeline-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-scroll {
        height: auto;
        max-height: none;
        padding-right: 0;
        overflow: visible;
    }

    .swiper-button-next,
    .swiper-button-prev,
    .swiperProject .swiper-button-next,
    .swiperProject .swiper-button-prev {
        position: relative;
        inset: auto;
        transform: none;
        margin-top: 1rem;
    }

    main > .section.animated-gradient.cta:not(.home-unused-block) {
        min-height: 0 !important;
    }
}

@media only screen and (max-width: 767px) {
    h1 {
        font-size: 2.3rem;
        line-height: 1.08;
    }

    h2 {
        font-size: 2.05rem;
        line-height: 1.12;
    }

    h3 {
        font-size: 1.85rem;
        line-height: 1.18;
    }

    h4 {
        font-size: 1.45rem;
    }

    h5 {
        font-size: 1.15rem;
    }

    p,
    li {
        font-size: 0.95rem;
        line-height: 1.65;
    }

    #header .container-fluid > .w-max-content {
        display: none;
    }

    #header .header-actions {
        display: none;
    }

    .logo-container {
        max-width: min(48vw, 170px);
    }

    .navbar-toggler {
        min-width: 44px;
        min-height: 44px;
        padding: 0;
    }

    .btn,
    .btn-accent,
    button.btn-accent,
    .submit_form.btn-accent,
    .submit_subscribe.btn-accent {
        width: 100%;
        min-height: 48px;
        padding-inline: 18px;
        white-space: normal;
    }

    .heroheader {
        min-height: auto !important;
        padding-top: 6.25em;
        padding-bottom: 2.5em;
    }

    .heroheader h1 {
        font-size: clamp(2.12rem, 10.6vw, 2.78rem);
        line-height: 1.08;
    }

    .hero-title-main {
        max-width: 9.5ch;
    }

    .heroheader .col:first-child .flex-wrap > h1.text-accent {
        max-width: 10ch;
    }

    .hero-visual-spacer {
        top: 5.15rem;
        right: -4vw;
        width: min(66vw, 250px);
        opacity: 0.16;
    }

    .hero-gif-overlay {
        max-height: 230px;
    }

    .section.subpage-hero.animated-gradient {
        margin-top: 86px;
        padding-top: 2.25em !important;
    }

    .heroheader .tags {
        width: 100%;
        border-radius: 14px;
        padding: 8px 12px;
        gap: 0.75rem;
    }

    .hero-service-badge {
        padding: 10px 14px;
    }

    .heroheader .tags h6 {
        font-size: 0.9rem;
    }

    .hero-service-badge h6 {
        gap: 0.35rem 0.5rem;
    }

    .hero-service-badge h6 span {
        flex-basis: 100%;
    }

    .heroheader .tags .icon-box {
        width: 42px;
        height: 42px;
        min-width: 42px;
    }

    .hero-service-badge .icon-box.circle-white {
        width: 8px;
        height: 8px;
        min-width: 8px;
    }

    .home-competency-strip span {
        min-height: 0;
        justify-content: flex-start;
        padding: 0;
        text-align: left;
    }

    .references-lead {
        margin: 0;
        font-size: 0.96rem;
    }

    .reference-card {
        grid-template-columns: 1fr;
        gap: 18px;
        min-height: 0;
        padding: 18px;
        border-radius: 14px;
    }

    .reference-logo {
        width: 100%;
        height: 92px;
        min-height: 92px;
        padding: 16px;
    }

    .reference-content {
        gap: 9px;
    }

    .reference-content h5 {
        font-size: 1.08rem;
    }

    .reference-content p {
        font-size: 0.92rem;
        line-height: 1.55;
    }

    .references-section .scrollanimation,
    .references-section .animated,
    .references-section .reference-card {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        visibility: visible !important;
    }

    .scrollanimation.animated {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        visibility: visible !important;
    }

    .subpage-hero-copy h1 {
        font-size: clamp(2.35rem, 11vw, 3.4rem);
    }

    .subpage-hero-panel,
    .content-card,
    .team-profile-card,
    .contact-form-card,
    .timeline-grid > div {
        min-height: 0;
        padding: 20px;
    }

    .company-group-panel {
        grid-template-columns: 1fr;
        padding: 20px;
    }

    .company-group-links {
        justify-content: flex-start;
    }

    .content-grid.three,
    .service-list-grid,
    .timeline-grid,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-field-full {
        grid-column: auto;
    }

    .row {
        margin-right: 0;
        margin-left: 0;
    }

    .row > * {
        padding-right: 0;
        padding-left: 0;
    }

    .gap-5 {
        gap: 2rem !important;
    }

    .dedicode-footer-main {
        padding-top: 3.25em !important;
    }
}

@media only screen and (max-width: 420px) {
    .section,
    .section:not(.heroheader):not(.footer):not(.home-unused-block) {
        padding-inline: 1rem;
    }

    .navbar {
        margin-inline: 0.5rem !important;
    }

    .heroheader h1 {
        font-size: clamp(1.98rem, 10.8vw, 2.45rem);
    }

    .heroheader p {
        font-size: 0.94rem;
    }

    .hero-service-badge h6 {
        font-size: 0.82rem;
    }

    .hero-service-badge h6 span {
        font-size: 0.66rem;
    }

    .home-competency-strip {
        gap: 0.65rem 0.85rem;
    }

    .home-competency-strip span {
        font-size: 0.78rem;
        line-height: 1.32;
    }

    .home-framework-visual {
        padding: 1rem !important;
    }
}
