
/* ==========================================
   FREEQUOTEPRO - POPULAR HOME SERVICES
   PREMIUM SERVICES GRID
========================================== */

@property --fqp-service-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 225deg;
}

/* ==========================================
   1. SECTION
========================================== */

.fqp-services-section {
    padding: 100px 0;

    background:
        radial-gradient(
            ellipse at 55% 55%,
            rgba(40, 124, 184, 0.045),
            transparent 65%
        ),
        #ffffff;
}

/* ==========================================
   2. SECTION HEADING
========================================== */

.fqp-services-heading {
    max-width: 650px;
    margin-bottom: 42px;
}

.fqp-services-subtitle {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 7px 14px;
    margin-bottom: 15px;

    background: #ffffff;
    border: 1px solid rgba(11, 49, 91, 0.12);
    border-radius: 100px;

    color: var(--primary-color);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;

    box-shadow:
        0 3px 10px rgba(11, 49, 91, 0.035);
}

.fqp-services-subtitle i {
    color: var(--accent-color);
    font-size: 10px;
}

.fqp-services-heading h2 {
    color: var(--primary-color);
    font-size: clamp(32px, 3.2vw, 48px);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.025em;
    margin-bottom: 12px;
}

.fqp-services-heading p {
    max-width: 600px;
    color: var(--text-color);
    font-size: 16px;
    line-height: 1.7;
    margin: 0;
}

/* ==========================================
   3. GRID
========================================== */

.fqp-services-grid {
    row-gap: 24px;
}

.fqp-services-grid > [class*="col-"] {
    display: flex;
}

/* ==========================================
   4. SERVICE CARD
========================================== */

.fqp-service-card {
    --fqp-service-angle: 225deg;

    position: relative;
    isolation: isolate;

    display: flex;
    align-items: stretch;

    width: 100%;
    min-width: 0;
    min-height: 198px;

    padding: 12px;

    background: #ffffff;
    border: 1px solid rgba(11, 49, 91, 0.09);
    border-radius: 17px;

    box-shadow:
        0 20px 40px -25px rgba(11, 49, 91, 0.20),
        0 6px 18px -12px rgba(11, 49, 91, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.85);

    transition:
        box-shadow 400ms ease,
        transform 400ms ease,
        border-color 400ms ease;
}

/* ==========================================
   5. GLASS BORDER
========================================== */

.fqp-service-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;

    border-radius: inherit;
    pointer-events: none;

    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.40);
}

