@band-color: #2864BE;

body {
    /* Space for the navbar */
    padding-top: 52px;
    color: #5a5a5a;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex: 1 0 auto;
}

/* Responsive images: scale width with container, preserve aspect ratio. */
img {
    max-width: 100%;
    height: auto;
}

footer {
    flex-shrink: 0;
}


/* CUSTOMIZE THE CAROUSEL
-------------------------------------------------- */

.carousel {
    background-color: @band-color !important;
}

address {
    display: inline;
}

// the 'about us' cards on the front page look rubbish if their content (and specifically buttons)
// aren't starting and finishing at the same point
.aboutUsCard {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    flex-grow: 1;
}

/* Since positioning the image, we need to help out the caption */
.carousel-caption {
    bottom: 10rem;
    z-index: 10;
    pointer-events: none;
}

.carousel-caption>h2 {
    text-align: right;
    font-family: 'Courgette', cursive;
}

/* Make the image in the carousel the correct ratio and not stretchy */
.carousel-item>img {
    width: 100%;
    object-fit: cover;
    aspect-ratio: 16/9;

}

.pastEvent {
    opacity: 50%;
}

.btn-primary {
    background-color: @band-color !important;
    border-color: @band-color !important;
}


.navbar {
    background-color: @band-color !important;
}

.navbar-dark .nav-link {
    color: #ffffff;
}

.navbar-dark .nav-link.active {
    text-decoration: underline;
    font-weight: 600;
}

@media (max-width: 991.98px) {
    .navbar.fixed-top .navbar-collapse {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background-color: @band-color;
        padding: 0.5rem 1rem;
    }
}

/* MARKETING CONTENT
-------------------------------------------------- */

/* Center align the text within the three columns below the carousel */
.marketing .col-lg-4 {
    margin-bottom: 1.5rem;
    text-align: center;
}

.marketing h2 {
    font-weight: 400;
}

.marketing .col-lg-4 p {
    margin-right: .75rem;
    margin-left: .75rem;
}

.band-history>figure {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1em;
    max-width: max-content;
}

.band-history>figure img {
    width: auto;
    max-width: 100%;
    height: auto;
}



/* RESPONSIVE CSS
-------------------------------------------------- */

@media (min-width: 40em) {
    .carousel-caption p {
        margin-bottom: 1.25rem;
        font-size: 1.25rem;
        line-height: 1.4;
    }
}


@media (max-width: 40em) {
    .carousel-caption {
        bottom: 1rem;
    }

    .carousel-caption h2 {
        font-size: 1.25rem;
    }
}

.container {
    padding-top: 1em;
    max-width: 95%;
}

footer .footer-item {
    margin: 0.25rem 0.5rem;
}

footer .footer-item .btn {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gallery {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
}


figure {
    border-radius: 25px;
    margin: 1em;
    background-color: white;
    border: 1px solid #ccc;
    overflow: hidden;
}

figure:hover {
    border: 1px solid #777;
}

figure img {
    width: 100%;
    height: auto;
}

figcaption {
    padding: 15px;
    text-align: center;
}

td {
    vertical-align: middle;
}


@label-width: 80px;

.table-row {
    display: flex;
    display: -webkit-flex;
    flex-flow: row nowrap;
    -webkit-flex-flow: row nowrap;
    width: 100%;
    border-top: 1px solid grey;
    justify-content: space-around;
    align-items: stretch;
    flex: 0 0 auto;
}

.cell>.content>p {
    margin: 0px;
}

.cell {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    flex: 0 0 auto;
    align-items: center;
}

h2 {
    text-align: center;
}

.name {
    width: 30%;
}

.date {
    width: 15%;
}

.time {
    width: 15%;
}

.location {
    width: 40%;
}

.label {
    width: @label-width;
    display: none;
    align-self: center;
    justify-content: flex-end;
    margin: 5px;
}


.title {
    font-weight: bold;
    text-align: center;
}

.content {
    width: 100%;
    text-align: center;
}


.table-row:nth-child(even) {
    background-color: lightgray;
}

.contactsTable a {
    color: #06478a;
}

.contactsTable>.table-row>* {
    width: 33%;
}

#contactUsTable>.table-row>* {
    width: 33%;
}

@media only screen and (max-width: 880px),
(min-device-width: 881px) and (max-device-width: 1024px) {
    .table-header {
        display: none;
    }

    .table-row {
        flex-flow: column nowrap;
        -webkit-flex-flow: column nowrap;
    }

    .cell {
        border-top: 1px solid dimgrey;
    }

    .content {
        text-align: left;
        padding: 5px;
    }

    .label {
        display: flex;
    }

    .name {
        width: 100%
    }

    .date {
        width: 100%;
    }

    .time {
        width: 100%;
    }

    .location {
        width: 100%;
    }

    .contactsTable>.table-row>* {
        width: unset;
        display: flex;
    }

    #contactUsTable>.table-row>* {
        width: unset;
        display: flex;
    }

}

.row {
    justify-content: center;
}

h1,
h2,
h3,
h4 {
    text-transform: capitalize;
}

.trainingband {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
}

.trainingband div {
    width: 100%
}

.strip {
    width: 100%;
    object-fit: scale-down;
}

.photorow {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: stretch;
    gap: 1em;
}

.portrait {
    flex: 1 1 0;
    min-width: 0;
    height: 600px;
    display: flex;
    flex-direction: column;
}

.portrait > a {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.portrait > a > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.portrait > figcaption {
    flex: 0 0 auto;
}

.center-col {
    display: flex;
    flex: 1 0 0%;
    justify-content: center;
}

@media only screen and (max-width: 992px) {
    .photorow {
        flex-direction: column;
        align-items: center;
    }

    .portrait {
        flex: 0 0 auto;
        width: 95%;
        height: auto;
        max-height: none;
    }

    .portrait > a {
        flex: 0 0 auto;
        overflow: visible;
    }

    .portrait > a > img {
        width: 100%;
        height: auto;
        max-height: none;
    }

    figure {
        width: 95%;
    }
}