/* ==========================================
   Season of Postcards
   Memory Book
========================================== */

/* ---------- Reset ---------- */

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

/* ---------- Body ---------- */

body {
    background: #F3E6D3;
    color: #3D3127;

    font-family: "Caveat", cursive;
    line-height: 1.7;

    min-height: 100vh;
}

/* ---------- Header ---------- */

.hero {
    text-align: center;
    padding: 2rem 1.5rem 0.75rem;
}

.back-link {
    display: inline-block;
    margin-bottom: 2rem;

    text-decoration: none;

    color: #7B6A58;

    font-family: "Kalam", cursive;
    font-size: 1.5rem;

    transition: opacity .25s ease;
}

.back-link:hover {
    opacity: .7;
}

.hero h1 {
    font-family: "Kalam", cursive;
    font-size: 2.6rem;
    font-weight: normal;

    margin: 0;

    line-height: 0.6;
}

.intro {
    max-width: 480px;

    margin: 0.3rem auto 0;

    color: #7B6A58;

    font-size: 1.5rem;

    line-height: 1.4;
}

/* ---------- Layout ---------- */

main {

    max-width: 480px;

    margin: auto;

    padding: 0.5rem 1.5rem 1.5rem;

}

/* ---------- Sections ---------- */

.archive-section {

    margin-bottom: 1.5rem;

}

.archive-group {

    margin-bottom: 1rem;

}

/* ---------- Shared Typography ---------- */

.archive-card h2,
.archive-card h3,
.accordion-content h2 {

    font-family: "Kalam", cursive;
    font-weight: normal;

    color: #3D3127;

    margin-bottom: .05rem;

}

.archive-card h2,
.accordion-content h2 {

    font-size: 1.55rem;

}

.archive-card h3 {

    font-size: 1.35rem;

}

.archive-card p,
.accordion-content p {

    font-family: "Caveat", cursive;

    color: #7B6A58;

    font-size: 1.25rem;

}

/* ---------- Accordion ---------- */

.accordion {

    width: 100%;

    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 1.1rem 1.3rem;

    border: none;
    border-radius: 14px;

    background: rgba(255,255,255,.40);

    cursor: pointer;

    text-align: left;

    font-family: "Kalam", cursive;
    font-size: 1.55rem;
    font-weight: normal;

    color: #3D3127;

    transition: .25s ease;
}

.accordion:hover {

    background: rgba(255,255,255,.65);

}

.accordion-content {

    flex: 1;

}

.nested {

    margin-top: .75rem;

}

/* ---------- Arrow ---------- */

.arrow {

    transition: transform .25s ease;

}

.arrow.open {

    transform: rotate(180deg);

}

/* ---------- Panel ---------- */

.panel {

    display: none;

    margin-top: 1rem;

}

/* ---------- Cards ---------- */

.archive-card {

    display: block;

    padding: 1.3rem;

    margin-bottom: 1rem;

    border-radius: 14px;

    background: rgba(255,255,255,.45);

    color: inherit;
    text-decoration: none;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        background .2s ease;

}

.archive-card:hover {

    background: rgba(255,255,255,.60);

    transform: translateY(-2px);

    box-shadow: 0 8px 20px rgba(0,0,0,.08);

}

.small {

    margin-left: 1rem;

}

/* ---------- Coming Soon ---------- */

.coming-soon {

    padding: 1.5rem;

    border-radius: 14px;

    text-align: center;

    background: rgba(255,255,255,.45);

}

.coming-soon h2 {

    font-family: "Kalam", cursive;

    font-weight: normal;

    font-size: 1.5rem;

    margin-bottom: .05rem;

}

.coming-soon p {

    color: #7B6A58;

    font-size: 1.25rem;

}

/* ---------- Mobile ---------- */

@media (max-width: 600px) {

    .hero {

        padding-top: 2rem;

    }

    .hero h1 {

        font-size: 2.2rem;

    }

    .intro {

        font-size: 1.75rem;

    }

    .accordion {

        font-size: 1.35rem;

        padding: 1rem 1.1rem;

    }

    .archive-card {

        padding: 1.3rem;

    }

    .archive-card h2,
    .accordion-content h2 {

        text-align: center;
        font-size: 1.35rem;

    }

    .archive-card h3 {

        text-align: center;
        font-size: 1.3rem;

    }

    .archive-card p,
    .accordion-content p,
    .coming-soon p {

        text-align: center;
        font-size: 1.3rem;

    }

}