/* montserrat-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/montserrat-v29-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* montserrat-700 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/montserrat-v29-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* montserrat-900 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 900;
    src: url('../fonts/montserrat-v29-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

* {
    margin: 0;
    padding: 0;
}

html {
    --color-primary: #E5007D;
    --color-secondary: #2574F7;
    --color-text: #FFFFFF;
    --color-accent: #E5007D;
    --color-background: #000F1EE6;
    font-family: Montserrat, sans-serif;
}

body {
    font-family: Montserrat, sans-serif;
    font-size: 16px;
    color: var(--color-text);
    background: var(--color-background);
    position: relative;
}

body:after {
    content: "";
    background-image: url(../images/noise.gif);
    filter: brightness(100%) contrast(100%) saturate(100%) blur(0px) hue-rotate(0deg);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    opacity: 0.1;
}

body > * {
    position: relative;
    z-index: 1;
}

body > header:after {
    content: "";
    display: block;
    background-color: transparent;
    background-image: linear-gradient(90deg, var(--color-primary) 50%, var(--color-secondary) 100%);
    height: 10px;
    margin: 0 auto 1em;
}

/* * * * *  */



img#logo {
    width: 220px;
    border-radius: 0;
}

header nav {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    gap: 40px;
    align-items: center;
    padding: 40px 0 60px 0;
}
header .navbar-toggler {
    display: none;
}

header .offcanvas-header {
    display: none;
}

header nav .offcanvas,
header nav .offcanvas-body {
    flex-grow: 100;
}

header nav ul {
    display: flex;
    flex-direction: row;
    gap: 20px 32px;
    align-items: center;
    justify-content: right;
    flex-wrap: wrap;
}
header nav ul li {
    display: block;
    padding: 0;
    margin: 0;
    font-size: 12px;
}
header nav ul li a {
    color: var(--color-text);
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    display: block;
    white-space: nowrap;
}
header nav ul li a:hover {
    color: var(--color-accent)
}

nav[aria-label=breadcrumb] {
    border-bottom: 2px solid var(--color-text);
    margin-bottom: 1em;
}
nav[aria-label=breadcrumb] ol {
    list-style: none;
    color: var(--color-text);
}
nav[aria-label=breadcrumb] ol li {
    display: flex;
    gap: 0px 6px;
    white-space: nowrap;
    flex-wrap: wrap;
}

nav[aria-label=breadcrumb] ol a {
    text-decoration: none;
    color: var(--color-accent);
}
nav[aria-label=breadcrumb] ol a:hover {
    color: #17181a;
}


footer {
    padding: 90px 0;
    margin-top: 6em;
    color: #fff;
    border-top: 2px solid var(--color-primary);
}
footer a {
    color: #fff;
}


#page {
    line-height: 165%;
}
#page img {
    max-width: 100%;
}

#page > .banner {
    width: 1140px;
    margin: 0 auto 3em;
    position: relative;
}
#page > .banner svg,
#page > .banner img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    display: block;
}
#page > .banner .banner-content {
    position: absolute;
    top: 0;
    left: 20px;
    right: 20px;
    bottom: 0;
    padding: 0 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
    color: #fff;
}
#page > .banner .banner-content h1 {
    font-size: 36px;
    font-weight: 900;
    text-transform: uppercase;
}

header > nav,
footer .container,
#page .container {
    max-width: 1140px;
    margin: 0 auto;
}

article.news .row {
    display: flex;
    flex-direction: column;
    gap: 90px;
}

article.news .row .col .card {
    display: flex;
    flex-direction: row-reverse;
    gap: 64px;
    background: none !important;
}

article.news .row .col .card .card-body {
    padding: 0;
    color: var(--color-text);
}

article.news .row .col .card > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 30px;
}
article.news .row .col .card > div {
    color: #54585f;
}
article.news .row .col .card > div .card-body a {
    font-size: 24px;
    font-weight: 900;
    text-transform: uppercase;
    text-align: center;
    margin: 0 0 1em;
    color: var(--color-text);
    text-decoration: none;
    display: block;
}

article.news .row .col .card > div .card-footer a {
    border: 0 none;
    background-image: linear-gradient(180deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    color: #fff;
    font-size: 20px;
    padding: 10px 20px;
    border-radius: 6px;
    cursor: pointer;
    text-decoration: none;
    margin-top: 0.25em;
    display: inline-block;
}

.select-duration-slots .card-header,
.select-group-size .card-header,
#content h6 {
    font-size: 16px;
    color: var(--color-text);
    font-weight: normal;
    margin: 2em 0 1em 0;
}

