.center {
    text-align: center;
}

.amusement-park-header {
    font-size: 17px;
}

.amusement-park-header-large {
    font-size: 50px;
}

html {
    padding: 0;
    margin: 0;
}

body {
    overflow-x: hidden;
    padding: 60px 0 0 0;
    margin: 0;
    background-image: linear-gradient(grey, black);
    color: white;
    font-family: 'Montserrat', sans-serif;
    font-size: 14.4px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: bold;
    margin: 0.7em 0;
}

h1 {
    font-size: 2.4em;
}

h2 {
    font-size: 1.5em;
}

h3 {
    font-size: 1.25em;
}

h4 {
    font-size: 1.18em;
}

h5 {
    font-size: 1.1em;
}

h6 {
    font-size: 1em;
}

h2.category {
    display: inline-block;
    padding: 12px;
    word-wrap: normal;
}

.product img {
    max-width: 88%;
    float: left;
    margin-right: 20px;
}

#footer {
    background-image: linear-gradient(grey, black);
    margin: 30px 0 0 0;
    padding: 20px;
    color: white;
    width: 99vw;
    position: absolute;
    left: 0;
    right: 0;

}

p {
    margin-top: 1rem;
}

.footer-links a {
    color: inherit !important
}

.product p {
    font-size: 125%;
    margin: auto;
    display: block !important;
    margin-top: -2px;
}

.product p,
.product ul {
    display: inline-block;
    max-width: 60%;
}

hr {
    clear: both;
    height: 1.5px;
    border: 0;
    background-color: white;
}

a:link,
a:visited {
    color: orangered;
    text-decoration: none;
}

a.button {
    color: #FFF;
}

a:active,
a:hover {
    color: goldenrod;
    text-decoration: underline;
}

body>section,
body>hr {
    max-width: 800px;
    margin: 20px auto;
}

body>section p {
    line-height: 150%;
}

.index-product {
    display: inline-block;
    width: 263px;
    padding: 15px;
}

.index-product img {
    width: 100%;
}

.index-product h2.category,
.index-product p {
    padding: 0;
    margin: 10px;
}

.product-lineup {
    /* Experimental ruleset; I was trying to figure out how to add a "show more" button to the Products section of the homepage. It didn't work out. */
}

table.specs {
    margin: 60px auto;
    width: 100%;
    max-width: 800px;
}

table.specs th,
table.specs td {
    border: 2px solid white;
    padding: 4px 6px;
    text-align: center;
}

table.specs td:first-child {
    text-align: left;
}

table.specs th {
    font-size: 1.2em;
    background-color: white;
}

table.specs tr.subheader th {
    font-size: 85%;
    background-color: white;
}

.button {
    display: inline-block;
    padding: 8px 16px;
    font-size: 1.25em;
    color: white !important;
    background-color: blue;
    border-radius: 6px;
    cursor: pointer;
    text-decoration: none;
}

.button:hover {
    background-color: rgb(240, 18, 18);
}

form {
    margin: 10px auto;
    text-align: center;
}

form label {
    display: inline-block;
    width: 200px;
}

form input,
form select {
    padding: 0.75rem 1.5rem;
    border: 1px solid #ccc;
}

#btn-submit {
    margin-top: 20px;
    margin-left: 200px;
    border: none;
    padding: 0.75rem 1.5rem;
}

.loading-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.75);
    color: #fff;
    text-align: center;
}

.loading-backdrop .lds-ellipsis {
    margin: 0 auto;
    top: 50%;
    margin-top: -32px;
}

/* Loading Ellipsis Animation */
.lds-ellipsis {
    display: inline-block;
    position: relative;
    width: 64px;
    height: 64px;
}

.lds-ellipsis div {
    position: absolute;
    top: 27px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #fff;
    animation-timing-function: cubic-bezier(0, 1, 1, 0);
}

.lds-ellipsis div:nth-child(1) {
    left: 6px;
    animation: lds-ellipsis1 0.6s infinite;
}

.lds-ellipsis div:nth-child(2) {
    left: 6px;
    animation: lds-ellipsis2 0.6s infinite;
}

.lds-ellipsis div:nth-child(3) {
    left: 26px;
    animation: lds-ellipsis2 0.6s infinite;
}

.lds-ellipsis div:nth-child(4) {
    left: 45px;
    animation: lds-ellipsis3 0.6s infinite;
}

