.product-modal {
    position: fixed;
    background-color: rgba(0, 0, 0, .4);
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 200ms ease;
    opacity: 1;
}
.product-modal.ng-enter {
    opacity: 0;
}
.product-modal.ng-enter.ng-enter-active {
    opacity: 1;
}
.product-modal.ng-leave {
    opacity: 1;
}
.product-modal.ng-leave.ng-leave-active {
    opacity: 0;
}
.product-modal .product-modal-body {
    position: relative;
    overflow-y: auto;
    background-color: white;
    padding: 6px 0;
    width: 400px;
    max-width: 95%;
    max-height: 98%;
    border-radius: 4px;
}
.product-modal .product-modal-body .close-button {
    position: absolute;
    top: 4px;
    right: 4px;
    background: url(../../img/b_close.png) no-repeat center / contain;
    border: none;
    width: 32px;
    height: 32px;
    text-indent: -9999px;
    cursor: pointer;
}
.product-modal .product-modal-body .name {
    text-align: center;
    margin-top: 10px;
    padding: 0 10px;
    font-family: sans-serif;
    color: #eb4a1a;
}
.product-modal .product-modal-body .thumbnail {
    width: 187px;
    height: 155px;
    margin: 10px auto;
    display: block;
}
.product-modal .product-modal-body .price {
    text-align: center;
    color: #eb4a1a;
}
.product-modal .product-modal-body .description {
    white-space: pre-wrap;
    color: #111;
    font-size: 0.9rem;
    background: linear-gradient(45deg, #eee, #fff);
    max-height: 170px;
    overflow-x: hidden;
    overflow-y: scroll;
    padding: 6px;
    margin: 10px 6px;
}
.product-modal .product-modal-body form {
    border-top: solid 1px #cccccc;
    text-align: center;
    padding-top: 20px;
}
.product-modal .product-modal-body form label {
    display: block;
    margin-bottom: 10px;
}
.product-modal .product-modal-body form label input {
    width: 220px;
    font-size: 16px;
}
.product-modal .product-modal-body form label > span {
    display: inline-block;
    min-width: 65px;
    text-align: left;
}
.product-modal .attention-note {
    text-align: left;
    font-size: 0.8rem;
    padding: 6px 4px 6px 10px;
}
.product-modal .legal-note {
    text-align: left;
    font-size: 0.8rem;
    padding: 6px 4px 6px 10px;
    margin-bottom: 10px;
}
.product-modal .button-confirm {
    display: block;
    margin: 20px auto 10px;
    padding: 0.5em 3em;
    border: 2px outset #78f2bf;
    border-radius: 6px;
    outline: 3px double #777;
    width: 60%;
    color: #fff;
    text-shadow: 0 0 3px #000, 0 0 3px #000, 0 0 3px #000;
    text-decoration: none;
    background: linear-gradient(to bottom, #23b59c 0%, #219785 50%, #1a8471 51%, #156f61 100%);
}
