/* ==== Reset & base ==== */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
html { font-size: 100%; }               /* 16 px = 1rem */
body {
    font-family: system-ui, sans-serif;
    line-height: 1.5;
    color: #222;
    background: #fafafa;
}

/* ==== Layout ==== */
.site-header,
.site-footer {
    background: #003366;
    color: #fff;
    text-align: center;
    padding: 1rem;
}
.site-header h1 { margin-bottom: .5rem; }
.nav-list {
    display: flex;
    gap: 1rem;
    justify-content: center;
    list-style: none;
}
.nav-list a {
    color: #fff;
    text-decoration: none;
    padding: .25rem .5rem;
}
.nav-list a:hover,
.nav-list a:focus {
    background: rgba(255,255,255,.2);
    border-radius: .25rem;
}

/* ==== Hero / About ==== */
.hero {
    max-width: 800px;
    margin: 2rem auto;
    padding: 0 1rem;
    text-align: center;
}

/* ==== Image grid ==== */
.grid {
    display: grid;
    gap: 1rem;
    max-width: 960px;
    margin: 2rem auto;
    padding: 0 1rem;
}
.grid figure {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: .5rem;
    overflow: hidden;
}
.grid img {
    width: 100%;
    height: auto;
    display: block;
}
.grid figcaption {
    padding: .5rem;
    font-size: .9rem;
    color: #555;
}

/* ==== Contact form ==== */
.contact {
    max-width: 600px;
    margin: 2rem auto;
    padding: 0 1rem;
}
.contact form {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
.contact label {
    font-weight: 600;
}
.contact input,
.contact textarea {
    padding: .5rem;
    border: 1px solid #ccc;
    border-radius: .25rem;
    font: inherit;
}
.contact button {
    align-self: start;
    background: #0066cc;
    color: #fff;
    border: none;
    padding: .5rem 1rem;
    border-radius: .25rem;
    cursor: pointer;
}
.contact button:hover,
.contact button:focus {
    background: #004999;
}
.note {
    font-size: .85rem;
    color: #777;
    margin-top: .5rem;
}

/* ==== Footer ==== */
.site-footer a {
    color: #ffdd57;
    text-decoration: underline;
}
.site-footer a:hover,
.site-footer a:focus {
    color: #fff;
}

/* ==== Responsiveness ==== */
@media (min-width: 600px) {
    .grid {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    }
}