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

body {
    background-color: aquamarine;
    font-family: verdana;
    background-image: url(../images/topo-bg.png);
    min-height: 100vh /* 100% of the viewport height */;
}

div#container {
    background-color: hsl(200 80% 90% / .8);
    width: calc(100vw - 1.5in);
    height: calc(100vh - 1.5in);
    margin: .75in auto; /* center a block */
    border-top: 8px solid orangered;
}

div#cta_buttons {
    margin: 80px;
    position: absolute; top: 80px; left: 80px;
}

div#cta_buttons a {
    border: 2px solid black;
    padding: 12px 20px;
    margin-right: 20px;
}

div#cta_buttons a:first-child {
    background-color: black;
    color: white;
}

div#cta_buttons a:first-child:hover {
    background-color: orange;
    color: #000;
}

div#cta_buttons a:last-child {
    background-color: white;
    color: black;
}

div#cta_buttons a:last-child:hover {
    background-color: blueviolet;
    color: #000;
}

div#promo_section { /*parent*/
    border: 4px solid red;
    width: 90%;
    /*top and bottom margin, auto is left and right */ 
    /*(toppx,rightpx,bottompx,leftpx */
    margin: 150px auto;
    display: flex;
    flex-flow: row wrap;
    justify-content: space-around;
    gap: 20px; /*space between kiddos, works with flexbox items.*/

}

figure.product_card { /*child*/
    background-image: url(../images/person.jpg);
    background-size: 100%;
    background-repeat: no-repeat;
    position: relative;
    background-position: center; 
    transition: all 400ms ease-in-out, border 800ms ease-in-out;
    border: 4px solid transparent;
    flex: 0 0 300px;
    aspect-ratio: 1/1.3;

}

figure.product_card:hover {
    background-size: 110%;
    border: 4px solid #222;
}

figure.product_card a {
    display: block;
    width: 100%;
    height: 100%;
}

figure.product_card figcaption {
    background-color: #FF2;
    color: #222;
    width: 100%;
    height: 25%;
    position: absolute; bottom: 0px; left: 0px;
    padding: 6px;
    text-align: center;
}

p.price {
    background-color: darkred;
    color: white;
    padding: 8px 15px; /*first number is top-bottom, second number is left-right*/
    font-weight: bold;
    position: absolute; top: 20px; right: -20px;
    border-radius: 10px 10px 0px 10px;
    box-shadow: 8px 6px 20px #555;
}

p.price::after {
    content: ""; display: block;
    width: 0px;
    height: 0px;
    border-width: 14px;
    border-style: solid;
    border-color: transparent darkred transparent transparent;
    position: absolute; right: 6px; bottom: -13px;
    transform: rotate(45deg);
}