@font-face {
    font-family: 'Manrope';
    src:
        url('https://www.sino.de/wp-content/themes/sino-ag/fonts/manrope-light.woff2') format('woff2'),
        url('https://www.sino.de/wp-content/themes/sino-ag/fonts/manrope-light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'Manrope';
    src:
        url('https://www.sino.de/wp-content/themes/sino-ag/fonts/manrope-semibold.woff2') format('woff2'),
        url('https://www.sino.de/wp-content/themes/sino-ag/fonts/manrope-semibold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
}

@font-face {
    font-family: 'Manrope';
    src:
        url('https://www.sino.de/wp-content/themes/sino-ag/fonts/manrope-extrabold.woff2') format('woff2'),
        url('https://www.sino.de/wp-content/themes/sino-ag/fonts/manrope-extrabold.woff') format('woff');
    font-weight: 800;
    font-style: normal;
}

.fill.blue {
    fill: rgb(0, 41, 89);
}

.fill.white {
    fill: rgb(255, 255, 255);
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Alte-Haas-Grotesk', 'Manrope', sans-serif;
    font-family:   Roboto, Oxygen, system-ui, -apple-system, BlinkMacSystemFont, Ubuntu, Cantarell, sans-serif;
    padding: 40px 20px;
    text-align: center;
}


:root {
    --COUNT-MAX-LANES: 11;
    --COUNT-MAX-FULL-LANES: 3;

    --full-lane-height: 70px;
    --small-lane-height: 55px;
    --stacked-small-lane-height: 60px;

    --lane-margin: 20px;
    --full-lane-gap: 45px;

    --small-lane-gap: 40px;

    --min-lane-width: 25rem;

    --animation-duration: 0.35s;
    --small-split-count: 4;

    --max-lane-value: 100;

    --main-gradient: linear-gradient(90deg, rgb(0, 41, 89) 0%, rgb(0, 148, 79) 100%);
    --sub-gradient: linear-gradient(90deg,rgb(0, 148, 79) 0%,  rgb(0, 41, 89)  100%);
}

#logo-left {
    display: none !important;
}

body {
    margin: 20px;
    background-color: #f4f4f9;
}

.lane-container {
    --lane-container-height: 70vh;
    position: relative;
    border: 1px solid #ccc;
    padding: 10px;
    background: var(--main-gradient);
    overflow: hidden;
    height: var(--lane-container-height);
    transition: height var(--animation-duration) ease-out;
}

.lane-container::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    transform: translate(0px, calc(var(--full-lane-gap) * (var(--COUNT-MAX-FULL-LANES) + 1) + var(--full-lane-height) * var(--COUNT-MAX-FULL-LANES)));
    z-index: 0;
    background: rgb(0, 41, 89);
}


.lane {
    --lane-width: calc(100% - 20px);
    height: var(--full-lane-height);
    width: var(--lane-width);
    box-sizing: border-box;
    padding: 10px;

    background-color: #e0e0e0;
    border-top-right-radius: var(--full-lane-height);
    border-bottom-right-radius: var(--full-lane-height);
    display: flex;
    align-items: center;
    font-weight: bold;
    color: #333;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    position: absolute;
    left: 10px;
    will-change: transform, opacity, width, height;

    position: absolute;

    z-index: 1;

    transition: transform var(--animation-duration) ease-out,
        opacity var(--animation-duration) ease-out,
        width var(--animation-duration) ease-out,
        height var(--animation-duration) ease-out;
}


.lane-progress-overlay {
    --overlay-border-width: 2px;
    display: flex;
    position: absolute;
    top: var(----overlay-border-width);
    left: 0;

    width: var(--progress-width, 0%);
    height: 100%;
    background: var(--sub-gradient);

    border-top-right-radius: calc(var(--full-lane-height));
    border-bottom-right-radius: calc(var(--full-lane-height));

    border: var(--overlay-border-width) solid white;
    box-sizing: border-box;

    z-index: 0;
    transition: width var(--animation-duration) ease-out;
}

.lane.small .lane-progress-overlay {
    display: none;
}


.lane.small {
    height: var(--small-lane-height);
    padding: 5px;

    background: rgb(0, 41, 89);
    border: 2px solid white;
    z-index: auto;
}


