/* Reset e base */
* {
    margin    : 0;
    padding   : 0;
    box-sizing: border-box;
}

body {
    background-color: #faf9f6;
    color           : #333;
    font-family     : 'Lato', sans-serif;
    line-height     : 1.6;
}

/* Header */
header {
    position       : relative;
    width          : 100%;
    background     : #fff;
    display        : flex;
    justify-content: space-between;
    align-items    : center;
    padding        : 20px 40px;
    border-bottom  : 1px solid #eee;
}

.logo img {
    width: 270px;
}

nav {
    display    : flex;
    align-items: center;
}

nav a {
    display        : flex;
    align-items    : center;
    justify-content: center;
    font-family    : 'Playfair Display', serif;
    color          : #2a3b47;
    margin-left    : 15px;
    /* aproxima do logo e do ícone */
    text-decoration: none;
    font-weight    : 500;
    font-size      : 1.9rem;
    /* tamanho equilibrado desktop */
    letter-spacing : 0.5px;
    transition     : color 0.3s, transform 0.2s;
}

nav a:hover {
    color    : #d1495b;
    /* hover suave em tom vermelho/rosado */
    transform: translateY(-2px);
}

/* Instagram */
.insta-icon svg {
    width      : 36px;
    height     : 36px;
    margin-left: 8px;
    /* aproxima do texto */
    stroke     : none;
    /* remove contorno */
}

.insta-icon rect {
    fill: url(#instagram-gradient);
}

.insta-icon circle {
    fill: #fff;
}

/* Footer */
footer {
    background: #fff;
    border-top: 1px solid #eee;
    padding   : 40px 20px;
    text-align: center;
    color     : #2a3b47;
}

.footer-content {
    display       : flex;
    flex-direction: column;
    align-items   : center;
    gap           : 15px;
}

.footer-logo {
    width  : 180px;
    height : auto;
    opacity: 0.9;
}

footer p {
    font-family: 'Playfair Display', serif;
    font-size  : 0.95rem;
    color      : #2a3b47;
}

/* Galeria estilo masonry */
.gallery {
    column-width: 350px;
    column-gap  : 15px;
    padding     : 60px 10px 60px;
}

.gallery a {
    display      : inline-block;
    margin-bottom: 15px;
    width        : 100%;
    opacity      : 0;
    transform    : translateY(30px);
    transition   : all 0.8s ease-out;
}

.gallery a.visible {
    opacity  : 1;
    transform: translateY(0);
}

.gallery img {
    width        : 100%;
    border-radius: 4px;
    transition   : transform 0.3s, opacity 0.3s;
}

.gallery img:hover {
    transform: scale(1.01);
    opacity  : 0.9;
}

/* Responsividade galeria */
@media (max-width: 1000px) {
    .gallery {
        column-width: 280px;
        column-gap  : 12px;
    }
}

@media (max-width: 600px) {
    .gallery {
        column-width: 160px;
        column-gap  : 8px;
    }

    header {
        flex-direction: column;
        align-items   : center;
    }

    nav a {
        margin   : 8px;
        font-size: 1.6rem;
    }

    .logo img {
        width: 260px;
    }

    .insta-icon svg {
        width      : 28px;
        height     : 28px;
        margin-left: 5px;
    }
}

/* Contato */
.contato {
    display       : flex;
    flex-direction: column;
    align-items   : center;
    text-align    : center;
    padding       : 80px 20px;
    background    : #f8f8f8;
    border-top    : 1px solid #eee;
}

.contato-texto {
    max-width: 600px;
}

.contato h2 {
    font-family  : 'Playfair Display', serif;
    margin-bottom: 15px;
    font-size    : 1.6rem;
    color        : #2a3b47;
}

.contato p {
    color        : #444;
    margin-bottom: 10px;
}

.contato a {
    color          : #2a3b47;
    text-decoration: underline;
}