

/*==================================================
BUTTON SYSTEM
====================================================*/

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;

    padding:16px 34px;

    font-size:0.95rem;
    font-weight:600;
    font-family:var(--body-font);

    border-radius:var(--radius-md);

    cursor:pointer;

    transition:var(--transition);

    white-space:nowrap;

    position:relative;

    overflow:hidden;
}

.btn i{
    transition:var(--transition);
}

.btn:hover i{
    transform:translateX(4px);
}

.btn:active{
    transform:scale(.98);
}


/*==================================================
PRIMARY BUTTON
====================================================*/

.btn-primary{

    background:var(--primary);

    color:var(--white);

    box-shadow:var(--shadow-md);

}

.btn-primary:hover{

    background:var(--primary-dark);

    transform:translateY(-4px);

    box-shadow:var(--shadow-lg);

}


/*==================================================
SECONDARY BUTTON
====================================================*/

.btn-secondary{

    background:var(--secondary);

    color:var(--white);

    box-shadow:var(--shadow-md);

}

.btn-secondary:hover{

    background:var(--secondary-dark);

    transform:translateY(-4px);

}


/*==================================================
OUTLINE BUTTON
====================================================*/

.btn-outline{

    border:2px solid var(--primary);

    color:var(--primary);

    background:transparent;

}

.btn-outline:hover{

    background:var(--primary);

    color:var(--white);

}


/*==================================================
LIGHT BUTTON
====================================================*/

.btn-light{

    background:var(--white);

    color:var(--primary);

    box-shadow:var(--shadow-md);

}

.btn-light:hover{

    transform:translateY(-4px);

    box-shadow:var(--shadow-lg);

}


/*==================================================
GRADIENT BUTTON
====================================================*/

.btn-gradient{

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:var(--white);

    box-shadow:var(--shadow-md);

}

.btn-gradient:hover{

    transform:translateY(-5px);

    box-shadow:var(--shadow-xl);

}


/*==================================================
BUTTON SIZES
====================================================*/

.btn-sm{

    padding:12px 24px;

    font-size:.85rem;

}

.btn-lg{

    padding:20px 42px;

    font-size:1rem;

}


/*==================================================
SECTION HEADING
====================================================*/

.section-heading{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.section-heading.center{

    align-items:center;

    text-align:center;

}

.section-heading h2{

    margin:0;

    max-width:700px;

}

.section-heading p{

    max-width:720px;

    color:var(--body);

    line-height:1.8;

}


/*==================================================
SECTION TAG
====================================================*/

.section-tag{

    width:max-content;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:10px 20px;

    border-radius:999px;

    background:#eef5ff;

    color:var(--primary);

    font-size:.85rem;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:.08em;

}


/*==================================================
COMMON CARD FOUNDATION
====================================================*/

.service-card,
.industry-card,
.stat-card,
.office-card,
.testimonial-card,
.process-card,
.feature-card{

    position:relative;

    background:var(--white);

    border-radius:var(--radius-lg);

    overflow:hidden;

    transition:var(--transition);

    box-shadow:var(--shadow-sm);

    border:1px solid var(--border);

}


/*==================================================
COMMON CARD HOVER
====================================================*/

.service-card:hover,
.industry-card:hover,
.office-card:hover,
.testimonial-card:hover,
.process-card:hover,
.feature-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow-lg);

    border-color:rgba(10,79,181,.18);

}


/*==================================================
CARD IMAGE
====================================================*/

.card-image{

    overflow:hidden;

}

.card-image img{

    transition:transform .6s ease;

}

.service-card:hover .card-image img,
.industry-card:hover .card-image img{

    transform:scale(1.06);

}


/*==================================================
CARD BODY
====================================================*/

.card-body{

    padding:32px;

}

.card-body h3{

    margin-bottom:18px;

}

.card-body p{

    color:var(--body);

}


/*==================================================
CARD FOOTER
====================================================*/

.card-footer{

    margin-top:30px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}


/*==================================================
BADGE
====================================================*/

.badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:8px 16px;

    border-radius:999px;

    background:rgba(10,79,181,.08);

    color:var(--primary);

    font-size:.8rem;

    font-weight:600;

}


/*==================================================
SERVICE LINK
====================================================*/

.service-link{

    display:inline-flex;

    align-items:center;

    gap:10px;

    color:var(--primary);

    font-weight:600;

    transition:var(--transition);

}

.service-link i{

    transition:var(--transition);

}

