* {
    padding: 0; margin: 0; border: 0;
    box-sizing: border-box;
}

body {
    background-color: goldenrod;
    font-family: verdana;
    background-image: url(../images/topo-bg.webp);
    min-height: 100vh;
}

div#container {
    background-color: hsl(200 80% 98% / .8);
    width: calc(100vw - 1.5in);
    height: calc(100vh - 1.5in);
    margin: .75in auto;
    border-top: 8px solid orangered;
    position: relative;
}

div#cta_buttons {
    position: absolute; top: 80px; left: 80px;
}

div#cta_buttons a {
    border: 1px solid #000;
    padding: 12px 20px;
    margin-right: 20px;
}

div#cta_buttons a:first-child {
    background-color: #000;
    color: #FFF;
}

div#cta_buttons a:first-child:hover {
    background-color: orangered;
    color: #000;
}

div#cta_buttons a:last-child {
    background-color: #FFF;
    color: #000;
}

div#promo_section {
    width: 90%;
    margin: 150px auto 20px auto;
    display: flex; /* makes flexbox parent */
    flex-flow: row wrap; /* nice for phone display */
    justify-content: flex-start; /* puts spaces around */
    gap: 20px 80px;
}

div#promo_section figure {
    flex: 0 0 300px;
    aspect-ratio: 1/1.3;
    border: 4px solid transparent;
    transition: border 350ms ease-in-out;
}

div#promo_section figure:hover {
    border: 4px solid orangered;
}

figure.product_card {
    background-image: url(../images/butterfly.jpg);
    background-size: 100%;
    background-repeat: no-repeat;
    position: relative;
    background-position: center;
    transition: background-size 400ms ease-in-out;
}

figure.product_card:hover {
    background-size: 100%;

}

figure.product_card a {
    display: block; width: 100%; height: 100%; /* making whole thing a hyperlink */
}

figure.product_card figcaption {
    background-color: #FF2;
    color: #222;
    width: 100%; height: 20%;
    position: absolute; bottom: 0px; left 0px;
    padding: 6px;
    text-align: center;
}

p.price { /* product price displayed in the little red tab */
    background-color: #FF2;
    color: #000;
    padding: 8px 10px;
    font-weight: bold;
    position: absolute; top: 20px; right: -20px;
    border-radius: 10px 10px 0px 10px;
    box-shadow: 8px 6px 20px #222;
}

p.price::after { /* little triangle under price box, pseudo element */
    content: ""; display: block;
    width: 0px; height: 0px;
    border-width: 14px;
    border-style: solid;
    border-color: transparent #FF2 transparent transparent;
    position: absolute; right: 6px; bottom: -13px;
    transform: rotate(45deg);
}