﻿/* =========================================================
   FORCENEXA IT SOLUTIONS
   PREMIUM CONTACT PAGE CSS
   Theme:
   Deep Navy + Electric Blue
   SaaS / Corporate / Technology
========================================================= */
/* =========================================================
   01. CONTACT PAGE VARIABLES
========================================================= */
:root {
    --fn-primary: #2563eb;
    --fn-primary-dark: #1d4ed8;
    --fn-primary-light: #eff6ff;
    --fn-navy: #0b1736;
    --fn-navy-2: #101f46;
    --fn-navy-3: #162a57;
    --fn-text: #172033;
    --fn-text-soft: #5f6b7a;
    --fn-text-muted: #7d8795;
    --fn-border: #e5eaf2;
    --fn-border-light: #edf1f7;
    --fn-bg: #f7f9fc;
    --fn-bg-soft: #f9fbff;
    --fn-white: #ffffff;
    --fn-success: #16a34a;
    --fn-warning: #f59e0b;
    --fn-danger: #ef4444;
    --fn-radius-sm: 10px;
    --fn-radius-md: 16px;
    --fn-radius-lg: 22px;
    --fn-radius-xl: 28px;
    --fn-shadow-sm: 0 4px 15px rgba(15, 23, 42, 0.05);
    --fn-shadow: 0 12px 35px rgba(15, 23, 42, 0.08);
    --fn-shadow-lg: 0 25px 70px rgba(15, 23, 42, 0.12);
    --fn-transition: all 0.25s ease;
}


/* =========================================================
   02. GLOBAL CONTACT PAGE
========================================================= */

.contact-section,
.page-banner,
.related-services,
.final-cta {
    position: relative;
}

    .contact-section *,
    .page-banner *,
    .related-services *,
    .final-cta * {
        box-sizing: border-box;
    }


/* =========================================================
   03. PAGE HERO
========================================================= */

