/* ========================== */
/* MAIN */
/* ========================== */

.tour-results-main{
    width: 100%;
    min-height: 75vh;

    padding:
    60px 25px;

    background-color:
    var(--main-color);
}


/* ========================== */
/* CONTAINER */
/* ========================== */

.tour-results-container{
    width: 95%;
    max-width: 1100px;

    margin: auto;
}


/* ========================== */
/* TITLE */
/* ========================== */

.tour-results-title{
    width: 100%;

    margin-bottom: 35px;
}

.tour-results-title > span:first-child{
    color:
    var(--button-color);

    font-family:
    var(--heading-font);

    font-size: 17px;
}

.tour-results-title h1{
    margin-top: 5px;

    color:
    var(--text-color);

    font-family:
    var(--heading-font);

    font-size: 50px;

    font-weight: 500;
}

.tour-results-title p{
    margin-top: 5px;

    color:
    var(--text-hover-color);

    font-size: 14px;
}

.tour-date{
    display: block;

    margin-top: 10px;

    color:
    var(--text-hover-color);

    font-size: 12px;
}


/* ========================== */
/* PODIUM */
/* ========================== */

.podium-container{
    width: 100%;

    margin-bottom: 30px;

    display: grid;

    grid-template-columns:
    repeat(3, 1fr);

    gap: 15px;

    align-items: end;
}

.podium-card{
    min-height: 160px;

    padding: 25px 15px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    gap: 8px;

    background-color:
    var(--surface-color);

    border:
    1px solid var(--boarder-color);

    border-radius: 12px;

    text-align: center;
}

.first-place{
    min-height: 200px;

    border-color:
    var(--button-color);
}

.podium-rank{
    color:
    var(--button-color);

    font-family:
    var(--heading-font);

    font-size: 30px;
}

.podium-card h2{
    color:
    var(--text-color);

    font-size: 20px;

    font-weight: 600;
}

.podium-points{
    color:
    var(--text-hover-color);

    font-size: 12px;
}


/* ========================== */
/* SUMMARY */
/* ========================== */

.tour-summary{
    width: 100%;

    margin-bottom: 25px;

    display: grid;

    grid-template-columns:
    repeat(3, 1fr);

    gap: 15px;
}

.summary-box{
    min-height: 95px;

    padding: 18px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    gap: 3px;

    background-color:
    var(--surface-color);

    border:
    1px solid var(--boarder-color);

    border-radius: 10px;
}

.summary-number{
    color:
    var(--text-color);

    font-family:
    var(--heading-font);

    font-size: 34px;
}

.summary-label{
    color:
    var(--text-hover-color);

    font-size: 12px;

    text-align: center;
}


/* ========================== */
/* TABLE WRAPPER */
/* ========================== */

.results-table-wrapper{
    width: 100%;

    overflow-x: auto;

    background-color:
    var(--surface-color);

    border:
    1px solid var(--boarder-color);

    border-radius: 12px;
}


/* ========================== */
/* TABLE */
/* ========================== */

.tour-results-table{
    width: 100%;

    min-width: 650px;

    border-collapse: collapse;
}

.tour-results-table thead{
    background-color:
    var(--surface-hover-color);
}

.tour-results-table th{
    padding:
    16px 18px;

    color:
    var(--text-color);

    font-size: 13px;

    font-weight: 600;

    text-align: start;

    border-bottom:
    1px solid var(--boarder-color);
}

.tour-results-table td{
    padding:
    17px 18px;

    color:
    var(--text-color);

    font-size: 14px;

    border-bottom:
    1px solid var(--boarder-color);
}

.tour-results-table tbody tr:last-child td{
    border-bottom: none;
}

.tour-results-table tbody tr{
    transition: 0.2s;
}

.tour-results-table tbody tr:hover{
    background-color:
    var(--surface-hover-color);
}


/* ========================== */
/* RANK */
/* ========================== */

.rank-value{
    color:
    var(--text-color);

    font-family:
    var(--heading-font);

    font-size: 22px;
}


/* ========================== */
/* FIRST THREE */
/* ========================== */

.rank-one{
    color:
    var(--button-color);
}

.rank-two{
    color:
    var(--text-color);
}

.rank-three{
    color:
    var(--text-hover-color);
}


/* ========================== */
/* DETECTIVE */
/* ========================== */

.detective-value{
    font-weight: 600;
}


/* ========================== */
/* RESULT */
/* ========================== */

.solved-badge{
    display: inline-flex;

    min-width: 90px;
    min-height: 30px;

    padding:
    5px 12px;

    justify-content: center;

    align-items: center;

    color:
    var(--text-color);

    border:
    1px solid var(--text-color);

    border-radius: 20px;

    font-size: 11px;
}


/* ========================== */
/* POINTS */
/* ========================== */

.points-value{
    color:
    var(--button-color);

    font-weight: 600;
}


/* ========================== */
/* STATE */
/* ========================== */

.results-state{
    width: 100%;

    padding: 35px 20px;

    background-color:
    var(--surface-color);

    border:
    1px solid var(--boarder-color);

    border-radius: 10px;

    color:
    var(--text-hover-color);

    text-align: center;

    font-size: 14px;
}

.error-state{
    color:
    var(--button-color);
}


/* ========================== */
/* BACK */
/* ========================== */

.back-container{
    width: 100%;

    margin-top: 25px;
}

.back-container a{
    display: inline-flex;

    min-width: 180px;

    height: 42px;

    padding:
    0px 20px;

    justify-content: center;

    align-items: center;

    background-color:
    var(--button-color);

    border-radius: 6px;

    color: white;

    text-decoration: none;

    font-size: 13px;

    font-weight: 600;

    transition: 0.2s;
}

.back-container a:hover{
    background-color:
    var(--button-color-hover);
}


/* ========================== */
/* HIDDEN */
/* ========================== */

.hidden{
    display: none;
}


/* ========================== */
/* TABLET */
/* ========================== */

@media (max-width:1024px){

    .tour-results-main{
        padding:
        50px 20px;
    }

    .tour-results-container{
        width: 100%;
    }

    .tour-results-title h1{
        font-size: 44px;
    }

}


/* ========================== */
/* MOBILE */
/* ========================== */

@media (max-width:767px){

    .tour-results-main{
        padding:
        35px 15px;
    }


    .tour-results-title{
        margin-bottom: 25px;
    }


    .tour-results-title h1{
        font-size: 36px;
    }


    .tour-results-title p{
        font-size: 13px;
    }


    .podium-container{
        grid-template-columns:
        1fr;

        align-items: stretch;
    }


    .first-place,
    .second-place,
    .third-place{
        min-height: 120px;
    }


    .first-place{
        order: 1;
    }


    .second-place{
        order: 2;
    }


    .third-place{
        order: 3;
    }


    .tour-summary{
        gap: 8px;
    }


    .summary-box{
        min-height: 82px;

        padding:
        10px 5px;
    }


    .summary-number{
        font-size: 29px;
    }


    .summary-label{
        font-size: 10px;
    }

}


/* ========================== */
/* SMALL MOBILE */
/* ========================== */

@media (max-width:480px){

    .tour-results-main{
        padding:
        30px 10px;
    }


    .tour-results-title h1{
        font-size: 32px;
    }


    .tour-summary{
        grid-template-columns:
        1fr;
    }


    .back-container a{
        width: 100%;
    }

}