:root {
    --cream: #f3efe6;
    --stone: #5c5148;
    --ink: #3b332c;
    --line: #a9a190;
}

* {
    box-sizing: border-box;
}

body {
    font-family: "freight-big-pro", "Playfair Display", Georgia, serif;
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--cream);
}

main {
    flex: 1 0 auto;
    background: var(--cream);
    padding-top: 101px;
}

/* Hero: photo on the right, fading into cream on the left */
.PlaceHero {
    position: relative;
    min-height: 68vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background-color: var(--cream);
}

/* Photo extends 12px above the section so the dark edge of the file is cropped */
.PlaceHero::after {
    content: "";
    position: absolute;
    inset: -12px 0 0 0;
    z-index: 0;
    background-image: url(../images/recepcao_1.jpg);
    background-size: cover;
    background-position: center 45%;
    background-repeat: no-repeat;
}

.PlaceHero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
        90deg,
        var(--cream) 0%,
        var(--cream) 30%,
        rgba(243, 239, 230, 0.75) 48%,
        rgba(243, 239, 230, 0) 72%
    );
}

.PlaceHero_text {
    position: relative;
    z-index: 2;
    max-width: 560px;
    padding: 48px min(6vw, 80px) 120px;
}

.PlaceHero_kicker {
    margin: 0 0 22px;
    text-transform: uppercase;
    letter-spacing: 0.3em;
    font-size: 0.8rem;
    color: var(--stone);
}

.PlaceHero_text h1 {
    margin: 0 0 24px;
    font-weight: 300;
    font-size: clamp(2.4rem, 5vw, 3.6rem);
    line-height: 1.12;
    color: var(--ink);
}

.PlaceHero_text p {
    margin: 0;
    font-size: 1.1rem;
    line-height: 1.7;
    color: var(--stone);
}

.PlaceHero_link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 28px;
    padding: 11px 24px;
    border: 1px solid #c99434;
    border-radius: 999px;
    color: #fff;
    font-style: italic;
    letter-spacing: 0.5px;
    text-decoration: none;
    text-shadow: 0 1px 1px rgba(120, 80, 20, 0.35);
    /* same gold gradient as the home "Confirme sua presença" button */
    background-image: linear-gradient(
        120deg,
        #b7862f 0%,
        #e9c770 35%,
        #d39f42 55%,
        #f3dc93 75%,
        #b7862f 100%
    );
    background-size: 200% 100%;
    background-position: 0% 50%;
    transition: background-position 0.4s ease, box-shadow 0.25s ease;
}

.PlaceHero_link:hover,
.PlaceHero_link:focus-visible {
    background-position: 100% 50%;
    box-shadow: 0 6px 18px rgba(211, 159, 66, 0.35);
}

.PlaceHero_linkIcon {
    flex: none;
    width: 20px;
    height: 20px;
}

/* Torn paper edge */
.PlaceHero_tear {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    z-index: 3;
    height: 90px;
    background-color: var(--cream);
    -webkit-mask-image: url(../images/ripped-bg-3.png);
    mask-image: url(../images/ripped-bg-3.png);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-position: center bottom;
    mask-position: center bottom;
}

/* Info bar */
.PlaceInfo {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, auto) 1fr;
    align-items: center;
    gap: 24px min(5vw, 64px);
    padding: 20px min(6vw, 80px) 64px;
    background: var(--cream);
}

.PlaceInfo_item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.PlaceInfo_icon {
    flex: none;
    width: 34px;
    height: 34px;
    color: var(--stone);
}

.PlaceInfo_item dt {
    margin: 0 0 4px;
    font-size: 20px;
    color: var(--ink);
}

.PlaceInfo_item dd {
    margin: 0;
    font-size: 19px;
    line-height: 1.45;
    color: var(--stone);
}

.PlaceInfo_sprig {
    justify-self: end;
    width: 110px;
    height: 120px;
    margin: -20px 0;
    object-fit: cover;
    object-position: 45% 50%;
    mix-blend-mode: multiply;
    opacity: 0.55;
}

@media (max-width: 900px) {
    main {
        padding-top: 101px;
    }

    .PlaceHero {
        align-items: flex-end;
        min-height: 78vh;
    }

    .PlaceHero::after {
        background-position: 78% 40%;
    }

    .PlaceHero::before {
        background: linear-gradient(
            180deg,
            rgba(243, 239, 230, 0) 15%,
            rgba(243, 239, 230, 0.85) 52%,
            var(--cream) 70%
        );
    }

    .PlaceHero_text {
        padding: 48px 24px 100px;
    }

    .PlaceInfo {
        grid-template-columns: 1fr;
        width: 100%;
        box-sizing: border-box;
        padding: 12px 24px 48px;
    }

    .PlaceInfo_item {
        justify-self: start;
    }

    .PlaceInfo_sprig {
        justify-self: center;
        width: 170px;
        height: 190px;
        margin: 8px 0 0;
        opacity: 0.85;
    }
}
