/* =========================================================
   GREEN SHOP OCTOBER PROGRESS
   ========================================================= */

#gs-oct-progress-root{
    width:100%;
    max-width:100%;

    margin:0;
    padding:0;

    direction:rtl;

    position:relative;
    z-index:20;
}

#gs-oct-progress-root *{
    box-sizing:border-box;
}


/* LOADING */

.gs-oct-progress-loading{
    max-width:1180px;

    margin:8px auto;
    padding:10px;

    text-align:center;

    color:#777;

    font-size:12px;
}


/* CARD */

.gs-oct-progress-card{
    max-width:1180px;

    margin:10px auto 18px;
    padding:14px 16px 18px;

    border:1.5px solid rgba(21,217,58,.35);
    border-radius:18px;

    background:
        linear-gradient(
            135deg,
            #F1FFF4 0%,
            #FFFFFF 70%
        );

    box-shadow:
        0 7px 22px rgba(21,217,58,.09);
}


/* TOP */

.gs-oct-progress-top{
    display:flex;

    align-items:center;

    gap:12px;
}


/* BADGE */

.gs-oct-progress-badge{
    flex:0 0 auto;

    padding:7px 12px;

    border-radius:999px;

    background:#15D93A;
    color:#fff;

    font-size:13px;
    line-height:1.3;

    font-weight:900;

    white-space:nowrap;
}


/* COPY */

.gs-oct-progress-copy{
    flex:1 1 auto;
    min-width:0;
}


.gs-oct-progress-title{
    color:#151515;

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

    font-weight:800;
}


.gs-oct-progress-title strong{
    color:#079326;

    font-weight:900;

    white-space:nowrap;
}


.gs-oct-progress-subtitle{
    margin-top:2px;

    color:#5C625D;

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

    font-weight:700;
}


.gs-oct-progress-subtitle strong{
    color:#222;

    font-weight:900;
}


/* TRACK */

.gs-oct-progress-track-wrap{
    margin-top:14px;
    padding:0 2px;
}


.gs-oct-progress-track{
    position:relative;

    width:100%;
    height:9px;

    overflow:hidden;

    border-radius:999px;

    background:#DDE5DF;
}


.gs-oct-progress-fill{
    position:absolute;

    right:0;
    top:0;
    bottom:0;

    min-width:0;

    border-radius:999px;

    background:
        linear-gradient(
            90deg,
            #0CB82E,
            #15D93A
        );

    transition:
        width .35s ease;
}


/* MILESTONES */

.gs-oct-progress-milestones{
    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:6px;

    margin-top:10px;
}


.gs-oct-progress-step{
    display:grid;

    grid-template-columns:
        18px 1fr;

    align-items:center;

    column-gap:5px;

    padding:5px 7px;

    border:1px solid #E2E6E3;
    border-radius:10px;

    background:#fff;

    color:#777;
}


.gs-oct-progress-dot{
    grid-row:
        1 / span 2;

    display:flex;

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

    width:18px;
    height:18px;

    border:2px solid #C8CECA;
    border-radius:50%;

    color:#fff;

    font-size:10px;
    line-height:1;

    font-weight:900;
}


.gs-oct-progress-step strong{
    font-size:12px;
    line-height:1.1;

    font-weight:900;
}


.gs-oct-progress-step small{
    margin-top:1px;

    color:#999;

    font-size:9px;
    line-height:1.1;

    font-weight:600;
}


/* REACHED */

.gs-oct-progress-step.reached{
    border-color:
        rgba(21,217,58,.35);

    background:#F0FFF3;

    color:#079326;
}


.gs-oct-progress-step.reached
.gs-oct-progress-dot{
    border-color:#15D93A;
    background:#15D93A;
}


/* MOBILE */

@media(max-width:600px){

    .gs-oct-progress-card{
        margin:7px 8px 14px;
        padding:11px 10px 14px;

        border-radius:15px;
    }


    .gs-oct-progress-top{
        gap:8px;
    }


    .gs-oct-progress-badge{
        padding:6px 8px;

        font-size:10px;
    }


    .gs-oct-progress-title{
        font-size:12.5px;
    }


    .gs-oct-progress-subtitle{
        font-size:10.5px;
    }


    .gs-oct-progress-track-wrap{
        margin-top:11px;
    }


    .gs-oct-progress-milestones{
        gap:4px;

        margin-top:8px;
    }


    .gs-oct-progress-step{
        grid-template-columns:
            15px 1fr;

        column-gap:3px;

        padding:4px 4px;

        border-radius:8px;
    }


    .gs-oct-progress-dot{
        width:15px;
        height:15px;

        font-size:8px;
    }


    .gs-oct-progress-step strong{
        font-size:10px;
    }


    .gs-oct-progress-step small{
        font-size:7.5px;
    }
}


