/* -------------------------------------------------------------------------- */

/*	0. CSS Reset
/* -------------------------------------------------------------------------- */


html,
body {
	border: none;
	margin: 0;
	padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
address,
big,
cite,
code,
em,
font,
img,
small,
strike,
sub,
sup,
li,
ol,
ul,
fieldset,
form,
label,
legend,
button,
table,
caption,
tr,
th,
td {
	border: none;
	font-size: inherit;
	line-height: inherit;
	margin: 0;
	padding: 0;
	text-align: inherit;
}

blockquote::before,
blockquote::after {
	content: "";
}

*, *::before, *::after {
    box-sizing: border-box;
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

:root{

    --background-color-rgb: 26,28,32;
    --background-gradient: radial-gradient(circle, rgba(44,47,53,1) 0%, rgba(26,28,32,1) 100%);

    --cwx-red-rgb: 236,31,39;
    --cwx-red-gradient: radial-gradient(circle, rgba(236,31,39,1) 0%, rgba(197,0,0,1) 100%);

    --cwx-red-fade-rgb: 114,241,88;
    --cwx-red-fade-gradient: radial-gradient(circle, rgba(236,31,39,.5) 0%, rgba(197,0,0,.5) 100%);

    --colour-light: 255,255,255;

    --font-regular-family: 'Lato', sans-serif;
    --font-regular-weight: 300;
    --font-regular-size: 1rem;
    --font-small-size: .75rem;

    --font-heading-family: 'Alfa Slab One', serif;
    --font-heading-weight: 400;

    --narrow-width: 600px;
    
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

body{
    background: rgb(var(--background-color-rgb));
    background: var(--background-gradient);
    font-family: var(--font-regular-family);
    font-size: var(--font-regular-size);
    font-weight: var(--font-regular-weight);
    color: rgb(var(--colour-light));
    
}

h1,h2,h3,h4{
    font-family: var(--font-heading-family);
    font-weight: var(--font-heading-weight);
    margin-bottom: .5em;
}

h1{
    font-size: 2em;
}

p, label{line-height: 1.5em;}
p{ margin-bottom: 1em;}
small{font-size: var(--font-small-size);  line-height: 1.4em;}

a{
    color: rgba(var(--colour-light),.5);
    text-decoration: none;
}
a:hover{
    text-decoration: underline;
}

header{
    margin: 2rem;
    padding: 0 0 1em 0;
    display: flex;
    flex-direction: row;
    border-bottom: rgba(var(--colour-light), 1) 1px solid;
    align-items: center;
}

#header-logo-section{
    width: 50%;
}

#header-logo-section .site-logo{
    width: 250px;
}

.site-logo .logo-cwx-world-tour path{
    fill: rgb(var(--colour-light));
}

#utility-section{
    width: 50%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

#btn-sign-out{
    display: inline-block;
    background: rgb(var(--cwx-red-rgb));
    background: var(--cwx-red-gradient);
    padding: .7em;
    font-size: var(--font-regular-size);
    font-weight: var(--font-regular-weight);
    color: rgb(var(--colour-light));
    border: none;
    border-radius: 3px;
    outline: none;
    text-align: center;
    cursor: pointer;
    margin-left: 2em;
}

main{
    margin: 0 2rem;
}

.main{
    display: flex;
    min-height: 100vh;
    align-items: center;
    justify-content: center;
}
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.default-input{
    width: 100%;
    padding: .7em;
    font-size: var(--font-regular-size);
    font-weight: var(--font-regular-weight);
    background-color: rgba(var(--colour-light), .1);
    color: rgb(var(--colour-light));
    border: none;
    border-radius: 3px;
    outline: none;
}

select.default-input:focus{
    background-color: #2b2c30;
}

