/* ---------------------------------------------------------------------------------------------------------------- */
/* |                                                    HEADER                                                    | */
/* ---------------------------------------------------------------------------------------------------------------- */

.body .body-header .img-container
{
    max-height: 500px;
}

/* ---------------------------------------------------------------------------------------------------------------- */
/* |                                                    BODY                                                      | */
/* ---------------------------------------------------------------------------------------------------------------- */

.body .body-body .shop-product-section
{
    margin-top: 2rem;
    margin-bottom: 2rem;
}

/* ---------------------------------------------------------------------------------------------------------------- */
/* |                                                 SHOP PRODUCT HEADER                                          | */
/* ---------------------------------------------------------------------------------------------------------------- */

.body .body-body .shop-product-header
{
    border-top: 1px solid rgba(0, 0, 0, 0.20);
    border-bottom: 1px solid rgba(0, 0, 0, 0.20);
    padding: 1rem 1rem;
}

.body .body-body .shop-product-header p
{
    margin-bottom: 0;
}

.body .body-body .shop-product-header .row > div
{
    display: table;
}

.body .body-body .shop-product-header .row > div > p
{
    display: table-cell;
    vertical-align: middle;
}

.body .body-body .shop-product-header .sort-by
{
    text-align: right;
}

.body .body-body .shop-product-header .sort-by p,
.body .body-body .shop-product-header .sort-by .dropdown
{
    display: inline-block;
}

.body .body-body .shop-product-header .sort-by .dropdown .dropdown-toggle
{
    padding: 0;
    letter-spacing: 4px;
    vertical-align: bottom;
    color: #918f8f;
}

.body .body-body .shop-product-header .sort-by .dropdown .dropdown-toggle:after
{
    margin-left: 0.255em;
}

@media (max-width: 576px)
{
    .body .body-body .shop-product-header .row > div:first-child
    {
        display: none;
    }

    .body .body-body .shop-product-header .sort-by
    {
        text-align: center;
    }
}

/* ---------------------------------------------------------------------------------------------------------------- */
/* |                                                 SHOP PRODUCT GRID                                            | */
/* ---------------------------------------------------------------------------------------------------------------- */

.body .body-body .shop-product-grid
{
    margin-top: 2rem;
}

.body .body-body .shop-product-grid .card
{
    box-shadow: 0px 0px 0px rgba(0, 0, 0, 0);
}

.body .body-body .shop-product-grid .card:hover
{
    box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.85);
}

.body .body-body .shop-product-grid .card.out-of-stock
{
    position: relative;
}

.body .body-body .shop-product-grid .card.out-of-stock:before
{
    position: absolute;
    content: "Sold Out";
    z-index: 1;
    background-color: black;
    color: white;
    border-radius: 5px;
    top: 0.5rem;
    right: 0.5rem;
    padding: 0.25rem 0.75rem;
    padding-right: 0.5rem;
    font-size: 1.1rem;
}

.body .body-body .shop-product-grid .card .card-body
{
    padding: 0.5rem 1rem;
    border: 1px solid rgba(0, 0, 0, 0.20);
    border-top: none;
    border-bottom-left-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
}

