/**
 * Creative Website Solution — UI motion & 2026 polish layer
 * Loads after main styles; does not replace layout or content.
 */

:root {
    --ui-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --ui-ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
    --ui-radius-lg: 20px;
    --ui-radius-pill: 999px;
    --ui-shadow-sm: 0 4px 24px rgba(15, 23, 42, 0.06);
    --ui-shadow-md: 0 12px 40px rgba(15, 23, 42, 0.1);
    --ui-shadow-glow: 0 0 0 1px rgba(255, 255, 255, 0.08) inset, 0 20px 50px rgba(19, 66, 39, 0.12);
}

html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    section.ui-motion-pending,
    footer.ui-motion-pending {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Scrollbar — subtle, rounded */
::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}

::-webkit-scrollbar-thumb {
    border-radius: var(--ui-radius-pill);
    background: linear-gradient(180deg, #43b649 0%, #15572a 55%, #0f3d1f 100%);
    border: 2px solid rgba(245, 245, 245, 0.9);
}

::-webkit-scrollbar-track {
    background: #f0f0f2;
}

/* Hero depth — gradient mesh over existing image */
.home-banner,
.main-banner.home-banner {
    position: relative;
    isolation: isolate;
}

.home-banner::before,
.main-banner.home-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 120% 80% at 18% 22%, rgba(67, 182, 73, 0.28) 0%, transparent 52%),
        radial-gradient(ellipse 100% 60% at 82% 58%, rgba(21, 87, 42, 0.22) 0%, transparent 50%),
        linear-gradient(105deg, rgba(5, 6, 7, 0.45) 0%, rgba(5, 6, 7, 0.12) 45%, rgba(5, 6, 7, 0.35) 100%);
    animation: ui-hero-mesh 18s var(--ui-ease-soft) infinite alternate;
}

.home-banner > .container-fluid,
.main-banner.home-banner > .container-fluid {
    position: relative;
    z-index: 1;
}

@keyframes ui-hero-mesh {
    0% {
        opacity: 0.85;
        transform: scale(1);
    }
    100% {
        opacity: 1;
        transform: scale(1.03);
    }
}

.banner-right img {
    animation: ui-hero-float 7s var(--ui-ease-soft) infinite;
    will-change: transform;
    filter: drop-shadow(0 24px 48px rgba(0, 0, 0, 0.25));
}

@keyframes ui-hero-float {
    0%,
    100% {
        transform: translateY(0) scale(1);
    }
    50% {
        transform: translateY(-12px) scale(1.01);
    }
}

/* Primary CTA */
.main-btn a {
    transition:
        transform 0.45s var(--ui-ease-out),
        box-shadow 0.45s var(--ui-ease-out),
        filter 0.35s var(--ui-ease-soft);
    box-shadow: 0 8px 28px rgba(67, 182, 73, 0.35);
}

.main-btn a:hover {
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 14px 36px rgba(67, 182, 73, 0.45);
    filter: brightness(1.05);
}

/* Header — glass when sticky */
header {
    transition:
        background 0.4s var(--ui-ease-soft),
        box-shadow 0.4s var(--ui-ease-soft),
        backdrop-filter 0.4s var(--ui-ease-soft),
        padding 0.35s var(--ui-ease-soft);
}

header.sticky-header {
    background: rgba(255, 255, 255, 0.82) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.35);
    backdrop-filter: blur(14px) saturate(1.35);
    box-shadow: var(--ui-shadow-sm) !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}

.menu-inner > ul > li > a {
    position: relative;
    transition: color 0.35s var(--ui-ease-soft), opacity 0.35s var(--ui-ease-soft);
}

.menu-inner > ul > li > a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 12px;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, #15572a, #43b649);
    border-radius: 2px;
    transform: translateX(-50%);
    transition: width 0.4s var(--ui-ease-out);
    opacity: 0.95;
}