.default-btn{
    position: relative;
    background: rgb(var(--cwx-red-rgb));
    background: var(--cwx-red-gradient);
    padding: .7em;
    font-size: var(--font-regular-size);
    font-weight: var(--font-regular-weight);
    color: rgb(var(--colour-light));
    border: none;
    border-radius: 3px;
    outline: none;
    text-align: center;
    cursor: pointer;
    display: inline-block;
}

.default-btn.already{
    background: rgb(var(--background-rgb));
    background: var(--background-gradient);
}

.default-btn.event-selected{
    background: rgb(var(--cwx-red-fade-rgb));
    background: var(--cwx-red-fade-gradient);
}

.alt-btn{
    position: relative;
    background: rgb(var(--background-rgb));
    background: var(--background-gradient);
    padding: .7em;
    font-size: var(--font-regular-size);
    font-weight: var(--font-regular-weight);
    color: rgb(var(--colour-light));
    border: rgb(var(--cwx-red-rgb)) 2px solid;
    border-radius: 3px;
    outline: none;
    text-align: center;
    cursor: pointer;
    display: inline-block;
}

.reverse-btn{
    position: relative;
    background: rgb(var(--background-rgb));
    background: var(--background-gradient);
    padding: .7em;
    font-size: var(--font-regular-size);
    font-weight: var(--font-regular-weight);
    color: rgb(var(--colour-light));
    border: none;
    border-radius: 3px;
    outline: none;
    text-align: center;
    cursor: pointer;
    display: inline-block;
}

.width-100{
    width: 100%;
}


.text-centre-align{
    text-align: center;
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.login-container{
    padding: 1em 0;
    width: 100%;
    max-width: 400px;
}

.register-container, .register-messages-container{
    padding: 1em 0;
    width: 100%;
    max-width: var(--narrow-width);
    margin: 0 auto;
}

.login-container .logo-cwx-world-tour path{
    fill: rgb(var(--colour-light));
}

.form-login{
    padding: 1em 0 2em 0;
    border-bottom: rgb(var(--colour-light)) 1px solid;
    margin: 1.5em 0 1em 0;
}

.form-errors-container{
    margin: 2em 0 1em 0;
    background-color: rgba(var(--cwx-red-rgb),.5);
    border: rgb(var(--cwx-red-rgb)) 1px solid;
    padding: 1em;
    border-radius: 3px;
}

.form-error-list{
    color: rgb(var(--colour-light));
    list-style: outside;
    margin-left: 1em;
}

.form-error-list li{
    list-style-type: square;
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.form-section{
    padding: 0 0 2em 0;
    margin: 0 0 2em 0;
    border-bottom: rgb(var(--colour-light)) 1px solid;
}

#details-form{
    padding: 2em 0 2em 0;
    
}

.form-group-section-two-col{
    display: flex;
}

.form-group-section-two-col .form-group{
    width: 50%;
}
.form-group-section-two-col .form-group:first-child{
    margin-right: .5em;
}
.form-group-section-two-col .form-group:last-child{
    margin-left: .5em;
}

.form-group-section-three-col{
    display: flex;
}

.form-group-section-three-col .form-group{
    width: 33.33%;
}
.form-group-section-three-col .form-group:first-child{
    margin-right: .5em;
}
.form-group-section-three-col .form-group:last-child{
    margin-left: .5em;
}

#confirm-pop{
    position: fixed;
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
    background: var(--cwx-red-gradient);
    display: flex;
    justify-content: center;
    align-items: center;
}

#confirm-pop__details{
    padding: 1em 0;
    width: 100%;
    max-width: 400px;
    text-align: center;
}
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */



.dashboard-athlete-profile-container{
    display: flex;
    flex-direction: row;
    margin: 2em 0;
    
}
.dashboard-athlete-profile{
    min-width: 300px;
    margin-right: 3rem;
}

.dashboard-athlete-profile__headshot{
    width: 100%;
    display: flex;
    justify-content: center;
    align-content: center;
    margin-bottom: 2em;
}

