body {
    padding-top: 0;
    padding-bottom: 20px;
    min-height: 100vh;
}

/* Set padding to keep content from hitting the edges */
.body-content {
    padding-left: 15px;
    padding-right: 15px;
}

/* Override the default bootstrap behavior where horizontal description lists 
   will truncate terms that are too long to fit in the left column 
*/
.dl-horizontal dt {
    white-space: normal;
}

/* Set width on the form input elements since they're 100% wide by default */
input,
select,
textarea { 
    max-width: 92%;
}

/* Navbar customization */
.navbar {
    margin-bottom: 20px;
}

.navbar-brand img {
    max-height: 48px;
    display: block;
}

/* Nav button styles - remove default button styling */
.nav-item button.nav-link {
    background: none;
    border: none;
    padding: 0.5rem 1rem;
    cursor: pointer;
    transition: all 0.3s ease;
}

.nav-item button.nav-link:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.nav-item button.nav-link:focus {
    outline: none;
    box-shadow: none;
}

/* Active navigation link styles (only for desktop) */
.nav-link.active {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.nav-link.active:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

/* Fix for SVG images */
img[src$=".svg"] {
    height: auto;
    max-width: 100%;
}

/* Footer */
.footer {
    margin-top: 40px;
    padding-top: 20px;
}

.footer img {
    display: inline-block;
    vertical-align: middle;
}

/* Main content */
.container.mt-2 {
    min-height: calc(100vh - 300px);
}

/* Sidebar styles (if needed later) */
nav.sidebar, .main {
    -webkit-transition: margin 200ms ease-out;
    -moz-transition: margin 200ms ease-out;
    -o-transition: margin 200ms ease-out;
    transition: margin 200ms ease-out;
}

.main {
    padding: 10px 10px 0 10px;
}

section { 
    padding-left: 15px;
}

@media print {

    @page {
        size: A4;
        margin: 0mm;
    }

    html, body {
        width: 1024px;
    }

    body {
        margin: 0 auto;
        line-height: 1em;
        word-spacing: 1px;
        letter-spacing: 0.2px;
        font: 14px "Times New Roman", Times, serif;
        background: white;
        color: black;
        width: 100%;
        float: none;
    }

    /* avoid page-breaks inside a listingContainer*/
    .listingContainer {
        page-break-inside: avoid;
    }

    h1 {
        font: 28px "Times New Roman", Times, serif;
    }

    h2 {
        font: 24px "Times New Roman", Times, serif;
    }

    h3 {
        font: 20px "Times New Roman", Times, serif;
    }

    /* Improve colour contrast of links */
    a:link, a:visited {
        color: #781351
    }

    /* URL */
    a:link, a:visited {
        background: transparent;
        color: #333;
        text-decoration: none;
    }

    a[href]:after {
        content: "" !important;
    }

    a[href^="http://"] {
        color: #000;
    }

    #header {
        height: 75px;
        font-size: 24pt;
        color: black
    }
}