.lane-value,
.lane-name {
    color: #fff;
    text-shadow:

        1px 0 0 rgb(0, 41, 89),

        -1px 0 0 rgb(0, 41, 89),

        0 1px 0 rgb(0, 41, 89),

        0 -1px 0 rgb(0, 41, 89);
}


.lane:not(.small) .lane-value,
.lane:not(.small) .lane-name {
    font-size: x-large;
}


.lane::before {
    content: attr(data-rank);

    --rank-circle-size: calc(var(--full-lane-height) + 10px);
    width: var(--rank-circle-size);
    height: var(--rank-circle-size);
    border-radius: 50%;
    background-color: #66809f;
    border: 2px solid #fff;
    color: white;
    font-size: x-large;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;

    position: absolute;
    top: 50%;

    transform: translateY(-50%);



    left: calc(var(--rank-circle-size) / -2 - 10px);
    z-index: 10;
}


.lane.small::before {
    --rank-circle-size: var(--small-lane-height);

    width: var(--rank-circle-size);
    height: var(--rank-circle-size);
    font-size: large;


    top: 50%;
    transform: translateY(-50%);


    left: calc(var(--rank-circle-size) / -2 - 5px);
}


.lane-content-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-grow: 1;


    margin-left: calc(var(--full-lane-height) * 2 / 3);

    z-index: 2;
    width: 100%;

}


.lane.small .lane-content-wrapper {

    margin-left: calc(var(--small-lane-height) * 2 / 3);
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}



.lane:not(.small) .lane-value {
    margin-left: 0;

    margin-right: 5px;
    color: #fff;
}


.lane.small .lane-value-group {
    position: static;
    transform: none;
    margin-left: 0;
    color: inherit;
}


.pouch-icon {
    position: relative;
    display: inline-block;
    width: 70px;
    height: 70px;
    vertical-align: middle;
    flex-shrink: 0;
    background-image: url("../images/bag.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.lane.small .pouch-icon {
    display: none;
}


.lane-value-group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.lane:not(.small) .lane-value-group {
    margin-right: -20px;
}

.lane.small .lane-value-group {
    margin-right: 10px;
}


.lane.animated-exit {
    opacity: 0;
    transform: translate(var(--exit-x, 0px), 100vh) !important;
}



.bottom-container {


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

}


#footer {
    color: rgb(0, 41, 89);

    width: 100%;
    font-size: xx-large;

    margin: 8px;
    margin: 0 0 24px 0;

    display: flex;
    align-items: end;

}

#footer .t {
    width: 100%;
    font-weight: bolder;
    font-size: xxx-large;

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

#footer .l {
    display: inline-flex;
    flex-direction: row;
}

#footer .r {

    margin-right: 32px;
    text-align: right;
    font-weight: bold;
    align-content: end;
}

#footer .timer {
    --start-h: 7;
    --start-m: 30;
    --end-h: 23;
    --end-m: 00;

    --timer-height: 48px;

    width: 80%;
    height: var(--timer-height);

    margin-top: 8px;

    background-color: rgb(0, 41, 89);

    --track-content: calc(var(--timer-height) - calc(var(--track-border) * 2));

    border-radius: var(--timer-height);
    display: inline-block;

    white-space: nowrap;
    position: relative;

    color: white;
    font-weight: bold;

    display: inline-flex;
    align-items: center;
    justify-content: space-between;
}

#footer .timer>.slider {
    height: var(--timer-height);
    width: clamp(0%, calc(calc(var(--ToD-h) * 60 + var(--ToD-m) - var(--start-h) * 60 - var(--start-m)) / calc(var(--end-h) * 60 + var(--end-m) - var(--start-h) * 60 - var(--start-m)) * 100%), 100%);
    border-radius: var(--timer-height);
    display: inline-flex;
    align-items: center;
    justify-content: end;

    background-color: rgb(0, 148, 79);

    min-width: 8rem;
    z-index: 2;
}

#footer .timer .time {
    display: flex;
    align-items: center;
}

#footer .timer .time-start {
    height: var(--timer-height);
    margin-left: 16px;
    position: absolute;
    z-index: 3;
}

#footer .timer .time-start::before {
    counter-reset: variable var(--start-h);
    content: counter(variable);

    font-size: x-large;
}

#footer .timer .time-start::after {
    counter-reset: variable var(--start-m);
    content: counter(variable, decimal-leading-zero);

    font-size: medium;
    position: relative;
    top: -2px;
}