header:not(.sticky-header) .menu-inner > ul > li > a::after {
    background: linear-gradient(90deg, #fff, rgba(255, 255, 255, 0.5));
}

.menu-inner > ul > li > a:hover::after,
.menu-inner > ul > li:hover > a::after {
    width: 70%;
}

header.sticky-header .menu-inner > ul > li > a::after {
    bottom: 10px;
}

/* Section titles */
.title-main h3 {
    letter-spacing: -0.02em;
    transition: color 0.35s var(--ui-ease-soft);
}

.title-main h2 {
    transition: color 0.35s var(--ui-ease-soft);
}

/* Portfolio cards — only showcase grids (see portfolio-section-ui.css) */
.sec-portfolio .portfolio-box ul li,
.inner-portfolio .portfolio-box ul li {
    border-radius: var(--ui-radius-lg);
    overflow: hidden;
    transition: transform 0.5s var(--ui-ease-out);
}

.sec-portfolio .portfolio-item img,
.inner-portfolio .portfolio-item img {
    transition: transform 0.65s var(--ui-ease-out);
}

/* Tab pills */
.custom-tab-list ul li a {
    border-radius: var(--ui-radius-pill) !important;
    transition:
        transform 0.35s var(--ui-ease-out),
        box-shadow 0.35s var(--ui-ease-out),
        background 0.35s var(--ui-ease-soft),
        color 0.35s var(--ui-ease-soft) !important;
}

.custom-tab-list ul li.active a,
.custom-tab-list ul li:hover a {
    box-shadow: 0 8px 24px rgba(67, 182, 73, 0.28);
    transform: translateY(-1px);
}

/* CTA strip */
.cta-new-main .cta-main-box,
.cta-main-box {
    border-radius: var(--ui-radius-lg);
    transition: box-shadow 0.45s var(--ui-ease-out);
}

.cta-new-main .cta-main-box:hover,
.cta-main-box:hover {
    box-shadow: var(--ui-shadow-glow);
}

/* Footer polish */
footer a {
    transition: color 0.3s var(--ui-ease-soft), opacity 0.3s var(--ui-ease-soft);
}

footer a:hover {
    opacity: 0.92;
}

/* Dropdown */
.menu-inner ul li.parent-ul ul.drpdown {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--ui-shadow-md);
    transition: opacity 0.3s var(--ui-ease-soft), transform 0.35s var(--ui-ease-out);
}

/* Slick controls */
.slick-dots li button {
    border-radius: var(--ui-radius-pill) !important;
    transition: transform 0.35s var(--ui-ease-out), background 0.35s var(--ui-ease-soft);
}

.slick-dots li button:hover {
    transform: scale(1.15);
}

span.arrows {
    border-radius: 10px !important;
    transition: background 0.3s var(--ui-ease-soft), transform 0.3s var(--ui-ease-out);
}

span.arrows:hover {
    transform: scale(1.06);
    background: #c8d0d6 !important;
}

/* Forms focus (where inputs exist) */
input:focus,
select:focus,
textarea:focus,
button:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(67, 182, 73, 0.28);
}

/* Scroll reveal (class toggled by JS) */
section.ui-motion-pending,
footer.ui-motion-pending {
    opacity: 0;
    transform: translateY(32px);
    filter: blur(4px);
}

section.ui-motion-visible,
footer.ui-motion-visible {
    opacity: 1;
    transform: translateY(0);
    filter: none;
    transition:
        opacity 0.85s var(--ui-ease-out),
        transform 0.85s var(--ui-ease-out),
        filter 0.6s var(--ui-ease-soft);
}

/* Homepage industries grid — was 6 columns at all widths (text overlap on mobile) */
.industry-boxes ul li {
    box-sizing: border-box;
}