.service-link:hover{

    color:var(--secondary);

}

.service-link:hover i{

    transform:translateX(6px);

}


/*==================================================
STATISTICS CARD
====================================================*/

.stat-card{

    padding:40px 30px;

    text-align:center;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:18px;

    min-height:240px;

}

.stat-card:hover{

    transform:translateY(-8px);

}

.stat-icon{

    width:72px;

    height:72px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(10,79,181,.08);

    color:var(--primary);

    font-size:1.75rem;

}

.stat-number{

    font-size:3rem;

    font-weight:700;

    color:var(--primary);

    line-height:1;

}

.stat-title{

    font-size:1rem;

    font-weight:600;

    color:var(--heading);

}

.stat-description{

    font-size:.95rem;

    color:var(--body);

}


/*==================================================
SERVICE CARD
====================================================*/

.service-card{

    display:flex;

    flex-direction:column;

    height:100%;

}

.service-card .card-image{

    height:240px;

}

.service-card .card-image img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.service-card .card-body{

    display:flex;

    flex-direction:column;

    flex:1;

}

.service-card h3{

    margin-bottom:18px;

}

.service-card p{

    margin-bottom:22px;

}


/*==================================================
SERVICE LIST
====================================================*/

.service-list{

    display:flex;

    flex-direction:column;

    gap:12px;

    margin-bottom:30px;

}

.service-list li{

    display:flex;

    align-items:flex-start;

    gap:12px;

    color:var(--body);

    font-size:.95rem;

    line-height:1.6;

}

.service-list li i{

    color:var(--primary);

    margin-top:4px;

    flex-shrink:0;

}


/*==================================================
SERVICE CARD FOOTER
====================================================*/

.service-card .card-footer{

    margin-top:auto;

    padding-top:24px;

    border-top:1px solid var(--border);

}


/*==================================================
SERVICE HOVER BORDER
====================================================*/

.service-card::before{

    content:"";

    position:absolute;

    inset:0;

    border:2px solid transparent;

    border-radius:inherit;

    transition:var(--transition);

    pointer-events:none;

}

.service-card:hover::before{

    border-color:rgba(10,79,181,.25);

}


/*==================================================
INDUSTRY CARD
====================================================*/

.industry-card{

    padding:40px 28px;

    text-align:center;

}

.industry-icon{

    width:80px;

    height:80px;

    margin:0 auto 24px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(10,79,181,.08);

    color:var(--primary);

    font-size:2rem;

}

.industry-card h3{

    margin-bottom:14px;

}

.industry-card p{

    margin-bottom:0;

}


/*==================================================
INDUSTRY HOVER
====================================================*/

.industry-card:hover .industry-icon{

    background:var(--primary);

    color:var(--white);

    transform:rotate(8deg);

}


/*==================================================
WHY CHOOSE US CARD
====================================================*/

.feature-card{

    padding:36px;

}

.feature-icon{

    width:72px;

    height:72px;

    border-radius:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(10,79,181,.08);

    color:var(--primary);

    font-size:2rem;

    margin-bottom:24px;

}

.feature-card h3{

    margin-bottom:16px;

}

.feature-card:hover .feature-icon{

    transform:translateY(-4px);

}


/*==================================================
PROCESS CARD
====================================================*/

.process-card{

    padding:36px;

    text-align:center;

}

.process-number{

    width:52px;

    height:52px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:var(--primary);

    color:var(--white);

    font-weight:700;

    margin:0 auto 24px;

}

.process-card h3{

    margin-bottom:16px;

}

/*==================================================
TESTIMONIAL CARD
====================================================*/

.testimonial-card{

    display:flex;

    flex-direction:column;

    padding:36px;

    height:100%;

}

.testimonial-rating{

    display:flex;

    align-items:center;

    gap:6px;

    margin-bottom:20px;

    color:#FBBF24;

    font-size:1rem;

}

.testimonial-text{

    font-size:1rem;

    line-height:1.8;

    color:var(--body);

    margin-bottom:30px;

    flex:1;

}

.testimonial-author{

    display:flex;

    align-items:center;

    gap:16px;

}

.testimonial-author img{

    width:64px;

    height:64px;

    border-radius:50%;

    object-fit:cover;

}

.author-info h4{

    margin-bottom:4px;

}

.author-info span{

    color:var(--body);

    font-size:.9rem;

}


/*==================================================
TESTIMONIAL HOVER
====================================================*/

.testimonial-card:hover{

    transform:translateY(-8px);

}