.select-package {
    display: flex;
    flex-direction: row;
    gap: 16px;
}

.select-package a {
    background: #f3f3f3;
    color: #000;
    text-decoration: none;
    padding: 12px 26px;
    display: block;
    border: 3px solid #f3f3f3;
    flex: 1 1 50%;
}

.select-package a p.price {
    margin-top: 0.6em;
}

.select-package a:hover {
    border-color: var(--color-primary);
}
.select-package a.active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}
.select-package a strong {
    font-size: 1.25em;
    margin-bottom: 0.5em;
    display: block;
}

.select-duration-slots .card-body .el,
.select-group-size .card-body .el {
    display: flex;
}
.select-duration-slots .card-body .el a,
.select-group-size .card-body .el a {
    text-decoration: none;
    background: var(--color-primary);
    color: #fff;
    font-size: 20px;
    padding: 10px 20px;
}
.select-duration-slots .card-body .el a.disabled,
.select-group-size .card-body .el a.disabled {
    background: var(--color-background);
    color: #aaa;
}
.select-duration-slots .card-body .el input,
.select-group-size .card-body .el input {
    background: #f3f3f3;
    border: 1px solid #f3f3f3;
    padding: 10px 0;
    font-size: 26px;
    text-align: center;
    width: 120px;
}

button.btn-primary,
button.btn-success,
.action button {
    border: 0 none;
    background-image: linear-gradient(180deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    color: #fff;
    font-size: 20px;
    padding: 10px 20px;
    border-radius: 6px;
    cursor: pointer;
}

button.btn-primary:disabled,
button.btn-success:disabled,
.action button:disabled {
    filter: grayscale(100);
    cursor: default;
}

button.btn-primary {
    background: #54585f;
    margin: 0;
}

#page h1,
#page h2 {
    font-size: 36px;
    font-weight: 900;
    text-transform: uppercase;
    text-align: center;
    margin: 2em 0 1em;
    line-height: 100%;
}
#page h2 {
    font-size: 22px;
}


/** **/

#calendarCarousel {
    display: flex;
    flex-direction: row;
    align-content: center;
    justify-content: center;
    align-items: center;
}
#calendarCarousel .carousel-inner {
    width: 500px;
    display: block;
}

#calendarCarousel .carousel-inner .carousel-item {
    width: 500px;
    display: none;
}
#calendarCarousel .carousel-inner .carousel-item.active {
    display: block;
}

table.calendar {
    width: 500px;
}

table.calendar td,
table.calendar th {
    text-align: center;
}

table.calendar th {
    padding: 8px;
}
table.calendar td {
    color: var(--color-background);
    color: var(--color-text);
}
table.calendar td.void {
    color: var(--color-text);
    opacity: 0.5;
}
table.calendar td.past {
    color: var(--color-text);
    opacity: 0.8;
}

/*
    color: #54585f;
    color: #17181a;
 */

table.calendar td span,
table.calendar td a {
    display: block;
    padding: 12px;
    text-align: center;
    font-size: 1.25em;
}

table.calendar td a {
    background: var(--color-secondary);
    color: var(--color-text);
    text-decoration: none;
}

table.calendar td.current a,
table.calendar td a:hover {
    color: #fff !important;
    background: var(--color-primary) !important;
}

.calendar-control {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

.calendar-control button {
    -webkit-transform: skewX(0deg);
    -moz-transform: skewX(0deg);
    transform: skewX(0deg);
}
.calendar-control button:after {
    display: none;
}


.carousel-item:first-child .calendar-control [data-bs-slide="prev"] {
    opacity: 0.1;
}
.carousel-item:last-child .calendar-control [data-bs-slide="next"] {
    opacity: 0.1;
}

#page .container .calendar-control h3 {
    font-size: 24px;
}

/* ---- */

.date-and-time {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: flex-start;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 40px;
}

.select-time-slot {
    display: flex;
    flex-direction: row;
    gap: 3px;
    margin: 88px 0 0 0;
    max-width: 500px;
    flex-wrap: wrap;
}

.select-time-slot a {
    display: flex;
    background: #f3f3f3;
    color: #17181a;
    padding: 12px;
    flex: 0 0 50px;
    align-items: center;
    align-content: center;
    justify-content: center;
    text-align: center;
    font-size: 1.15em;
    text-decoration: none;
}

