html,
body {
    height: 100vh;
    height: 100svh;
    min-height: 100vh;
    min-height: 100svh;
    scroll-behavior: smooth;
}

body {
    font-family: Arial;
    color: white;
    background-color: black;
    /*background-image: url('/images/alpine.png');
    background-size: cover;*/
}

 :root {
    --primary-colour: blue;
    --secondary-colour: yellow;
}

.header {
    position: fixed;
    min-height: 60px;
    z-index: 1000;
    width: 100%;
    /*background-color: var(--off-white);
    color: var(--extra-light-grey);
    background: linear-gradient(180deg, var(--mid-grey), black);*/
    text-transform: capitalize;
}

.header img {
    position: relative;
    left: 50px;
    top: 5px;
    max-width: 500px;
    max-height: 50px;
}

.header .price {
    position: fixed;
    right: 50px;
    top: 20px;
    font-size: 2em;
    z-index: 2;
}

.header .price .short {
    display: none;
}

.header .background {
    height: 100%;
    width: 50%;
    position: absolute;
    right: 0;
    top: 0;
    background-color: #f3f4f4d1;
    z-index: 1;
}

body.dark .header .background {
    background-color: #000000d4;
}

@media screen and (max-width: 800px) {
    .header img {
        max-width: 400px;
        left: 40px;
    }
    .header .price {
        font-size: 1.8em;
    }
}

@media screen and (max-width: 700px) {
    .header img {
        max-width: 350px;
        left: 30px;
    }
    .header .price {
        font-size: 1.6em;
    }
}

@media screen and (max-width: 600px) {
    .header img {
        max-width: 300px;
        left: 20px;
    }
    .header .price {
        top: 10px;
        font-size: 1.6em;
    }
    .header .price .long {
        display: none;
    }
    .header .price .short {
        display: inline-block;
    }
}

@media screen and (max-width: 500px) {
    .header img {
        max-width: 45vw;
    }
}

.content-wrapper {
    padding-bottom: 15px;
    /*background: #000000d4;*/
    width: 100%;
    height: 100%;
    display: inline-block;
    z-index: 2;
    position: sticky;
    padding-top: 80px;
    /*padding-left: 10px;
    padding-right: 10px;*/
}

#logo-background {
    position: fixed;
    top: 0px;
    left: 0px;
    z-index: 1;
    min-height: 100%;
    min-width: 100%;
    filter: brightness(0.1);
}

.centered {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    background-color: #3c3c3c9c;
    border-radius: 25px;
    padding: 25px;
}

.centered img {
    width: 50%;
    border-radius: 25%;
}

button {
    font-size: 1.4em;
}

.logo {
    max-width: 50%;
    max-height: 400px;
}

.primary {
    background-color: var(--primary-colour)!important;
    color: white !important;
}


/* Buttons styles */

.btn-primary {
    background-color: unset;
    border: 2px solid var(--primary-colour);
    width: 25%;
    color: white;
    border-radius: 10px;
    padding: 5px;
}

.btn-white {
    background-color: unset;
    border: 2px solid white;
    width: 25%;
    color: white;
    border-radius: 10px;
    padding: 5px;
}

.btn-white:disabled {
    border-color: #282828;
    color: #282828;
}

.btn-danger {
    background-color: #ff2f2f;
    color: white;
}

.btn-label-danger {
    color: red;
}

.btn-grey {
    background-color: var(--mid-grey);
    color: white;
}

span.label {
    text-align: center;
    font-weight: bold;
    color: white;
    margin-bottom: 20px;
}

button.selected {
    color: var(--primary-colour)!important;
    border-color: var(--primary-colour)!important;
    background-color: #2a2a2a!important;
}

.w-10 {
    width: 10%;
}

.w-25 {
    width: 25%;
}

.w-30 {
    width: 30%;
}

.w-32 {
    width: 32%;
}

.w-40 {
    width: 40%;
}

.w-50 {
    width: 50%;
}

.w-75 {
    width: 75%;
}

.w-100 {
    width: 100%;
}

.m-2 {
    margin: 2px;
}