.page-banner {
    position: relative;
    padding: 65px 0 5px;
    overflow: hidden;
    background: radial-gradient( circle at 10% 20%, rgba(37, 99, 235, 0.09), transparent 30% ), radial-gradient( circle at 90% 80%, rgba(37, 99, 235, 0.07), transparent 30% ), linear-gradient( 180deg, #ffffff 0%, #f7faff 100% );
}


    /* Decorative background */

    .page-banner::before {
        content: "";
        position: absolute;
        width: 360px;
        height: 360px;
        border-radius: 50%;
        top: -180px;
        right: -120px;
        background: rgba(37, 99, 235, 0.045);
        pointer-events: none;
    }


    .page-banner::after {
        content: "";
        position: absolute;
        width: 240px;
        height: 240px;
        border-radius: 50%;
        bottom: -120px;
        left: -80px;
        background: rgba(37, 99, 235, 0.04);
        pointer-events: none;
    }


    .page-banner .container {
        position: relative;
        z-index: 2;
    }


    /* Hero badge */

    .page-banner .badge {
        display: inline-flex;
        align-items: center;
        border: 1px solid rgba(37, 99, 235, 0.12);
        background: rgba(239, 246, 255, 0.9) !important;
        color: var(--fn-primary) !important;
        letter-spacing: 0.5px;
        font-size: 0.74rem;
    }


    /* Hero heading */

    .page-banner h1 {
        color: var(--fn-navy);
        letter-spacing: -1.4px;
        max-width: 650px;
    }


        .page-banner h1 .text-primary {
            color: var(--fn-primary) !important;
        }


    /* Hero paragraphs */

    .page-banner p {
        line-height: 1.75;
        max-width: 640px;
    }


    .page-banner .lead {
        font-size: 1.08rem;
    }


    /* Hero buttons */

    .page-banner .btn {
        min-height: 52px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        transition: var(--fn-transition);
    }


    .page-banner .btn-primary {
        background: var(--fn-primary);
        border-color: var(--fn-primary);
        box-shadow: 0 8px 20px rgba(37, 99, 235, 0.18);
    }


        .page-banner .btn-primary:hover {
            background: var(--fn-primary-dark);
            border-color: var(--fn-primary-dark);
            transform: translateY(-2px);
            box-shadow: 0 12px 25px rgba(37, 99, 235, 0.25);
        }


    .page-banner .btn-outline-primary {
        color: var(--fn-primary);
        border-color: rgba(37, 99, 235, 0.28);
        background: #fff;
    }


        .page-banner .btn-outline-primary:hover {
            background: var(--fn-primary);
            border-color: var(--fn-primary);
            color: #fff;
            transform: translateY(-2px);
        }


    /* Hero trust points */

    .page-banner .small {
        color: var(--fn-text-soft) !important;
    }


    .page-banner .fa-circle-check {
        font-size: 0.85rem;
    }


/* =========================================================
   04. HERO RIGHT CARD
========================================================= */

.contact-hero-card {
    position: relative;
    border: 1px solid rgba(226, 232, 240, 0.85);
    box-shadow: 0 25px 70px rgba(15, 23, 42, 0.10) !important;
    border-radius: var(--fn-radius-xl) !important;
    max-width: 520px;
    margin: 0 auto;
    overflow: hidden;
}


    .contact-hero-card::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 4px;
        background: linear-gradient( 90deg, var(--fn-primary), #60a5fa, var(--fn-primary) );
    }


    .contact-hero-card h3 {
        color: var(--fn-navy);
        letter-spacing: -0.4px;
    }


    .contact-hero-card p {
        line-height: 1.65;
    }


    .contact-hero-card > div:first-child > div {
        background: var(--fn-primary-light) !important;
        color: var(--fn-primary) !important;
    }


    /* Hero benefit icons */

    .contact-hero-card .bg-primary-subtle {
        background: var(--fn-primary-light) !important;
        color: var(--fn-primary) !important;
    }


    /* Hero CTA */

    .contact-hero-card .btn-primary {
        background: var(--fn-primary);
        border-color: var(--fn-primary);
        box-shadow: 0 8px 20px rgba(37, 99, 235, 0.16);
    }


        .contact-hero-card .btn-primary:hover {
            background: var(--fn-primary-dark);
            border-color: var(--fn-primary-dark);
            transform: translateY(-1px);
        }


/* =========================================================
   05. QUICK VALUE STRIP
========================================================= */

.page-banner + section.py-4 {
    background: #fff !important;
    border-color: var(--fn-border) !important;
}


    .page-banner + section.py-4 .row > div {
        position: relative;
    }


        .page-banner + section.py-4 .row > div:not(:last-child)::after {
            content: "";
            position: absolute;
            right: 0;
            top: 12%;
            width: 1px;
            height: 76%;
            background: var(--fn-border);
        }


    .page-banner + section.py-4 .text-primary {
        color: var(--fn-primary) !important;
    }


    .page-banner + section.py-4 .fw-bold {
        color: var(--fn-navy);
        font-size: 0.95rem;
    }


    .page-banner + section.py-4 small {
        color: var(--fn-text-muted) !important;
        line-height: 1.5;
    }


/* =========================================================
   06. CONTACT MAIN SECTION
========================================================= */

.contact-section {
/*    padding-top: 85px !important;
    padding-bottom: 85px !important;*/
    background: linear-gradient( 180deg, #f8faff 0%, #ffffff 100% );
}


/* =========================================================
   07. CONTACT INFORMATION CARD
========================================================= */

.contact-card {
    position: relative;
    padding: 32px;
    background: #fff;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg);
    box-shadow: var(--fn-shadow);
    overflow: hidden;
}


    .contact-card::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 4px;
        background: linear-gradient( 90deg, var(--fn-primary), #60a5fa );
    }


/* Contact header */

.contact-card-header {
    margin-bottom: 30px;
}


.contact-card-label {
    display: inline-block;
    margin-bottom: 9px;
    color: var(--fn-primary);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 1.3px;
}


.contact-card-header h5 {
    margin-bottom: 10px;
    color: var(--fn-navy);
    font-size: 1.25rem;
    font-weight: 700;
}


.contact-card-header p {
    margin: 0;
    color: var(--fn-text-soft);
    font-size: 0.91rem;
    line-height: 1.7;
}


/* =========================================================
   08. CONTACT INFORMATION ITEMS
========================================================= */

.contact-info-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}


.contact-info-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 15px 0;
}


