/* =========================================================
   VBLINK HR CONSULTANTS
   INTRODUCTION LETTER
   ========================================================= */


/* ---------------------------------------------------------
   ROOT VARIABLES
   --------------------------------------------------------- */

.vblink-intro-letter {

    --intro-blue: #2f54eb;
    --intro-blue-dark: #1639b7;
    --intro-blue-light: #5b8cff;

    --intro-navy: #102a56;
    --intro-text: #344563;
    --intro-muted: #71809a;

    --intro-white: #ffffff;
    --intro-light: #f5f8ff;
    --intro-border: #e2e9f7;

    --intro-shadow:
        0 30px 80px rgba(28, 66, 145, 0.14);

    position: relative;

    width: 100%;

    padding:
        25px
        20px
        25px;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #f7faff 0%,
            #ffffff 45%,
            #f1f6ff 100%
        );

    font-family: "Poppins", sans-serif;
}


/* ---------------------------------------------------------
   BACKGROUND SHAPES
   --------------------------------------------------------- */

.intro-bg-shape {

    position: absolute;

    border-radius: 50%;

    pointer-events: none;

    filter: blur(1px);

    opacity: 0.45;
}


.intro-shape-1 {

    width: 380px;
    height: 380px;

    top: -160px;
    left: -140px;

    background:
        radial-gradient(
            circle,
            rgba(47, 84, 235, 0.18),
            transparent 70%
        );
}


.intro-shape-2 {

    width: 450px;
    height: 450px;

    right: -180px;
    top: 28%;

    background:
        radial-gradient(
            circle,
            rgba(91, 140, 255, 0.15),
            transparent 70%
        );
}


.intro-shape-3 {

    width: 320px;
    height: 320px;

    bottom: -140px;
    left: 40%;

    background:
        radial-gradient(
            circle,
            rgba(47, 84, 235, 0.10),
            transparent 70%
        );
}


/* ---------------------------------------------------------
   MAIN CONTAINER
   --------------------------------------------------------- */

.intro-letter-container {

    position: relative;

    z-index: 2;

    width: 100%;

    max-width: 1180px;

    margin: 0 auto;
}


/* ---------------------------------------------------------
   SECTION HEADING
   --------------------------------------------------------- */

.intro-heading {

    text-align: center;

    max-width: 850px;

    margin:
        0 auto
        25px;
}


.intro-small-title {

    display: inline-flex;

    align-items: center;

    gap: 9px;

    padding:
        8px
        18px;

    border-radius: 50px;

    background:
        rgba(47, 84, 235, 0.08);

    border:
        1px solid
        rgba(47, 84, 235, 0.14);

    color: var(--intro-blue);

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 1.7px;

    text-transform: uppercase;
}


.intro-small-title i {

    font-size: 14px;
}


.intro-heading h2 {

    margin:
        20px
        0
        12px;

    color: var(--intro-navy);

    font-size: clamp(30px, 4vw, 48px);

    line-height: 1.18;

    font-weight: 700;

    letter-spacing: -1px;
}


.intro-heading h2 span {

    display: inline-block;

    background:
        linear-gradient(
            90deg,
            var(--intro-blue),
            var(--intro-blue-light)
        );

    -webkit-background-clip: text;
    background-clip: text;

    -webkit-text-fill-color: transparent;
}


.intro-heading-text {

    max-width: 700px;

    margin: 0 auto;

    color: var(--intro-muted);

    font-size: 16px;

    line-height: 1.8;
}


/* ---------------------------------------------------------
   LETTER CARD
   --------------------------------------------------------- */

.intro-letter-card {

    position: relative;

    overflow: hidden;

    background:
        rgba(255, 255, 255, 0.97);

    border:
        1px solid
        var(--intro-border);

    border-radius: 22px;

    box-shadow:
        var(--intro-shadow);

    transition:
        transform 0.5s ease,
        box-shadow 0.5s ease;
}


.intro-letter-card:hover {

    transform:
        translateY(-5px);

    box-shadow:
        0 35px 90px
        rgba(28, 66, 145, 0.18);
}


/* ---------------------------------------------------------
   TOP LINE
   --------------------------------------------------------- */

.letter-top-line {

    height: 6px;

    width: 100%;

    background:
        linear-gradient(
            90deg,
            var(--intro-blue-dark),
            var(--intro-blue),
            var(--intro-blue-light)
        );
}