@supports ((mask-composite: exclude) or
           (-webkit-mask-composite: xor)) {

    .fqp-service-card::after {
        padding: 2px;

        background: conic-gradient(
            from var(--fqp-service-angle),

            rgba(255, 255, 255, 0.12) 0%,
            rgba(210, 225, 236, 0.92) 12%,
            rgba(255, 255, 255, 0.45) 24%,

            transparent 42%,

            rgba(238, 127, 30, 0.88) 59%,
            rgba(255, 190, 125, 0.60) 65%,

            transparent 80%,
            rgba(255, 255, 255, 0.12) 100%
        );

        -webkit-mask:
            linear-gradient(#000 0 0) content-box,
            linear-gradient(#000 0 0);

        mask:
            linear-gradient(#000 0 0) content-box,
            linear-gradient(#000 0 0);

        -webkit-mask-composite: xor;
        mask-composite: exclude;

        transition:
            --fqp-service-angle 900ms
            cubic-bezier(0.25, 1, 0.5, 1);
    }
}

/* ==========================================
   6. CARD CONTENT
========================================== */

.fqp-service-info {
    position: relative;
    z-index: 1;

    display: flex;
    flex-direction: column;
    align-items: flex-start;

    flex: 1 1 53%;
    min-width: 0;

    padding: 7px 10px 7px 5px;
}

/* ==========================================
   7. ICON
========================================== */

.fqp-service-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    width: 48px;
    height: 48px;

    margin-bottom: 14px;

    background: linear-gradient(
        145deg,
        #f1f7fc,
        #eaf3fa
    );

    border-radius: 12px;
}

.fqp-service-icon i {
    color: var(--primary-color);
    font-size: 24px;

    transition:
        color 350ms ease,
        transform 350ms ease;
}

/* ==========================================
   8. TITLE
========================================== */

.fqp-service-info h3 {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.25;

    color: var(--primary-color);

    margin-bottom: 8px;
}

/* ==========================================
   9. DESCRIPTION
========================================== */

.fqp-service-info p {
    color: #6b8298;
    font-size: 12px;
    line-height: 1.6;

    margin-bottom: 15px;
}

/* ==========================================
   10. SERVICE LINK
========================================== */

.fqp-service-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-top: auto;

    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;

    color: #287cb8;
    text-decoration: none;

    transition:
        color 300ms ease,
        gap 300ms ease;
}

.fqp-service-link i {
    color: var(--accent-color);
    font-size: 13px;

    transition: transform 300ms ease;
}

.fqp-service-link:hover {
    color: var(--accent-color);
}

.fqp-service-link:hover i {
    transform: translateX(4px);
}

.fqp-service-link:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 4px;
    border-radius: 3px;
}

/* ==========================================
   11. SERVICE IMAGE
========================================== */

.fqp-service-image {
    position: relative;
    z-index: 1;

    flex: 0 0 44%;
    min-width: 0;

    border-radius: 12px;
    overflow: hidden;
}

.fqp-service-image img {
    display: block;

    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 100%;

    object-fit: cover;
    object-position: center;

    border-radius: inherit;

    transition: transform 650ms
        cubic-bezier(0.25, 1, 0.5, 1);
}

/* ==========================================
   12. HOVER EFFECTS
========================================== */

@media (hover: hover) and (pointer: fine) {

    .fqp-service-card:hover {
        transform: translateY(-5px);

        border-color: rgba(238, 127, 30, 0.22);

        box-shadow:
            0 25px 48px -22px rgba(11, 49, 91, 0.23),
            0 0 20px rgba(238, 127, 30, 0.06);
    }

    .fqp-service-card:hover::after {
        --fqp-service-angle: 255deg;
    }

    .fqp-service-card:hover .fqp-service-image img {
        transform: scale(1.045);
    }

    .fqp-service-card:hover .fqp-service-icon i {
        color: var(--accent-color);
        transform: rotate(-7deg);
    }
}

/* ==========================================
   13. RESPONSIVE - LARGE TABLETS
========================================== */

@media (max-width: 1199px) {

    .fqp-service-card {
        min-height: 190px;
    }

    .fqp-service-info h3 {
        font-size: 18px;
    }
}

/* ==========================================
   14. RESPONSIVE - TABLETS
========================================== */

@media (max-width: 991px) {

    .fqp-services-section {
        padding: 75px 0;
    }

    .fqp-services-heading {
        margin-bottom: 35px;
    }

    .fqp-services-heading h2 {
        font-size: 36px;
    }

    .fqp-service-card {
        min-height: 205px;
    }
}

/* ==========================================
   15. RESPONSIVE - MOBILE
========================================== */

@media (max-width: 767px) {

    .fqp-services-section {
        padding: 60px 0;
    }

    .fqp-services-heading {
        margin-bottom: 28px;
    }

    .fqp-services-heading h2 {
        font-size: 32px;
    }

    .fqp-services-heading p {
        font-size: 14px;
    }

    .fqp-services-grid {
        row-gap: 18px;
    }

    .fqp-service-card {
        min-height: 190px;
    }
}

/* ==========================================
   16. RESPONSIVE - SMALL MOBILE
========================================== */

@media (max-width: 420px) {

    .fqp-service-card {
        min-height: 180px;
        padding: 9px;
        border-radius: 14px;
    }

    .fqp-service-info {
        padding: 5px 8px 5px 3px;
    }

    .fqp-service-icon {
        width: 40px;
        height: 40px;
        margin-bottom: 10px;
        border-radius: 10px;
    }

    .fqp-service-icon i {
        font-size: 20px;
    }

    .fqp-service-info h3 {
        font-size: 17px;
        margin-bottom: 6px;
    }

    .fqp-service-info p {
        font-size: 11px;
        line-height: 1.5;
        margin-bottom: 10px;
    }

    .fqp-service-link {
        font-size: 12px;
        gap: 6px;
    }

    .fqp-service-image {
        flex-basis: 42%;
        border-radius: 10px;
    }
}

/* ==========================================
   17. REDUCED MOTION
========================================== */

@media (prefers-reduced-motion: reduce) {

    .fqp-service-card,
    .fqp-service-card::after,
    .fqp-service-image img,
    .fqp-service-icon i,
    .fqp-service-link,
    .fqp-service-link i {
        transition: none;
    }

    .fqp-service-card:hover,
    .fqp-service-card:hover .fqp-service-image img,
    .fqp-service-card:hover .fqp-service-icon i {
        transform: none;
    }
}



/* ==========================================
   FREEQUOTEPRO - HOW IT WORKS
   DARK PREMIUM PROCESS SECTION
========================================== */

@property --fqp-process-frame-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 225deg;
}

/* ==========================================
   1. SECTION BACKGROUND
========================================== */

.fqp-services-process {
    position: relative;
    isolation: isolate;

    padding: 95px 0;

    background:
        radial-gradient(
            ellipse at 38% 42%,
            rgba(40, 124, 184, 0.42) 0%,
            transparent 55%
        ),
        radial-gradient(
            ellipse at 100% 85%,
            rgba(238, 127, 30, 0.12),
            transparent 55%
        ),
        linear-gradient(
            110deg,
            #10394f 0%,
            #0b315b 50%,
            #252c3f 100%
        );

    overflow: hidden;
}

/* Soft decorative light */

.fqp-services-process::before {
    content: "";
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.035),
            transparent 35%,
            rgba(255, 255, 255, 0.015)
        );

    pointer-events: none;
    z-index: -1;
}

/* ==========================================
   2. SECTION INTRO
========================================== */

.fqp-services-process-intro {
    padding-right: 28px;
}

.fqp-services-process-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 7px 14px;
    margin-bottom: 17px;

    border: 1px solid rgba(255, 255, 255, 0.19);
    border-radius: 100px;

    background: rgba(255, 255, 255, 0.055);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    color: #ffffff;

    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.fqp-services-process-label i {
    color: var(--accent-color);
    font-size: 10px;
}

.fqp-services-process-intro h2 {
    font-family: var(--accent-font);

    font-size: clamp(32px, 3.2vw, 48px);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.025em;

    color: #ffffff;
    margin-bottom: 16px;
}

.fqp-services-process-intro p {
    font-size: 15px;
    line-height: 1.7;

    color: rgba(255, 255, 255, 0.83);
    margin: 0;
}

/* ==========================================
   3. STEPS LAYOUT
========================================== */

.fqp-services-process-grid {
    display: flex;
    align-items: stretch;

    gap: 12px;
    padding-top: 20px;
}

/* ==========================================
   4. PROCESS CARDS
========================================== */