.contact-icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: var(--fn-primary);
    background: var(--fn-primary-light);
    border: 1px solid rgba(37, 99, 235, 0.08);
    font-size: 0.95rem;
    transition: var(--fn-transition);
}


.contact-info-item:hover .contact-icon {
    background: var(--fn-primary);
    color: #fff;
    transform: translateY(-2px);
}


.contact-info-content {
    min-width: 0;
    padding-top: 2px;
}


.contact-info-title {
    display: block;
    margin-bottom: 3px;
    color: var(--fn-text-muted);
    font-size: 0.73rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}


.contact-info-link {
    color: var(--fn-text);
    font-size: 0.93rem;
    font-weight: 600;
    text-decoration: none;
    transition: var(--fn-transition);
}


    .contact-info-link:hover {
        color: var(--fn-primary);
    }


.contact-info-text {
    display: block;
    margin: 0;
    color: var(--fn-text);
    font-size: 0.9rem;
    line-height: 1.65;
}


/* =========================================================
   09. DIVIDER
========================================================= */

.contact-divider {
    height: 1px;
    margin: 23px 0;
    background: linear-gradient( 90deg, transparent, var(--fn-border), transparent );
}


/* =========================================================
   10. WHATSAPP SECTION
========================================================= */

.whatsapp-section {
    padding: 2px 0;
}


.section-heading {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 16px;
}


.section-heading-icon {
    width: 43px;
    height: 43px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 43px;
    border-radius: 12px;
    background: #ecfdf3;
    color: #16a34a;
    font-size: 1.15rem;
}


.section-heading h6 {
    margin: 0 0 2px;
    color: var(--fn-navy);
    font-size: 0.94rem;
    font-weight: 700;
}


.section-heading p {
    margin: 0;
    color: var(--fn-text-muted);
    font-size: 0.78rem;
}


.whatsapp-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    min-height: 46px;
    padding: 10px 18px;
    border-radius: 12px;
    background: #16a34a;
    color: #fff;
    text-decoration: none;
    font-size: 0.86rem;
    font-weight: 700;
    box-shadow: 0 7px 18px rgba(22, 163, 74, 0.16);
    transition: var(--fn-transition);
}


    .whatsapp-button:hover {
        background: #15803d;
        color: #fff;
        transform: translateY(-2px);
        box-shadow: 0 11px 22px rgba(22, 163, 74, 0.22);
    }


/* =========================================================
   11. SOCIAL SECTION
========================================================= */

.social-section h6 {
    margin-bottom: 4px;
    color: var(--fn-navy);
    font-size: 0.94rem;
    font-weight: 700;
}


.social-section > p {
    margin-bottom: 14px;
    color: var(--fn-text-muted);
    font-size: 0.78rem;
}


.social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}


    .social-links a {
        width: 38px;
        height: 38px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--fn-border);
        border-radius: 10px;
        background: #fff;
        color: var(--fn-text-soft);
        text-decoration: none;
        font-size: 0.86rem;
        transition: var(--fn-transition);
    }


        .social-links a:hover {
            background: var(--fn-primary);
            border-color: var(--fn-primary);
            color: #fff;
            transform: translateY(-3px);
            box-shadow: 0 7px 16px rgba(37, 99, 235, 0.18);
        }


/* =========================================================
   12. CONTACT FORM CARD
========================================================= */