.mb-10 {
    margin-bottom: 10px;
}

.mb-20 {
    margin-bottom: 20px;
}

.pb-10 {
    padding-bottom: 10px;
}

.pb-20 {
    padding-bottom: 20px;
}


/* personal details form */

.form-header {
    text-align: center;
    font-weight: bold;
    color: white;
    margin-bottom: 20px;
}

.form-title {
    display: inline-block;
    background-color: grey;
    padding: 10px 20px;
    border-radius: 25px;
}

.form-row {
    display: flex;
    flex-wrap: wrap;
}

.col {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    /* from inline CSS */
    width: 100%;
    max-width: 500px;
}

.btn-link {
    background: none;
    border: none;
    padding: 0;
    font-size: 1.3em;
    cursor: pointer;
    color: var(--primary-colour);
}

label {
    color: white;
}

.form-control {
    width: 100%;
    padding: 8px;
    border: none;
    border-radius: 8px;
}

#additional-gear {
    background-color: #525252;
    padding: 5px;
    border-radius: 10px;
    margin-bottom: 20px;
}

#additional-gear button {
    border: none;
    background-color: unset;
    color: var(--primary-colour);
    width: 16%;
    border-right: 1px solid var(--primary-colour);
}

#additional-gear button:last-child {
    border-right: none;
}

#additional-people-list {
    display: none;
}

input,
select {
    background-color: #2a2a2a;
    color: white;
    padding: 5px;
    border: none;
    border-radius: 5px;
    min-width: 75%;
}

.container {
    padding: 10px;
    border-radius: 15px;
    background-color: #525252;
    margin-bottom: 20px;
}

.container-transparent {
    background-color: transparent;
    margin-bottom: 20px;
}

#div_date_selection div {
    position: relative;
}

#div_date_selection div:first-child i {
    position: absolute;
    left: 21px;
    top: 12px;
}

#div_date_selection input {
    padding-left: 110px;
}

#div_date_selection div:last-child i {
    position: absolute;
    left: 18px;
    top: 12px;
}

@media screen and (max-width: 850px) {
    #div_date_selection div {
        width: 100%;
    }
    #div_date_selection div:first-child {
        margin-bottom: 10px;
    }
}


/* Inputs for personal details tab */

.inputHolder {
    position: relative;
    margin-bottom: 5px;
}

.inputHolder label {
    position: absolute;
    left: 10px;
    top: 7px;
}

.inputHolder input {
    padding-left: 90px;
}


/* customise the styling for the mobile input */

.inputHolder.mobile {
    background-color: #2a2a2a;
    border-radius: 10px;
}

.inputHolder .iti {
    padding-left: 90px;
}

.inputHolder .iti__flag-container {
    left: auto;
}


/* Buttons for group size tab */

#div_number_of_people,
#tab_person_selection,
#tab_gear_selection,
#tab_person_ability,
#tab_extras,
#tab_summary,
#div_packages,
#tab_complete,
#tab_payment {
    display: none;
}

#span_number_in_group {
    font-size: 3em;
    padding-left: 25px;
    padding-right: 25px;
}

.colPerson label {
    position: absolute;
    top: 8px;
    left: 10px;
}

.colPerson input {
    padding-left: 40px;
    text-transform: capitalize;
}

.colPerson button {
    position: absolute;
    right: 2px;
    top: 4px;
    font-size: 1.2em;
    background: none;
    border-color: transparent;
}

@media screen and (max-width: 601px) {
    .desktopOnly {
        display: none;
    }
}

#tab_person_ability img {
    max-width: 100%;
    max-height: 100%;
    filter: grayscale(1);
}

#tab_person_ability div.w3-third.active {
    border: 3px solid var(--primary-colour);
    border-radius: 15px;
}

#tab_person_ability div.w3-third.active h4 {
    color: var(--primary-colour);
    font-weight: bold;
}

#tab_person_ability div.w3-third.active img {
    filter: grayscale(0);
}

@media screen and (max-width: 600px) {
    #tab_person_ability div.w3-third.active {
        border: none;
    }
}


/* Premium Gear Upsell */