.testimonial-card:hover .testimonial-author img{

    transform:scale(1.05);

}


/*==================================================
OFFICE CARD
====================================================*/

.office-card{

    padding:36px;

    display:flex;

    flex-direction:column;

    gap:22px;

}

.office-card h3{

    margin-bottom:8px;

}

.office-info{

    display:flex;

    align-items:flex-start;

    gap:16px;

}

.office-info i{

    color:var(--primary);

    font-size:1.2rem;

    width:24px;

    margin-top:4px;

}

.office-info p,

.office-info a{

    color:var(--body);

    line-height:1.7;

}

.office-card:hover{

    border-color:rgba(10,79,181,.25);

}


/*==================================================
CONTACT FORM
====================================================*/

.contact-form{

    display:flex;

    flex-direction:column;

    gap:24px;

}

.form-group{

    display:flex;

    flex-direction:column;

    gap:10px;

}

.form-group label{

    font-weight:600;

    color:var(--heading);

}

.form-control{

    width:100%;

    padding:16px 20px;

    border:1px solid var(--border);

    border-radius:var(--radius-md);

    background:var(--white);

    transition:var(--transition);

}

.form-control:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(10,79,181,.10);

}

textarea.form-control{

    min-height:180px;

}


/*==================================================
INLINE FORM GRID
====================================================*/

.form-row{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:24px;

}


/*==================================================
CONTACT DETAILS
====================================================*/

.contact-details{

    display:flex;

    flex-direction:column;

    gap:28px;

}

.contact-item{

    display:flex;

    align-items:flex-start;

    gap:18px;

}

.contact-item-icon{

    width:56px;

    height:56px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(10,79,181,.08);

    color:var(--primary);

    font-size:1.4rem;

}

.contact-item-content h4{

    margin-bottom:8px;

}

.contact-item-content p{

    margin:0;

}


/*==================================================
SOCIAL ICONS
====================================================*/

.social-links{

    display:flex;

    align-items:center;

    gap:14px;

}

.social-links a{

    width:48px;

    height:48px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:var(--gray-100);

    color:var(--primary);

    transition:var(--transition);

}

.social-links a:hover{

    background:var(--primary);

    color:var(--white);

    transform:translateY(-4px);

}


/*==================================================
NEWSLETTER
====================================================*/

.newsletter-form{

    display:flex;

    gap:16px;

}

.newsletter-form input{

    flex:1;

}


/*==================================================
CALL TO ACTION BANNER
====================================================*/

.cta-banner{

    position:relative;

    overflow:hidden;

    border-radius:var(--radius-xl);

    padding:70px;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:var(--white);

    box-shadow:var(--shadow-xl);

}

.cta-banner-content{

    max-width:700px;

    position:relative;

    z-index:2;

}

.cta-banner h2{

    color:var(--white);

    margin-bottom:24px;

}

.cta-banner p{

    color:rgba(255,255,255,.90);

    margin-bottom:36px;

    font-size:1.05rem;

}


/*==================================================
CTA DECORATION
====================================================*/

.cta-banner::before{

    content:"";

    position:absolute;

    top:-120px;

    right:-120px;

    width:320px;

    height:320px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

}

.cta-banner::after{

    content:"";

    position:absolute;

    bottom:-140px;

    left:-100px;

    width:260px;

    height:260px;

    border-radius:50%;

    background:rgba(255,255,255,.05);

}


/*==================================================
FAQ COMPONENT
====================================================*/

.faq-item{

    background:var(--white);

    border:1px solid var(--border);

    border-radius:var(--radius-lg);

    margin-bottom:18px;

    overflow:hidden;

    transition:var(--transition);

}

.faq-item:hover{

    border-color:rgba(10,79,181,.18);

    box-shadow:var(--shadow-md);

}

.faq-question{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    padding:24px 30px;

    cursor:pointer;

    font-weight:600;

}

.faq-question i{

    transition:var(--transition);

}

.faq-item.active .faq-question i{

    transform:rotate(180deg);

}

.faq-answer{

    display:none;

    padding:0 30px 30px;

    line-height:1.8;

    color:var(--body);

}

.faq-item.active .faq-answer{

    display:block;

}


/*==================================================
TRUSTED CLIENT LOGO
====================================================*/

.client-logo{

    display:flex;

    align-items:center;

    justify-content:center;

    padding:24px;

    background:var(--white);

    border-radius:var(--radius-lg);

    transition:var(--transition);

}