/* =========================================================
   STICKY OCTOBER PROGRESS BAR
   ========================================================= */

#gs-oct-progress-root{
    position:sticky !important;
    top:0 !important;

    z-index:99990 !important;

    background:#fff !important;

    padding-top:4px !important;

    box-shadow:
        0 5px 18px
        rgba(0,0,0,.07) !important;
}


/* remove excessive spacing while sticky */

#gs-oct-progress-root
.gs-oct-progress-card{

    margin-top:4px !important;
    margin-bottom:6px !important;
}


/* MOBILE */

@media(max-width:600px){

    #gs-oct-progress-root{
        top:0 !important;

        padding-top:2px !important;
    }

    #gs-oct-progress-root
    .gs-oct-progress-card{

        margin:
            3px 8px 5px !important;
    }
}


/* =========================================================
   ROBUST FIXED STICKY MODE
   Overrides previous CSS sticky attempt
   ========================================================= */

#gs-oct-progress-root{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;

    width:100% !important;

    z-index:20 !important;

    padding-top:0 !important;

    background:transparent !important;

    box-shadow:none !important;
}


#gs-oct-progress-root.gs-oct-progress-fixed{
    position:fixed !important;

    top:0 !important;
    left:0 !important;
    right:0 !important;

    width:100% !important;

    z-index:999999 !important;

    padding:3px 0 1px !important;

    background:rgba(255,255,255,.98) !important;

    box-shadow:
        0 5px 18px
        rgba(0,0,0,.12) !important;
}


#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-card{
    margin-top:2px !important;
    margin-bottom:4px !important;
}


#gs-oct-progress-holder{
    display:block !important;

    width:100% !important;

    margin:0 !important;
    padding:0 !important;
}


@media(max-width:600px){

    #gs-oct-progress-root.gs-oct-progress-fixed{
        padding-top:2px !important;
    }

    #gs-oct-progress-root.gs-oct-progress-fixed
    .gs-oct-progress-card{
        margin:
            2px 8px 3px !important;
    }
}


/* =========================================================
   COMPACT MODE WHILE SCROLLING
   ========================================================= */

/* Outer fixed wrapper */
#gs-oct-progress-root.gs-oct-progress-fixed{
    padding:2px 0 !important;
}


/* Card becomes much thinner */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-card{

    margin:2px 7px 3px !important;

    padding:7px 9px 8px !important;

    border-radius:13px !important;

    box-shadow:
        0 4px 14px
        rgba(0,0,0,.10) !important;
}


/* Top area */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-top{

    gap:7px !important;
}


/* Smaller October badge */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-badge{

    padding:5px 7px !important;

    font-size:9px !important;

    line-height:1.15 !important;
}


/* Main message becomes one compact line */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-title{

    font-size:11.5px !important;

    line-height:1.3 !important;

    white-space:nowrap !important;

    overflow:hidden !important;

    text-overflow:ellipsis !important;
}


/* Hide second explanatory line while scrolling */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-subtitle{

    display:none !important;
}


/* Less spacing above progress */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-track-wrap{

    margin-top:6px !important;

    padding:0 2px !important;
}


/* Thin progress track */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-track{

    height:5px !important;
}


/* Milestones closer together */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-milestones{

    gap:3px !important;

    margin-top:5px !important;
}


/* Compact milestone boxes */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-step{

    grid-template-columns:
        13px 1fr !important;

    column-gap:2px !important;

    padding:3px 4px !important;

    min-height:25px !important;

    border-radius:7px !important;
}


/* Smaller circles */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-dot{

    width:13px !important;
    height:13px !important;

    border-width:2px !important;

    font-size:7px !important;
}


/* Percentage */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-step strong{

    font-size:9px !important;

    line-height:1 !important;
}


/* Hide 1,000 / 2,000 / 3,000 / 5,000 while scrolling */
#gs-oct-progress-root.gs-oct-progress-fixed
.gs-oct-progress-step small{

    display:none !important;
}


/* Mobile extra compression */
@media(max-width:600px){

    #gs-oct-progress-root.gs-oct-progress-fixed
    .gs-oct-progress-card{

        margin:2px 5px 3px !important;

        padding:6px 7px 7px !important;
    }


    #gs-oct-progress-root.gs-oct-progress-fixed
    .gs-oct-progress-badge{

        padding:4px 6px !important;

        font-size:8.5px !important;
    }


    #gs-oct-progress-root.gs-oct-progress-fixed
    .gs-oct-progress-title{

        font-size:10.5px !important;
    }


    #gs-oct-progress-root.gs-oct-progress-fixed
    .gs-oct-progress-step{

        padding:3px !important;
    }
}