.contact-form-card {
    position: relative;
    padding: 42px;
    background: #fff;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg);
    box-shadow: var(--fn-shadow-lg);
}


    .contact-form-card::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 4px;
        border-radius: var(--fn-radius-lg) var(--fn-radius-lg) 0 0;
        background: linear-gradient( 90deg, var(--fn-primary), #60a5fa, var(--fn-primary) );
    }


/* =========================================================
   13. FORM HEADER
========================================================= */

.contact-form-header {
    margin-bottom: 32px;
}


.contact-form-label {
    display: inline-block;
    margin-bottom: 9px;
    color: var(--fn-primary);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 1.4px;
}


.contact-form-header h2 {
    margin-bottom: 9px;
    color: var(--fn-navy);
    font-size: 1.9rem;
    font-weight: 750;
    letter-spacing: -0.6px;
}


.contact-form-header p {
    max-width: 700px;
    margin: 0;
    color: var(--fn-text-soft);
    font-size: 0.91rem;
    line-height: 1.7;
}


/* =========================================================
   14. FORM GRID
========================================================= */

.contact-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}


.contact-field {
    min-width: 0;
}


.contact-full-field {
    margin-top: 22px;
}


/* =========================================================
   15. FORM LABELS
========================================================= */

.contact-label {
    display: block;
    margin-bottom: 8px;
    color: var(--fn-text);
    font-size: 0.82rem;
    font-weight: 700;
}


    .contact-label > span:first-of-type {
        color: var(--fn-danger);
    }


.optional-label {
    float: right;
    color: var(--fn-text-muted) !important;
    font-size: 0.7rem;
    font-weight: 500;
}


/* =========================================================
   16. INPUT WRAPPERS
========================================================= */

.contact-input-wrapper,
.contact-textarea-wrapper,
.contact-select-wrapper {
    position: relative;
}


.contact-input-icon,
.contact-select-icon,
.contact-textarea-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 0.84rem;
    pointer-events: none;
    transition: var(--fn-transition);
}


.contact-textarea-icon {
    top: 19px;
    transform: none;
}


/* =========================================================
   17. INPUT / SELECT / TEXTAREA
========================================================= */

.contact-input,
.contact-select,
.contact-textarea {
    width: 100%;
    border: 1px solid #dfe5ee;
    border-radius: 12px;
    background: #fff;
    color: var(--fn-text);
    font-size: 0.88rem;
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}


.contact-input {
    min-height: 50px;
    padding: 12px 15px 12px 44px;
}


.contact-select {
    min-height: 50px;
    padding: 12px 40px 12px 44px;
    appearance: none;
    cursor: pointer;
}


.contact-textarea {
    min-height: 135px;
    padding: 14px 15px 14px 44px;
    resize: vertical;
    line-height: 1.6;
}


    /* Placeholder */

    .contact-input::placeholder,
    .contact-textarea::placeholder {
        color: #a0a9b7;
        opacity: 1;
    }


    /* Focus */

    .contact-input:focus,
    .contact-select:focus,
    .contact-textarea:focus {
        border-color: rgba(37, 99, 235, 0.65);
        background: #fff;
        box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.08);
    }


/* Icon focus */

.contact-input-wrapper:focus-within .contact-input-icon,
.contact-select-wrapper:focus-within .contact-select-icon,
.contact-textarea-wrapper:focus-within .contact-textarea-icon {
    color: var(--fn-primary);
}


/* =========================================================
   18. PHONE INPUT
========================================================= */

.phone-input-group {
    display: flex;
    width: 100%;
}


.country-select {
    width: 112px;
    flex: 0 0 112px;
    min-height: 50px;
    padding: 10px 9px;
    border: 1px solid #dfe5ee;
    border-right: 0;
    border-radius: 12px 0 0 12px;
    background: #f8fafc;
    color: var(--fn-text);
    font-size: 0.82rem;
    outline: none;
    cursor: pointer;
}


    .country-select:focus {
        border-color: rgba(37, 99, 235, 0.65);
        box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.08);
        position: relative;
        z-index: 3;
    }