.client-logo img{

    width:100%;

    max-width:170px;

    filter:grayscale(1);

    opacity:.65;

    transition:var(--transition);

}

.client-logo:hover img{

    filter:grayscale(0);

    opacity:1;

    transform:scale(1.05);

}


/*==================================================
LOGO CAROUSEL
====================================================*/

.client-track{

    display:flex;

    align-items:center;

    gap:50px;

    width:max-content;

}

.client-slider{

    overflow:hidden;

    position:relative;

    width:100%;

}


/*==================================================
SCROLL INDICATOR
====================================================*/

.scroll-indicator{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:12px;

}

.scroll-mouse{

    width:32px;

    height:54px;

    border:2px solid rgba(255,255,255,.6);

    border-radius:30px;

    position:relative;

}

.scroll-wheel{

    position:absolute;

    top:8px;

    left:50%;

    transform:translateX(-50%);

    width:4px;

    height:10px;

    border-radius:20px;

    background:var(--white);

    animation:scrollWheel 2s infinite;

}


/*==================================================
LOADER
====================================================*/

.loader{

    width:50px;

    height:50px;

    border-radius:50%;

    border:4px solid rgba(10,79,181,.15);

    border-top-color:var(--primary);

    animation:spin .8s linear infinite;

}


/*==================================================
DIVIDER
====================================================*/

.divider{

    width:80px;

    height:4px;

    border-radius:999px;

    background:var(--primary);

    margin:20px 0;

}


/*==================================================
ICON BOX
====================================================*/

.icon-box{

    width:72px;

    height:72px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:18px;

    background:rgba(10,79,181,.08);

    color:var(--primary);

    font-size:2rem;

}

/*==================================================
GLASS EFFECT
====================================================*/

.glass{

    background:rgba(255,255,255,.75);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    border:1px solid rgba(255,255,255,.18);

}


/*==================================================
SECTION OVERLAY
====================================================*/

.section-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.15)
    );

    pointer-events:none;

}


/*==================================================
BREADCRUMB
====================================================*/

.breadcrumb{

    display:flex;

    align-items:center;

    gap:12px;

    flex-wrap:wrap;

    font-size:.95rem;

}

.breadcrumb a{

    color:var(--body);

    transition:var(--transition);

}

.breadcrumb a:hover{

    color:var(--primary);

}

.breadcrumb span{

    color:var(--heading);

    font-weight:600;

}


/*==================================================
PAGINATION
====================================================*/

.pagination{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:12px;

}

.pagination a{

    width:46px;

    height:46px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:var(--white);

    border:1px solid var(--border);

    transition:var(--transition);

}

.pagination a:hover,

.pagination a.active{

    background:var(--primary);

    color:var(--white);

}


/*==================================================
BACK TO TOP BUTTON
====================================================*/

.back-to-top{

    position:fixed;

    right:30px;

    bottom:30px;

    width:56px;

    height:56px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:var(--primary);

    color:var(--white);

    box-shadow:var(--shadow-lg);

    cursor:pointer;

    opacity:0;

    visibility:hidden;

    transform:translateY(20px);

    transition:var(--transition);

    z-index:999;

}

.back-to-top.show{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}

.back-to-top:hover{

    background:var(--secondary);

    transform:translateY(-4px);

}


/*==================================================
MOBILE MENU TOGGLE
====================================================*/

.menu-toggle{

    width:52px;

    height:52px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:6px;

    cursor:pointer;

}

.menu-toggle span{

    width:26px;

    height:2px;

    background:var(--heading);

    transition:var(--transition);

}

.menu-toggle.active span:nth-child(1){

    transform:rotate(45deg) translate(6px,6px);

}

.menu-toggle.active span:nth-child(2){

    opacity:0;

}

.menu-toggle.active span:nth-child(3){

    transform:rotate(-45deg) translate(5px,-5px);

}


/*==================================================
OFF CANVAS MENU
====================================================*/

.mobile-menu{

    position:fixed;

    top:0;

    right:-100%;

    width:320px;

    height:100vh;

    background:var(--white);

    box-shadow:var(--shadow-xl);

    transition:.45s ease;

    z-index:9999;

    overflow-y:auto;

}

.mobile-menu.active{

    right:0;

}

.mobile-overlay{

    position:fixed;

    inset:0;

    background:rgba(17,24,39,.45);

    opacity:0;

    visibility:hidden;

    transition:var(--transition);

    z-index:9998;

}