.select-time-slot a.current,
.select-time-slot a:hover {
    color: #fff !important;
    background: var(--color-primary) !important;
}

.select-time-slot a.no-booking,
.select-time-slot a.no-booking:hover {
    color: #ccc !important;
    background: #fafafa !important;
    cursor: default;
}

.confirm-date .action {
    margin-top: 1.5em;
}

.login-or-register {
    border-bottom: 2px solid #4e4e4e !important;
    width: 500px;
}

.login-or-register > div.form-check {
    margin-bottom: 0.5em;
    padding: 0 25px !important;
    width: 450px;
    display: flex;
    flex: 1;
    position: relative;
    align-items: center;
    align-content: center;

}

ul.payment > li label,
.login-or-register > div label {
    margin-left: 1.0em;
    padding: 12px 0;
    display: block;
    flex: 1;
}

.login-or-register > div.form-check:hover {
    background: #f3f3f3;
    color: #000;
}

form #login,
form #register,
form #guest {
    padding: 25px;
    width: 450px;
    display: flex;
    gap: 10px;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    align-items: flex-start;
}

form #login .mb-3,
form #register .mb-3,
form #guest .mb-3 {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

form #login .mb-3 label,
form #register .mb-3 label,
form #guest .mb-3 label,
form #login .mb-3 label {
    flex: 0 0 150px;
}

form #login .mb-3 input,
form #register .mb-3 input,
form #guest .mb-3 input,
form #login .mb-3 input {
    color: #000;
    margin-right: 12px;
    background: #f3f3f3;
    border: 1px solid #f3f3f3;
    padding: 10px 12px;
    flex: 1;
}

.form-error {
    background: #333;
    color: #fdc239;
    padding: 25px;
    width: 450px;
}

.form-error.text-danger {
    background: #cc3333;
    color: #fff;
}

table.register-driver-names {
    width: 500px;
    margin-bottom: 25px;
}

table.register-driver-names tbody {
    background: var(--color-background);
    width: 500px;
}

table.register-driver-names thead tr th {
    padding: 12px;
}
table.register-driver-names tbody tr td {
    padding: 0 0 6px 0;
    border: 0 none;
}
table.register-driver-names tbody tr:first-child td {
    padding-top: 12px;
}
table.register-driver-names tbody tr:last-child td {
    padding-bottom: 12px;
}
table.register-driver-names tbody tr td:first-child {
    text-align: center;
    vertical-align: center;
    font-size: 1.2em;
}

table.register-driver-names tbody input {
    color: #000;
    width: 380px;
    margin-right: 12px;

    background: #f3f3f3;
    border: 1px solid #f3f3f3;
    padding: 10px 12px;
}


/* -- */

.book-summary form ul {
    padding: 20px;
}

/** -- */

/* -- */

.card.confirm-date {
    margin-top: 2em;
    width: 500px;
}

.card {
    background: var(--color-background);
}
.card .card-header {
    background: var(--color-primary);
    padding: 20px 20px;
    color: var(--color-text);
    font-size: 24px;
    font-weight: 800;
    text-align: center;
}
.card .card-body {
    padding: 20px;
}
.card .card-footer {
    padding: 0;
}

.book-summary form ul {
    padding: 0;
    list-style: none;
    margin: 20px 0;
    display: flex;
    flex-direction: column;
    width: 500px;
}
.book-summary form ul li {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.book-summary form ul.drivers-list {
    border-top: 1px solid #777;
}
.book-summary form ul.drivers-list li {
    list-style: none;
    padding: 10px;
    border-bottom: 1px solid #777;
    gap: 20px;
}
.book-summary form ul.drivers-list li span.driver {
    flex: 1;
}
.book-summary form ul.drivers-list li span.driver .label:after {
    content: ":";
    margin-right: 6px;
}

.book-summary form ul.total {
    margin-top: 35px;
    font-size: 1.2em;
}


/** **/


.alternating-list {
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.alternating-list li {
    display: block;
    background: var(--color-background);
    color: var(--color-text);
}
.alternating-list li .header,
.alternating-list li a {
    display: grid;
    align-items: center;
    font-size: 1.1em;
    text-decoration: none;
    grid-template-columns: 80px calc(60% - 80px) 20% 20%;
}
.alternating-list li a {
    height: 64px;
    color: var(--color-text) !important;
}

.alternating-list li a img {
    display: block;
}

.alternating-list li .icon-info {
    text-align: center;
}

.alternating-list li .header {
    padding: 6px 0;
    background: var(--color-primary);
    color: var(--color-text);;
    font-size: 1.0em;
}
.alternating-list li .header a {
    color: #fff !important;
}


.alternating-list.no-track li .header,
.alternating-list.no-track li a {
    grid-template-columns: 60% 20% 20%;
}

.alternating-list.no-track li span.title {
    padding-left: 20px;
}

.alternating-list .competition-title,
.alternating-list .track-title {
    padding-left: 20px;
}

.track-map svg {
    width: 80px;
    height: auto;
    max-height: 64px;
}

.board-headline form {
    margin: 0 0 1em auto;
    width: 30%;
}

.blog-post img {
    max-width: 100%;
    height: auto;
}


#my-bookings tr {
    vertical-align: top;
}

#my-bookings tr.new td {
    background: #f0f0f0 !important;
    color: #000;
}