#banner_gear_premium_upsell {
    background: linear-gradient(45deg, var(--upsell-blue), var(--upsell-purple));
    background-size: 400% 400%;
    -webkit-animation: upsellColourFade 20s ease infinite;
    -moz-animation: upsellColourFade 20s ease infinite;
    -o-animation: upsellColourFade 20s ease infinite;
    animation: upsellColourFade 20s ease infinite;
}

#banner_insurance {
    background: linear-gradient(45deg, var(--insurance-green), var(--upsell-blue));
    background: linear-gradient(90deg, #2a2a2a, var(--insurance-green));
}

#banner_insurance button {
    /*background-color: var(--insurance-green);
    border: 2px solid var(--insurance-green);*/
    background-color: var(--primary-colour);
    color: white;
}

#banner_insurance button.selected {
    background-color: var(--extra-light-grey)!important;
    color: grey!important;
    border-color: grey!important;
    padding-left: 10px;
    padding-right: 10px;
}

#banner_insurance.selected {
    background: none!important;
}

#banner_snow_chains {
    background: linear-gradient(45deg, #181818, #855e07);
    background: linear-gradient(45deg, #a73002, #f7b805);
    background: linear-gradient(90deg, #2a2a2a, #f7b805);
}

#banner_snow_chains button {
    /*background-color: #f7b805;
    border: 2px solid #f7b805;*/
    background-color: var(--primary-colour);
    color: white;
}

#banner_snow_chains button.selected {
    background-color: var(--extra-light-grey)!important;
    color: grey!important;
    border-color: grey!important;
    padding-left: 10px;
    padding-right: 10px;
}

#banner_snow_chains.selected {
    background: none!important;
}


/* Upsell Banner */

.upsell_banner {
    background-color: #3d9ddb;
    border-radius: 10px;
    padding: 2px;
    position: relative;
    height: 80px;
    width: 100%;
    background: linear-gradient(45deg, #00BCD4, #8349eb);
    margin-top: 5px;
    margin-bottom: 5px;
}

.upsell_banner .module {
    background: #2a2a2a;
    color: white;
    padding: 1rem;
    border-radius: 10px;
    height: 76px;
}

.upsell_banner .title {
    position: absolute;
    left: 40px;
    top: 2px;
    font-size: 1.6em;
    max-width: 60%;
    display: none;
}

.upsell_banner .price {
    position: absolute;
    top: 1px;
    right: 30px;
    font-size: 1.3em;
    text-transform: capitalize;
}

.upsell_banner .description {
    /*font-size: 0.9em;
    position: absolute;
    top: 40px;
    left: 40px;
    max-width: 60%;*/
    font-size: 0.9em;
    position: absolute;
    top: 0px;
    left: 10px;
    max-width: 70%;
    height: 100%;
    align-content: center;
    display: grid;
}

.upsell_banner button {
    border: none;
    background-color: white;
    color: var(--primary-colour);
    border-radius: 15px;
    padding: 3px 30px;
    position: absolute;
    right: 10px;
    bottom: 10px;
}

@media screen and (min-width: 730px) and (max-width: 850px) {
    .upsell_banner .title {
        left: 20px;
        font-size: 1.4em;
    }
    .upsell_banner .price {
        font-size: 1.1em;
        top: 3px;
    }
    .upsell_banner .description {
        font-size: 0.7em;
        left: 20px;
        max-width: 55%;
    }
}

@media screen and (min-width: 630px) and (max-width: 729px) {
    .upsell_banner .title {
        left: 20px;
        font-size: 1.2em;
    }
    .upsell_banner .price {
        font-size: 0.9em;
        top: 6px;
    }
    .upsell_banner .description {
        font-size: 0.8em;
        top: 25px;
        left: 20px;
        max-width: 50%;
    }
}

@media screen and (min-width: 600px) and (max-width: 629px) {
    .upsell_banner .title {
        left: 10px;
        font-size: 1.2em;
    }
    .upsell_banner .price {
        font-size: 0.9em;
        top: 6px;
    }
    .upsell_banner .description {
        font-size: 0.7em;
        top: 25px;
        left: 10px;
        max-width: 50%;
    }
}

@media screen and (min-width: 600px) and (max-width: 629px) {
    .upsell_banner .price {
        right: 20px;
    }
}

@media screen and (max-width: 450px) {
    .upsell_banner .title {
        left: 15px;
        font-size: 1.4em;
    }
    .upsell_banner .price {
        font-size: 1.1em;
    }
    .upsell_banner .description {
        font-size: 0.8em;
        left: 15px;
        max-width: 60%;
    }
}

@media screen and (max-width: 400px) {
    .upsell_banner .title {
        left: 15px;
        top: 5px;
        font-size: 1.2em;
    }
    .upsell_banner .price {
        font-size: 1.1em;
    }
    .upsell_banner .description {
        font-size: 0.7em;
        left: 15px;
        max-width: 60%;
    }
    #div_packages_ski .upsell-banner .description {
        font-size: 0.9em;
    }
}

