/*
   Fixed-size web application
   Uses rem units for proportional scaling during development
   Layout is intentionally non-responsive
*/

/*   **********    SETUP OF DOCUMENT     **********     */

html {
    /* FINAL SIZE FOR MAKING IT 1920x1080 */
    font-size: 16px;
    /* SIZE FOR DEVELOPMENT */
    /* comment below out for final submission */
    /* can change based on size needed */
    /* font-size: 11px; */
}

body {
    background-color: #000;
    font-family: 'Lato', sans-serif;
}

/*   **********    MAIN ELEMENTS     **********     */

main {
    width: 120.0rem;
    height: 67.5rem;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 42.0rem 78.0rem;
    grid-template-rows: 62.5rem 5.0rem;
}

/*   **********    Container ELEMENTS     **********     */

.left-side {
    background-color: #BBB;
    display: grid;
    grid-template-rows: 12.5rem 12.5rem 37.5rem;
}

.right-side {
    background-color: #AAA;
    display: grid;
    grid-template-rows: 43.875rem 18.625rem;
}

.bottom {
    grid-column: 1 / -1;
    background-color: #92d0aa;
    position: relative;

    img {
        position: absolute;
        top: 0;
        left: 0;
        height: 5rem;
        border-top: #0f8261 solid 0.4rem;
        border-right: #0f8261 solid 0.4rem;
    }
}

/*   **********    Content ELEMENTS     **********     */

.left-side-top {
    height: 12.5rem;
    background-color: #3e2b2f;
    position: relative;
}

.left-side-top img {
    width: 100%;
    height: 100%;
}

.left-side-middle {
    height: 12.5rem;
    background-color: #3e2b2f;
    font-family: 'Oswald', sans-serif;
    font-weight: 600;
    color: #ffffff;
}

.left-side-bottom {
    height: 37.5rem;
    background-color: #3e2b2f;
}

.right-side-top {
    height: 43.875rem;
    background-color: #ABABAB;
}

.right-side-bottom {
    position: relative;
    height: 18.625rem;
    background-color: #92d0aa;
    overflow: hidden;
    border-block: #0f8261 solid 0.8rem;
    border-left: #0f8261 solid 0.8rem;

}

.heading-bg {
    background-color: #0f8261;
    width: 14rem;
    height: 5rem;
    border-end-end-radius: 6rem;
    position: relative;
    z-index: 20;
    display: flex;
    align-items: center;
    padding-left: 2rem;
}

.heading-bg h1 {
    color: #ffffff;
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    font-size: 2.4rem;
    text-transform: uppercase;
    margin: 0;
    margin-top: -1rem;
}

#time {
    position: absolute;
    top: 8rem;
    left: 0rem;
    color: white;
    width: 17.5rem;
    font-family: 'Oswald', sans-serif;
    font-size: 3rem;
    font-weight: 700;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;

}

#separator {
    position: absolute;
    top: 8.5rem;
    left: 17.4rem;
    color: white;
    font-family: 'Oswald', sans-serif;
    font-size: 2rem;
    z-index: 80;
}

#date {
    position: absolute;
    top: 8.5rem;
    left: 17.8rem;
    color: white;
    width: 24.2rem;
    font-family: 'Oswald', sans-serif;
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

#date sup {
    font-size: 0.55em;
    vertical-align: top;
    position: relative;
    top: -0.5rem;
    margin-left: 0.0625rem;
}

#gsap-iframe {
    width: 100%;
    height: 100%;
}

#news-slider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
}

.news-slide {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.news-slide img {
    width: 37.25rem;
    height: 20.9375rem;
}

.news-slide h2 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.8rem;
    font-weight: 600;
    color: #000;
    margin: 6rem 0 1rem 2rem;
}

.news-slide p {
    font-family: 'Lato', sans-serif;
    color: #000;
    margin-left: 2rem;
    line-height: 1.4rem;
}

.slick-dots {
    right: 18rem;
    bottom: 0.4rem;
}

.slick-dots li button:before {
    color: white;
}

.slick-dots li.slick-active button:before {
    color: white;
}

.marquee {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    overflow: hidden;
    margin-top: 1.5rem;
    margin-left: 10rem;
    word-spacing: 1rem;
    font-family: 'Lato', sans-serif;
    font-size: 1.8rem;
}

.meal {
    font-family: 'Oswald', sans-serif;
    font-size: 1.8rem;
    font-weight: 600;
    color: #000;
    margin-left: 6rem;
}

/* weather */

#weather-container {
    display: flex;
    align-items: center;
}

.weather-item {
    width: calc(100%/5);
    text-align: center;
    margin-right: 1rem;
}

.weather-item>img {
    height: 4rem;
    width: auto;
}

.weather-day {
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

.weather-name {
    font-size: 1rem;
    margin-top: 1.4rem;
    margin-bottom: 0.6rem;
}

.weather-temp {
    font-size: 1.2rem;

}


.right-side-top {
    overflow: hidden;
    position: relative;
}

#youtube-iframe {
    position: absolute;
    width: 78.1rem;
    height: 60rem;
    top: -8rem;
    left: -0.1rem;
    pointer-events: none;
}


/*   **********    BRICK WALL / MONITOR     **********   */
body {
    margin: 0;
    padding: 0;
    width: 100vw;
    height: 100vh;
    background-color: #000;
    background-image: url(../assets/images/background-4.jpg);
    background-size: cover;
    background-position: center;
    /* Keeps background centered */

    /* Centering logic */
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    /* Prevents scrollbars if the TV is huge */
}

#tv-wrapper {
    /* 1. Define the "Natural" size (1920x1080 + borders) */
    --base-width: 124rem;
    --base-height: 71.5rem;

    width: var(--base-width);
    height: var(--base-height);

    /* 2. Scale logic: This is the "Magic" */
    /* It calculates the ratio between the screen and the TV size */
    transform: scale(min(calc(100vw / var(--base-width)), calc(100vh / var(--base-height)), 1));
    transform-origin: center;
    flex-shrink: 0;
    /* Prevents flexbox from squishing it */

    /* 3. Your Existing Styles */
    display: flex;
    justify-content: center;
    align-items: center;
    border: 2rem solid #222;
    border-radius: 1rem;
    box-sizing: border-box;
    box-shadow: 0 0 3rem rgba(0, 0, 0, 0.7), inset 0 0 2rem rgba(255, 255, 255, 0.05);
    background: linear-gradient(to top left, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
}

main {
    /* Ensure main fills the scaled wrapper perfectly */
    width: 120rem;
    height: 67.5rem;
    display: grid;
    grid-template-columns: 42rem 78rem;
    grid-template-rows: 62.5rem 5rem;
}

@media (max-width: 64rem) {
    body {
        /* This moves the TV to the top of the screen */
        align-items: flex-start;

        /* Optional: Add a little padding so it's not touching the very edge */
        padding-top: 4rem;
    }

}