@keyframes lds-ellipsis1 {
    0% {
        transform: scale(0);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes lds-ellipsis3 {
    0% {
        transform: scale(1);
    }

    100% {
        transform: scale(0);
    }
}

@keyframes lds-ellipsis2 {
    0% {
        transform: translate(0, 0);
    }

    100% {
        transform: translate(19px, 0);
    }
}

table.specs {
    margin: 60px auto;
    width: 100%;
    max-width: 800px;
}

table.specs th,
table.specs td {
    border: 2px solid black;
    padding: 4px 6px;
    text-align: center;
}

table.specs td:first-child {
    text-align: left;
}

table.specs th {
    font-size: 1.2em;
    background-color: red;
    color: white;
}

table.specs tr.subheader th {
    font-size: 85%;
    background-color: #222;
}

.button {
    display: inline-block;
    font-size: 1.25em;
    color: goldenrod;
    background-color: black;
    border-radius: 6px;
    padding: 0.75rem 1.5rem;
    text-decoration: none !important;
    transition: background-color 270ms;
}

.button:hover {
    color: white;
    background-color: #444;
}

form div {
    margin: 10px 0;
}

form label {
    display: inline-block;
    width: 200px;
}


.carousel-caption {
    background: rgba(0, 0, 0, 0.85);
    text-shadow: 1px 1px 11px #000;
    color: #fff;
    border-radius: 15px;
    padding: 10px 15px;
}

.carousel-item img {
    max-height: 450px;
    object-fit: contain;
}

img {
    object-fit: contain;
}

.carousel-control-next-icon,
.carousel-control-prev-icon {
    filter: invert();
}

.top-menu {
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    width: 100%;
    background-image: linear-gradient(darkred, black);
    color: white;
    min-height: 49px;
}

#top-menu-ul.visible {
    display: block;
}

#top-current-user {
    position: absolute;
    right: 20px;
    margin: 15px 0;
    text-align: right;
}

.top-logo {
    width: 150px;
    max-height: 40px;
    margin: 5px 0;
    margin-left: 480px;
    position: absolute;
    left: 50%;
}

.top-menu ul {
    list-style: none;
    margin: 0;
    padding-left: 0;
}

.top-menu ul li {
    display: inline-block;
    padding: 15px;
    position: relative;
}

.top-menu>ul li a {
    text-decoration: none;
    color: white;
}

.top-menu>ul li ul li {
    padding: 0;
}

#top-menu-btn {
    display: none !important;
}

.top-menu-dropdown {
    display: none;
    position: absolute;
    z-index: 9000;
    background-color: white;
    color: black;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
    top: 48px;
    box-sizing: border-box;
    left: 0;
}

.top-menu-dropdown.products {
    width: 40vw;
}

.top-menu>ul li:hover>.top-menu-dropdown,
.top-menu>ul li:focus>.top-menu-dropdown,
.top-menu>ul li:focus-within>.top-menu-dropdown {
    display: block !important;
}

.top-menu .top-menu-dropdown li {
    float: none;
    display: inline-block;
    width: 220px;
    text-align: left;
    word-wrap: break-word;
}

.top-menu .top-menu-dropdown li a:hover,
.top-menu .top-menu-dropdown li a:focus,
.top-menu .top-menu-dropdown li a:focus-within {
    background-color: #ccc;
}

.top-menu .top-menu-dropdown li a {
    display: block;
    text-decoration: none;
    color: black;
    padding: 15px 20px;
}

.black-box {
    background-image: linear-gradient(darkred, black);
    padding: 20px;
    color: white;
    border: 2px solid red;
    border-radius: 6px;
}


@media only screen and (max-width: 1100px) {
    .top-menu {
        position: absolute;
    }

    #top-menu-btn {
        float: left;
        display: block !important;
        margin: 15px;
        color: white !important;
        position: relative;
        z-index: 9001;
    }

    #top-menu-ul {
        display: none;
        position: relative;
    }

    #top-menu-ul li {
        clear: both;
        display: block;
    }

    #top-menu-ul li a {
        display: block;
    }

    .top-menu-dropdown {
        display: block;
        position: initial;
        background-color: #333;
        color: white;
        box-sizing: border-box;
        width: auto !important;
    }

    .top-menu-dropdown li:first-of-type {
        margin-top: 10px;
    }

    .top-menu .top-menu-dropdown li {
        width: auto;
    }

    .top-menu-dropdown li a {
        color: white !important;
    }

    .top-menu-dropdown li a:focus,
    .top-menu-dropdown li a:hover {
        background-color: rgb(59, 15, 15) !important;
    }

    #top-current-user {
        display: none;
    }
}