/* latin-ext */
@font-face
{
  font-family: 'Quicksand';
  font-style: normal;
  font-weight: 500;
  src: local('Quicksand Medium'), local('Quicksand-Medium'), url(../fonts/quicksand_medium_ext.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face
{
  font-family: 'Quicksand';
  font-style: normal;
  font-weight: 500;
  src: local('Quicksand Medium'), local('Quicksand-Medium'), url(../fonts/quicksand_medium.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Quicksand';
  font-style: normal;
  font-weight: 700;
  src: local('Quicksand Bold'), local('Quicksand-Bold'), url(../fonts/quicksand_bold_ext.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Quicksand';
  font-style: normal;
  font-weight: 700;
  src: local('Quicksand Bold'), local('Quicksand-Bold'), url(../fonts/quicksand_bold.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

html, body
{
    height: 100%;
    position: relative;
}

html
{
    font-size: 10px;
    font-family: Quicksand;
}

body
{
    background-color: #f3f3f3;
    color: #333;
    font-weight: 500;
}

@media(min-width: 768px)
{
    .mobile_only
    {
        display: none;
    }
}


body.basic
{
    background-color: #9e9e9e;
}

::selection
{
  background: #d0d0d0;
}

.coloured
{
    background-color: #9e9e9e;
}
a, .coloured_text
{
    color: #9e9e9e;
}
body.basic a
{
    color: white;
}
.coloured.translucent
{
    background-color: rgba(158,158,158,0.96);
}

.export
{
    margin-left: 0.5em !important;
}

.translucent
{
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}

input, textarea, select
{
    color: #333;
    font-weight: 500;
}

p
{
    font-size: 1.4rem;
}

p.small
{
    font-size: 1.2rem;
}

h1
{
    font-size: 4rem;
    line-height: 1em;
}

h2
{
    font-size: 2rem;
}

.inline-block
{
    display: inline-block !important;
}

.block
{
    display: block !important;
}

.text-right
{
    text-align: right !important;
}

.text-left
{
    text-align: left !important;
}

.text-center
{
    text-align: center !important;
}

.text-justify
{
    text-align: justify !important;
}

a.button, input[type="button"], input[type="submit"], input[type="reset"]
{
  border-radius: 4px;
  -webkit-appearance: none;
  font-size: inherit;
  font-weight: 500;
  padding: 0.5em;
  color: white;
  text-decoration: none;
  background-color: #9e9e9e;
  cursor: pointer;
}

input[type="reset"]
{
    background-color: #9e9e9e;
}

input[type="button"].small
{
    font-size: 1.2rem;
    border-radius: 3px;
}

a.button.icon, input[type="button"].icon
{
  padding-left: 2.5em;
  background-size: 1.5em 1.5em;
  background-repeat: no-repeat;
  background-position: 0.5em center;
}

header
{
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    width: 100%;
    padding: 10px;
    height: 50px;
    display: flex;
    align-items: center;
    flex-wrap:nowrap;
}

body.basic header
{
    background-color: transparent !important;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

header .logo
{
    display: block;
    background-image:url(/assets/images/logo.svg);
    background-size: auto 100%;
    background-position: left center;
    background-repeat: no-repeat;
    height: 30px;
    width: 24px;
    min-width: 24px;
}

header h1
{
    font-weight: 500;
    margin: 0;
    padding: 0 20px 0.1em 20px;
    flex-grow: 1;
    text-align: center;
    font-size: 1.6rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space:nowrap;
    color: white;
}

.header_buttons
{
    display: flex;
}

.header_buttons button
{
    display: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    cursor:pointer;
    font-size: 1.4rem;
    font-weight: 500;
    height: 22px;
    background-size: contain;
    background-repeat:no-repeat;
    background-position: left center;
    text-align: left;
    color: white;
    text-overflow: ellipsis;
    overflow: hidden;
    margin-left: 10px;
}

.header_buttons button:first-child
{
  margin-left: 0;
}

.header_buttons button:focus
{
    outline: none;
}

.header_buttons button.hamburger
{
    display:  block;
}

.header_buttons button.user
{
    display: none;
    max-width: 140px;
    background-image:url(/assets/images/icon-user.svg);
    padding-left: 24px;
    position: relative;
    padding-right: 15px;
}

.superuser .header_buttons button.user
{
    background-image:url(/assets/images/icon-superuser.svg);
}

.header_buttons button.search
{
  background-size: contain;
  width: 22px;
    display: block;
    background-image:url(/assets/images/icon-search.svg);
}

.header_buttons button.user::after
{
    content:'';
    position: absolute;
    width: 10px;
    height: 6px;
    right: 0;
    top: 50%;
    margin-top: -3px;
    background-image:url(/assets/images/arrow-down.svg);
    background-repeat: no-repeat;
    opacity: 0.5;
    transition: 0.2s all;
}

.header_buttons button.user.active::after
{
    transform: rotate(180deg);
    opacity: 1;
}


.header_buttons button.user:hover::after, .header_buttons button.user:focus::after
{
    opacity: 1;
}

@media (min-width: 768px)
{
    header
    {
        padding: 20px;
    }
    header .logo
    {
        width: 84px;
        min-width: 84px;
    }
    header h1
    {
        font-size: 2rem;
    }
    .header_buttons button
    {
      margin-left: 20px;
    }
    .header_buttons button.hamburger
    {
        display: none;
    }
    .header_buttons button.user
    {
        display: block;
    }
}

.main_body
{
    margin-top: 50px;
}

body.basic .main_body
{
    margin-top: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.main_nav
{
    display: none;
    position: fixed;
    top: 50px;
    right: 0px;
    width: 100%;
    height: 100%;
    height: calc(100% - 50px);
    overflow: auto;
    font-size: 1.6rem;
    z-index: 999;
    padding: 10px;
    -webkit-overflow-scrolling: touch;
}

.main_nav ul
{
    list-style: none;
    padding: 0;
    overflow: hidden;
    background-color: #f8f8f8;
    margin: 0 0 20px 0;
    border-radius: 4px;
    box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.05);
    border: 1px solid white;
}

.main_nav ul.text_only
{
    box-shadow: none;
    background-color: transparent;
    border: none;
}

.main_nav li
{
  padding: 0em;
  font-weight: 500;
}

.main_nav a
{
    display: block;
    text-decoration: none;
    color: #333333;
    padding: 0.5em 0.75em;
    font-weight: inherit;
}


.main_nav li:first-child
{
    padding: 0;
}

.main_nav li:first-child a, .section_header
{
    display: block;
    padding: 0.75em 0.75em 0.75em 2.5em;
    color: white;
    background-color: white;
    background-size: 1.5em 1.5em;
    background-repeat: no-repeat;
    background-position: 0.5em center;
}

.main_nav ul.text_only a,
.main_nav ul.text_only li:first-child a
{
    padding: 0.5em 0;
    color: white;
    background-color: transparent;
}

.main_nav li.active a
{
    color: #9e9e9e;
}

.user_nav
{
    display: none;
    position: fixed;
    top: 50px;
    right: 0px;
    width: auto;
    overflow: auto;
    font-size: 1.4rem;
    z-index: 999;
    padding: 0px 10px 10px 10px;
    -webkit-overflow-scrolling: touch;
    background-color: rgba(158,158,158,0.96);
}

.user_nav ul
{
    list-style: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.user_nav li
{
  padding: 0;
  font-weight: 500;
}

.user_nav a
{
    display: block;
    text-decoration: none;
    color: white;
    padding: 0.5em 0.75em;
    font-weight: inherit;
    text-align: right;
}


main
{
    background-color: white;
    padding: 10px;
    font-size: 14px;
}

body.basic main
{
  position:  absolute;
  padding: 50px 10px 10px 10px !important;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 0;
  padding: 0;
  background: none;
  box-shadow: none;
}

.messages_and_errors
{
  margin: -10px -10px 10px -10px;
}

body.basic .messages_and_errors
{
    margin-top: 0;
}

.message_bar
{
  background-color: #8BC34A;
  color: white;
  padding: 17px 35px;
  position: relative;
  display: block;
}

.message_bar.error
{
  background-color: #f44336;
}

.message_bar p
{
  margin: 0;
  text-align: center;
  width: 100%;
}

.message_close
{
  position: absolute;
  top: 15px;
  right: 10px;
}

@media (min-width: 768px)
{
    .main_body
    {
        display: flex;
        align-items: flex-start;
        padding: 20px;
    }

    body.basic .main_body
    {
      padding: 0;
    }

    .main_nav
    {
        display: block !important; /*override getting hidden by JS at mobile size */
        position: static;
        top: auto;
        right: auto;
        flex: 0 0 180px;
        height: auto;
        overflow:inherit;
        background-color: transparent !important;
        padding: 0 20px 0 0;
        z-index: 998;
    }
    .main_nav ul
    {
        border: none;
    }
    .main_nav li
    {
        font-size: 1.4rem;
    }
    main
    {
        width: auto;
        padding: 20px;
        flex: 1 1 100%;
        min-width: 0;
        border-radius: 4px;
        box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.05);
    }
    body.basic main
    {
      padding: 50px 20px 20px 20px !important;
    }
    .messages_and_errors
    {
      margin: -20px -20px 20px -20px;
    }
    body.basic .messages_and_errors
    {
        margin-top: 0;
    }
    .message_bar:first-child
    {
      border-top-left-radius: 4px;
      border-top-right-radius: 4px;
    }
    body.basic .message_bar:first-child
    {
      border-top-left-radius: 0;
      border-top-right-radius: 0;
    }
}

@media (min-width: 1024px)
{
    .main_nav
    {
        flex: 0 0 200px;
    }
}

@media (min-width: 1400px)
{
  .main_nav
  {
      flex: 0 0 250px;
  }
}


.overlay
{
  position: absolute;
  z-index: 1001;
  width: 100%;
  height: 100%;
  top: -50px;
  left: 0;
  padding: 50px 10px 10px 10px;
}

.overlay_close
{
    position: absolute;
    top: 15px;
    right: 10px;
    opacity: 0.5;
}

.overlay_background
{
  display: none;
  position: fixed;
  z-index: 1000;
  right: 0;
  top: -50px;
  left: 0;
  bottom: -50px;
  background-color: rgba(0,0,0,0.9);
}

.safari .overlay_background
{
    background-color: rgba(0,0,0,0.8);
    -webkit-backdrop-filter: blur(10px);
}

.overlay_inner
{
    width: 100%;
    max-width: 1024px;
    margin: 0 auto;
}

.overlay_title, .overlay_content, .overlay_footer
{
    padding: 10px;
    display: block;
    width: 100%;
}

.overlay_title, .overlay_footer
{
  color: #fff;
  opacity:0.4;
  font-size: 1.2rem;
}

.overlay_footer a
{
  color: white;
  text-decoration: none;
}

.overlay_title.icon
{
  padding: 0.75em 0.75em 0.75em 2.5em;
  background-size: 1.5em 1.5em;
  background-repeat: no-repeat;
  background-position: 0.5em center;
}

.overlay_content
{
  background-color: rgba(60,60,60,0.8);
  border-radius: 12px;
  box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.1);
}

.safari .overlay_content
{
    background-color: rgba(255,255,255,0.1);
}

.overlay_footer
{
  text-align: right;
}

/* UberSearch */

.overlay.ubersearch
{
    display: none;
    padding-top: 10px;
}

.overlay.ubersearch > .overlay_inner > .overlay_content:first-of-type
{
    width: calc(100% - 55px);
}

.overlay.ubersearch .overlay_close
{
    top: 25px;
}

@media (min-width: 768px)
{
    .overlay.ubersearch .overlay_close
    {
        right: 20px;
    }
    .overlay.ubersearch > .overlay_inner > .overlay_content:first-of-type
    {
        width: calc(100% - 75px);
    }
}

@media (min-width: 1140px)
{
    .overlay.ubersearch > .overlay_inner > .overlay_content:first-of-type
    {
        width: 100%;
    }
    .overlay.ubersearch .overlay_close
    {
        top: 15px;
    }
}

.ubersearch form
{
  position: relative;
}

.ubersearch form input[type=search]
{
  display: block;
  width: 100%;
  font-size: 1.6rem;
  padding-right: 2em;
  position: relative;
  border: none;
}

.ubersearch form::after
{
  position: absolute;
  background-repeat:no-repeat;
  background-position: center center;
  content:'';
  display: block;
  background-size: cover;
  z-index: 10002;
  width: 2em;
  height: 2em;
  top: 0.7em;
  right: 1.25em;
  opacity: 0;
  background-image: url(/assets/images/loader.svg);
  transition: 0.3s opacity;
}

.ubersearch form.searching::after
{
    opacity: 0.7;
}

.ubersearch_results
{
    display: block;
    padding-top: 20px;
    font-size: 1.4rem;
}

.ubersearch_no_results
{
    text-align: center;
    color: white;
}

.ubersearch_results_group
{
  display: none;
}

.ubersearch_results_group .overlay_title
{
  margin-top: 0;
}

.ubersearch_results_list
{
    display: none;
}

.ubersearch_result
{
    display: block;
    margin: 10px 0;
}

.ubersearch_result > a
{
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  text-decoration: none;
}

.ubersearch_show_all_results
{
    font-size: 1.2rem;
    padding-top: 1em;
}

.ubersearch_show_all_results a.button
{
  background-color: rgba(255,255,255,0.2);
}

.ubersearch_result:nth-of-type(n+6)
{
  display: none;
}

.ubsersearch_result_image
{
  font-size: 2.2rem;
  width: 2em;
  height: 2em;
  border-radius: 1em;
  background-size: cover;
  background-position: center top;
  border: 2px solid transparent;
  flex: 0 0 2em;
}

.ubsersearch_result_image.icon
{
  background-size: 1em 1em;
  background-repeat: no-repeat;
  background-position: center center;
}

.ubersearch_result_text
{
  font-size: 1.4rem;
  color: #888;
  padding-left: 10px;
  flex: 1 1 auto;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ubersearch_result_text strong
{
  color: white;
}

.listing_container
{
  margin-left: -10px;
  margin-right: -10px;
  margin-top: -10px;
  overflow: hidden;
}

.table_wrapper
{
  width: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

table.listing
{
  width: 100% !important;
  border-collapse: collapse;
  background-color: white;
}

.listing_header
{
    display: flex;
    position: relative;
    padding: 10px;
    align-items: center;
    font-size: 1.6rem;
}

.listing_header .button.icon
{
    background-position: -5000px -5000px; /* basically hide without hiding, so we can put it back responsively */
    padding-left: 0.75em;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space:nowrap;
    max-width: 50%;
}

.listing_information
{
    text-align: right;
    color: #9e9e9e;
    padding: 15px;
    font-size: 1.2rem;
    flex: 1;
    white-space:nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: none;
}

.listing_search_input
{
    margin-left: auto;
    width: 50%;
    max-width: 200px;
}

input[type=search]
{
    background-color: #f3f3f3;
    font-size: 1.6rem;
    border-radius: 3rem !important;
    -webkit-appearance: none;
    border: 1px solid #f3f3f3;
    padding: 0.5em 2em 0.5em 1.75em !important;
    background-image:url(/assets/images/search.svg);
    background-repeat:no-repeat;
    background-position: 0.5em center;
    background-size: 0.8em 0.8em;
    display: inline-block;
    transition: 0.3s border-color;
    outline: none;

    background-color: white;
    border: none;
    border: 0.11em solid #DDD;
}

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration
{
    -webkit-appearance: none;
}

input[type=search]::-ms-clear {
   display: none;
}

.listing_search_input:focus
{
    border-color: #9e9e9e;
    outline: none;
}

.table_info
{
  display: none;
}

.dataTables_wrapper
{
    position: relative;
}

.datatable_loader
{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: white;
}

.datatable_loader::before
{
    content: '';
    display: block;
    text-align: center;
    width: 40px;
    height: 40px;
    margin: 0 auto;
    background-size: cover;
    background-image: url(../images/loader.svg);
}

.dataTables_paginate
{
    color: #bebebe;
    margin: 0 10px 15px 0;
    text-align: right;
}

.dataTables_wrapper .dataTables_paginate:last-of-type
{
    margin: 15px 10px 0 0;
}

.dataTables_wrapper .paginate_button
{
    border: 1px solid transparent;
    transition: 0.3s background-color;
    cursor: pointer;
    display: inline-block;
    margin: 0;
    min-width: 1.5em;
    padding: 0.2em 0.25em 0.3em 0.25em;
    border-radius: 1em;
    line-height: 1em;
    height: 1.5em;
    text-align: center;
}

.dataTables_wrapper .paginate_button:hover
{
    background-color: #f8f8f8;
}

.dataTables_wrapper .paginate_button:focus
{
    border: 1px solid #9e9e9e;
    outline: none;
}

.dataTables_wrapper .paginate_button.previous,
.dataTables_wrapper .paginate_button.next
{
  background-size: 55% auto;
  background-position: center center;
  background-repeat: no-repeat;
}

.dataTables_wrapper .paginate_button.previous
{
  background-image:url(../images/icon-left.svg.php?color=9e9e9e);
}

.dataTables_wrapper .paginate_button.next
{
  background-image:url(../images/icon-right.svg.php?color=9e9e9e);
}

.dataTables_wrapper .paginate_button.current
{
    color: white;
    background-color: #9e9e9e;
}

.dataTables_wrapper .paginate_button.disabled
{
  color: #bebebe;
}

.dataTables_wrapper .paginate_button.previous.disabled
{
  background-image:url(../images/icon-left.svg.php?color=dcdddd);
}

.dataTables_wrapper .paginate_button.next.disabled
{
  background-image:url(../images/icon-right.svg.php?color=dcdddd);
}


table.listing thead
{
  background-color: #9e9e9e;
  position: sticky;
  top: 40px;
}

table.listing th, table.listing td
{
  font-size: 1.4rem;
  white-space: nowrap;
  text-overflow:ellipsis;
  padding: 0.5em;
}

table.listing th
{
  border-right: 1px solid #bebebe;
  text-align: left;
  color: white;
  font-weight: 500;
  white-space:nowrap;
}

table.listing th:last-child
{
    border-right: none;
}

table.listing th:focus
{
    outline: none;
}

table.listing th.sorting, table.listing th.sorting_asc,  table.listing th.sorting_desc
{
    padding-right: 2em;
    background-size: auto 0.8em;
    background-repeat:no-repeat;
    background-position: right 0.5em center;
    cursor: pointer;
}

table.listing th.sorting
{
    background-image:url(/assets/images/icon-sort.svg);
}

table.listing th.sorting_asc
{
    background-image:url(/assets/images/icon-sort-ascending.svg);
}

table.listing th.sorting_desc
{
    background-image:url(/assets/images/icon-sort-descending.svg);
}

table.listing tr.link_row
{
    cursor: pointer;
    transition: 0.1s all;
}

table.listing tr.link_row td
{
    transition: 0.1s all;
}

table.listing tr.link_row:hover td
{
    color: #9e9e9e;
}

table.listing tr:nth-child(even)
{
  background-color: #f3f3f3
}

table.listing td.listing_status
{
    font-size: 0;
}

table.listing td.listing_status::before
{
    font-size: 1.4rem;
    display: block;
    content:'';
    width: 1em;
    height:1em;
    border-radius: 0.5em;
    margin: 0 auto;
}

table.listing td.listing_status_1::before
{
  background-color: #8bc34a;
}

table.listing td.listing_status_2::before
{
  background-color: #ff9800;
}

table.listing td.listing_status_0::before
{
  background-color: #f44336;
}

table.listing th.listing_status, table.listing td.listing_status
{
    max-width: 6em;
    min-width: 6em !important;
}

table.listing td.listing_actions
{
    text-align: center;
}

a.listing_action
{
    display: inline-block;
    width: 1.6em;
    height: 1.2em;
    padding: 0 0.2em;
}

a.listing_action img
{
    display: block;
    width: 100%;
    height: 100%;
}

.clear_search
{
  position: absolute;
  background-repeat:no-repeat;
  background-position: center center;
  font-size: 1rem;
  width: 2.5em;
  height: 2.5em;
  border: 0.25em solid white;
  display:none;

  right: 0.5em;
  top: 0.5em;
  background-image: url(/assets/images/clear.svg);
  border-radius: 1.25em;
  background-size: 45% 45%;
  background-color: #9e9e9e;
}

.ubersearch .clear_search
{
    z-index: 10003;
}

.listing_header .clear_search
{
    top: 1.7em;
    right: 1.7em;
}

@media(min-width: 500px)
{
    .listing_information
    {
        display: block;
    }
    .listing_search_input
    {
        max-width: 230px;
    }
    .listing_header .clear_search
    {
        top: 1.9em;
        right: 1.7em;
    }
}

@media(min-width: 768px)
{
    .listing_header .clear_search
    {
        top: 2.4em;
        right: 2.1em;
    }
    .listing_container
    {
      margin-left: -20px;
      margin-right: -20px;
      margin-top: -20px;
    }
    .listing_header
    {
        padding: 15px;
    }
    .listing_header .button.icon
    {
        background-position: 0.4em center; /* show it again */
        padding-left: 2.25em;
        max-width: 33%;
    }
    a.tel
    {
      color: inherit;
      text-decoration: none;
      cursor: default; /* look less like a link to stop desktops clicking */
    }
}


/* Form */

fieldset
{
  padding: 0;
  border: none;
}

.primary_form
{
    max-width: 1000px;
    margin: 0 auto;
}

.primary_form .form_input
{
  position: relative;
  margin: 0;
  padding: 10px 0;
}

.primary_form .form_input.label_select
{
    margin: 0;
    padding: 6px 0 0 0;
}

.primary_form .form_input.label_select + .form_input
{
    padding-top: 0;
}

.primary_form .form_input.deleteable
{
    padding-right: 3.8rem;
    font-size: 3rem;
}

.primary_form .form_input.deleteable .delete_button
{
    min-width: 1em;
    height: 1em;
    border-radius: 1em;
    background-color: #F44336;
    position: absolute;
    bottom: 1.4rem;
    right: 0;
    background-image: url(../images/minus.svg);
    transition: 0.3s all;
    cursor: pointer;
    background-size: 50% 50%;
    background-position: center center;
    background-repeat: no-repeat;
    text-align: center;
}

.primary_form .form_input.deleteable .delete_button.open
{
    background-position: -200% center;
}

.primary_form .form_input.deleteable .delete_button span
{
    display: block;
    color: white;
    font-size: 1.4rem;
    padding: 0.75rem 0;
    line-height: 1em;
    width: 0;
    overflow: hidden;
    text-overflow: hidden;
    transition: 0.2s all;
    opacity: 0;
    white-space: nowrap;
}

.primary_form .form_input.deleteable .delete_button:hover
{
    /* border-radius: 4px; */
}

.primary_form .form_input.deleteable .delete_button.open span
{

    width: 6.8rem;
    opacity: 1;
}

.primary_form .form_input.deleteable .delete_button span em
{
    font-weight: bold;
    display: inline-block;
    font-style: normal;
    opacity: 0.5;
    transition: 0.2s all;
    padding: 0 0.25em 0 0.5em;
}

.primary_form .form_input.deleteable .delete_button:hover span em
{
    opacity: 1;
}

.primary_form .form_input.delete
{
    text-align: right;
}

.primary_form label, .primary_form select.label_select
{
    font-size: 1.3rem;
    line-height: 1.2em;
    font-weight: bold;
    color: #9e9e9e;
}

.primary_form select.label_select
{
    padding: 0;
    border: 0;
    line-height: 1.2em;
    display: inline-block;
    height: auto;
    border-radius: 0;
    width: auto;
    background-image:url(/assets/images/arrow-down.svg.php?color=9e9e9e);
    background-size: 0.75em auto;
    background-position: right center;
    padding-right: 1em;
}

.view_form label .required_label
{
    display: none;
}

.primary_form > :first-child
{
    margin-top: 0;
}

.primary_form h2, .primary_form h3
{
    color: #9e9e9e;
}

.primary_form input, .primary_form select, .primary_form textarea,
.select2-selection
{
    font-size: 1.6rem;
    padding: 0.5em;
    border-radius: 4px;
    border-width: 2px;
    border-style: solid;
    border-color: #DDD;
    transition: 0.3s border-color;
    -webkit-appearance: none;
    background-color: #FFF;
    height: 2.34375em; /* fix to ensure date field is same height as other inputs in Chrome */
}

.view_form input, .view_form select, .view_form textarea,
.view_form .select2-selection
{
    border-radius: 0;
    border-style: none;
    transition: 0.3s all;
    padding-left: 0;
}

.view_form input[disabled], .view_form textarea[disabled],
.view_form input:disabled, .view_form textarea:disabled
{
    color: #333 !important;
    -webkit-text-fill-color: #333 !important;
    opacity: 1 !important;
}

.primary_form input[type=button], .primary_form input[type=submit], a.button
{
    background-color: #9e9e9e;
    border-color: #9e9e9e;
    text-align: center;
}

a.button_add
{
    position: relative;
    padding-left: 20px;
    cursor: pointer;
}

a.button_add::before
{
    content: '';
    color: white;
    background-color: #9e9e9e;
    box-sizing: content-box;
    width: 17px;
    height: 17px;
    padding: 0em;
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
    overflow: hidden;
    border-radius: 50%;
    cursor: pointer;
    background-image:url(/assets/images/plus.svg);
    background-position: center center;
    background-size: 11px 11px;
    background-repeat: no-repeat;
}

.primary_form input[type="reset"]
{
    background-color: #9e9e9e;
    border-color: #9e9e9e;
}

.primary_form input[name=delete]
{
  border-color: #9e9e9e;
  background-color: transparent;
  color: #9e9e9e;
  display: inline-block;
  width: auto;
  right: 0;
}

a.button.overlay_close
{
  border: 1px solid white;
  background-color: transparent;
  color: white;
  font-size: 1.2rem;
}

a.button.bordered
{
    border-width: 2px;
    border-style: solid;
}

.primary_form input[type=button].bordered, .primary_form input[type=submit].bordered, a.button.bordered
{
    border-color: #DDD;
}

body.basic .primary_form input[type=button].bordered, body.basic .primary_form input[type=submit].bordered, body.basic a.button.bordered
{
    border-color: #FFF;
}

.select2-selection--multiple
{
    height: auto;
    min-height: 2.34375em;
}


.primary_form select, .select2-selection
{
  position: relative;
  background-image:url(/assets/images/bg_select.svg);
  background-size: 2.2em 2.2em;
  padding-right: 2.2em;
  background-position: right -0.11em center;
  background-repeat: no-repeat;
}

.select2-selection--multiple
{
  background-image:url(/assets/images/bg_select_multi.svg);
}

 .select2-selection--multiple::after
 {
     content: '';
     position: absolute;
     top: 0;
     right: 0;
     width: 2.09em;
     background-color: #ddd;
     height: 100%;
     background-image:url(/assets/images/bg_select.svg);
     background-size: 2.2em 2.2em;
     background-repeat: no-repeat;
     background-position: center center;
     cursor: pointer;
 }

 .select2-container--default .select2-selection--multiple .select2-selection__rendered
 {
     font-size: inherit;
     margin-top: -0.5em;
     margin-bottom: -0.5em;
     margin-left: -0.5em;
 }

 .select2-container--default .select2-selection--multiple .select2-selection__choice
 {
    background-color: #9e9e9e;
    border-radius: 4px;
    border: none;
    cursor: default;
    float: left;
    margin-right: 0.25em;
    margin-top: 0.15em;
    padding: 0.25em 0.5em 0.25em 0.25em;
    color: white;
}

.select2-container--default .select2-search--inline .select2-search__field
{
    margin-top: 0.25em;
    padding: 0.25em !important;
    height: auto;
    border-radius: 0 !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    opacity: 0.5;
    color: white !important;
    transition: 0.3s all;
    padding: 0 0.25em;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    opacity: 1;
}

.primary_form select::-ms-expand
{
    display: none;
}

.primary_form textarea
{
  resize: vertical;
  min-height: 6em;
}

.primary_form span.input_wrapper
{
    display: block;
}

.primary_form span.input_wrapper.icon, .primary_form span.input_wrapper.tel, .primary_form span.input_wrapper.email, .primary_form span.input_wrapper.password, .primary_form span.input_wrapper.date, .primary_form span.input_wrapper.url
{
    font-size: 1.6rem;
    border-top-left-radius: 0.25em;
    border-bottom-left-radius: 0.25em;
    background-size: auto 100%;
    background-repeat: no-repeat;
    background-position: 0 0;
    padding-left: 2.34375em;
    position: relative;
}

.primary_form span.input_wrapper.icon::before,
.primary_form span.input_wrapper.tel::before,
.primary_form span.input_wrapper.email::before,
.primary_form span.input_wrapper.password::before,
.primary_form span.input_wrapper.date::before,
.primary_form span.input_wrapper.url::before
{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width:2.34375em;
    height: 2.34375em;
    border: none;
    box-sizing:content-box;
    background-color: #ddd;
    background-position: 0.125em center;
    background-size: 100% 100%;
    border-top-left-radius: 0.25em;
    border-bottom-left-radius: 0.25em;
}

.view_form span.input_wrapper.icon, .view_form span.input_wrapper.tel, .view_form span.input_wrapper.email, .view_form span.input_wrapper.password, .view_form span.input_wrapper.date, .view_form span.input_wrapper.url
{
    border-radius: 0;
}

.view_form span.input_wrapper a.view_input_button
{
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 2.34375em;
    height: 2.34375em;
    background-color: none;
    border-radius: 50%;
    border: none;
}

.view_form span.input_wrapper.icon input, .view_form span.input_wrapper.tel input, .view_form span.input_wrapper.email input, .view_form span.input_wrapper.password input, .view_form span.input_wrapper.date input, .view_form span.input_wrapper.url input
{
    padding-left: 0.5em;
}

.view_form span.input_wrapper.icon::before,
.view_form span.input_wrapper.tel::before,
.view_form span.input_wrapper.email::before,
.view_form span.input_wrapper.password::before,
.view_form span.input_wrapper.date::before,
.view_form span.input_wrapper.url::before
{
    border-radius: 50% !important;
    background-position: center center;
}

.primary_form span.input_wrapper.tel::before
{
    background-image:url(/assets/images/bg_tel.svg);
}

.primary_form span.input_wrapper.email::before
{
    background-image:url(/assets/images/bg_email.svg);
}

.primary_form span.input_wrapper.password::before
{
    background-image:url(/assets/images/bg_password.svg);
}

.primary_form span.input_wrapper.date::before
{
    background-image:url(/assets/images/bg_date.svg);
}

.primary_form span.input_wrapper.url::before,
.primary_form span.input_wrapper.icon.social_::before
{
    background-image:url(/assets/images/bg_web.svg);
}

.primary_form span.input_wrapper.icon.social_twitter::before
{
    background-image:url(/assets/images/bg_twitter.svg);
}

.primary_form span.input_wrapper.icon.social_facebook::before
{
    background-image:url(/assets/images/bg_facebook.svg);
}

.primary_form span.input_wrapper.icon.social_instagram::before
{
    background-image:url(/assets/images/bg_instagram.svg);
}

.primary_form span.input_wrapper.icon.social_linkedin::before
{
    background-image:url(/assets/images/bg_linkedin.svg);
}

.primary_form span.input_wrapper.icon.social_pinterest::before
{
    background-image:url(/assets/images/bg_pinterest.svg);
}

.primary_form span.input_wrapper.icon.social_youtube::before
{
    background-image:url(/assets/images/bg_youtube.svg);
}

.primary_form input:focus, .primary_form textarea:focus, .primary_form select:focus,
.select2-selection:focus, .select2-container--open .select2-selection
{
    outline: none;
}

.primary_form input:focus, .primary_form textarea:focus, .primary_form select:focus,
.select2-selection:focus, .select2-container--open .select2-selection
{
    border-color: #9e9e9e;
}

.primary_form span.input_wrapper.icon input,
.primary_form input[type=email], .primary_form input[type=date], .primary_form input[type=tel], .primary_form input[type=password],
.primary_form input[type=text].flatpickr-input, .primary_form input[type=url]
{
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}


body.basic .primary_form input:focus
{
    border-color: white;
}

.select2-dropdown
{
    font-size: 1.6rem;
    border-radius: 4px;
    border: 0.11em solid #9e9e9e;
    margin-top: -0.11em;
}

.select2-dropdown--above
{
        margin-top: 0.4em;
}

.select2-search--dropdown
{
  padding: 0.5em;
}

.select2-container--default .select2-results__option--highlighted[aria-selected]
{
  background-color: #9e9e9e;
  color: white;
}

.select2-results
{
  display: block;
  width: 100% !important;
}


.block_input label, .block_input input, .block_input select, .block_input textarea
{
    display: block;
    width: 100%;
}

.block_input input, .block_input select, .block_input textarea,
.select2-container--default .select2-selection
{
    margin-top: 0.3em;
    position: relative;
}

.block_input input[type=submit], .block_input input[type=reset], .block_input input[type=button]
{
    margin-top: 0;
}

input[type=checkbox], input[type=radio]
{
    padding: 0;
    opacity: 0;
    position: absolute;
    cursor: pointer;
    height: 0;
    width: 0;
}

input[type=checkbox] + label,
input[type=radio] + label
{
    color: #333;
    font-weight: normal;
    font-size: 1.6rem;
    position: relative;
    padding-left: 1.75em;
}

input[type=checkbox] + label::before,
input[type=radio] + label::before
{
    position: absolute;
    content: '';
    display: block;
    height: 1.1875em;
    width: 1.1875em;
    top: 0;
    left: 0;
    background-color: #ffffff;
    border: 0.11em solid #DDD;
    border-radius: 0em;
    transition: 0.2s all;
    background-size: 100% 200%;
    background-position: top left;
}

input[type=checkbox] + label::before
{
    background-image:url(/assets/images/bg_checkbox.svg);
    border-radius: 0.2em;
}

input[type=radio] + label::after
{
    display: block;
    position: absolute;
    content: '';
    border-radius: 1em;
    background-color: white;
    z-index: 100;
    transition: 0.2s all;
    opacity: 0;
    left: 0.3125em;
    top: 1.2em;
    width: 0.5625em;
    height: 0.5625em;
}


input[type=radio] + label::before
{
    border-radius: 100%;
}

input[type=checkbox] + label:hover::before
{
    /* background-color: #f3f3f3; */
}

input[type=checkbox]:checked + label::before,
input[type=radio]:checked + label::before
{
    background-color: #9e9e9e;
    border-color: #9e9e9e;
    background-position: bottom left;
}

input[type=radio]:checked + label::after
{
    opacity: 1;
    top: 0.3125em;
}

.flatpickr-wrapper
{
    display: block;
}

.flatpickr-calendar
{
  border-radius: 4px;
  border: 0.11em solid #9e9e9e;
  box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.05);
}

.flatpickr-current-month .numInputWrapper span.arrowUp:after
{
    border-bottom-color: white;
}

.flatpickr-current-month .numInputWrapper span.arrowDown:after
{
    border-top-color: white;
}

.flatpickr-calendar.arrowTop:after, .flatpickr-calendar.arrowTop:before
{
  border-bottom-color: #9e9e9e;
  margin: 0 -15px;
}

.flatpickr-calendar:after
{
    border-width: 10px;
}

.flatpickr-months, .flatpickr-weekdays
{
  background-color: #9e9e9e;
}

.flatpickr-calendar .numInputWrapper span
{
    border: none;
}

.flatpickr-months *, .flatpickr-weekdays *
{
  color: white !important;
}

.flatpickr-months svg
{
  fill: white !important;
}

.flatpickr-day
{
    border-radius: 4px;
    transition: 0.1s all;
    color: #333;
}

.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay
{
  background-color: #9e9e9e;
  border-color: #9e9e9e;
}

.flatpickr-day.today
{
    position: relative;
    border-color: #9e9e9e;
}

.flatpickr-day.today::after
{
    content: 'Today';
    display: block;
    text-transform: uppercase;
    position: absolute;
    width: 100%;
    left: 0;
    top: -1.75em;
    font-size: 0.5em;
    opacity: 0.75;
}

.flatpickr-day.inRange, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.today.inRange, .flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.nextMonthDay.today.inRange, .flatpickr-day:hover, .flatpickr-day.prevMonthDay:hover, .flatpickr-day.nextMonthDay:hover, .flatpickr-day:focus, .flatpickr-day.prevMonthDay:focus, .flatpickr-day.nextMonthDay:focus,.flatpickr-day.today:hover, .flatpickr-day.today:focus
{
    color: inherit;
    background-color: #DDD;
    border-color: #DDD;
}

.flatpickr-day.disabled, .flatpickr-day.disabled:hover, .flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay, .flatpickr-day.notAllowed, .flatpickr-day.notAllowed.prevMonthDay, .flatpickr-day.notAllowed.nextMonthDay
{
    color: #BBB;
}

.cke_dialog_background_cover
{
    background-color: #000 !important;
    opacity: 0.8 !important;
}

.cke_dialog_body
{
    border-radius: 4px;
    overflow: hidden;
}

.cke_dialog_title, .cke_dialog_footer
{
    background-color: #9e9e9e !important;
    color: white !important;
    border: none !important;
}

a.cke_dialog_close_button
{
  opacity: 1 !important;
}

a.cke_dialog_ui_button
{
    background-color: transparent !important;
    border: 2px solid white !important;
    color: white !important;
    border-radius: 4px !important;
    padding: 4px 1px !important;
}

a.cke_dialog_ui_button_ok
{
  background-color: white !important;
  border-color: white !important;
  color: #9e9e9e !important;
}

.cke_resizer
{
    border-color: transparent white transparent white !important;
}

a.cke_dialog_tab:focus
{
    border: 2px solid #9e9e9e !important;
    border-bottom-color: transparent !important;
}

.cke_chrome.cke_focus
{
    border-color: #9e9e9e !important;
}

input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, input.cke_dialog_ui_input_tel, textarea.cke_dialog_ui_input_textarea, select.cke_dialog_ui_input_select
{
  border-color: #ddd !important;
  border-radius: 4px !important;
  transition: 0.3s border-color;
}


input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, input.cke_dialog_ui_input_tel:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus
{
    border-color: #9e9e9e !important;
}

.view_edit_button
{
    float: right;
    font-size: 14px;
}

.centered_content_container
{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.login_form
{
  max-width: 300px;
}

.login_form h1, .login_form p, .login_form label
{
    color: white;
}

.login_form fieldset
{
  width: 100%;
}

.error_page_content
{
    margin: 0 auto;
    width: 75%;
    max-width: 500px;
}

.error_page_content > div
{
    width: 100%;
}

.error_page_content *
{
    color: white;
    text-align: center;
}



@media(min-width: 768px)
{
    .form_grid
    {
        display: flex;
        flex-wrap: wrap;
        align-items: top;
    }
    .form_grid .form_half
    {
        width: 50%;
        padding-right: 10px;
    }

    .form_grid .form_half:nth-child(even)
    {
        padding-right: 0px;
        padding-left: 10px;
    }
}