/* ---------------------------------------------------------
   LETTER HEADER
   --------------------------------------------------------- */

.letter-header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

    padding:
        32px
        45px
        25px;
}


.letter-brand {

    display: flex;

    align-items: center;

    gap: 14px;
}


.letter-logo {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 55px;
    height: 55px;

    border-radius: 15px;

    color: #ffffff;

    font-size: 28px;

    font-weight: 800;

    background:
        linear-gradient(
            135deg,
            var(--intro-blue-dark),
            var(--intro-blue-light)
        );

    box-shadow:
        0 10px 25px
        rgba(47, 84, 235, 0.25);
}


.letter-brand-text h3 {

    margin: 0;

    color: var(--intro-navy);

    font-size: 25px;

    line-height: 1;

    font-weight: 800;
}


.letter-brand-text span {

    display: block;

    margin-top: 6px;

    color: var(--intro-blue);

    font-size: 12px;

    font-weight: 600;

    letter-spacing: 1.4px;

    text-transform: uppercase;
}


.letter-date {

    display: flex;

    align-items: center;

    gap: 8px;

    color: var(--intro-muted);

    font-size: 13px;

    font-weight: 500;
}


.letter-date i {

    color: var(--intro-blue);

    font-size: 15px;
}


/* ---------------------------------------------------------
   DIVIDER
   --------------------------------------------------------- */

.letter-divider {

    display: flex;

    align-items: center;

    gap: 15px;

    padding:
        0
        45px;
}


.letter-divider span {

    height: 1px;

    flex: 1;

    background:
        var(--intro-border);
}


.letter-divider i {

    color: var(--intro-blue);

    font-size: 10px;
}


/* ---------------------------------------------------------
   LETTER CONTENT
   --------------------------------------------------------- */

.letter-content {

    padding:
        35px
        75px
        45px;

    color: var(--intro-text);

    font-size: 15px;

    line-height: 1.9;
}


.letter-content p {

    margin:
        0
        0
        12px;
}


.letter-content strong {

    color: var(--intro-navy);

    font-weight: 700;
}


/* ---------------------------------------------------------
   GREETING
   --------------------------------------------------------- */

.letter-greeting {

    color: var(--intro-navy);

    font-size: 17px;

    font-weight: 600;
}


/* ---------------------------------------------------------
   SERVICES SECTION
   --------------------------------------------------------- */

.letter-services {

    margin:
        20px
        0;

    padding:
        15px;

    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #f5f8ff,
            #ffffff
        );

    border:
        1px solid
        var(--intro-border);
}


.services-heading {

    display: flex;

    align-items: center;

    gap: 15px;

    margin-bottom: 25px;
}


.services-icon {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 50px;
    height: 50px;

    flex-shrink: 0;

    border-radius: 14px;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            var(--intro-blue),
            var(--intro-blue-light)
        );

    box-shadow:
        0 8px 20px
        rgba(47, 84, 235, 0.2);
}


.services-heading span {

    display: block;

    color: var(--intro-blue);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.5px;
}


.services-heading h3 {

    margin:
        4px
        0
        0;

    color: var(--intro-navy);

    font-size: 20px;

    line-height: 1.3;
}


/* ---------------------------------------------------------
   SERVICES GRID
   --------------------------------------------------------- */

.services-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 12px;
}


.service-item {

    display: flex;

    align-items: center;

    gap: 11px;

    min-height: 58px;

    padding:
        5px
        7px;

    border-radius: 11px;

    background:
        #ffffff;

    border:
        1px solid
        #e7ecf7;

    color: var(--intro-text);

    font-size: 12px;

    line-height: 1.5;

    transition:
        transform 0.3s ease,
        border-color 0.3s ease,
        box-shadow 0.3s ease;
}


.service-item i {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 30px;
    height: 30px;

    flex-shrink: 0;

    border-radius: 8px;

    color: var(--intro-blue);

    background:
        rgba(47, 84, 235, 0.09);

    font-size: 12px;
}


.service-item:hover {

    transform:
        translateY(-3px);

    border-color:
        rgba(47, 84, 235, 0.3);

    box-shadow:
        0 8px 22px
        rgba(47, 84, 235, 0.08);
}