.fqp-services-process-card {
    --fqp-process-frame-angle: 225deg;

    position: relative;
    isolation: isolate;

    display: flex;
    flex-direction: column;
    align-items: center;

    flex: 1 1 0;
    min-width: 0;

    text-align: center;

    background: linear-gradient(
        145deg,
        #ffffff 0%,
        #f3f8fc 100%
    );

    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 17px;

    padding: 36px 16px 24px;

    box-shadow:
        0 20px 38px -22px rgba(0, 0, 0, 0.35),
        0 8px 20px -14px rgba(0, 0, 0, 0.20),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);

    transition:
        transform 400ms ease,
        box-shadow 400ms ease;
}

/* ==========================================
   5. NUMBER CIRCLE
========================================== */

.fqp-services-step-number {
    position: absolute;

    top: -19px;
    left: 50%;
    transform: translateX(-50%);

    display: flex;
    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    background: var(--accent-color);
    border: 3px solid rgba(255, 255, 255, 0.85);

    border-radius: 50%;

    color: #ffffff;
    font-size: 15px;
    font-weight: 700;

    box-shadow:
        0 6px 14px rgba(238, 127, 30, 0.24);

    z-index: 5;
}

/* ==========================================
   6. ICONS
========================================== */

.fqp-services-step-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    margin-bottom: 17px;

    background: #edf5fb;
    border-radius: 13px;
}

.fqp-services-step-icon i {
    font-size: 25px;
    color: var(--primary-color);
}

/* ==========================================
   7. CARD CONTENT
========================================== */

.fqp-services-process-card h3 {
    color: var(--primary-color);

    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;

    margin-bottom: 10px;
}

.fqp-services-process-card p {
    color: #627d95;

    font-size: 12px;
    line-height: 1.65;

    margin: 0;
}

/* ==========================================
   8. GLASS BORDER
========================================== */

.fqp-services-process-card::after {
    content: "";
    position: absolute;
    inset: 0;

    z-index: 2;

    border-radius: inherit;
    pointer-events: none;

    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}

