/*
  1. Use a more-intuitive box-sizing model.
*/
*, *::before, *::after {
    box-sizing: border-box;
}
/*
2. Remove default margin
*/
* {
    margin: 0;
    font-family: "Open Sans", sans-serif;
}
/*
Typographic tweaks!
3. Add accessible line-height
4. Improve text rendering
*/
body {
    line-height: 1.6;
    font-size: 1.25rem;
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto;
}
/*
5. Improve media defaults
*/
img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
}
/*
6. Remove built-in form typography styles
*/
input, button, textarea, select {
    font: inherit;
}
/*
7. Avoid text overflows
*/
p, h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
}
/*
8. Create a root stacking context
*/
#root, #__next {
    isolation: isolate;
}

/* TYPE */

h1 {
    font-size: 3rem;
}

h2 {
    font-size: 2rem;
    margin-bottom: 1em;
}

h3 {
    font-size: 1.5rem;
    margin-top: 2em;
    margin-bottom: 1em;
    color: #333;
}

h4 {
    font-size: 1.2rem;
    font-weight: bold;
}

/* GRID */

.main-grid {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
}

/* HEADER */

.header {
    width: 100%;
    text-align: center;
    text-transform: uppercase;
}

.header__title {
    grid-column: 2/3;
    margin-top: 2em;
}

/* Nav */

.nav {
    text-align: center;
    margin-bottom: 1em;
    grid-column: 2/3;
}

.nav-list {
    grid-column: 2/3;
    list-style: none;
    display: flex;
    justify-content: center;
    gap: 2em;
    margin: 0;
    padding: 0;
}

.nav-link {
    text-transform: uppercase;
}

.nav-link a{
    text-decoration: none;
    color: black;
}

/* App Links */

.app-links {
    grid-column: 2/3;
    text-align: center;
}

.app-links-title {
    margin-bottom: 0.5em;
    color: blue;
}

.category-title {
    text-align: center;
    border-bottom: 2px solid #e0e0e0;
    padding-bottom: 0.5em;
}

.app-links-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
    margin-top: 2em;
    margin-bottom: 3em;
    gap: 3em;
}

@media (max-width: 449px) {
    .app-links-container {
        grid-template-columns: 1fr;
    }
}

.app-link-card-link {
    text-decoration: none;
    color: black;
    display: contents;
}

.app-link-card {
    margin-bottom: 1em;
    max-width: 250px;
    text-align: center;
}

.app-link-card__image {
    max-width: 100px;
    max-height: 100px;
    margin: 0 auto;
    object-fit: contain;
}

.app-link-card__placeholder-icon {
    width: 100px;
    height: 100px;
    margin: 0 auto;
    background-color: #f0f0f0;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    font-weight: bold;
    color: #666;
}

.app-link-card__title {
    margin-top: 0.5em;
    margin-bottom: 0.25em;
}

.app-link-card__description {
    font-size: 1rem;
    color: #666;
    margin-bottom: 0.5em;
}

.documentation-link {
    font-size: 0.9rem;
    color: #0066cc;
    text-decoration: underline;
}

.app-links-attribution {
    font-size: .6rem;
    color: rgb(122, 116, 116);
    margin-top: 3em;
}

.app-link-card__ldap-notice,
.app-link-card__extra-desc {
    font-size: .75rem;
    color: #666;
    margin-top: 0.25em;
}

.app-link-card__ldap-notice a {
    color: #0066cc;
    text-decoration: underline;
}

/* Responsive adjustments for header */
@media (max-width: 768px) {
    .header__content {
        gap: 0.5em;
    }
    
    .header__logo {
        width: 40px;
        height: 40px;
        max-width: 40px;
        max-height: 40px;
    }
    
    .header__title {
        font-size: 2rem;
    }
} 

.footer {
    margin-top: auto;
    text-align: center;
}

.footer__excerpt,
.footer__kitty {
    grid-column: 2/3;
    justify-self: center;
}