#my-bookings tr.past td {
    background: var(--color-background);
    color: #666;
}

#my-profile fieldset {
    padding: 0;
    border: 0 none;
}

#my-profile fieldset .fieldgroup {
    padding: 25px;
    width: 450px;
    display: flex;
    gap: 10px;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    align-items: flex-start;
}

#my-profile fieldset .fieldgroup-field,
#my-profile fieldset .fieldholder-small {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

#my-profile fieldset label {
    flex: 0 0 150px;
}
#my-profile fieldset input {
    color: #000;
    margin-right: 12px;
    background: #f3f3f3;
    border: 1px solid #f3f3f3;
    padding: 10px 12px;
    flex: 1;
}

#my-profile .btn-toolbar input {
    display: inline-block;
    width: auto;
    border: 0 none;
    background: var(--color-primary);
    color: #fff;
    font-size: 20px;
    padding: 7px 12px;
    border-radius: 6px;
    margin: 1.5em 0;
    cursor: pointer;
}

#my-profile .btn-toolbar input:after {
    -webkit-transform: skewX(0deg);
    -moz-transform: skewX(0deg);
    transform: skewX(0deg);
    position: absolute;
    right: -10px;
    top: 0px;
    height: 100%;
    width: 4px;
    content: "";
    background: #cc3333;
}

#my-profile .btn-toolbar input:hover ,
#my-profile .btn-toolbar input.active{
    background: #cc3333;
    color: #ffffff;
}

#my-profile .btn-toolbar {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    width: 500px;
    margin: 2em 0;
}

ul.grind-list {
    display: flex;
    list-style: none;
    flex-direction: column;
    gap: 6px;
}

ul.grind-list li {
    display: block;
}

ul.grind-list li > span,
ul.grind-list li > a {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    background: var(--color-background);
    text-decoration: none;
    color: var(--color-text) !important;
}

ul.grind-list li > a:hover {
    background: var(--color-primary);
    color: var(--color-text) !important;
}

ul.grind-list li i.fa {
    font-size: 2em;
    margin-right: 1em;
}


.my-rank-icon {
    display: flex;
    align-items: center;
}

#my-rankings h2 {
    margin: 1em 0 0.5em 0 !important;
    font-size: 32px !important;
}

.footer-navigation.list-unstyled {
    display: flex;
    float: right;
}
.footer-navigation.list-unstyled li a {
    display: block;
    border-right: 1px solid #fff;
    padding: 0 10px;
    color: var(--color-text);;
    text-decoration: none;
}
.footer-navigation.list-unstyled li:last-child a  {
    border-right: 0 none;
    padding-right: 0;
}


/** **/
table.table-times {
    width: 100%;
}

table.table-times tr.collapse {
    display: none;
}

table.table-times .d-lg-none {
    display: none;
}
table.table-times thead tr th {
    text-align: left;
    padding-bottom: 6px;
}
table.table-times tbody tr th,
table.table-times tbody tr td {
    background: var(--color-background);
    color: var(--color-text);
    border-bottom: 1px solid transparent;
    padding: 6px;
}

table.table-times tbody tr.invalid th,
table.table-times tbody tr.invalid td {
    color: #cc3333;;
}


.CompetitionPage #page h2 {
    margin-top: 1.2em;
}


form.board-form {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: stretch;
}