.body .body-body .shop-product-grid .card .img-container
{
    height: 200px;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.body .body-body .shop-product-grid .card .product-description
{
    text-align: center;
}

.body .body-body .shop-product-grid .card .product-description p
{
    margin-bottom: 0;
}

@media (max-width: 576px)
{
    .body .body-body .shop-product-grid .card
    {
        max-width: 350px;
        margin: auto;
    }
}

/* ---------------------------------------------------------------------------------------------------------------- */
/* |                                                 SHOP PRODUCT MODAL                                           | */
/* ---------------------------------------------------------------------------------------------------------------- */

.body .body-body .shop-product-modal .btn-close
{
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 1.25rem;
    height: 1.25rem;
    z-index: 2;
}

.body .body-body .shop-product-modal .btn-close:hover,
.body .body-body .shop-product-modal .btn-close:focus
{
    box-shadow: none;
}

.body .body-body .shop-product-modal .btn-close .img-element
{
    width: inherit;
    height: inherit;
}

.body .body-body .shop-product-modal .modal-body
{
    padding: 0;
    box-shadow: 7px 5px 10px 0px rgba(0, 0, 0, 0.7);
}

.body .body-body .shop-product-modal .carousel
{
    min-height: 40rem;
    max-height: 50vh;
    top: 50%;
    transform: translateY(-50%);
}

.body .body-body .shop-product-modal .carousel,
.body .body-body .shop-product-modal .carousel .carousel-item,
.body .body-body .shop-product-modal .carousel .carousel-item .img-container
{
    height: 100%;
}

.body .body-body .shop-product-modal .carousel .carousel-item .img-container .img-background
{
    background-position: center;
    background-size: cover;
}

.body .body-body .shop-product-modal .product-info
{
    height: 100%;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.body .body-body .shop-product-modal .product-info-body
{
    max-height: 90vh;
    overflow-y: auto;
}

.body .body-body .shop-product-modal .product-info-body .product-description
{
    text-align: justify;
    font-family: 'Advent Pro';
    letter-spacing: initial;
    line-height: 2rem;
    font-size: 1.25rem;
}

.body .body-body .shop-product-modal .product-info-footer
{
    padding-top: 1.25rem; 
    padding-bottom: 0.25rem;
    border-top: 1px solid rgba(0, 0, 0, 0.20);
}

.body .body-body .shop-product-modal .btn
{
    letter-spacing: 2px;
}

.body .body-body .shop-product-modal .product-info-footer .form-field
{
    margin-bottom: 0;
}

.body .body-body .shop-product-modal .product-info-footer .add-to-basket-column button
{
    width: 100%;
    display: block;
}

.body .body-body .shop-product-modal .product-info-footer .price-column
{
    display: table;
}

.body .body-body .shop-product-modal .product-info-footer .price-column .product-price
{
    display: table-cell;
    vertical-align: middle;
}

.body .body-body .shop-product-modal .product-info-footer .add-to-basket-column.show
{
    opacity: 1;
    max-height: 100px;
    visibility: visible;
}

.body .body-body .shop-product-modal .product-info-footer .add-to-basket-column:not(.show)
{
    opacity: 0;
    max-height: 0;
    visibility: hidden;
}

.body .body-body .shop-product-modal .product-info-footer .delivery-type-column.show,
.body .body-body .shop-product-modal .product-info-footer .delivery-location-column.show,
.body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column.show,
.body .body-body .shop-product-modal .product-info-footer .dismiss-column.show,
.body .body-body .shop-product-modal .product-info-footer .product-amount-column.show
{
    opacity: 1;
    max-height: 100px;
    visibility: visible;
    margin-top: var(--bs-gutter-y);
    transition: 0.75s opacity ease-in-out, 0.25s visibility ease-in-out, 0.5s max-height ease-in-out, 0.25s margin-top ease-in-out;
}

.body .body-body .shop-product-modal .product-info-footer .delivery-type-column:not(.show),
.body .body-body .shop-product-modal .product-info-footer .delivery-location-column:not(.show),
.body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column:not(.show),
.body .body-body .shop-product-modal .product-info-footer .dismiss-column:not(.show),
.body .body-body .shop-product-modal .product-info-footer .product-amount-column:not(.show)
{
    opacity: 0;
    max-height: 0;
    visibility: hidden;
    margin-top: 0;
    transition: 0.75s opacity ease-in-out, 0.25s visibility ease-in-out, 0.5s max-height ease-in-out, 0.25s margin-top ease-in-out;
    overflow: hidden;
}

.body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column button,
.body .body-body .shop-product-modal .product-info-footer .dismiss-column button
{
    width: 100%;
    display: block;
}

.body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column > .grid > .row > div:first-child
{
    max-width: 80px;
    min-width: 60px;
}

.body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column > .grid > .row > div:last-child
{
    margin-left: 0.5rem;
}

.body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column .form-number-input .with-arrows,
.body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column .form-number-input .with-arrows input
{
    height: 100%;
}

.body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column .form-number-input.is-invalid .invalid-feedback
{
    display: none !important;
}

@media (max-width: 996px)
{
    .body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column,
    .body .body-body .shop-product-modal .product-info-footer .dismiss-column
    {
        width: 100%;
    }
}

@media (max-width: 767px)
{
    .body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column,
    .body .body-body .shop-product-modal .product-info-footer .dismiss-column
    {
        width: 50%;
    }

    .body .body-body .shop-product-modal .carousel
    {
        min-height: 25rem;
    }
}

@media (max-width: 576px)
{
    .body .body-body .shop-product-modal .product-info-footer .add-to-basket-submit-column,
    .body .body-body .shop-product-modal .product-info-footer .dismiss-column
    {
        width: 100%;
    }

    .body .body-body .shop-product-modal .product-info-footer .price-column .product-price
    {
        padding-left: 0;
        text-align: center;
    }
}

/* ---------------------------------------------------------------------------------------------------------------- */
/* |                                                    FOOTER                                                    | */
/* ---------------------------------------------------------------------------------------------------------------- */

.footer .shop-info
{
    border-top: 0.25rem solid #937631;
}