@supports ((mask-composite: exclude) or
           (-webkit-mask-composite: xor)) {

    .fqp-services-process-card::after {
        padding: 2px;

        background: conic-gradient(
            from var(--fqp-process-frame-angle),

            rgba(255, 255, 255, 0.14) 0%,
            rgba(220, 235, 245, 0.95) 12%,
            rgba(255, 255, 255, 0.48) 24%,

            transparent 42%,

            rgba(238, 127, 30, 0.90) 59%,
            rgba(255, 190, 125, 0.65) 65%,

            transparent 80%,
            rgba(255, 255, 255, 0.14) 100%
        );

        -webkit-mask:
            linear-gradient(#000 0 0) content-box,
            linear-gradient(#000 0 0);

        mask:
            linear-gradient(#000 0 0) content-box,
            linear-gradient(#000 0 0);

        -webkit-mask-composite: xor;
        mask-composite: exclude;

        transition:
            --fqp-process-frame-angle 900ms
            cubic-bezier(0.25, 1, 0.5, 1);
    }
}

/* ==========================================
   9. ARROWS BETWEEN CARDS
========================================== */

.fqp-services-step-arrow {
    position: relative;
    z-index: 4;

    flex: 0 0 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    align-self: center;

    width: 28px;
    height: 28px;

    margin: 0 -6px;

    background: #287cb8;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;

    box-shadow:
        0 5px 12px rgba(0, 0, 0, 0.16);
}

.fqp-services-step-arrow i {
    font-size: 12px;
    color: #ffffff;
}

/* ==========================================
   10. HOVER EFFECT
========================================== */

@media (hover: hover) and (pointer: fine) {

    .fqp-services-process-card:hover {
        transform: translateY(-6px);

        box-shadow:
            0 26px 48px -20px rgba(0, 0, 0, 0.40),
            0 0 20px rgba(238, 127, 30, 0.10);
    }

    .fqp-services-process-card:hover::after {
        --fqp-process-frame-angle: 255deg;
    }
}

/* ==========================================
   11. RESPONSIVE - LAPTOP
========================================== */

@media (max-width: 1199px) {

    .fqp-services-process {
        padding: 80px 0;
    }

    .fqp-services-process-intro {
        text-align: center;
        padding-right: 0;
        margin-bottom: 40px;
    }

    .fqp-services-process-grid {
        max-width: 850px;
        margin: 0 auto;
    }
}

/* ==========================================
   12. RESPONSIVE - TABLET
========================================== */

@media (max-width: 767px) {

    .fqp-services-process {
        padding: 65px 0;
    }

    .fqp-services-process-grid {
        flex-direction: column;
        align-items: center;

        gap: 22px;
        max-width: 430px;
    }

    .fqp-services-process-card {
        width: 100%;
        flex: none;

        padding: 36px 24px 25px;
    }

    .fqp-services-step-arrow {
        flex: 0 0 30px;
        align-self: center;

        margin: -9px 0;

        transform: rotate(90deg);
    }
}

/* ==========================================
   13. RESPONSIVE - MOBILE
========================================== */

@media (max-width: 575px) {

    .fqp-services-process-intro h2 {
        font-size: 32px;
    }

    .fqp-services-process-intro p {
        font-size: 14px;
    }

    .fqp-services-process-card h3 {
        font-size: 17px;
    }

    .fqp-services-process-card p {
        font-size: 13px;
    }
}

/* ==========================================
   14. REDUCED MOTION
========================================== */

@media (prefers-reduced-motion: reduce) {

    .fqp-services-process-card,
    .fqp-services-process-card::after {
        transition: none;
    }

    .fqp-services-process-card:hover {
        transform: none;
    }
}


/* ==========================================
   FREEQUOTEPRO - CONTACT CTA SECTION
   WHITE PREMIUM STYLE
========================================== */

@property --fqp-contact-glass-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 225deg;
}

/* ==========================================
   1. SECTION BACKGROUND
========================================== */

.fqp-contact-cta {
    position: relative;
    padding: 110px 0;

    background: #ffffff;
    overflow: hidden;
}

.fqp-contact-cta .row {
    row-gap: 45px;
}

/* ==========================================
   2. LEFT CONTENT
========================================== */

.fqp-contact-cta-content {
    padding-right: 35px;
}

/* ==========================================
   3. SECTION SUBTITLE
========================================== */

.fqp-contact-cta-subtitle {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    padding: 9px 17px;
    margin-bottom: 30px;

    background: #ffffff;

    border: 1px solid rgba(11, 49, 91, 0.12);
    border-radius: 100px;

    color: var(--primary-color);

    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;

    box-shadow:
        0 3px 12px rgba(11, 49, 91, 0.035);
}

.fqp-contact-cta-subtitle i {
    font-size: 11px;
    color: var(--accent-color);
}

/* ==========================================
   4. HEADING
========================================== */

.fqp-contact-cta-content h2 {
    max-width: 620px;

    font-family: var(--accent-font);

    font-size: clamp(36px, 3.65vw, 56px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.035em;

    color: var(--primary-color);

    margin-bottom: 28px;
}

/* ==========================================
   5. DESCRIPTION
========================================== */

.fqp-contact-cta-content > p {
    max-width: 580px;

    color: #63758c;

    font-size: 18px;
    font-weight: 400;
    line-height: 1.7;

    margin-bottom: 0;
}

.fqp-contact-cta-content > p strong {
    color: var(--primary-color);
    font-weight: 700;
}

/* ==========================================
   6. CTA BUTTON CONTAINER
========================================== */

.fqp-contact-cta-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    gap: 20px 35px;

    margin-top: 35px;
}

/* ==========================================
   7. PRIMARY BUTTON
========================================== */

.fqp-contact-cta-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;

    min-height: 56px;

    padding: 17px 28px;

    background: var(--accent-color);
    border: 1px solid var(--accent-color);
    border-radius: 100px;

    color: #ffffff;

    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;

    box-shadow:
        0 12px 24px rgba(238, 127, 30, 0.16);

    transition:
        background-color 350ms ease,
        border-color 350ms ease,
        color 350ms ease,
        box-shadow 350ms ease,
        transform 350ms ease;
}

.fqp-contact-cta-primary i {
    font-size: 17px;
    transition: transform 350ms ease;
}

.fqp-contact-cta-primary:hover {
    background: var(--primary-color);
    border-color: var(--primary-color);

    color: #ffffff;

    transform: translateY(-3px);

    box-shadow:
        0 15px 28px rgba(11, 49, 91, 0.18);
}

.fqp-contact-cta-primary:hover i {
    transform: translateX(5px);
}

/* ==========================================
   8. SECONDARY BUTTON
========================================== */

.fqp-contact-cta-secondary {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    color: var(--primary-color);

    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;

    padding-bottom: 5px;

    border-bottom: 2px solid var(--accent-color);

    transition:
        color 350ms ease,
        border-color 350ms ease;
}

.fqp-contact-cta-secondary i {
    font-size: 18px;
    color: var(--accent-color);

    transition: transform 350ms ease;
}

.fqp-contact-cta-secondary:hover {
    color: var(--accent-color);
}

.fqp-contact-cta-secondary:hover i {
    transform: translateX(5px);
}

.fqp-contact-cta-actions a:focus-visible {
    outline: 3px solid rgba(238, 127, 30, 0.35);
    outline-offset: 4px;
}

/* ==========================================
   9. CONTACT INFORMATION ROW
========================================== */

.fqp-contact-cta-info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    gap: 20px 0;

    margin-top: 50px;
}

/* ==========================================
   10. CONTACT INFORMATION ITEM
========================================== */

.fqp-contact-cta-info-item {
    display: flex;
    align-items: center;

    gap: 16px;

    max-width: 50%;
    min-width: 0;

    padding-right: 25px;
}

.fqp-contact-cta-info-item + .fqp-contact-cta-info-item {
    border-left: 1px solid rgba(11, 49, 91, 0.12);
    padding-left: 25px;
}

/* ==========================================
   11. CONTACT ICONS
========================================== */

.fqp-contact-cta-info-icon {
    flex: 0 0 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 52px;
    height: 52px;

    background: #eaf4fd;
    border-radius: 50%;
}

.fqp-contact-cta-info-icon i {
    font-size: 21px;
    color: #0872c5;
}

/* ==========================================
   12. CONTACT INFORMATION TEXT
========================================== */

.fqp-contact-cta-info-text {
    min-width: 0;
}

.fqp-contact-cta-info-text h3 {
    color: var(--primary-color);

    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;

    margin-bottom: 5px;
}

.fqp-contact-cta-info-text a {
    display: inline-block;

    color: #63758c;

    font-size: 14px;
    line-height: 1.5;

    overflow-wrap: anywhere;

    transition: color 300ms ease;
}

.fqp-contact-cta-info-text a:hover {
    color: var(--accent-color);
}

/* ==========================================
   13. IMAGE BOX
========================================== */

.fqp-contact-cta-image-box {
    position: relative;
    width: 100%;
}

/* ==========================================
   14. GLASS IMAGE FOUNDATION
========================================== */

.fqp-contact-cta-image figure {
    --fqp-contact-frame-width: 5px;

    position: relative;
    isolation: isolate;

    display: block;

    width: 100%;
    margin: 0;

    border-radius: 24px;
    overflow: hidden;

    box-shadow:
        0 28px 55px -25px rgba(11, 49, 91, 0.38),
        0 12px 28px -18px rgba(11, 49, 91, 0.24),
        0 0 0 1px rgba(255, 255, 255, 0.30),
        inset 0 1px 0 rgba(255, 255, 255, 0.65);

    transition:
        box-shadow 450ms ease;
}

/* ==========================================
   15. IMAGE
========================================== */

.fqp-contact-cta-image figure img {
    display: block;

    width: 100%;
    max-width: none;
    height: auto;

    aspect-ratio: 1 / 0.96;
    object-fit: cover;
    object-position: center;

    border-radius: inherit;
}

/* ==========================================
   16. GLASS BORDER FALLBACK
========================================== */

.fqp-contact-cta-image figure::after {
    content: "";

    position: absolute;
    inset: 0;

    z-index: 3;

    width: auto;
    height: auto;

    border-radius: inherit;
    pointer-events: none;

    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.45),
        inset 0 2px 2px rgba(255, 255, 255, 0.30);
}