form.board-form input {
    background: var(--color-text);;
    border: 1px solid var(--color-text);;
    padding: 10px 12px;
    font-size: 16px;
    text-align: left;
    width: 240px;
    border-radius: 8px 0 0 8px;
}
form.board-form input.btn {
    background:  var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-text);
    width: auto;
    border-radius: 0 8px 8px 0;
}

#BookPage_1 .select-group-size {
    margin-bottom: 1em;
}

.select-duration-slots .card-body {
    display: flex;
    align-content: center;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.select-duration-slots {
    margin-bottom: 2em;
}


/** 1200 **/

@media (max-width: 1200px) {

    #page > .banner {
        width: 100%;
    }

    header > nav, footer .container, #page .container {
        width: auto;
        margin: 0 20px;
    }
}

@media (max-width: 900px) {
    .date-and-time {
        flex-direction: column;
        align-items: center;
        gap: 0;
    }
    .select-time-slot {
        display: grid;
        grid-template-columns: 20% 20% 20% 20% 20%;
        margin: 30px 0 0 0;
    }
    .card.confirm-date {
        width: auto;
    }

    .board-content {
        font-size: 0.9em;
        line-height: 110%;
    }

    table.table-times .d-none {
        display: none;
    }

    table.table-times tbody tr th, table.table-times tbody tr td {
        border-bottom: 0 none;
    }

    .table.table-times tr.collapse {
        display: table-row;
        font-size: 0.6em;
        line-height: 18px;
    }
    .table.table-times tr.collapse .row {
        display: flex;
        justify-content: space-between;
    }
    .table.table-times tr.collapse td {
        padding: 0 10px;
    }
}

@media (max-width: 800px) {
    body > header {
        z-index: 888;
    }
    #bdNavbar {
        padding: 0 0 0 30px;
        position: relative;
    }
    #bdNavbar:before {
        content: "☰";
        display: block;
        position: absolute;
        right: 0;
        top: 0;
        padding: 6px;
        background: var(--color-primary);
        border-radius: 4px;
        color: #fff;
        font-weight: bold;
        font-size: 1.2em;
        width: 28px;
        text-align: center;
    }
    #bdNavbar ul {
        display: none;
        position: fixed;
        top: 0;
        right: 0;
    }
    #bdNavbar:hover ul {
        display: flex;
        background: var(--color-primary);
        left: 0;
        right: 0;
        top: 0;
        z-index: 6;
        flex-direction: column;
        gap: 0;
        align-items: flex-start;
    }
    header nav ul li a {
        padding: 12px 20px;
        text-align: left;
        font-size: 1.4em;
        display: block;
        width: auto;
    }
    header nav ul li a:hover {
        color: #fff;
    }
    #page > .banner svg, #page > .banner img{
        height: 260px;
    }
    .select-package {
        flex-direction: column;
    }
    .select-package a {

    }
}

@media (max-width: 640px) {
    form #login, form #register, form #guest,
    .login-or-register > div.form-check {
        width: 360px;
    }
    .login-or-register,
    .book-summary form ul,
    table.register-driver-names,
    #calendarCarousel .carousel-inner,
    .select-time-slot,
    #calendarCarousel .carousel-inner .carousel-item,
    table.calendar {
        width: 400px;
    }

    .select-time-slot {
        grid-template-columns: 25% 25% 25% 25%;
    }
    table.register-driver-names tbody input {
        width: 95%;
    }
    form #login .mb-3, form #register .mb-3, form #guest .mb-3 {
        flex-direction: column;
    }
    form #login .mb-3 label, form #register .mb-3 label, form #guest .mb-3 label, form #login .mb-3 label {
        flex: 1 1 auto;
    }
    #page > .banner svg, #page > .banner img{
        height: 220px;
    }
}

@media (max-width: 540px) {
    #page .container .calendar-control h3 {
        font-size: 18px;
    }
    form #login, form #register, form #guest,
    .login-or-register > div.form-check {
        width: 280px;
    }
    .login-or-register,
    .book-summary form ul,
    table.register-driver-names,
    #calendarCarousel .carousel-inner,
    .select-time-slot,
    #calendarCarousel .carousel-inner .carousel-item,
    table.calendar {
        width: 320px;
    }

    table.calendar td span, table.calendar td a {
        padding: 8px;
        font-size: 1em;
    }
    .select-time-slot {
        grid-template-columns: 33.33% 33.33% 33.33%;
    }
    #page > .banner svg, #page > .banner img{
        height: 180px;
    }
}