.dashboard-athlete-profile__headshot img{
    object-fit: cover;
    object-position: center center;
    width: 250px;
    height: 250px;
    border-radius: 50%;
    border-color: rgba(var(--cwx-red-rgb),1);
    border-width: 5px;
    border-style: solid;
}

.dashboard-athlete-profile__details{
    text-align: center;
    margin-bottom: 2em;
}
    .dashboard-athlete-profile__details p{ 
        line-height: .9em;
    }

.dashboard-athlete-information{
    /* width:100%;
    max-width: calc(100% - 3rem - 300px); */
    flex-grow: 1;
}

.dashboard-athlete-information__section{
    margin-bottom: 2em;
    padding-bottom: 2em;
    border-bottom: rgb(var(--colour-light)) 1px solid;
}

.dashboard-athlete-information__section__data{
    width: 100%;
    margin-bottom: 1em;
}

.info-data-col-2{
    display: flex;
}

.info-data-col-2 div{
    width: calc(50% - 2em);
    margin-right: 2em;
}

.dashboard-athlete-profile__menu li{
    list-style: none;
    text-align: center;
    padding: 1em;
    margin-bottom: 1em;
    border: rgb(var(--colour-light)) 1px solid;
} 
.dashboard-athlete-profile__menu li:hover{
    background-color: rgba(var(--colour-light), .2);
}



/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.dashboard-athlete-team__section{
   max-width: 100%;
   overflow-x: scroll;
   overflow-y: hidden;
   scroll-behavior: smooth;
   
    /* hide the scroll bar */
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none;  /* IE 10+ */
}
.dashboard-athlete-team__section::-webkit-scrollbar { 
    display: none; 
}

.dashboard-athlete-team__container{
    display: flex;
}


.dashboard-athlete-team_member{
    width: 150px;
    margin: 0 2rem 0rem 0;
    text-align: center;
}

.dashboard-athlete-team_member_add{
    border: rgb(var(--colour-light)) 1px solid;
    display: flex;
    width: 150px;
    align-items: center;
    justify-content: center;
}
    .add_member{
        display: flex;
        justify-content: center;
        align-items: center;
        width: 150px;
        height: 100%;
        text-align: center;
        
    }

    .add_member:hover{
        text-decoration: none;
        background-color: rgba(var(--colour-light), .2);
    }

.dashboard-athlete-team_member__headshot{
    margin-bottom: .7rem;
}