@media screen and (max-width: 350px) {}


/* Banner for free equipment included in package*/

.border-fade-animation {
    -webkit-animation: upsellBorderFade 3s 1;
    -moz-animation: upsellBorderFade 3s 1;
    animation: upsellBorderFade 3s 1;
}

@keyframes upsellBorderFade {
    0% {
        border-color: #ffffff;
    }
    25% {
        border-color: #00BCD4;
    }
    50% {
        border-color: #8349eb;
    }
    75% {
        border-color: #00BCD4;
    }
    100% {
        border-color: #ffffff;
    }
}


/* Animation for upsell banner. changes the colour */

@-webkit-keyframes upsellColourFade {
    0% {
        background-position: 51% 0%
    }
    50% {
        background-position: 50% 100%
    }
    100% {
        background-position: 51% 0%
    }
}

@-moz-keyframes upsellColourFade {
    0% {
        background-position: 51% 0%
    }
    50% {
        background-position: 50% 100%
    }
    100% {
        background-position: 51% 0%
    }
}

@-o-keyframes upsellColourFade {
    0% {
        background-position: 51% 0%
    }
    50% {
        background-position: 50% 100%
    }
    100% {
        background-position: 51% 0%
    }
}

@keyframes upsellColourFade {
    0% {
        background-position: 51% 0%
    }
    50% {
        background-position: 50% 100%
    }
    100% {
        background-position: 51% 0%
    }
}

.greyBox {
    background-color: #2a2a2a;
    margin: 0px 10px;
    padding: 10px;
    border-radius: 10px;
    margin-bottom: 10px;
}

@media screen and (max-width: 600px) {
    .greyBox {
        margin: 10px 0px;
    }
}

.greyBox>.title {
    display: block;
    font-size: 2em;
}


/* Price Summary Table */

#table_price_summary {
    width: 100%;
    text-align: left;
    table-layout: fixed;
}

#table_price_summary td {
    border: none;
    /*padding: 5px;
    font-size: 1.4em;*/
}

#table_price_summary tr td:first-child {
    width: 75%;
}

#table_price_summary tr td:last-child {
    text-align: center;
    vertical-align: top;
}

#table_price_summary .total {
    color: var(--primary-colour);
    font-weight: bold;
}

#td_price_summary_gear_list,
#td_price_summary_gear_prices {
    font-size: 0.9em!important;
    margin: 0;
    color: grey;
    text-transform: capitalize;
}

#td_price_summary_gear_list {
    overflow-wrap: anywhere;
}

#td_price_summary_gear_prices {
    overflow-wrap: break-word;
}

.textLeft {
    text-align: left;
}

.personListPackages {
    display: none;
    width: 100%;
}

.personListPackages label {
    color: var(--secondary-colour);
}


/* validation errors */

span.invalid {
    color: red;
}

input.invalid {
    border: 1px solid red;
}


/* gear selection buttons (ski, snowboard or clothing) */

#div_gear_choice button {
    width: 90%;
    margin-bottom: 10px;
    background-color: var(--mid-grey);
    border-radius: 15px;
    /*background: linear-gradient(90deg, var(--primary-colour), black);*/
    padding: 5px;
    border: none;
    background-color: var(--semi-dark-grey);
}


