/* ===========================================================
   Ranosys GCC Stats Highlight — widget styles
   =========================================================== */

.rsc-gsh-section {
    position: relative;
    width: 100%;
}

/* -----------------------------------------------------------
   Optional background image + auto white text
----------------------------------------------------------- */
.rsc-gsh-section .rsc-gsh-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.rsc-gsh-has-bg {
    --rsc-gsh-overlay: rgba(10, 20, 58, 0.92);
}

.rsc-gsh-has-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--rsc-gsh-overlay) 0%, var(--rsc-gsh-overlay) 45%, color-mix(in srgb, var(--rsc-gsh-overlay) 15%, transparent) 100%);
    z-index: 1;
}

.rsc-gsh-has-bg .rsc-gsh-eyebrow,
.rsc-gsh-has-bg .rsc-gsh-heading,
.rsc-gsh-has-bg .rsc-gsh-description,
.rsc-gsh-has-bg .rsc-gsh-bullet-text,
.rsc-gsh-has-bg .rsc-gsh-number,
.rsc-gsh-has-bg .rsc-gsh-label {
    color: #fff !important;
}

.rsc-gsh-container {
    position: relative;
    z-index: 2;
    max-width: 1350px;
    margin: 0 auto;
    padding: 0 10px;
}

/* -----------------------------------------------------------
   Two-column grid: text column + stats grid
----------------------------------------------------------- */
.rsc-gsh-grid {
    --rsc-gsh-col-gap: 60px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: var(--rsc-gsh-col-gap);
}

.rsc-gsh-stats-left .rsc-gsh-content {
    order: 2;
}

.rsc-gsh-stats-left .rsc-gsh-stats {
    order: 1;
}

/* -----------------------------------------------------------
   Text column
----------------------------------------------------------- */
.rsc-gsh-eyebrow {
    display: inline-block;
    font-family: Poppins, sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 1.5px;
    color: #666;
    text-transform: uppercase;
    margin: 0 0 12px 0;
}

.rsc-gsh-heading {
    font-family: Poppins, sans-serif;
    font-size: 36px;
    font-weight: 500;
    line-height: 1.2;
    color: #1a1a1a;
    margin: 0 0 16px 0;
}

.rsc-gsh-description {
    font-family: "source-sans-pro", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: #333;
    margin: 0 0 24px 0;
}

.rsc-gsh-bullets {
    --rsc-gsh-bullet-gap: 16px;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--rsc-gsh-bullet-gap);
}

.rsc-gsh-bullet {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rsc-gsh-bullet-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 1.6em;
    height: 1.6em;
    border-radius: 50%;
    background-color: #fe5907;
    font-size: 18px;
    line-height: 1;
}

/* Badge always shows a white glyph, regardless of what sits behind the
   widget — the icon itself (not just its font-size) scales with the
   badge via em units, so the "Icon Size" control still resizes both. */
.rsc-gsh-bullet-icon i {
    color: #fff;
    font-size: 0.55em;
}

.rsc-gsh-bullet-icon svg,
.rsc-gsh-bullet-icon img {
    width: 0.55em;
    height: 0.55em;
    fill: #fff;
    object-fit: contain;
}

.rsc-gsh-bullet-text {
    font-family: "source-sans-pro", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #333;
}

/* -----------------------------------------------------------
   Stats grid
----------------------------------------------------------- */
.rsc-gsh-stats {
    --rsc-gsh-cols: 2;
    --rsc-gsh-col-gap: 32px;
    --rsc-gsh-row-gap: 32px;
    display: grid;
    grid-template-columns: repeat(var(--rsc-gsh-cols), 1fr);
    column-gap: var(--rsc-gsh-col-gap);
    row-gap: var(--rsc-gsh-row-gap);
    /* Shrink to content and hug the right edge of the column — each
       number/label stays left-aligned inside its own cell (text-align
       is left by default), only the block as a whole sits flush right. */
    justify-self: end;
    width: fit-content;
}

.rsc-gsh-number {
    font-family: Poppins, sans-serif;
    font-size: 50px;
    font-weight: 600;
    line-height: 1.22;
    color: #1a1a1a;
    margin: 0 0 8px 0;
}

.rsc-gsh-label {
    font-family: "source-sans-pro", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #555;
    margin: 0;
}

/* -----------------------------------------------------------
   Elementor editor preview iframe: the scroll-animate observer
   may never fire there, so always show the reveal elements.
----------------------------------------------------------- */
.elementor-editor-active .rsc-gsh-content,
.elementor-editor-active .rsc-gsh-stat {
    opacity: 1 !important;
    transform: none !important;
}

/* -----------------------------------------------------------
   Responsive
----------------------------------------------------------- */
@media (max-width: 1200px) {
    .rsc-gsh-has-bg::before {
        background: linear-gradient(180deg, var(--rsc-gsh-overlay) 0%, var(--rsc-gsh-overlay) 45%, color-mix(in srgb, var(--rsc-gsh-overlay) 15%, transparent) 100%);
    }

    .rsc-gsh-bg-img {
        object-position: center 25%;
    }

    .rsc-gsh-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .rsc-gsh-stats-left .rsc-gsh-content,
    .rsc-gsh-stats-left .rsc-gsh-stats {
        order: initial;
    }

    .rsc-gsh-heading {
        text-align: center;
    }

    .rsc-gsh-eyebrow,
    .rsc-gsh-description {
        text-align: center;
    }

    .rsc-gsh-stats {
        justify-self: stretch;
        width: auto;
    }
}

@media (max-width: 767px) {
    .rsc-gsh-stats[data-cols="4"] {
        --rsc-gsh-cols: 2;
    }

    .rsc-gsh-number {
        font-size: 32px;
    }
}

@media (max-width: 480px) {
    .rsc-gsh-stats {
        --rsc-gsh-cols: 1 !important;
    }
}