/* ==========================================
   17. SILVER + ORANGE GLASS BORDER
========================================== */

@supports ((mask-composite: exclude) or
           (-webkit-mask-composite: xor)) {

    .fqp-contact-cta-image figure::after {
        padding: var(--fqp-contact-frame-width);

        background: conic-gradient(
            from var(--fqp-contact-glass-angle),

            rgba(255, 255, 255, 0.12) 0%,
            rgba(225, 237, 245, 0.95) 12%,
            rgba(255, 255, 255, 0.45) 24%,

            transparent 42%,

            rgba(255, 130, 28, 0.95) 59%,
            rgba(255, 195, 130, 0.75) 65%,

            transparent 80%,

            rgba(255, 255, 255, 0.12) 100%
        );

        -webkit-mask:
            linear-gradient(#000 0 0) content-box,
            linear-gradient(#000 0 0);

        mask:
            linear-gradient(#000 0 0) content-box,
            linear-gradient(#000 0 0);

        -webkit-mask-composite: xor;
        mask-composite: exclude;

        transition:
            --fqp-contact-glass-angle 900ms
            cubic-bezier(0.25, 1, 0.5, 1);
    }
}

/* ==========================================
   18. IMAGE HOVER
========================================== */

@media (hover: hover) and (pointer: fine) {

    .fqp-contact-cta-image-box:hover
    .fqp-contact-cta-image figure::after {
        --fqp-contact-glass-angle: 255deg;
    }

    .fqp-contact-cta-image-box:hover
    .fqp-contact-cta-image figure {
        box-shadow:
            0 32px 65px -24px rgba(11, 49, 91, 0.42),
            0 14px 32px -18px rgba(11, 49, 91, 0.28),
            0 0 20px rgba(238, 127, 30, 0.10),
            inset 0 1px 0 rgba(255, 255, 255, 0.75);
    }
}

/* ==========================================
   19. RESPONSIVE - LAPTOP
========================================== */

@media (max-width: 1199px) {

    .fqp-contact-cta {
        padding: 85px 0;
    }

    .fqp-contact-cta-content {
        padding-right: 0;
    }

    .fqp-contact-cta-image-box {
        max-width: 700px;
        margin: 0 auto;
    }

    .fqp-contact-cta-image figure img {
        aspect-ratio: 1.2 / 1;
    }
}

/* ==========================================
   20. RESPONSIVE - TABLET
========================================== */

@media (max-width: 991px) {

    .fqp-contact-cta {
        padding: 75px 0;
    }

    .fqp-contact-cta-content h2 {
        font-size: 44px;
    }

    .fqp-contact-cta-content > p {
        font-size: 17px;
    }

    .fqp-contact-cta-info {
        margin-top: 40px;
    }

    .fqp-contact-cta-image figure {
        --fqp-contact-frame-width: 4px;
    }
}

/* ==========================================
   21. RESPONSIVE - MOBILE
========================================== */

@media (max-width: 767px) {

    .fqp-contact-cta {
        padding: 60px 0;
    }

    .fqp-contact-cta .row {
        row-gap: 35px;
    }

    .fqp-contact-cta-subtitle {
        margin-bottom: 20px;
    }

    .fqp-contact-cta-content h2 {
        font-size: clamp(32px, 7vw, 40px);
        margin-bottom: 20px;
    }

    .fqp-contact-cta-content > p {
        font-size: 15px;
    }

    .fqp-contact-cta-actions {
        gap: 18px 25px;
        margin-top: 28px;
    }

    .fqp-contact-cta-primary {
        min-height: 52px;
        padding: 15px 23px;
        font-size: 14px;
    }

    .fqp-contact-cta-secondary {
        font-size: 15px;
    }

    .fqp-contact-cta-info {
        margin-top: 35px;
    }

    .fqp-contact-cta-info-item {
        max-width: 100%;
    }

    .fqp-contact-cta-info-item +
    .fqp-contact-cta-info-item {
        border-left: none;
        padding-left: 0;
    }

    .fqp-contact-cta-image figure {
        border-radius: 20px;
    }

    .fqp-contact-cta-image figure img {
        aspect-ratio: 1.15 / 1;
    }
}

/* ==========================================
   22. RESPONSIVE - SMALL MOBILE
========================================== */

@media (max-width: 420px) {

    .fqp-contact-cta-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .fqp-contact-cta-primary {
        width: 100%;
    }

    .fqp-contact-cta-info {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .fqp-contact-cta-info-item {
        padding-right: 0;
    }

    .fqp-contact-cta-image figure {
        --fqp-contact-frame-width: 3px;
    }
}

/* ==========================================
   23. REDUCED MOTION
========================================== */

@media (prefers-reduced-motion: reduce) {

    .fqp-contact-cta-primary,
    .fqp-contact-cta-primary i,
    .fqp-contact-cta-secondary,
    .fqp-contact-cta-secondary i,
    .fqp-contact-cta-image figure,
    .fqp-contact-cta-image figure::after {
        transition: none;
    }

    .fqp-contact-cta-primary:hover {
        transform: none;
    }
}



/* ==========================================
   FREEQUOTEPRO - OUR SERVICES
   WHITE BACKGROUND + PREMIUM CONTRAST
   COLOR OVERRIDES ONLY
========================================== */

/* ==========================================
   1. SECTION BACKGROUND
========================================== */

.our-program.dark-section {
    background: #FFFFFF !important;
    background-image: none !important;
    background-color: #FFFFFF !important;
    background-attachment: scroll !important;
}

/* Remove any dark background overlays */

.our-program.dark-section::before,
.our-program.dark-section::after {
    background: none !important;
}

/* ==========================================
   2. SECTION SUBTITLE
========================================== */

.our-program.dark-section
.section-title .section-sub-title {
    color: #0B315B !important;

    background-color: #FFFFFF !important;

    border-color: rgba(11, 49, 91, 0.15) !important;

    box-shadow:
        0 3px 10px rgba(11, 49, 91, 0.04);
}

/* Preserve the orange decorative accent */

.our-program.dark-section
.section-title .section-sub-title::before {
    color: #FF821C;
}

/* ==========================================
   3. SECTION HEADING
========================================== */

.our-program.dark-section
.section-title h2 {
    color: #0B315B !important;
}

/* ==========================================
   4. SECTION DESCRIPTION
========================================== */

.our-program.dark-section
.section-title p {
    color: #3979AF !important;
}

/* ==========================================
   5. SERVICE CARD BACKGROUNDS
========================================== */

/*
   Keep the original navy cards and
   preserve existing glass borders.
*/

.our-program.dark-section .program-item {
    background-color: #10394F;

    box-shadow:
        0 20px 40px -22px rgba(11, 49, 91, 0.28),
        0 8px 20px -14px rgba(11, 49, 91, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.20);
}

/* Ensure active card uses the same colors */

.our-program.dark-section .program-item.active {
    background-color: #10394F;
}

/* ==========================================
   6. CARD TITLE
========================================== */

.our-program.dark-section
.program-item .program-item-content h3 {
    color: #FFFFFF !important;
}

/* ==========================================
   7. CARD DESCRIPTION
========================================== */

.our-program.dark-section
.program-item .program-item-content p {
    color: rgba(255, 255, 255, 0.88) !important;
}

/* ==========================================
   8. CARD HOVER - PRESERVE CONTRAST
========================================== */

.our-program.dark-section
.program-item:hover .program-item-content h3,
.our-program.dark-section
.program-item.active .program-item-content h3 {
    color: #FFFFFF !important;
}

.our-program.dark-section
.program-item:hover .program-item-content p,
.our-program.dark-section
.program-item.active .program-item-content p {
    color: rgba(255, 255, 255, 0.92) !important;
}

/* ==========================================
   9. ICON VISIBILITY
========================================== */

/* Preserve original SVG colors and sizes */

.our-program.dark-section
.program-item .icon-box img {
    opacity: 1;
}

/* ==========================================
   10. RESPONSIVE
========================================== */

@media (max-width: 767px) {

    .our-program.dark-section
    .section-title h2 {
        color: #0B315B !important;
    }

    .our-program.dark-section
    .section-title p {
        color: #3979AF !important;
    }
}


/* ==========================================
   SERVICES DIRECTORY — LOCAL REVIEW VERSION
   Isolated from shared header, footer and Home components.
========================================== */

.fqp-services-page {
    color: var(--primary-color);
    font-family: var(--default-font);
    line-height: 1.6;
    background: var(--bg-color);
}

.fqp-services-page .page-header-box h1 {
    max-width: 1100px;
    font-family: var(--default-font);
    font-size: clamp(34px, 4.5vw, 72px);
    font-weight: 700;
    line-height: 1.12;
    overflow-wrap: break-word;
    cursor: auto;
}

.fqp-services-page a:focus-visible {
    outline: 3px solid var(--primary-color);
    outline-offset: 4px;
    border-radius: 6px;
}

.fqp-services-page .page-header a:focus-visible {
    outline-color: var(--white-color);
}

.fqp-services-page .fqp-directory-intro {
    padding: 64px 0 36px;
}

.fqp-services-page .fqp-directory-eyebrow {
    display: inline-block;
    margin: 0 0 18px;
    padding: 8px 16px;
    border: 1px solid #d8e4ed;
    border-radius: 100px;
    color: var(--primary-color);
    background: #f5f9fc;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
}

.fqp-services-page .fqp-directory-lead {
    max-width: 850px;
    margin: 0;
    color: #425b70;
    font-size: clamp(17px, 1.4vw, 20px);
    line-height: 1.75;
}

.fqp-services-page .fqp-directory-nav {
    margin-top: 30px;
}

.fqp-services-page .fqp-directory-nav-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0;
    padding: 0;
}

.fqp-services-page .fqp-directory-nav-list li {
    min-width: 0;
    max-width: 100%;
}

.fqp-services-page .fqp-directory-nav-list a {
    display: block;
    padding: 11px 16px;
    border: 1px solid #c5d6e4;
    border-radius: 10px;
    color: var(--primary-color);
    background: var(--white-color);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: background-color 180ms ease, border-color 180ms ease;
}

.fqp-services-page .fqp-directory-nav-list a:hover,
.fqp-services-page .fqp-directory-nav-list a:focus-visible {
    border-color: var(--primary-color);
    background: #eaf3f9;
}

.fqp-services-page .fqp-directory-groups {
    padding-bottom: 48px;
}

.fqp-services-page .fqp-directory-group {
    padding: 36px 0;
    border-top: 1px solid #d8e4ed;
    scroll-margin-top: 120px;
}

.fqp-services-page .fqp-directory-group:focus-visible {
    outline: 3px solid var(--primary-color);
    outline-offset: 6px;
    border-radius: 12px;
}

.fqp-services-page .fqp-directory-group-heading {
    margin-bottom: 24px;
    padding-right: 12px;
}

.fqp-services-page .fqp-directory-group-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 16px;
    border: 1px solid #d6e5ef;
    border-radius: 12px;
    color: var(--primary-color);
    background: #eaf3f9;
    font-size: 20px;
}

.fqp-services-page .fqp-directory-group h2 {
    margin: 0;
    color: var(--primary-color);
    font-family: var(--default-font);
    font-size: clamp(24px, 2.1vw, 30px);
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: break-word;
}

.fqp-services-page .fqp-directory-list {
    row-gap: 16px;
    margin-bottom: 0;
    padding-left: 0;
}

.fqp-services-page .fqp-directory-entry {
    padding: 20px;
    border: 1px solid #dce6ee;
    border-radius: 14px;
    background: #f7fafc;
}

.fqp-services-page .fqp-directory-entry h3 {
    margin: 0 0 9px;
    color: var(--primary-color);
    font-family: var(--default-font);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: break-word;
}

.fqp-services-page .fqp-directory-entry p {
    margin: 0;
    color: #425b70;
    font-size: 16px;
    line-height: 1.7;
    overflow-wrap: break-word;
}

.fqp-services-page .fqp-directory-contact {
    padding-bottom: 72px;
}

.fqp-services-page .fqp-directory-contact-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    align-items: center;
    gap: 32px;
    padding: 36px;
    border: 1px solid var(--primary-color);
    border-radius: 20px;
    background: var(--primary-color);
}

.fqp-services-page .fqp-directory-contact .fqp-directory-eyebrow {
    border-color: #6f8da8;
    color: #ffdab9;
    background: transparent;
}

.fqp-services-page .fqp-directory-contact h2 {
    margin: 0 0 14px;
    color: var(--white-color);
    font-family: var(--default-font);
    font-size: clamp(28px, 3vw, 38px);
    font-weight: 700;
    line-height: 1.2;
}

.fqp-services-page .fqp-directory-contact-description {
    max-width: 620px;
    margin: 0;
    color: #e7f0f7;
    font-size: 16px;
    line-height: 1.7;
}

.fqp-services-page .fqp-directory-availability {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 22px;
    border: 1px solid #c5d6e4;
    border-radius: 14px;
    color: var(--primary-color);
    background: #f5f9fc;
}

.fqp-services-page .fqp-directory-notice-icon {
    flex: 0 0 auto;
    margin-top: 3px;
    font-size: 20px;
    line-height: 1.5;
}

.fqp-services-page .fqp-directory-availability p {
    min-width: 0;
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    overflow-wrap: break-word;
}

.fqp-services-page .fqp-directory-availability strong {
    display: block;
    margin-bottom: 4px;
    font-weight: 700;
}

.fqp-services-page .fqp-directory-availability-body {
    min-width: 0;
}

.fqp-services-page .fqp-directory-quote-link {
    margin-top: 16px;
    white-space: normal;
}

@media (max-width: 991px) {
    .fqp-services-page .fqp-directory-group-heading {
        padding-right: 0;
    }

    .fqp-services-page .fqp-directory-contact-panel {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
        padding: 30px;
    }
}

@media (max-width: 767px) {
    .fqp-services-page .fqp-directory-intro {
        padding: 40px 0 28px;
    }

    .fqp-services-page .fqp-directory-nav-list {
        gap: 10px;
    }

    .fqp-services-page .fqp-directory-nav-list a {
        padding: 10px 13px;
    }

    .fqp-services-page .fqp-directory-group {
        padding: 28px 0;
        scroll-margin-top: 100px;
    }

    .fqp-services-page .fqp-directory-group-icon {
        margin-bottom: 12px;
    }

    .fqp-services-page .fqp-directory-entry {
        padding: 18px;
    }

    .fqp-services-page .fqp-directory-entry h3 {
        font-size: 19px;
    }

    .fqp-services-page .fqp-directory-contact {
        padding-bottom: 48px;
    }

    .fqp-services-page .fqp-directory-contact-panel {
        padding: 24px;
        border-radius: 16px;
    }

    .fqp-services-page .fqp-directory-availability {
        padding: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fqp-services-page,
    .fqp-services-page *,
    .fqp-services-page *::before,
    .fqp-services-page *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

/* Phase 03C: reuse the homepage program cards inside independent service carousels.
   Shared .program-item rules and glass frames stay in custom.css / hero-carousel.css. */
.fqp-services-page .fqp-directory-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 18px 24px;
    margin-bottom: 24px;
}

.fqp-services-page .fqp-directory-group-heading {
    display: flex;
    align-items: center;
    flex: 1 1 320px;
    min-width: 0;
    gap: 16px;
    margin: 0;
    padding: 0;
}

.fqp-services-page .fqp-directory-group-icon {
    flex: 0 0 46px;
    margin: 0;
}

.fqp-services-page .fqp-carousel-controls {
    display: flex;
    flex: 0 0 auto;
    gap: 10px;
}

.fqp-services-page .fqp-carousel-controls button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid var(--primary-color);
    border-radius: 50%;
    color: var(--primary-color);
    background: #fff;
    font-size: 17px;
    transition: color 200ms ease, background-color 200ms ease, opacity 200ms ease;
}

.fqp-services-page .fqp-carousel-controls button:hover:not(:disabled) {
    color: #fff;
    background: var(--primary-color);
}

.fqp-services-page .fqp-carousel-controls button:disabled {
    opacity: .4;
    cursor: default;
}

/* Keep locked controls visible so the layout and available movement are clear. */
.fqp-services-page .fqp-carousel-controls .fqp-carousel-locked {
    display: inline-flex;
}

.fqp-services-page .fqp-carousel-controls button:focus-visible,
.fqp-services-page .fqp-service-carousel:focus-visible,
.fqp-services-page .program-item:focus-visible {
    outline: 3px solid var(--primary-color);
    outline-offset: 4px;
}

.fqp-services-page .fqp-service-carousel {
    width: auto;
    min-width: 0;
    margin: -8px -8px 0;
    padding: 8px 8px 40px;
    border-radius: 0;
    touch-action: pan-y;
}

.fqp-services-page .fqp-service-slides {
    align-items: stretch;
    margin: 0;
    padding: 0;
}

.fqp-services-page .fqp-service-slides > .swiper-slide {
    display: flex;
    height: auto;
    box-sizing: border-box;
}

.fqp-services-page .fqp-service-carousel .program-item {
    width: 100%;
    min-width: 0;
    height: auto;
    margin: 0;
    /* Same homepage gradient over an opaque navy base on this white page. */
    background: linear-gradient(145deg,
        rgba(255, 255, 255, .14),
        rgba(255, 255, 255, .03) 42%,
        rgba(255, 255, 255, .08)), var(--primary-color);
}

.fqp-services-page .program-item-content {
    min-width: 0;
    overflow-wrap: break-word;
}

.fqp-services-page .program-item-content h3 {
    margin-bottom: 0;
}

.fqp-services-page .program-item.active::before,
.fqp-services-page .program-item:hover::before,
.fqp-services-page .program-item:focus-within::before {
    transform: scale(0);
    opacity: 1;
}

.fqp-services-page .program-item.active .program-item-image,
.fqp-services-page .program-item:hover .program-item-image,
.fqp-services-page .program-item:focus-within .program-item-image {
    opacity: 1;
}

/* Preserve the homepage navy photo overlay; deepen it behind longer directory copy. */
.fqp-services-page .program-item-image::after {
    background: linear-gradient(180deg,
        rgba(11, 47, 88, .50) 0%,
        rgba(11, 47, 88, .70) 42%,
        rgba(11, 47, 88, .96) 100%);
    opacity: 1;
}

.fqp-services-page .program-item-image figure {
    margin: 0;
}

.fqp-services-page .fqp-directory-card-icon {
    display: block;
    width: 60px;
    height: 60px;
    color: #fff;
}

.fqp-services-page .fqp-directory-card-icon text {
    fill: currentColor;
    font-family: "Font Awesome 7 Free";
    font-size: 52px;
    font-weight: 900;
}

.fqp-services-page .fqp-carousel-status {
    margin: 0;
    color: #526574;
    font-size: 13px;
    line-height: 1.5;
}

/* All services remain readable when JavaScript or the existing Swiper bundle is unavailable. */
.fqp-services-page .fqp-service-carousel:not(.swiper-initialized) .fqp-service-slides {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
}

.fqp-services-page .fqp-service-carousel:not(.swiper-initialized) .swiper-slide {
    width: auto;
}

@keyframes fqp-service-card-enter {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Animate the inner card, never Swiper's translated wrapper or slide. */
@media (prefers-reduced-motion: no-preference) {
    .fqp-services-page .program-item.fqp-card-enter {
        animation: fqp-service-card-enter 650ms both;
        animation-delay: var(--fqp-card-delay, 0ms);
    }
}

@media (max-width: 1199px) and (min-width: 768px) {
    .fqp-services-page .fqp-service-carousel:not(.swiper-initialized) .fqp-service-slides {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }
}

@media (max-width: 991px) {
    .fqp-services-page .fqp-directory-card-icon {
        width: 50px;
        height: 50px;
    }
}

@media (max-width: 767px) {
    .fqp-services-page .fqp-directory-group-header {
        gap: 16px;
        margin-bottom: 20px;
    }

    .fqp-services-page .fqp-directory-group-heading {
        flex-basis: 100%;
        gap: 12px;
    }

    .fqp-services-page .fqp-directory-group-icon {
        margin-bottom: 0;
    }

    .fqp-services-page .fqp-service-carousel:not(.swiper-initialized) .fqp-service-slides {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }
}