/* ---------------------------------------------------------
   APPROACH HIGHLIGHT
   --------------------------------------------------------- */

.letter-highlight {

    display: flex;

    gap: 20px;

    margin:
        20px
        0;

    padding:
        14px;

    border-radius: 17px;

    background:
        linear-gradient(
            135deg,
            #eef3ff,
            #f8faff
        );

    border-left:
        4px solid
        var(--intro-blue);
}


.highlight-icon {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 48px;
    height: 48px;

    flex-shrink: 0;

    border-radius: 50%;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            var(--intro-blue),
            var(--intro-blue-light)
        );
}


.highlight-content span {

    display: block;

    margin-bottom: 7px;

    color: var(--intro-blue);

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 1.4px;
}


.highlight-content p {

    margin: 0;

    font-size: 14px;

    line-height: 1.8;
}


/* ---------------------------------------------------------
   WHY VBLINK
   --------------------------------------------------------- */

.why-vblink {

    margin:
        25px
        0;
}


.why-heading {

    margin-bottom: 20px;
}


.why-heading > span {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin-bottom: 10px;

    color: var(--intro-blue);

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 1.5px;
}


.why-heading h3 {

    margin: 0;

    color: var(--intro-navy);

    font-size: 27px;

    line-height: 1.35;
}


.why-heading h3 strong {

    color: var(--intro-blue);
}


/* ---------------------------------------------------------
   CORE VALUES
   --------------------------------------------------------- */

.core-values {

    display: flex;

    align-items: center;

    justify-content: center;

    flex-wrap: wrap;

    gap: 12px;

    margin:
        15px
        0
        17px;

    padding:
        12px;

    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #f5f8ff,
            #ffffff
        );

    border:
        1px solid
        var(--intro-border);
}


.core-value {

    display: flex;

    align-items: center;

    gap: 9px;

    padding:
        12px
        18px;

    border-radius: 50px;

    color: var(--intro-navy);

    background:
        #ffffff;

    border:
        1px solid
        #e0e7f5;

    font-size: 13px;

    font-weight: 700;

    box-shadow:
        0 5px 15px
        rgba(20, 50, 100, 0.05);
}


.core-value i {

    color: var(--intro-blue);
}


.value-separator {

    display: flex;

    align-items: center;

    justify-content: center;

    color:
        var(--intro-blue-light);

    font-size: 12px;
}


/* ---------------------------------------------------------
   CLOSING
   --------------------------------------------------------- */

.letter-closing {

    margin-top: 20px;

    padding-top: 17px;

    border-top:
        1px solid
        var(--intro-border);
}


.thank-you {

    color: var(--intro-navy);

    font-weight: 600;
}


/* ---------------------------------------------------------
   LETTER FOOTER
   --------------------------------------------------------- */

.letter-footer {

    display: flex;

    justify-content: space-between;

    gap: 50px;

    padding:
        20px
        75px
        20px;

    background:
        linear-gradient(
            135deg,
            #f6f9ff,
            #edf3ff
        );

    border-top:
        1px solid
        var(--intro-border);
}


/* ---------------------------------------------------------
   SIGNATURE
   --------------------------------------------------------- */

.signature-area {

    display: flex;

    flex-direction: column;

    align-items: flex-start;
}


.signature-label {

    color: var(--intro-muted);

    font-size: 13px;
}


.signature {

    margin:
        7px
        0
        2px;

    color: var(--intro-blue);

    font-family: "Brush Script MT", cursive;

    font-size: 34px;

    font-weight: 600;
}


.signature-area strong {

    color: var(--intro-navy);

    font-size: 14px;
}


.tagline {

    color: var(--intro-muted);

    font-size: 11px;

    line-height: 1.5;
}


/* ---------------------------------------------------------
   CONTACT INFORMATION
   --------------------------------------------------------- */

.letter-contact {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(180px, 1fr));

    gap:
        15px
        30px;

    max-width: 550px;
}


.letter-contact > div {

    display: flex;

    align-items: flex-start;

    gap: 10px;

    color: var(--intro-muted);

    font-size: 11px;

    line-height: 1.6;
}


.letter-contact i {

    margin-top: 3px;

    width: 18px;

    color: var(--intro-blue);

    text-align: center;
}


/* ---------------------------------------------------------
   BOTTOM LINE
   --------------------------------------------------------- */