.phone-input-wrapper {
    position: relative;
    flex: 1;
    min-width: 0;
}


    .phone-input-wrapper .contact-input {
        border-radius: 0 12px 12px 0;
    }


/* =========================================================
   19. VALIDATION
========================================================= */

/*.contact-validation {
    display: block;
    min-height: 18px;
    margin-top: 5px;
    color: var(--fn-danger);
    font-size: 0.72rem;
    line-height: 1.4;
}
*/

.input-validation-error,
.contact-input.input-validation-error,
.contact-select.input-validation-error,
.contact-textarea.input-validation-error {
    border-color: rgba(239, 68, 68, 0.65) !important;
}


    .input-validation-error:focus {
        box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.08) !important;
    }


/* =========================================================
   20. FILE UPLOAD
========================================================= */

.file-upload-wrapper {
    display: flex;
    align-items: center;
    gap: 17px;
    min-height: 112px;
    padding: 20px;
    border: 1.5px dashed #cbd5e1;
    border-radius: 14px;
    background: linear-gradient( 180deg, #fbfdff, #f8faff );
    transition: var(--fn-transition);
}


    .file-upload-wrapper:hover {
        border-color: rgba(37, 99, 235, 0.5);
        background: var(--fn-primary-light);
    }


.file-upload-icon {
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    background: var(--fn-primary-light);
    color: var(--fn-primary);
    font-size: 1.15rem;
}


.file-upload-content {
    min-width: 0;
}


.file-upload-label {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 5px;
    cursor: pointer;
    font-size: 0.86rem;
}


    .file-upload-label span {
        color: var(--fn-primary);
        font-weight: 700;
    }


    .file-upload-label small {
        color: var(--fn-text-muted);
    }


.file-upload-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}


.selected-file-name {
    margin-top: 7px;
    color: var(--fn-text-muted);
    font-size: 0.73rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


.file-help-text {
    display: block;
    margin-top: 8px;
    color: var(--fn-text-muted);
    font-size: 0.72rem;
}


    .file-help-text i {
        color: var(--fn-primary);
        margin-right: 3px;
    }


/* =========================================================
   21. SUBMIT BUTTON
========================================================= */

.contact-submit-wrapper {
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid var(--fn-border-light);
}


.contact-submit-button {
    width: 100%;
    min-height: 54px;
    border: 0;
    border-radius: 13px;
    background: linear-gradient( 135deg, var(--fn-primary), var(--fn-primary-dark) );
    color: #fff;
    font-size: 0.92rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.18);
    transition: var(--fn-transition);
}


    .contact-submit-button:hover {
        transform: translateY(-2px);
        box-shadow: 0 14px 30px rgba(37, 99, 235, 0.25);
    }


    .contact-submit-button:active {
        transform: translateY(0);
    }


    .contact-submit-button:disabled {
        opacity: 0.7;
        cursor: not-allowed;
        transform: none;
    }


.submit-content {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}


.submit-security {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    color: var(--fn-text-muted);
    font-size: 0.7rem;
}


    .submit-security i {
        color: var(--fn-success);
    }


/* =========================================================
   22. WHY CHOOSE US
========================================================= */

.feature-card {
    height: 100%;
    padding: 32px 25px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-md);
    background: #fff;
    box-shadow: var(--fn-shadow-sm);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}


    .feature-card:hover {
        transform: translateY(-5px);
        border-color: rgba(37, 99, 235, 0.18);
        box-shadow: 0 18px 40px rgba(15, 23, 42, 0.09);
    }


    .feature-card i {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 20px !important;
    }


    .feature-card h4 {
        color: var(--fn-navy);
        font-size: 1.05rem;
        font-weight: 700;
        margin-bottom: 10px;
    }


    .feature-card p {
        margin: 0;
        color: var(--fn-text-soft);
        font-size: 0.86rem;
        line-height: 1.7;
    }