/*
#div_gear_choice div {
    background: black;
    color: white;
    border-radius: 15px;
    position: relative;
}
*/

#div_gear_choice span {
    color: white;
}

#div_gear_choice div>i:last-child {
    position: absolute;
    right: 20px;
    top: 12px;
    font-size: 2em;
    color: var(--mid-grey);
}


/* tab buttons for ski packages grades */

.ski-grade button {
    border: none;
    color: var(--dark-grey);
    padding: 2px 25px;
    border-radius: 10px 10px 0px 0px;
    background-color: var(--light-grey);
    margin-left: 2px;
    margin-right: 2px;
}

.ski-grade button.active {
    color: var(--primary-colour);
    font-weight: bold;
    background-color: var(--semi-dark-grey);
}


/* equipment packages */

body.dark #div_packages_ski {
    border: 3px solid var(--semi-dark-grey);
    background: var(--semi-dark-grey);
}

body.dark #div_packages_ski button.view-details {
    color: var(--light-grey);
}

#div_packages_ski .upsell-banner {
    position: relative;
    height: 23%;
    height: 12vh;
    height: 12svh;
    border-radius: 0px 0px 15px 15px;
    background: linear-gradient(139deg, var(--primary-colour), var(--upsell-purple));
    background: var(--semi-dark-grey);
    border-radius: 15px;
}

#div_packages_ski .upsell-banner .title {
    position: absolute;
    top: 0px;
    left: 3%;
    font-size: 2em;
    width: max-content;
    color: var(--primary-colour);
}

#div_packages_ski .upsell-banner .description {
    position: absolute;
    top: 40px;
    left: 3%;
    font-size: 1em;
    width: max-content;
    color: white;
    width: 60%;
}

#div_packages_ski .upsell-banner .price {
    position: absolute;
    top: 5px;
    right: 10px;
    font-size: 1.3em;
    width: max-content;
    color: white;
}

#div_packages_ski .upsell-banner button {
    position: absolute;
    bottom: 10px;
    right: 10px;
    color: white;
    background: linear-gradient(135deg, var(--upsell-purple), var(--primary-colour));
    border: none;
}

#div_packages_ski .upsell-banner button.active {
    background: transparent;
    color: var(--primary-colour);
    border: 3px solid var(--primary-colour);
}

@media screen and (max-width: 500px) {
    #div_packages_ski .upsell-banner .title {
        font-size: 1.8em;
    }
}

@media screen and (max-width: 440px) {
    #div_packages_ski .upsell-banner .title {
        font-size: 1.6em;
        top: 3px;
    }
}

@media screen and (max-width: 400px) {
    #div_packages_ski .upsell-banner .title {
        font-size: 1.5em;
        top: 3px;
    }
}

@media screen and (max-width: 380px) {
    #div_packages_ski .upsell-banner .title {
        font-size: 1.4em;
        top: 3px;
    }
}

@media screen and (max-width: 360px) {
    #div_packages_ski .upsell-banner .title {
        font-size: 1.2em;
        top: 5px;
    }
}

body.dark #hero_img_container img.hero {
    filter: brightness(0.6);
}


/* booking confirmation screen */

body.dark #tab_complete .greyBox {
    background-color: var(--semi-dark-grey);
    color: var(--light-grey);
}

body.dark #span_booking_reference,
body.dark #span_booking_price {
    color: var(--light-grey)!important;
}

body.dark #tab_complete .dashed-line {
    background: linear-gradient(to right, transparent 50%, var(--mid-grey) 50%), linear-gradient(to right, var(--semi-dark-grey), var(--semi-dark-grey));
    background-size: 24px 2px, 100% 2px;
}

body.dark #div_gear_extra_holder button {
    background-color: var(--dark-grey);
    border: 2px solid var(--mid-grey);
}

body.dark .container-minimise-grey {
    background-color: var(--semi-dark-grey);
}

body.dark #div_extras_chains .module {
    background-color: var(--semi-dark-grey);
}