/* === 🔹 Begin Login Section CSS === */

/* === 🔹 Center the Login Box === */
#login-container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background: #f8f9fa; /* ✅ Light background for a professional look */
    text-align: center;
    padding: 1.5rem;
}

/* === 🔹 Clean and Modern Login Box === */
.login-box {
    background: white; /* ✅ Solid white background for clarity */
    padding: 2.5rem;
    border-radius: 1rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); /* ✅ Soft shadow for a modern feel */
    max-width: 26rem;
    width: 100%;
    animation: fadeIn 0.8s ease-in-out;
    text-align: center;
}

/* === 🔹 Logo Centering === */
.logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 1rem;
}

.logo-container img {
    max-width: 120px;
    height: auto;
}

/* === 🔹 Login Header Styling === */
.login-box h2 {
    font-family: "Poppins", sans-serif;
    font-size: 1.5rem;
    margin-bottom: 1.25rem;
    color: #333; /* ✅ Dark gray for better readability */
    font-weight: bold;
}

/* === 🔹 Subheading Styling === */
.login-box h2 span {
    color: #0078D7; /* ✅ Blue for branding emphasis */
    font-weight: bold;
}

/* === 🔹 Login Button Styling === */
button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.875rem;
    margin: 0.75rem 0;
    border: none;
    border-radius: 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    outline: none;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

/* === 🔹 Button Hover Effect (Subtle 3D Animation) === */
button::after {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 300%;
    height: 100%;
    background: rgba(255, 255, 255, 0.2);
    transition: all 0.4s ease-in-out;
    transform: translateX(-50%) skewX(30deg);
    opacity: 0;
}

button:hover::after {
    width: 120%;
    opacity: 1;
}

/* === 🔹 Auth0 Login Button === */
#auth0-login {
    background: #0078D7;
    color: white;
    width: 16rem;
    max-width: 70%;
    margin: 0 auto; /* Centers button horizontally */
}

#auth0-login:hover {
    background: #005ea6;
    transform: translateY(-2px);
}

/* === 🔹 Smooth Fade-In Effect === */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-1.25rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* === 🔹 Mobile-Friendly Adjustments === */
@media (max-width: 600px) {
    .login-box {
        padding: 1.875rem;
        max-width: 90%;
    }

    .login-box h2 {
        font-size: 1.25rem;
        margin-bottom: 1rem;
    }

    button {
        font-size: 0.9rem;
        padding: 0.75rem;
        border-radius: 0.5rem;
    }
}

@media (max-width: 400px) {
    .login-box {
        padding: 1.5rem;
    }

    .login-box h2 {
        font-size: 1.1rem;
    }

    button {
        font-size: 0.85rem;
        padding: 0.7rem;
    }
}
/* === 🔹 End Login Section CSS === */


/* === Begin Logo Section === */
.logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.25rem;
}

.logo-container img {
    max-width: 80%;
    height: auto;
    max-height: 9.375rem; /* Adjust if needed */
}
/* === End Logo Section === */

/* === Begin Navigation Link Styling === */
.section-links {
    margin-top: 0.9375rem;
    padding: 0.625rem 0;
    text-align: left;
    border-top: 0.0625rem solid #ddd;
    font-size: 0.875rem;
}

.section-links a {
    color: #0078D7;
    text-decoration: none;
    padding: 0 0.5rem; /* Adds spacing around links */
    transition: color 0.3s ease-in-out;
}

.section-links a:hover {
    color: #005ea6;
    text-decoration: underline;
}

/* Remove link styling from separator */
.section-links a::after {
    content: "|";
    color: #999;
    padding-left: 0.5rem;
}

/* Remove the "|" after the last link */
.section-links a:last-child::after {
    content: "";
}
/* === End Navigation Link Styling === */


/* === Base Styling for All Collapsible Buttons === */
.collapsible {
    color: white;
    cursor: pointer;
    padding: 0.75rem 1rem;
    width: 100%;
    border: none;
    text-align: left;
    align-items: center;
    justify-content: left;
    font-size: 1rem;
    font-weight: bold;
    outline: none;
    border-radius: 0.625rem;
    transition: all 0.3s ease-in-out;
    box-shadow: 0.125rem 0.125rem 0.3125rem rgba(0, 0, 0, 0.15);
    margin-top: 0.5rem;
}

