body
{
    font-size: 40px;
}

.navbar-brand,
.navbar-toggler
{
    font-size: 60px;
}

.grid
{
    display: grid;
}

.grid-cols-3
{
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}

.grid-cols-3 > *
{
    grid-column: span 2;
}

/* Subpage cards */
.card-body img
{
    width: 100%;
}

/* Blog Entry image rules */
.image-container
{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap: 1em;
    gap: 1em;
    width: 100%;
}

.grid > .img-landscape
{
    grid-column: span 3;
}

.grid > .img-portrait
{
    grid-column: span 2;
}

.image-container img
{
    width: 100%;
}

.image-container img:only-child
{
    grid-column: span 3;
    width: 45%;
}
/* Gallery CSS rules */
#carousel-gallery
{
    max-height: calc(100vh - 8rem - 40px);
}

#carousel-gallery .carousel-inner
{
    height: 100%;
}

#carousel-gallery .carousel-inner .carousel-item
{
    height: 100%;
}

#carousel-gallery .carousel-inner .carousel-item img
{
    max-height: 100%;
    max-width: 100%;
    margin: auto;
}
.modal-dialog
{
    max-height: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

.modal-body
{
    text-align: center;
}

 @media screen and (orientation:portrait)
 {
    .modal-dialog img
    {
        width: 100%;
    }
 }
 @media screen and (orientation:landscape)
 {
    .modal-dialog img
    {
        height: 100%;
    }
 }
/* extends bootstrap viewport sizing */
.max-vw-100
{
    max-width: 100vw;
}

.max-vh-100
{
    max-height: 100vh;
}
/* end bs extension */

@media only screen and (min-width: 992px)
{
    .grid-cols-lg-3
    {
        grid-template-columns: 1fr 1fr 1fr  1fr 1fr 1fr;
    }

    .grid-cols-lg-3 > *
    {
        grid-column: span 2;
    }

    body
    {
        font-size: 16px;
    }

    .navbar-brand,
    .navbar-toggler
    {
        font-size: 20px;
    }
}