.mobile-overlay.active{

    opacity:1;

    visibility:visible;

}


/*==================================================
LOADING STATE
====================================================*/

.loading{

    pointer-events:none;

    opacity:.65;

}


/*==================================================
EMPTY STATE
====================================================*/

.empty-state{

    text-align:center;

    padding:60px 30px;

}

.empty-state i{

    font-size:4rem;

    color:var(--primary);

    margin-bottom:20px;

}


/*==================================================
SCREEN READER ONLY
====================================================*/

.sr-only{

    position:absolute;

    width:1px;

    height:1px;

    padding:0;

    margin:-1px;

    overflow:hidden;

    clip:rect(0,0,0,0);

    white-space:nowrap;

    border:0;

}


/*==================================================
FOCUS RING
====================================================*/

.focus-ring:focus-visible{

    outline:3px solid rgba(10,79,181,.35);

    outline-offset:4px;

}

/*==================================================
DISPLAY UTILITIES
====================================================*/

.d-none{

    display:none !important;

}

.d-block{

    display:block !important;

}

.d-flex{

    display:flex !important;

}

.d-grid{

    display:grid !important;

}

.align-center{

    align-items:center !important;

}

.justify-center{

    justify-content:center !important;

}

.justify-between{

    justify-content:space-between !important;

}

.flex-column{

    flex-direction:column !important;

}


/*==================================================
TEXT ALIGNMENT
====================================================*/

.text-left{

    text-align:left !important;

}

.text-center{

    text-align:center !important;

}

.text-right{

    text-align:right !important;

}


/*==================================================
FONT WEIGHT
====================================================*/

.fw-400{

    font-weight:400 !important;

}

.fw-500{

    font-weight:500 !important;

}

.fw-600{

    font-weight:600 !important;

}

.fw-700{

    font-weight:700 !important;

}


/*==================================================
TEXT COLORS
====================================================*/

.text-primary{

    color:var(--primary) !important;

}

.text-secondary{

    color:var(--secondary) !important;

}

.text-white{

    color:var(--white) !important;

}

.text-body{

    color:var(--body) !important;

}

.text-heading{

    color:var(--heading) !important;

}


/*==================================================
BACKGROUND COLORS
====================================================*/

.bg-primary{

    background:var(--primary) !important;

}

.bg-secondary{

    background:var(--secondary) !important;

}

.bg-white{

    background:var(--white) !important;

}

.bg-light{

    background:var(--light) !important;

}

.bg-dark{

    background:var(--dark) !important;

}


/*==================================================
BORDER RADIUS
====================================================*/

.radius-sm{

    border-radius:var(--radius-sm);

}

.radius-md{

    border-radius:var(--radius-md);

}

.radius-lg{

    border-radius:var(--radius-lg);

}

.radius-xl{

    border-radius:var(--radius-xl);

}


/*==================================================
SHADOW UTILITIES
====================================================*/

.shadow-sm{

    box-shadow:var(--shadow-sm);

}

.shadow-md{

    box-shadow:var(--shadow-md);

}

.shadow-lg{

    box-shadow:var(--shadow-lg);

}

.shadow-xl{

    box-shadow:var(--shadow-xl);

}


/*==================================================
VISIBILITY
====================================================*/

.visible{

    visibility:visible;

}

.invisible{

    visibility:hidden;

}


/*==================================================
OVERFLOW
====================================================*/

.overflow-hidden{

    overflow:hidden;

}

.position-relative{

    position:relative;

}

.position-absolute{

    position:absolute;

}


/*==================================================
TRANSITIONS
====================================================*/

.transition{

    transition:var(--transition);

}


/*==================================================
CURSOR
====================================================*/

.cursor-pointer{

    cursor:pointer;

}


/*==================================================
OBJECT FIT
====================================================*/

.object-cover{

    object-fit:cover;

}

.object-contain{

    object-fit:contain;

}


/*==================================================
IMAGE RESPONSIVE
====================================================*/

.img-fluid{

    max-width:100%;

    height:auto;

    display:block;

}


/*==================================================
PRINT STYLES
====================================================*/

@media print{

    .no-print{

        display:none !important;

    }

}


/*==================================================
REDUCED MOTION
====================================================*/

@media (prefers-reduced-motion: reduce){

    *{

        animation-duration:.01ms !important;

        animation-iteration-count:1 !important;

        transition-duration:.01ms !important;

        scroll-behavior:auto !important;

    }

}
