/* ----------------------------------

Template Name: Markia - SEO & Digital Marketing Agency Template
Author: validtheme
Description:
Version: 1.0

Main Font    : Plus Jakarta Sans
Main Color   : #2802D2

-------------------------------------

[Typography]

Body copy:    15px 'Plus Jakarta Sans', sans-serif
Header:     36px 'Plus Jakarta Sans', sans-serif
Input, textarea:  16px 'Plus Jakarta Sans', sans-serif
Sidebar heading:  22px 'Plus Jakarta Sans', sans-serif

-------------------------------------
*/

/* =========================================================================
   TWD360 CUSTOM STYLES & OVERRIDES
   ========================================================================= */

/* Dark IBM Blue */
.service-style-two-item.bg-ibm-dark { background-color: var(--color-primary); color: #fff; border:none; box-shadow: 0px 4px 20px rgba(0,0,0,0.1); }
.service-style-two-item.bg-ibm-dark h2 a, 
.service-style-two-item.bg-ibm-dark h3, 
.service-style-two-item.bg-ibm-dark p, 
.service-style-two-item.bg-ibm-dark ul.list-style-two li,
.service-style-two-item.bg-ibm-dark ul.list-style-two li:before { color: #fff !important; }

/* Dark Purple */
.service-style-two-item.bg-purple-dark { background-color: var(--color-secondary); color: #fff; border:none; box-shadow: 0px 4px 20px rgba(0,0,0,0.1); }
.service-style-two-item.bg-purple-dark h2 a, 
.service-style-two-item.bg-purple-dark h3, 
.service-style-two-item.bg-purple-dark p, 
.service-style-two-item.bg-purple-dark ul.list-style-two li,
.service-style-two-item.bg-purple-dark ul.list-style-two li:before { color: #fff !important; }

/* Light IBM Blue */
.service-style-two-item.bg-ibm-light { background-color: rgba(5, 74, 218, 0.06); border:none; box-shadow: 0px 4px 20px rgba(0,0,0,0.05); }

/* Light Purple */
.service-style-two-item.bg-purple-light { background-color: rgba(102, 51, 153, 0.06); border:none; box-shadow: 0px 4px 20px rgba(0,0,0,0.05); }

/* Custom Inner Pages Vertical Card Style (Solves service-style-two-item flex overflow) */
.custom-card-item { padding: 40px; border-radius: 10px; box-shadow: 0px 4px 20px rgba(0,0,0,0.05); height: 100%; display: flex; flex-direction: column; overflow: hidden; position: relative; z-index: 1; }
.custom-card-item .icon { width: 70px; height: 70px; margin-bottom: 25px; }
.custom-card-item .icon img { width: 100%; height: 100%; object-fit: contain; }
.custom-card-item h2 { font-size: 22px; font-weight: 700; margin-bottom: 15px; }
.custom-card-item h2 a { text-decoration: none; }
.custom-card-item p { flex-grow: 1; margin-bottom: 25px; line-height: 1.6; }
.custom-card-item .btn { align-self: flex-start; }

.custom-card-item.bg-ibm-dark { background-color: var(--color-primary); color: #fff; }
.custom-card-item.bg-ibm-dark h2, .custom-card-item.bg-ibm-dark h2 a, .custom-card-item.bg-ibm-dark p { color: #fff !important; }

.custom-card-item.bg-purple-dark { background-color: var(--color-secondary); color: #fff; }
.custom-card-item.bg-purple-dark h2, .custom-card-item.bg-purple-dark h2 a, .custom-card-item.bg-purple-dark p { color: #fff !important; }

.custom-card-item.bg-serv-1 { background-color: #f4f6fb; }
.custom-card-item.bg-serv-2 { background-color: #fdf3f6; }
.custom-card-item.bg-serv-3 { background-color: #ebf9f5; }
.custom-card-item.bg-serv-4 { background-color: #fef7ec; }

/* Custom Growth Items Backgrounds using #0530AD and #410093 */
.service-style-two-item.bg-growth-1 { background: linear-gradient(135deg, #0530AD, #2c18a0); border: none; box-shadow: 0px 4px 20px rgba(0,0,0,0.1); }
.service-style-two-item.bg-growth-2 { background: linear-gradient(135deg, #2c18a0, #410093); border: none; box-shadow: 0px 4px 20px rgba(0,0,0,0.1); }
.service-style-two-item.bg-growth-3 { background: linear-gradient(135deg, #0530AD, #2c18a0); border: none; box-shadow: 0px 4px 20px rgba(0,0,0,0.1); } /* Vibrant Teal */
.service-style-two-item.bg-growth-4 { background: linear-gradient(135deg, #410093, #2c18a0); border: none; box-shadow: 0px 4px 20px rgba(0,0,0,0.1); } /* Vibrant Rose */
.service-style-two-item.bg-growth-5 { background: #0530AD; border: none; box-shadow: 0px 4px 20px rgba(0,0,0,0.1); }
.service-style-two-item.bg-growth-6 { background: #410093; border: none; box-shadow: 0px 4px 20px rgba(0,0,0,0.1); }

/* Reduce overall layout blank space around the items */
[class*="bg-growth-"] {
    padding: 50px 50px !important;
}
[class*="bg-growth-"] .left-info {
    justify-content: center !important;
    gap: 15px !important;
}

/* Restore the white gap between slide 3 (Social Media) and slide 4 (Email) */
.service-style-two-item:nth-child(3) {
    margin-bottom: 30px !important;
}

/* Text colors for all custom growth backgrounds (now all dark) */
[class*="bg-growth-"] h2 a, 
[class*="bg-growth-"] h3, 
[class*="bg-growth-"] p, 
[class*="bg-growth-"] ul.list-style-two li, 
[class*="bg-growth-"] ul.list-style-two li:before {
    color: #ffffff !important;
}

[class*="bg-growth-"] .thumb {
    width: 250px;
    height: 250px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    overflow: hidden;
    padding: 20px;
}
.bg-growth-1 .thumb { background: #ffffff; }
.bg-growth-2 .thumb { background: #ffffff; }
.bg-growth-3 .thumb { background: #ffffff; }
.bg-growth-4 .thumb { background: #ffffff; }
.bg-growth-5 .thumb { background: #ffffff; }
.bg-growth-6 .thumb { background: #ffffff; }

[class*="bg-growth-"] .thumb img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

[class*="bg-growth-"] .thumb::after {
    background: #ffffff !important;
}


/* Base styling and Hover rules for all 6 buttons */
[class*="bg-growth-"] a.btn-style-one {
    color: #ffffff !important;
    border-color: rgba(255,255,255,0.6) !important;
    background: transparent !important;
}

/* Use the theme's sliding animation but change the sweep color to white */
[class*="bg-growth-"] a.btn-style-one::after {
    background: #ffffff !important;
}

/* Update text color specifically to contrast the new sweeping white background */
[class*="bg-growth-"] a.btn-style-one:hover,
[class*="bg-growth-"] a.btn-style-one:focus,
[class*="bg-growth-"] a.btn-style-one:active {
    color: #0530AD !important;
    border-color: #ffffff !important;
}

/* Top-Level Menu Titles Casing & Size Adjustment */
nav.navbar ul.nav > li > a {
    text-transform: none !important;
}

/* --- Unique Expertise FontAwesome Badges --- */
.custom-icon-wrapper {
    width: 70px !important;
    height: 70px !important;
    min-height: 70px !important;
    background: linear-gradient(135deg, rgba(255,255,255,1), rgba(240,240,245,0.9)) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.06) !important;
    margin-bottom: 25px !important;
    padding: 0 !important;
}
.custom-icon-wrapper i {
    font-size: 30px !important;
    color: var(--color-primary) !important;
    background: -webkit-linear-gradient(135deg, var(--color-primary), #a04cf4) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    margin: 0 !important;
}
@media (min-width: 1024px) {
    nav.navbar ul.nav > li > a {
        font-size: 17px !important;
    }
}

/* Dropdown and Footer Hover Styles */
ul.dropdown-menu > li > a:hover {
    color: var(--color-primary) !important;
}
.footer-style-one-items .f-item.link ul li a:hover {
    color: var(--color-primary) !important;
}

/* Custom Portfolio Navigation Buttons */
.custom-portfolio-navs {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin-top: 40px;
}
.custom-portfolio-navs .custom-nav-btn {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: #fff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: all 0.3s ease;
    color: var(--color-primary);
    font-size: 18px;
    border: 1px solid #eaeaea;
}
.custom-portfolio-navs .custom-nav-btn i {
    margin: 0;
    transform: none !important;
}
.custom-portfolio-navs .custom-nav-btn:hover {
    background-color: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

/* Cookie Consent Custom Button Colors */
#cookie-select, #cookie-reject {
    color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}
#cookie-select:hover, #cookie-reject:hover {
    background-color: var(--color-primary) !important;
    color: #ffffff !important;
}

/* Approach Section Illustration Overlap Fix */
.expertise-style-one-area .expertise-style-one-item .item .icon {
    height: auto !important;
    min-height: 80px;
    margin-bottom: 25px;
}
.expertise-style-one-area .expertise-style-one-item .item .icon img {
    max-width: 100%;
    max-height: 160px;
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: left center;
}

/* Specific Page Container Space Reductions */
.default-padding.reduced-padding {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
}


/* =========================================================================
   RESPONSIVE DESIGN (MEDIA QUERIES)
   ========================================================================= */

/* Tablets and below (991px) */
@media (max-width: 991px) {
    /* Global Spacing Reductions */
    .default-padding { padding-top: 80px !important; padding-bottom: 80px !important; }
    .default-padding-bottom { padding-bottom: 80px !important; }
    
    /* Typography Scaling */
    h1, .heading h1, h1.title { font-size: 40px !important; line-height: 1.2 !important; }
    h2, .heading h2, h2.title { font-size: 34px !important; line-height: 1.3 !important; }

    /* Mobile core value typography */
    .core-value-title {
        font-size: 28px !important;
        line-height: 1.3 !important;
    }
    .core-value-desc {
        font-size: 16px !important;
        line-height: 1.6 !important;
        margin-top: 15px !important;
    }
    
    /* Mobile Menu Book Button Overrides */
    .mobile-nav-btn-container {
        display: block !important;
        margin: 20px 15px;
    }
    .mobile-nav-btn-container .btn {
        width: 100%;
        text-align: center;
        display: block;
    }

    /* Contact forms and info flex-column fixing */
    .contact-style-one-info {
        height: auto !important;
        margin-bottom: 40px;
    }
    
    /* Adjust Banner title sizing for tablet scaling */
    .breadcrumb-area h1 {
        font-size: 36px !important;
    }
    .breadcrumb-area h3 {
         font-size: 20px !important;
    }

    .custom-card-item {
        padding: 30px !important;
    }

    /* TWD360 responsive scaling for growth cards */
    [class*="bg-growth-"] {
        grid-template-columns: 1fr !important;
        padding: 40px 30px !important;
        text-align: left !important;
    }
    [class*="bg-growth-"] .left-info {
        align-items: flex-start !important;
    }
    [class*="bg-growth-"] .right-info {
        border-left: none !important;
        padding-left: 0 !important;
        margin-top: 10px !important;
        text-align: left !important;
    }
    [class*="bg-growth-"] ul.list-style-two {
        display: inline-block !important;
        text-align: left !important;
        margin: 0 0 20px 0 !important;
    }
    [class*="bg-growth-"] a.btn-style-one {
        float: right !important;
    }
    [class*="bg-growth-"] .right-info::after {
        content: "";
        display: table;
        clear: both;
    }
    [class*="bg-growth-"] .thumb {
        width: 200px;
        height: 200px;
        padding: 15px;
        margin: 20px auto !important;
    }

    /* TWD360 responsive scaling for custom icons */
    .custom-icon-wrapper {
        width: 60px !important;
        height: 60px !important;
        min-height: 60px !important;
    }
    .custom-icon-wrapper i {
        font-size: 26px !important;
    }
}

/* Mobile Phones (767px) */
@media (max-width: 767px) {
    /* Extensive Spacing Reductions */
    .default-padding { padding-top: 60px !important; padding-bottom: 60px !important; }
    .default-padding-bottom { padding-bottom: 60px !important; }

    /* Extensive Typography Scaling */
    h1, .heading h1, h1.title { font-size: 32px !important; line-height: 1.2 !important; }
    h2, .heading h2, h2.title { font-size: 28px !important; line-height: 1.3 !important; }
    h3, .heading h3 { font-size: 22px !important; line-height: 1.4 !important; }
    h4 { font-size: 20px !important; }

    /* Fix image overflows constraints */
    img { max-width: 100% !important; height: auto !important; }

    /* Stack elements properly horizontally to vertically */
    .row { margin-left: -15px; margin-right: -15px; }
    
    /* Align blocks nicely on mobile */
    p { font-size: 16px !important; line-height: 1.6 !important; }
    
    /* Compress card padding extensively for mobile screens */
    .custom-card-item {
        padding: 25px !important;
        margin-bottom: 30px !important;
    }
    .custom-card-item h2 {
        font-size: 22px !important;
    }
    .custom-card-item .icon {
        width: 50px;
        height: 50px;
        margin-bottom: 15px;
    }
    
    /* Responsive overrides for custom icon wrappers forcing small size */
    .custom-icon-wrapper {
        width: 55px !important;
        height: 55px !important;
        min-height: 55px !important;
        margin-bottom: 15px !important;
    }
    .custom-icon-wrapper i {
        font-size: 24px !important;
    }
    
    /* Extreme compression for growth thumbnails and padding to fit small mobile */
    [class*="bg-growth-"] {
        padding: 30px 20px !important;
    }
    [class*="bg-growth-"] .thumb {
        width: 150px;
        height: 150px;
        padding: 10px;
        margin-bottom: 20px !important;
    }
    [class*="bg-growth-"] .left-info {
        gap: 10px !important;
    }

    /* Banners adjustments */
    .breadcrumb-area {
        padding: 80px 0 60px !important;
    }
    .breadcrumb-area h1 {
        font-size: 28px !important; 
    }
    .breadcrumb-area h3 {
        font-size: 16px !important;
        margin-top: 10px !important;
    }
    
    /* Remove strict d-flex row heights on stacked items */
    .expertise-style-one-item .item {
        height: auto !important;
        padding: 30px 20px !important;
        margin-bottom: 30px;
    }
    
    /* Call to Action mobile fix */
    .call-to-action-area h2 {
        font-size: 26px !important;
    }
    .call-to-action-area a.btn {
        display: block;
        width: 100%;
        margin: 10px 0 !important;
    }

    /* Standard Flex items stacking spacing override */
    .portfolio-style-two-item, .service-style-two-item, .blog-style-two-item {
        margin-bottom: 30px;
    }
}
/* Fix for active menu strike-through on mobile */
@media (max-width: 991px) {
    nav.navbar.validnavs ul.nav > li.active > a::before,
    nav.navbar.validnavs ul.nav > li.active > a::after {
        display: none !important;
    }
    nav.navbar.validnavs ul.nav > li.active > a {
        color: #410093 !important; /* Force theme purple on mobile */
    }
}

/* =========================================
   Floating Contact Icons 
   (Global Styles across all responsive breakpoints)
   ========================================= */
.floating-contact-wrap {
    position: fixed;
    bottom: 30px;
    right: 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    z-index: 2147483647 !important; /* Maximum z-index to overlay everything */
}
.floating-contact-btn {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    color: #ffffff !important;
    font-size: 32px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    line-height: 1 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}
.floating-contact-btn i {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    display: flex;
    align-items: center;
    justify-content: center;
}
.floating-contact-btn:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
    color: #ffffff !important;
}
.floating-btn-whatsapp {
    background-color: #25D366 !important;
}
.floating-btn-call {
    background-color: #410093 !important; /* Theme purple color */
}

/* Responsive Screen Sizes */
@media (max-width: 1199px) {
    .floating-contact-wrap {
        bottom: 25px;
        right: 25px;
        gap: 12px;
    }
    .floating-contact-btn {
        width: 55px;
        height: 55px;
        font-size: 30px !important;
    }
}
@media (max-width: 991px) {
    .floating-contact-wrap {
        bottom: 20px;
        right: 20px;
        gap: 10px;
    }
    .floating-contact-btn {
        width: 50px;
        height: 50px;
        font-size: 26px !important;
    }
}
@media (max-width: 767px) {
    .floating-contact-wrap {
        bottom: 15px;
        right: 15px;
        gap: 8px;
    }
    .floating-contact-btn {
        width: 45px;
        height: 45px;
        font-size: 24px !important;
    }
}
@media (max-width: 480px) {
    .floating-contact-wrap {
        bottom: 15px;
        right: 15px;
        gap: 8px;
    }
    .floating-contact-btn {
        width: 40px;
        height: 40px;
        font-size: 20px !important;
    }
}
/* Comprehensive Fix for active menu strike-through on mobile */
@media (max-width: 991px) {
    nav.navbar.validnavs ul.nav > li.active > a::before,
    nav.navbar.validnavs ul.nav > li.active > a::after,
    nav.navbar.validnavs ul.nav > li > a.active::before,
    nav.navbar.validnavs ul.nav > li > a.active::after,
    .navbar-default.validnavs.active-border ul.nav>li.active>a::before,
    .navbar-default.validnavs.active-border ul.nav>li>a.active::before {
        display: none !important;
        content: none !important;
    }
    nav.navbar.validnavs ul.nav > li.active > a,
    nav.navbar.validnavs ul.nav > li > a.active {
        color: #410093 !important; /* Force theme purple on mobile */
        text-decoration: none !important;
        border-bottom: none !important;
        box-shadow: none !important;
    }
}
