/* Profile Page Styles - Pixel Perfect Implementation */

:root {
    --page-bg: #e6e4e1;
    /* The exact background grey/beige */
    --card-white: #ffffff;
    --brand-beige: #c7b299;
    /* The exact beige color */
    --text-navy: #1a2a3a;
    --text-body: #333333;
    --font-main: 'Outfit', sans-serif;
}

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

body {
    font-family: var(--font-main);
    background-color: var(--page-bg);
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 20px;
}

.profile-wrapper {
    width: 100%;
    max-width: 1120px;
    position: relative;
    margin-top: 50px;
    /* Space for overhanging sidebar */
}

/* Logo at top right of the whole viewport/container */
.top-logo {
    position: absolute;
    top: -60px;
    right: 0;
}

.top-logo img {
    height: 48px;
}

/* Card Container for absolute positioning */
.card-container {
    position: relative;
    width: 100%;
}

/* The beige strip on the left */
.sidebar-strip {
    position: absolute;
    left: 40px;
    /* Creates the white spacing to the left of the beige sidebar */
    top: -60px;
    /* Overhangs above the top of the white box */
    bottom: 0;
    /* Bottom aligns exactly with the white box */
    width: 230px;
    background-color: var(--brand-beige);
    padding: 25px 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    z-index: 10;
}

.sidebar-title {
    position: relative;
    top: 50px;
    font-size: 1.15rem;
    line-height: 1.25;
    font-weight: 700;
    color: var(--text-navy);
    text-transform: uppercase;
}

@media (max-width:776px) {
    .sidebar-title {
        position: relative;
        top: 0px !important;
        font-size: 1rem !important;
        line-height: normal;
    }
}

.sidebar-bottom {
    display: flex;
    flex-direction: column;
    /* Match stacking of original */
    position: relative;
}

.sidebar-curriculum {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-navy);
    text-transform: uppercase;
    line-height: 1.3;
}

.star-graphic {
    position: absolute;
    bottom: 5px;
    right: -10px;
    /* Align star swoosh specifically */
    width: 45px;
    height: auto;
}

/* The main content box */
.content-box {
    width: 100%;
    background-color: var(--card-white);
    border: 1px solid #d5d5d5;
    /* The grey border box */
    padding: 60px 80px 70px 350px;
    /* 240px left padding accommodates the sidebar + left space */
    position: relative;
    z-index: 1;
}

.school-name {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--text-navy);
    text-transform: uppercase;
    margin-bottom: 25px;
}

.school-desc {
    font-size: 15px;
    line-height: 1.8;
    color: #444;
    text-align: left;
    max-width: 680px;
}

/* The domain button perfectly aligned */
.link-btn {
    position: absolute;
    bottom: 0;
    /* Sits flush on the bottom border */
    right: 80px;
    /* Aligned with text right padding */
    background-color: #ddd1c1;
    padding: 12px 35px;
    color: var(--text-navy);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
    transition: background-color 0.2s;
}

.link-btn:hover {
    background-color: #c9bcab;
}

/* Mobile responsive */
@media (max-width: 800px) {
    .profile-wrapper {
        margin-top: 100px;
    }

    .card-container {
        display: flex;
        flex-direction: column;
    }

    .sidebar-strip {
        position: relative;
        left: 0;
        top: 0;
        width: 100%;
        height: auto;
        padding: 20px;
    }

    .content-box {
        padding: 30px 20px;
    }

    .link-btn {
        position: relative;
        bottom: 0;
        right: 0;
        margin-top: 20px;
        align-self: flex-start;
        display: inline-block;
    }
}