@media (max-width: 991.98px) {
    .industry-boxes ul li {
        width: 33.333%;
        flex: 0 0 33.333%;
        max-width: 33.333%;
        padding: 28px 10px 26px;
        min-height: 0;
    }

    .industry-boxes ul li img {
        max-height: 50px;
        width: auto;
    }

    .industry-boxes ul li h3 {
        width: 100%;
        max-width: 100%;
        margin: 14px 0 0;
        font-size: 12px;
        line-height: 1.35;
        text-align: center;
        word-wrap: break-word;
        overflow-wrap: break-word;
        hyphens: none;
    }
}

@media (max-width: 575.98px) {
    .industry-boxes ul li {
        width: 50%;
        flex: 0 0 50%;
        max-width: 50%;
        padding: 20px 12px 18px;
    }

    .industry-boxes ul li img {
        max-height: 42px;
    }

    .industry-boxes ul li h3 {
        font-size: 10px;
        letter-spacing: 0.04em;
        margin-top: 10px;
        line-height: 1.4;
    }
}

/* ---- Sticky WhatsApp CTA (footer) — pill, depth, calm motion ---- */
.contact-whatsapp {
    position: fixed !important;
    z-index: 10050;
    left: max(16px, env(safe-area-inset-left, 0px)) !important;
    bottom: max(22px, env(safe-area-inset-bottom, 0px)) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    animation: none !important;
    -webkit-animation: none !important;
    filter: drop-shadow(0 10px 28px rgba(15, 61, 31, 0.35));
    transition:
        transform 0.35s var(--ui-ease-out),
        filter 0.35s ease;
}

.contact-whatsapp:hover {
    transform: translateY(-3px) scale(1.02);
    filter: drop-shadow(0 16px 36px rgba(15, 61, 31, 0.45));
}

.contact-whatsapp:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(67, 182, 73, 0.55);
    border-radius: 999px;
}

.contact-whatsapp__glow {
    position: absolute;
    inset: -5px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(67, 182, 73, 0.35) 0%, rgba(37, 211, 102, 0.25) 50%, rgba(21, 87, 42, 0.2) 100%);
    opacity: 0.55;
    z-index: 0;
    animation: wa-glow-pulse 3.2s var(--ui-ease-soft) infinite;
    pointer-events: none;
}

.contact-whatsapp__inner {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 18px 10px 12px;
    border-radius: var(--ui-radius-pill);
    background: linear-gradient(145deg, #ffffff 0%, #f4fbf6 55%, #e8f6ec 100%);
    border: 1px solid rgba(67, 182, 73, 0.35);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 8px 22px rgba(19, 66, 39, 0.12);
}

.contact-whatsapp__icon-wrap {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 2px solid rgba(37, 211, 102, 0.55);
    box-shadow:
        0 2px 0 rgba(255, 255, 255, 0.95) inset,
        0 4px 16px rgba(37, 211, 102, 0.28);
}

.contact-whatsapp__icon {
    display: block;
    width: 32px !important;
    height: 32px !important;
    max-width: none !important;
    object-fit: contain;
}

.contact-whatsapp__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
    text-align: left;
}

.contact-whatsapp__title {
    font-family: Lato, sans-serif;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: #0f3d1f;
}

.contact-whatsapp__sub {
    font-family: Lato, sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
    color: #15572a;
    opacity: 0.92;
    max-width: 200px;
}

@keyframes wa-glow-pulse {
    0%,
    100% {
        opacity: 0.45;
    }

    50% {
        opacity: 0.9;
    }
}

@media (prefers-reduced-motion: reduce) {
    .contact-whatsapp__glow {
        animation: none;
        opacity: 0.5;
    }

    .contact-whatsapp:hover {
        transform: none;
    }
}

@media (max-width: 420px) {
    .contact-whatsapp__copy {
        display: none;
    }

    .contact-whatsapp__inner {
        padding: 10px;
        gap: 0;
    }

    .contact-whatsapp__icon-wrap {
        width: 52px;
        height: 52px;
    }

    .contact-whatsapp__icon {
        width: 34px !important;
        height: 34px !important;
    }
}
