/* Basic Reset & Body Styling */
body {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    background: linear-gradient(to bottom, #e8f5e9, #ffffff);
    color: #333;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Centering Container */
.portal-container {
    flex-grow: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 2rem;
}

.content-wrapper {
    max-width: 1200px;
    width: 100%;
}

/* Typography */
h1 {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

p {
    font-size: 1.1rem;
    color: #555;
    margin-bottom: 3.5rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

/* The Links Styled as Cards */
.link-wrapper {
    display: flex;
    gap: 2rem;
    justify-content: center;
    flex-wrap: wrap;
}

.brand-link {
    display: flex;
    flex-direction: column;
    align-items: center; /* Center content inside card */
    background-color: #ffffff;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    width: 280px;
    text-align: left; /* Keep text left aligned or center? User had default which inherits center from container? No, container has text-align center. */
}

/* Reset text alignment inside card if desired, but user had it centered probably? 
   Wait, .portal-container has text-align: center. 
   So everything inside was centered. 
   Let's keep it that way for consistency, or standard card design. 
   Previous code didn't specify text-align on .brand-link, so it inherited center.
   I will leave valid inheritance.
*/

.brand-link:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.brand-link h2 {
    font-size: 1.35rem;
    margin: 0 0 0.5rem 0;
    color: #0056b3;
    align-self: flex-start; /* If we want title left, but let's stick to center to match "minimal changes" request unless it looks bad. */
    width: 100%;
    text-align: center;
}

.brand-link span {
    font-size: 0.95rem;
    color: #666;
    line-height: 1.5;
}

/* Footer */
footer {
    text-align: center;
    padding: 1.5rem;
    font-size: 0.85rem;
    color: #888;
}

/* Responsive for smaller screens */
@media (max-width: 950px) { /* Breakpoint earlier since we have 3 wide cards */
    .link-wrapper {
        justify-content: center;
    }
}

@media (max-width: 600px) {
    .content-wrapper {
        width: auto;
    }
    .link-wrapper {
        flex-direction: column;
        align-items: center;
    }
    .brand-link {
        width: 100%; 
        max-width: 340px;
    }
}