.dashboard-athlete-team_member__headshot img{
    object-fit: cover;
    object-position: center center;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border-color: rgba(var(--cwx-red-rgb),1);
    border-width: 5px;
    border-style: solid;
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.tbl-registered-events{
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 2rem;
    
}

.tbl-registered-events thead{
    background-color: rgba(var(--cwx-red-rgb),1);
    text-align: left;
    
}

.tbl-registered-events thead tr th{
    padding: 1rem;
}

.tbl-registered-events tbody tr:nth-child(even) {background-color: rgba(var(--colour-light), .1);}

.tbl-registered-events tbody td{
    padding: .5rem 1rem;
    
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.seconday-menu{
    display: flex;
}

.seconday-menu__nav, .seconday-menu__nav2{
    flex: 1;
}

.narrow-container{
    padding: 1em 0;
    width: 100%;
    max-width: var(--narrow-width);
    margin: 0 auto;
}

.working-profile-container{
    display: flex;
    border-bottom: rgba(var(--colour-light), 1) 1px solid;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    align-items: center;
    width: 100%;
    max-width: var(--narrow-width);
}
    .dashboard-athlete-information .working-profile-container{
        max-width: unset;
    }

.working-profile__headshot{
   padding-right: 2rem;
    
}

.working-profile__headshot img{
    object-fit: cover;
    object-position: center center;
    width: 85px;
    height: 85px;
    border-radius: 50%;
    border-color: rgba(var(--cwx-red-rgb),1);
    border-width: 5px;
    border-style: solid;
}

.working-profile__details p{
    line-height: 0;
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.profile-photo__update__container{
    width: 100%;
}

.profile-photo__update__container img{
    width: 100%;
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
#sponsor-list{
    width: 100%;
    height: 75px;
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.festival-location__link{
    display: flex;
    color: rgba(var(--colour-light));
    padding: 2rem;
    background-color: rgba(var(--colour-light),.05);
    margin: 2rem 0;
    box-shadow:rgba(var(--background-color-rgb), 1) 0px 0px 10px;
}

.festival-location__logo{
    width:30%;
    min-width: 170px;
    margin-right: 2em;
}

.festival-location__logo img{
    width: 100%;
}

.festival-location__details{
    flex: 1;
}

.festival-location__details p{
    padding: 0;
    margin: 0;
    line-height: 1.3em;
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.register-event-list-container{
    display: flex;
    flex-direction: row;
    margin: 2em 0;
    
}

.festival-profile{
    min-width: 300px;
    margin-right: 3rem;
}

.festival-profile__logo{
    width: 100%;
    display: flex;
    justify-content: center;
    align-content: center;
    margin-bottom: 2em;
}

.festival-profile__logo img{
    width: 100%;
    max-width: 300px;
}

.festival-profile__details{
    text-align: center;
    margin-bottom: 2em;
}

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.expander-btn{
    cursor: pointer;
}

.expander{
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s ease-out;
}

.expander-btn:after {
    content: '\02795'; /* Unicode character for "plus" sign (+) */
    font-size: 13px;
    color: #777;
    float: right;
    margin-left: 5px;
  }
  
  .expander-btn.active:after {
    content: "\2796"; /* Unicode character for "minus" sign (-) */
  }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */

.event-information__section{
    margin-bottom: 2em;
    padding-bottom: 2em;
    border-bottom: rgb(var(--colour-light)) 1px solid;
    display: flex;
}

.event-information__cart-section{
    max-width: 400px;
    min-width: 250px;
    padding-left: 2rem;
}

.event-information__list{
    flex: 1;
}

.event-registration-container{
    display: flex;
    padding: 2rem;
    background-color: rgba(var(--colour-light),.05);
    margin: 2rem 0;
    box-shadow:rgba(var(--background-color-rgb), 1) 0px 0px 10px;
}

.event-registration__details{
    flex: 1;
    /*margin-right: 2rem;*/
}

.event-registration__img{
    width: 25%;
    min-width: 150px;
}

.event-registration__img img{
    width: 100%;
}

.event-registration__category-container{
    display: flex;
    border-bottom: rgba(var(--colour-light), 1) 1px solid;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
}

.event-registration__category-details{
    flex:1;
}

.event-registration__category-btn{
    text-align: right;
    width: 125px;
}

.event-list__order-summary{
    border-collapse: separate;
    border-spacing: 0 1em;
    margin-bottom: 2em;
    /* -- */
    min-width: 368px;
     /* -- */
}

.event-list__order-summary td{
    vertical-align: top;
}

.event-list__order-summary__subtotal-row td{
    border-top: rgb(var(--colour-light)) 1px solid;
    padding: 1em 0 0 0;
}

.event-list__order-summary__total-row td{
    border-top: rgb(var(--colour-light)) 1px solid;
    font-weight: bold;
    padding: 1em 0 0 0;
}

.event-list__order-summary__cost{
    text-align: right;
}

.event-registration__category__name{
    font-weight: bold;
}

.event-registration__category__date{font-size: var(--font-small-size); padding: .5em 0;}


/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */


.results-table{
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 2rem;
    
}

.results-table thead{
    background-color: rgba(var(--cwx-red-rgb),1);
    text-align: left;
    
}

.results-table thead tr th{
    padding: 1rem;
}

.results-table tbody tr:nth-child(even) {background-color: rgba(var(--colour-light), .1);}

.results-table tbody td{
    padding: .5rem 1rem;
    vertical-align: text-top;
}


#cart-count-down{
    font-size: .85em;
    text-align: center;
    margin-top: 1em;
    padding: .5em;
    background: rgba(255, 255, 255, .1);
    border-radius: 3px;
    display: none;
}
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */


.hidden {
    display: none;
  }


/* spinner/processing state, errors */
.spinner,
.spinner:before,
.spinner:after {
  border-radius: 50%;
}
.spinner {
  color: #ffffff;
  font-size: 22px;
  text-indent: -99999px;
  margin: 0px auto;
  position: relative;
  width: 20px;
  height: 20px;
  box-shadow: inset 0 0 0 2px;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
}
.spinner:before,
.spinner:after {
  position: absolute;
  content: "";
}
.spinner:before {
  width: 10.4px;
  height: 20.4px;
  background: rgb(var(--cwx-red-rgb));
  border-radius: 20.4px 0 0 20.4px;
  top: -0.2px;
  left: -0.2px;
  -webkit-transform-origin: 10.4px 10.2px;
  transform-origin: 10.4px 10.2px;
  -webkit-animation: loading 2s infinite ease 1.5s;
  animation: loading 2s infinite ease 1.5s;
}
.spinner:after {
  width: 10.4px;
  height: 10.2px;
  background: rgb(var(--cwx-red-rgb));
  border-radius: 0 10.2px 10.2px 0;
  top: -0.1px;
  left: 10.2px;
  -webkit-transform-origin: 0px 10.2px;
  transform-origin: 0px 10.2px;
  -webkit-animation: loading 2s infinite ease;
  animation: loading 2s infinite ease;
}

@-webkit-keyframes loading {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes loading {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/* @media only screen and (max-width: 600px) {
  form {
    width: 80vw;
  }
} */


/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------- */


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

    header{
        flex-direction: column;
        margin: 1rem
    }

    main{
        margin: 0 1rem
    }

    #header-logo-section{
        width: 100%;
    }

    #header-logo-section .site-logo {
        width: 100%;
    }

    #utility-section{
        justify-content: center;
        flex-direction: column;
        text-align: center;
        width:100%;
    }
    #utility-section a{
        margin: 1em 0;
    }

    .register-event-list-container{
        flex-direction: column;
    }

    .event-information__section{
        flex-direction: column;
    }

    .event-information__cart-section{
        padding-left: 0;
        width: 100%;
    }

    .event-list__order-summary{
        min-width: 100%;
    }

    .seconday-menu{
        flex-direction: column;
    }

    .seconday-menu__nav{
        margin-bottom: 1em;
    }

    .seconday-menu__nav a{
        width:100%
    }
    
    .festival-location__link{
        flex-direction: column;
    }
    .festival-location__details{
        margin-top: .5em;
    }

    .event-registration__category-container{
        flex-direction: column;
    }

    .event-registration__details{
        margin: 0;
    }

    .event-registration__category-btn{
        width:100%;
    }

    .event-registration__category-btn button{
        width:100%;
        margin-top: 1em;
    }

    .festival-profile{
        margin: 0;
        width: 100%;
    }

    .dashboard-athlete-profile-container{
        flex-direction: column;
    }

    .dashboard-athlete-profile{
        width: 100%;
        margin: 0;
        display: flex;
        flex-wrap: wrap;
    }

    .dashboard-athlete-profile__headshot, .dashboard-athlete-profile__details{
        width: 50%;
    }

    .dashboard-athlete-profile__headshot img{
        width:125px;
        height: 125px;
    }

    .dashboard-athlete-profile__menu{
        width: 100%;
    }
}




#event_select_area h3{
    margin-top: 2rem;
}

.addAthleteCategory{
    display: flex;
    justify-content: space-between;
    margin-bottom: .5rem;
    padding: .5rem;
}

.addAthleteCategory:nth-child(even){
    background-color: rgba(255, 255, 255, .1);
}

footer{
 border-top: 1px solid white;
 padding:1rem;
 display: flex;
 justify-content: center;
 align-items: center;
}