/* =========================================================
   23. SECTION TITLES
========================================================= */

.portfolio-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--fn-primary-light);
    color: var(--fn-primary);
    border: 1px solid rgba(37, 99, 235, 0.1);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 1.1px;
}


.section-title {
    color: var(--fn-navy);
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    font-weight: 750;
    letter-spacing: -0.7px;
}


.section-subtitle {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    color: var(--fn-text-soft);
    font-size: 0.94rem;
    line-height: 1.75;
}


/* =========================================================
   24. GOOGLE MAP
========================================================= */

.map-card {
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg) !important;
    box-shadow: var(--fn-shadow) !important;
    background: #fff;
}


.map-container {
    position: relative;
    overflow: hidden;
}


    .map-container iframe {
        display: block;
        width: 100%;
        min-height: 450px;
        border: 0;
    }


/* =========================================================
   25. FAQ
========================================================= */

#faqAccordion {
    max-width: 900px;
    margin: 0 auto;
}


    #faqAccordion .accordion-item {
        margin-bottom: 12px;
        overflow: hidden;
        border: 1px solid var(--fn-border);
        border-radius: 14px !important;
        background: #fff;
        box-shadow: 0 4px 14px rgba(15, 23, 42, 0.035);
    }


    #faqAccordion .accordion-button {
        min-height: 62px;
        padding: 17px 21px;
        color: var(--fn-navy);
        background: #fff;
        font-size: 0.91rem;
        font-weight: 700;
        box-shadow: none;
    }


        #faqAccordion .accordion-button:not(.collapsed) {
            color: var(--fn-primary);
            background: var(--fn-primary-light);
            box-shadow: none;
        }


        #faqAccordion .accordion-button:focus {
            box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
        }


        #faqAccordion .accordion-button::after {
            background-size: 13px;
        }


    #faqAccordion .accordion-body {
        padding: 18px 21px 21px;
        color: var(--fn-text-soft);
        background: #fff;
        font-size: 0.87rem;
        line-height: 1.75;
    }


/* =========================================================
   26. FINAL CTA
========================================================= */

.final-cta {
    padding-top: 85px !important;
    padding-bottom: 85px !important;
    background: radial-gradient( circle at 15% 50%, rgba(96, 165, 250, 0.14), transparent 30% ), linear-gradient( 135deg, #08142f, #102657 );
    overflow: hidden;
}


    .final-cta::before {
        content: "";
        position: absolute;
        width: 380px;
        height: 380px;
        right: -130px;
        top: -160px;
        border-radius: 50%;
        border: 1px solid rgba(255,255,255,0.08);
    }


    .final-cta::after {
        content: "";
        position: absolute;
        width: 220px;
        height: 220px;
        left: -100px;
        bottom: -100px;
        border-radius: 50%;
        border: 1px solid rgba(255,255,255,0.06);
    }


    .final-cta .container {
        position: relative;
        z-index: 2;
    }


.cta-box {
    max-width: 1000px;
    margin: 0 auto;
}


.final-cta .portfolio-badge {
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.12);
    color: #93c5fd;
}


.final-cta h2 {
    color: #fff;
    letter-spacing: -1px;
}


.final-cta p {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    color: rgba(255,255,255,0.72);
    line-height: 1.75;
}


.final-cta .btn {
    min-width: 170px;
    min-height: 45px;
    transition: var(--fn-transition);
}


.final-cta .btn-primary {
    background: var(--fn-primary);
    border-color: var(--fn-primary);
}


    .final-cta .btn-primary:hover {
        background: #3b82f6;
        border-color: #3b82f6;
        transform: translateY(-2px);
    }


.final-cta .btn-success {
    background: #16a34a;
    border-color: #16a34a;
}


    .final-cta .btn-success:hover {
        background: #15803d;
        border-color: #15803d;
        transform: translateY(-2px);
    }