.letter-bottom-line {

    height: 4px;

    width: 100%;

    background:
        linear-gradient(
            90deg,
            var(--intro-blue-dark),
            var(--intro-blue),
            var(--intro-blue-light)
        );
}


/* ---------------------------------------------------------
   SCROLL REVEAL
   --------------------------------------------------------- */

.reveal-intro {

    opacity: 0;

    transform:
        translateY(35px);

    transition:
        opacity 0.9s ease,
        transform 0.9s ease;
}


.reveal-intro.intro-visible {

    opacity: 1;

    transform:
        translateY(0);
}


/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 992px) {

    .vblink-intro-letter {

        padding:
            25px
            18px
            25px;
    }


    .letter-header {

        padding:
            14px
            35px
            11px;
    }


    .letter-divider {

        padding:
            0
            35px;
    }


    .letter-content {

        padding:
            15px
            45px
            20px;
    }


    .services-grid {

        grid-template-columns:
            repeat(2, 1fr);
    }


    .letter-footer {

        padding:
            20px
            45px
            20px;
    }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 768px) {

    .vblink-intro-letter {

        padding:
            10px
            12px
            15px;
    }


    .intro-heading {

        margin-bottom: 35px;
    }


    .intro-heading h2 {

        font-size: 31px;

        letter-spacing: -0.5px;
    }


    .intro-heading-text {

        font-size: 14px;

        line-height: 1.7;
    }


    .intro-letter-card {

        border-radius: 16px;
    }


    .letter-header {

        align-items: flex-start;

        flex-direction: column;

        gap: 15px;

        padding:
            25px
            22px
            20px;
    }


    .letter-date {

        padding-left: 2px;
    }


    .letter-divider {

        padding:
            0
            22px;
    }


    .letter-content {

        padding:
            28px
            22px
            35px;

        font-size: 14px;

        line-height: 1.8;
    }


    .letter-services {

        margin:
            30px
            0;

        padding:
            20px;
    }


    .services-heading {

        align-items: flex-start;
    }


    .services-heading h3 {

        font-size: 17px;
    }


    .services-grid {

        grid-template-columns:
            1fr;

        gap: 9px;
    }


    .service-item {

        font-size: 12px;
    }


    .letter-highlight {

        gap: 14px;

        margin:
            30px
            0;

        padding:
            20px;
    }


    .highlight-icon {

        width: 40px;
        height: 40px;
    }


    .highlight-content p {

        font-size: 13px;
    }


    .why-vblink {

        margin:
            35px
            0;
    }


    .why-heading h3 {

        font-size: 22px;
    }


    .core-values {

        flex-direction: column;

        align-items: stretch;

        margin:
            25px
            0;

        padding:
            18px;
    }


    .core-value {

        justify-content: center;
    }


    .value-separator {

        transform:
            rotate(90deg);
    }


    .letter-footer {

        flex-direction: column;

        gap: 30px;

        padding:
            30px
            22px
            35px;
    }


    .letter-contact {

        grid-template-columns:
            1fr;

        gap: 13px;

        max-width: none;
    }

}


/* ---------------------------------------------------------
   SMALL MOBILE
   --------------------------------------------------------- */

@media (max-width: 480px) {

    .vblink-intro-letter {

        padding:
            25px
            10px
            30px;
    }


    .intro-small-title {

        padding:
            7px
            13px;

        font-size: 9px;

        letter-spacing: 1.2px;
    }


    .intro-heading h2 {

        font-size: 27px;
    }


    .letter-logo {

        width: 48px;
        height: 48px;

        font-size: 24px;
    }


    .letter-brand-text h3 {

        font-size: 22px;
    }


    .letter-content {

        padding:
            24px
            17px
            30px;
    }


    .letter-services {

        padding:
            17px;
    }


    .letter-highlight {

        padding:
            17px;
    }


    .why-heading h3 {

        font-size: 20px;
    }


    .core-value {

        padding:
            11px
            13px;

        font-size: 12px;
    }


    .letter-footer {

        padding:
            27px
            17px
            30px;
    }

}


/* ---------------------------------------------------------
   REDUCED MOTION
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

    .intro-letter-card,
    .service-item,
    .reveal-intro {

        transition: none;
    }

    .intro-letter-card:hover,
    .service-item:hover {

        transform: none;
    }

}