/* Apply the base color as background */
.section > .collapsible {
    background: var(--base-color, #ccc);
}

/* 1st level nested button (one level deep) */
.section > .content > .collapsible {
    background: var(--base-color, #ccc);
    filter: brightness(115%); /* Slightly lighter */
}

/* 2nd level nested button (two levels deep) */
.section > .content .content > .collapsible {
    background: var(--base-color, #ccc);
    filter: brightness(130%); /* Even lighter */
}

/* 3rd level nested button (three levels deep) */
.section > .content .content .content > .collapsible {
    background: var(--base-color, #ccc);
    filter: brightness(145%); /* Even lighter still */
}

/* 4th level nested button (four levels deep) */
.section > .content .content .content .content > .collapsible {
    background: var(--base-color, #ccc);
    filter: brightness(160%); /* Even lighter still */
}

/* 5th level nested button (five levels deep) */
.section > .content .content .content .content .content > .collapsible {
    background: var(--base-color, #ccc);
    filter: brightness(175%); /* Even lighter still */
}

/* 6th level nested button (six levels deep) */
.section > .content .content .content .content .content .content > .collapsible {
    background: var(--base-color, #ccc);
    filter: brightness(190%); /* Even lighter still */
}

/* === 4️⃣ Fix: Ensure Buttons That Contain Sub-Sections Are Styled Correctly === */
.content:has(.content) > .collapsible {
    font-weight: bold;
    border: 0.125rem solid rgba(255, 255, 255, 0.7);
}

/* === 5️⃣ General Styling for Collapsible Content === */
.content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    background: #f9f9f9;
    padding: 0 0.75rem;
    border-radius: 0.5rem;
    border: 0.0625rem solid #ddd;
    margin-top: 0.3125rem;
}

/* === Text manipulation === */
.indent {
    margin-left: 1.25rem; /* Adjust the value as needed */
}

.indent-first {
    text-indent: 1.25rem; /* Indents first line responsively */
  }
  
  .indent-full {
    padding-left: 1.25rem; /* Indents entire paragraph responsively */
  }

li.no-bullet::marker {
    content: "";
  }

/* === Video Styling === */
/* === Video Thumbnail Container === */
/* Wrapper to align videos and text */
.video-wrapper {
    display: flex;
    flex-direction: column; /* Stack video and description */
    align-items: center; /* Center content */
    text-align: center;
    margin: 1.5rem auto;
    max-width: 45rem; /* Keep video containers uniform */
}

.video-container {
    position: relative;
    width: 100%;
    max-width: 45rem; /* Ensures it doesn’t get too wide on large screens */
    margin: 1.25rem auto;
    cursor: pointer;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0rem 4px 10px rgba(0, 0, 0, 0.2);
}

/* Style the description */
.video-description {
    font-size: 1rem;
    color: #333;
    margin-top: 0.75rem;
    padding: 0 1rem;
    max-width: 90%;
}


/* === Thumbnail Image === */
.video-container img {
    width: 100%;
    display: block;
}

/* === Play Button Styling === */
.play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.7);
    color: white;
    font-size: 1.25rem;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 0.375rem;
    cursor: pointer;
    transition: 0.3s;
}

.play-button:hover {
    background: rgba(0, 0, 0, 0.9);
}

/* === Ensures the YouTube Video Fills the Thumbnail Size === */
.iframe-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    height: 0;
}

.iframe-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* === Mobile-Friendly Adjustments === */
@media (max-width: 768px) {
    .video-wrapper {
        max-width: 90%; /* Reduce max width for small screens */
        width: 90%
    }
    .video-description {
        font-size: 0.875rem; /* Smaller text for readability */
    }
    .video-container {
        max-width: 95%; /* Makes the video fit well on tablets & small screens */
        border-radius: 0.5rem;
        box-shadow: 0rem 0.125rem 0.375rem rgba(0, 0, 0, 0.15);
    }
    .responsive-image {
        max-width: 80%; /* Scale image down slightly for tablets */
    }
}

@media (max-width: 480px) {
    .video-container {
        max-width: 98%;
        border-radius: 0.3125rem;
        margin: 0.9375rem auto;
    }
    .responsive-image {
        /* max-width: 90%; /* Make the image smaller on mobile */
        width: 100%;
        max-height: 300px;
        object-fit: contain;
    }
}

@media (max-width: 400px) {
    .responsive-image {
        max-width: 95%; /* Allow more scaling on very small devices */
    }
}
/* === End Vido Styling CSS === */

/* === Responsive Image Styling === */
.responsive-image {
    width: 100%; /* Ensures the image scales to fit the container */
    max-width: 100%;  /* Prevents image from exceeding its original size */
    height: auto;  /* Maintains aspect ratio */
    display: block;
    margin: 0 auto;  /* Centers the image */
}



/* === BEGIN Lineage Tree Styling === */
/* === Lineage Tree Container === */
.lineage-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 1.875rem auto;
    padding: 1.25rem;
    max-width: 800px;
}

/* === Lineage Tree Styling (Forcing No Bullets) === */
.lineage, 
.lineage ul, 
.lineage li {
    list-style: none !important; /* Forcefully remove bullets */
    padding: 0;
    margin: 0;
    text-align: center;
}

/* === Lineage Names (Nodes) === */
.lineage-name {
    display: inline-block;
    padding: 0.625rem 0.9375rem;
    margin: 0.625rem auto;
    background: #1e3c72;
    color: white;
    font-weight: bold;
    font-size: 1rem;
    border-radius: 0.375rem;
    transition: all 0.3s ease-in-out;
    box-shadow: 0.125rem 0.125rem 0.375rem rgba(0, 0, 0, 0.2);
    min-width: 160px;
}

/* === Lineage Hierarchy & Connections === */
.lineage ul {
    padding-top: 1.25rem;
    position: relative;
}

/* === Connect Parent to Child with a Line === */
.lineage ul::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 0.125rem;
    height: 1.25rem;
    background: #bbb;
}

/* === Vertical Connector for Parent-Child Relationships === */
.lineage li {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}

/* === Line for Child Elements === */
.lineage li::before {
    content: "";
    position: absolute;
    top: -1.25rem;
    left: 50%;
    width: 0.125rem;
    height: 1.25rem;
    background: #bbb;
}

/* === Remove Lines for the Topmost Element === */
.lineage > li::before,
.lineage > li > ul::before {
    display: none;
}

/* === Hover Effect for Interaction === */
.lineage-name:hover {
    transform: scale(1.05);
    box-shadow: 0.25rem 0.25rem 0.5rem rgba(0, 0, 0, 0.3);
}

/* === Highlighting the Current Student ("You") === */
.lineage-highlight {
    background: #ff9f43;
    color: black;
}

/* === Mobile-Friendly Adjustments === */
@media (max-width: 600px) {
    .lineage-container {
        padding: 0.625rem;
    }
    .lineage-name {
        font-size: 0.875rem;
        min-width: 8.75rem;
        padding: 0.5rem 0.75rem;
    }
}

/* === End Linage Tree Styling === */