.final-cta .btn-outline-primary {
    color: #fff;
    border-color: rgba(255,255,255,0.35);
    background: transparent;
}


    .final-cta .btn-outline-primary:hover {
        background: #fff;
        border-color: #fff;
        color: var(--fn-navy);
        transform: translateY(-2px);
    }


/* =========================================================
   27. RELATED SERVICES
========================================================= */

.related-services {
    background: #f8fafc !important;
    border-color: var(--fn-border) !important;
}


    .related-services .text-primary {
        color: var(--fn-primary) !important;
    }


    .related-services h4 {
        color: var(--fn-navy);
        letter-spacing: -0.3px;
    }


    .related-services p {
        max-width: 760px;
        margin-left: auto;
        margin-right: auto;
        line-height: 1.65;
    }


    .related-services .btn {
        min-height: 35px;
        border-color: #d7deea;
        color: var(--fn-text-soft);
        background: #fff;
        font-size: 0.76rem;
        font-weight: 600;
        transition: var(--fn-transition);
    }


        .related-services .btn:hover {
            color: #fff;
            background: var(--fn-primary);
            border-color: var(--fn-primary);
            transform: translateY(-2px);
            box-shadow: 0 7px 15px rgba(37, 99, 235, 0.14);
        }


    .related-services .btn-primary {
        color: #fff;
        background: var(--fn-primary);
        border-color: var(--fn-primary);
    }


        .related-services .btn-primary:hover {
            background: var(--fn-primary-dark);
            border-color: var(--fn-primary-dark);
        }


/* =========================================================
   28. DISABLED / HIDDEN QR
========================================================= */

.whatsapp-qr {
    display: none !important;
}


/* =========================================================
   29. FORM AUTOFILL
========================================================= */

.contact-input:-webkit-autofill,
.contact-textarea:-webkit-autofill {
    -webkit-text-fill-color: var(--fn-text);
    box-shadow: 0 0 0 1000px #fff inset;
    transition: background-color 9999s ease-in-out 0s;
}


/* =========================================================
   30. TEXT SELECTION
========================================================= */

.contact-section ::selection,
.page-banner ::selection,
.final-cta ::selection,
.related-services ::selection {
    background: rgba(37, 99, 235, 0.18);
}


/* =========================================================
   31. TABLET
========================================================= */

@media (max-width: 991.98px) {

    .page-banner {
        padding: 70px 0;
    }


        .page-banner h1 {
            font-size: clamp(2.35rem, 6vw, 3.4rem);
        }


    .contact-hero-card {
        margin-top: 15px;
    }


    .contact-section {
        padding-top: 65px !important;
        padding-bottom: 65px !important;
    }


    .contact-card {
        padding: 28px;
    }


    .contact-form-card {
        padding: 32px;
    }


    .feature-card {
        padding: 28px 20px;
    }
}


/* =========================================================
   32. MOBILE
========================================================= */

