/* -------------------- IMPORT FONTS -------------------- */
/* Import multiple Google Fonts including Manufacturing Consent, Merriweather, Roboto, and Arima */
@import url('https://fonts.googleapis.com/css2?family=Manufacturing+Consent&family=Merriweather:ital,opsz,wght@0,18..144,300..900;1,18..144,300..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Arima:wght@100..700&family=Manufacturing+Consent&family=Merriweather:ital,opsz,wght@0,18..144,300..900;1,18..144,300..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

/* -------------------- GLOBAL STYLES -------------------- */
/* Reset margin and padding, set border-box sizing and base font family */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: "Merriweather","serif","sans-serif";
}

/* -------------------- HEADER -------------------- */
/* Fixed top header with white background and shadow, flex layout */
header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 4rem;
    background-color: white;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 40px;
    z-index: 1000;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

/* Navigation menu styled as flex container with even spacing and wrapping */
.navigation {
    display: flex;
    width: 40rem;
    justify-content: space-evenly;
    flex-wrap: wrap; /* Allows wrapping on small screens */
}

/* Navigation links styling and smooth transform on hover */
.navigation a {
    text-decoration: none;
    color: darkblue;
    font-weight: 500;
    transition: transform 0.5s ease-in-out;
}

/* Navigation link hover effect: color change, scale up, and border top */
.navigation a:hover {
    color: #3949AB;
    transform: scale(1.15);
    border-top: 3px solid rgb(211, 207, 207);
}

/* -------------------- MAIN LAYOUT -------------------- */
/* Add top padding to avoid overlap with fixed header */
.main {
    padding-top: 5rem;
}

/* Logo text styling */
.logo {
    font-size: 1.5rem;
    color: darkblue;
}

/* Blue background box with full viewport height and centered text */
.blue-box {
    background-image: url("/images/background2.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    max-width: 100%;
    height: 100vh;
    color: white;
    padding: 14rem;
    text-align: center;
}

/* Heading inside blue-box centered with specific serif fonts */
.blue-box h1 {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 3rem;
    padding-top: 5rem;
    font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
}

/* Paragraph styling inside blue-box */
.blue-box p {
    padding: 10px;
    font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
    font-size: 1.2rem;
}

/* Button styling: block element with dark blue background, white text, rounded corners */
.button {
    display: inline-block;
    margin-top: 2rem;
    background-color: darkblue;
    color: white;
    width: 12rem;
    padding: 0.8rem 1.5rem;
    border-radius: 16px;
    text-decoration: none;
    font-size: 1.1rem;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.3s ease;
}

/* Button hover effect: lighter blue background and slight scale up */
.button:hover {
    background-color: #3949AB;
    transform: scale(1.05);
}

/* White box container for featured genres with fixed height */
.featured-genres.white-box {
    position: relative;
    background-color: white;
    max-width: 100%;
    height: 35rem;
}

/* Heading inside featured genres box */
.featured-genres h3 {
    color: darkblue;
    font-size: 2rem;
    padding: 5rem;
    text-align: center;
}

/* Container for genres using flexbox, centered with gap */
.genres-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
    padding: 1rem;
}

/* Individual genre box with flexible width, shadow, and hover scale effect */
.genres-box {
    flex: 1 1 20rem;
    max-width: 22rem;
    height: 13rem;
    background-color: rgb(246, 243, 243);
    margin-bottom: 1rem;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2);
    transition: transform 0.5s ease-in-out;
}

.genres-box:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Genre box heading styling */
.genres-box h4 {
    color: darkblue;
    text-align: center;
    padding: 15px;
    font-size: 1.5rem;
}

/* Genre box paragraph styling */
.genres-box p {
    padding: 25px;
    text-align: center;
}

/* Gray background container with fixed height */
.gray-box {
    position: relative;
    background-color: rgb(246, 243, 243);
    max-width: 100%;
    height: 35rem;
}

/* Heading inside gray box */
.gray-box h3 {
    color: darkblue;
    font-size: 2rem;
    text-align: center;
    padding: 5rem;
    padding-bottom: 2rem;
}

/* Small white box with shadow, centered */
.small-box {
    margin: 1rem auto;
    width: 40rem;
    height: 20rem;
    background-color: white;
    box-shadow: 0 4px 6px rgba(0, 0,0, 0.4);
}

/* Ordered list item padding */
.small-box ol li {
    padding: 1rem;
    padding-top: 1.5rem;
    list-style-type: inherit;
}

/* Ordered list padding */
.small-box ol {
    padding-left: 5rem;
}

/* Footer with gradient background, white text, flex layout */
footer {
    background: linear-gradient(
        to right,
        #0a1a3f,
        #122b6b,
        #1f4aa3
    );
    color: white;
    display: flex;
    justify-content: space-around;
    align-items: center;
    height: 4rem;
    flex-wrap: wrap; /* Prevent overflow */
    text-align: center;
}

/* Footer icons link styling */
.icon-cap {
    color: whitesmoke;
    text-decoration: none;
}

/* Footer icons link hover underline */
.icon-cap:hover {
    border-bottom: 3px solid whitesmoke;
}

/* ----------- RESPONSIVENESS ----------- */

/* Tablets and smaller laptops */
@media (max-width: 1024px) {
    /* Reduce blue-box padding */
    .blue-box {
        padding: 8rem 2rem;
    }
    /* Small box width 80% */
    .small-box {
        width: 80%;
    }
}

/* Mobile screens */
@media (max-width: 768px) {
    /* Header stacked vertically */
    header {
        flex-direction: column;
        height: auto;
        padding: 1rem;
    }
    /* Navigation full width, centered with gaps */
    .navigation {
        width: 100%;
        justify-content: center;
        gap: 1rem;
    }
    /* Blue box padding and font size adjustments */
    .blue-box {
        padding: 6rem 1rem;
        text-align: center;
    }
    .blue-box h1 {
        font-size: 2rem;
    }
    /* Button width auto */
    .button {
        width: auto;
    }
    /* Featured genres height auto */
    .featured-genres.white-box {
        height: auto;
    }
    /* Small box taller */
    .small-box {
        height: 22rem;
    }
    /* Footer stacked vertically */
    footer {
        flex-direction: column;
        height: auto;
        padding: 1rem;
    }
}

/* Very small devices (phones <480px) */
@media (max-width: 480px) {
    /* Smaller font size for blue box heading */
    .blue-box h1 {
        font-size: 1.5rem;
    }
    /* Genres box full width with margin */
    .genres-box {
        width: 90%;
        margin: 1rem auto;
    }
    /* Small box almost full width and taller */
    .small-box {
        width: 95%;
        height: 22rem;
    }
}