#footer .timer .time-now {
    display: none;
    margin-right: 1rem;

    position: absolute;
    z-index: 3;
}

#footer .timer .time-now.active {
    display: block;
}


#footer .timer .time-now::before {
    counter-reset: variable var(--ToD-h);
    content: counter(variable);
    font-size: x-large;
}

#footer .timer .time-now::after {
    counter-reset: variable var(--ToD-m);
    content: counter(variable, decimal-leading-zero);

    font-size: medium;

    position: relative;
    top: -2px;
}


#footer .timer .time-end {
    margin-right: 16px;
    position: absolute;
    right: 0px;
    display: flex;
    align-items: center;
}

#footer .timer .time-end::before {
    counter-reset: variable var(--end-h);
    content: counter(variable);

    font-size: x-large;
}

#footer .timer .time-end::after {
    counter-reset: variable var(--end-m);
    content: counter(variable, decimal-leading-zero);

    font-size: medium;
    position: relative;
    top: -2px;
}


@media (max-width: 1400px) {
    :root {
        --small-split-count: 4;
    }

    .lane:not(.small) .lane-value,
    .lane:not(.small) .lane-name {
        font-size: large;
    }

    .compact-item-wrapper {
        flex-basis: calc(25% - var(--compact-gap) * 2/3);
    }
}

@media (max-width: 1200px) {
    :root {
        --small-split-count: 3;
    }


    .compact-item-wrapper {
        flex-basis: calc(33.333% - var(--compact-gap) * 2/3);
    }

    #footer {
        flex-direction: column;
        gap: 1rem;
    }

    #logo-left {
        display: flex !important;
    }

    #logo-right {
        display: none !important;
    }

    #footer .timer {
        width: 100% !important;
    }

    #footer svg {
        margin-right: 0px;
    }
}

@media (max-width: 1000px) {
    :root {
        --small-split-count: 2;
        --small-lane-height: var(--stacked-small-lane-height);
        --small-lane-gap: 30px;

        --full-lane-height: 50px;
        --small-lane-height: 45px;
        --stacked-small-lane-height: 60px;

        --lane-margin: 20px;
        --full-lane-gap: 25px;

        --min-lane-width: 18rem;
    }

    .lane.small .lane-value-group {
        height: auto;
    }

    :root {
        --list-h-padding: 15px;
        --rank-circle-size: 30px;
        --main-slider-height: 50px;
        --compact-slider-height: 35px;

        --rank-bag-size: 50px;

        --slider-mobile-width-extension: 25%;
    }

    .lane:not(.small) .lane-value,
    .lane:not(.small) .lane-name {
        font-size: medium;
    }

    .ranking-item {
        margin-bottom: 20px;
    }

    .rank-circle {
        font-size: 14px;
    }

    .rank-name {
        font-size: 14px;
        margin-left: 10px;
        max-width: 55%;
    }

    .rank-value-wrapper {
        padding: 0 5px;
        font-size: 14px;
        min-width: 45px;
    }


    .compact-item-wrapper {
        flex-grow: 0;
        flex-basis: calc(50% - (var(--compact-gap) / 2));
    }


    .compact-slider-container .rank-circle {
        width: calc(var(--main-slider-height) * 0.6);
        height: calc(var(--main-slider-height) * 0.6);
        font-size: 9px;
    }

    .compact-slider-container .rank-name {
        font-size: 12px;
        white-space: normal;
        max-width: 65%;
    }

    #footer {
        font-size: x-large !important;
    }

    #footer .t {
        font-size: xx-large !important;
    }

}

@media (max-width: 815px) {

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

    #footer .t{
        padding: 24px;
    }

    #footer svg {
        width: 120px;
        height: 120px;
    }

    #footer .r {
        margin-right: 18px;
    }
}

@media (max-width: 600px) {
    :root {
        --small-split-count: 1;
        --small-lane-height: var(--stacked-small-lane-height);
    }

    .lane.s1all .lane-content-wrapper {
        flex-direction: row;
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-grow: 1;
    }

    .lane.small {
        margin-left: calc(var(--lane-width) * 0.05);
        width: calc(var(--lane-width) * 0.9);
    }

    #footer .t {
        font-size: x-large !important;
    }
}