@media (max-width: 767.98px) {

    .page-banner {
        padding: 55px 0 60px;
    }


        .page-banner .row {
            --bs-gutter-y: 2.5rem;
        }


        .page-banner h1 {
            font-size: 2.15rem;
            letter-spacing: -0.9px;
        }


        .page-banner .lead {
            font-size: 0.98rem;
        }


        .page-banner p {
            font-size: 0.88rem;
        }


        .page-banner .d-flex {
            gap: 10px !important;
        }


        .page-banner .btn {
            width: 100%;
        }


        .page-banner .d-flex.flex-wrap.gap-3 {
            display: grid !important;
            grid-template-columns: 1fr;
        }


        .page-banner .d-flex.flex-wrap.gap-4 {
            gap: 12px !important;
        }


    .contact-hero-card {
        padding: 28px 22px !important;
        border-radius: 20px !important;
    }


    .page-banner + section.py-4 {
        padding-top: 28px !important;
        padding-bottom: 28px !important;
    }


        .page-banner + section.py-4 .row > div {
            padding-top: 10px;
            padding-bottom: 10px;
        }


            .page-banner + section.py-4 .row > div:not(:last-child)::after {
                display: none;
            }


    .contact-section {
        padding-top: 48px !important;
        padding-bottom: 48px !important;
    }


    .contact-card {
        padding: 24px 20px;
        border-radius: 18px;
    }


    .contact-form-card {
        padding: 26px 20px;
        border-radius: 18px;
    }


    .contact-form-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }


        .contact-form-grid .contact-field {
            margin-bottom: 20px;
        }


    .contact-full-field {
        margin-top: 0;
        margin-bottom: 20px;
    }


    .contact-form-header {
        margin-bottom: 25px;
    }


        .contact-form-header h2 {
            font-size: 1.55rem;
        }


    .contact-input,
    .contact-select {
        min-height: 48px;
    }


    .contact-textarea {
        min-height: 125px;
    }


    .country-select {
        width: 92px;
        flex-basis: 92px;
    }


    .file-upload-wrapper {
        align-items: flex-start;
        padding: 16px;
    }


    .file-upload-icon {
        width: 43px;
        height: 43px;
        flex-basis: 43px;
    }


    .feature-card {
        padding: 25px 20px;
    }


    .map-container iframe {
        min-height: 330px;
        height: 330px;
    }


    #faqAccordion .accordion-button {
        min-height: 58px;
        padding: 15px 17px;
        font-size: 0.84rem;
    }


    #faqAccordion .accordion-body {
        padding: 16px 17px 19px;
        font-size: 0.82rem;
    }


    .final-cta {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
    }


        .final-cta h2 {
            font-size: 2rem;
        }


        .final-cta p {
            font-size: 0.9rem;
        }


        .final-cta .row {
            margin-top: 25px !important;
        }


        .final-cta .btn {
            width: 100%;
            margin-left: 0 !important;
        }


    .related-services {
        padding-top: 28px !important;
        padding-bottom: 28px !important;
    }


        .related-services h4 {
            font-size: 1.08rem;
        }


        .related-services p {
            font-size: 0.8rem;
        }
}


/* =========================================================
   33. SMALL MOBILE
========================================================= */

@media (max-width: 575.98px) {

    .page-banner h1 {
        font-size: 1.9rem;
    }


    .page-banner .badge {
        font-size: 0.64rem;
        padding: 7px 11px !important;
    }


    .contact-info-item {
        gap: 11px;
    }


    .contact-icon {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }


    .contact-info-link,
    .contact-info-text {
        font-size: 0.84rem;
    }


    .contact-form-card {
        padding: 24px 16px;
    }


    .contact-card {
        padding: 23px 17px;
    }


    .country-select {
        width: 82px;
        flex-basis: 82px;
        font-size: 0.75rem;
    }


    .contact-input {
        padding-left: 41px;
    }


    .contact-textarea {
        padding-left: 41px;
    }


    .contact-input-icon {
        left: 14px;
    }


    .contact-textarea-icon {
        left: 14px;
    }


    .file-upload-wrapper {
        gap: 12px;
    }


    .file-upload-label {
        font-size: 0.8rem;
    }


    .selected-file-name {
        max-width: 190px;
    }


    .map-container iframe {
        min-height: 280px;
        height: 280px;
    }


    .final-cta h2 {
        font-size: 1.75rem;
    }


    .social-links a {
        width: 36px;
        height: 36px;
    }
}


/* =========================================================
   34. REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}


/* =========================================================
   35. PRINT
========================================================= */

@media print {

    .page-banner,
    .contact-section,
    .final-cta,
    .related-services {
        background: #fff !important;
    }


    .contact-card,
    .contact-form-card,
    .feature-card {
        box-shadow: none !important;
        border: 1px solid #ccc;
    }


    .final-cta {
        color: #000;
    }
}