:root {
  --cps_brandgrey: 150,150,150;
  --cps_grey: 87,87,87;
  --cps_lightgrey: 198, 198, 198;
  --cps_blue: 22,177,231;
  --cps_altblue: 43,104,156;
  --bg_grey: 236,243,243;
  --cps_hotpink: 237,21,102;
  --cps_purple: 37, 32, 77;
  --cps_lightpurple: 78, 53, 138;
  --cps_orange: 230, 57, 41;
  --cps_lightorange: 250, 204, 0;
}

body {
	background: rgb(var(--cps_lightgrey));
	font-family: helvetica, arial, sans-serif;
	color: #212529;
	box-sizing: border-box;
}

input:focus,
select:focus,
textarea:focus,
button:focus {
	outline: none;
}

fieldset {
	border: 0;
}

h1,
h2,
h3,
h4,
h5 {
	color: rgb(var(--cps_altblue));
	font-weight: normal;
}


h1 {
	font-size: 1.8em;
	line-height: normal;
}

a {
	color: rgb(var(--cps_grey));
}

#page_container {
	min-height: 1000px;
	display: flex;
}

.logo_wrap {
	margin: 0 auto;
	max-width: 300px;
	text-align: center;
	padding: 50px;
}

.logo_wrap img {
	width: 90px;
}

.login-wrap {
	background: #fff;
	display: block;
	width: 90%;
	max-width: 600px;
	padding: 40px 20px;
	font-size: 14px;
	margin: 0 auto;
}

.login-wrap h1 {
	text-align: center;
}

.login-wrap form .row {
	margin-bottom: 1em;
}

.login-wrap form .text input,
.login-wrap form .email input,
.login-wrap form .password input {
	border: 0;
	background-color: #f2f2f2;
	display: block;
    width: 90%;
    height: calc(1.5em + .75rem + 2px);
    padding: .375rem .75rem;
    font-weight: 400;
    line-height: 1.5;
    color: #4d4d4d;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ccc;
    border-radius: 0;
}

.login-wrap form input:focus {
	outline-offset: -2px;
}

.login-wrap form .label {
	display: inline-block;
	line-height: 40px;
}

.login-wrap form .check .label {
	line-height: 1.2em;
}

.submit input {
	background: none;
	padding: 0;
	margin: 0;
	border: 0;
	background: rgb(var(--cps_altblue));
	color: #fff;
	padding: 10px;
	min-width: 100px;
}

.error_list {
	color: #c50000;
}

.admin_wrapper header {
	background: #fff;
	overflow: hidden;
	height: 100%;
	width: 200px;
	float: left;
}

.admin_wrapper .admin_logo {
	text-align: center;
	padding: 20px;
}

.admin_wrapper  .admin_logo img {
	margin: 0 auto;
	display: block;
}


.admin_wrapper .admin_side {
	background: #fff;
	min-width: 200px;
	box-shadow: inset -1px 0 0 rgb(0 0 0 / 10%);
	background: #f8f9fa;
}

.admin_wrapper #page_content {
	flex-grow: 1;
}

.admin_wrapper .admin_side ul {
	margin: 0;
	padding: 0;
}

.admin_wrapper .admin_side h3 {
	margin-left: 10px;
	text-transform: uppercase;
	font-size: 1.2em;
	margin-bottom: 0;
	margin-top: 1em;
	text-decoration: underline;
}

.admin_wrapper .admin_side ul li {
	display: block;
	width: 100%;
	padding: 10px;
	font-size: 15px;
}

.admin_wrapper .admin_side ul {
	text-indent: 10px;
}

.admin_wrapper .admin_side ul li:hover {
	background: #f9f6f2;
	cursor: pointer;
}

.admin_wrapper .admin_side ul li a {
	color: #666;
	text-transform: uppercase;
	text-decoration: none;
	font-size: 0.9em;
}

#admin_header_bar {
	box-shadow: inset -1px 0 0 rgb(0 0 0 / 10%);
	background: #f8f9fa;
	padding: 10px 30px;
	display: flex;
	width: 100%;
	align-items: center;
}

.admin_search {
	flex-grow: 1;
}

.admin_user a { 
	color: rgb(var(--cps_altblue));
	font-weight: bold;
}

.admin_user p {
	margin-top: 0;
}

.admin_wrapper .admin_search {
	position: relative;
}

.admin_wrapper .admin_search input {
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font-size: 16px;
}

.admin_wrapper .admin_search input {
	padding: 10px;
}

.admin_wrapper .admin_search input[type=search] {
	border: 1px solid #ccc;
	min-width: 400px;
	width: 70%;

}

#admin_search {
	border: 1px solid #ccc;
	min-width: 400px;
	width: 70%;
}

.admin_search #autoComplete_list {
	width: 70%;
	min-width: 400px;
	position: absolute !important;
	top: 40px;
}

.admin_wrapper .admin_search input[type=submit] {
	background: rgb(var(--cps_altblue));
	color: #fff;
	border: 1px solid rgb(var(--cps_altblue));
	margin-left: 5px;
}


/*--------------------------------------------------*/
/* Basic Form                                       */
.basic_form fieldset {
  margin: 0 10px 1em 0;
  font-family: arial, sans-serif;

}

.basic_form fieldset input {
	font-family: arial, sans-serif;
	padding: 0.5em;
}

.basic_form fieldset > h2:first-child {
  padding-top: 0;
}

.basic_form fieldset > h2 + p {
  margin-top: 1em;
}

.basic_form div.actions {
  text-align: right;
}

.basic_form div.actions input.default {
  display: none;
}

.basic_form .row {
	margin-bottom: 1em;
}

.basic_form .error_list,
.basic_form .error {
  color: red;
  background: inherit;
  font-weight: bold;
}

.basic_form .row {
  padding: 5px 0 0 0;
  clear: both;
}

.basic_form .row .label {
  display: block;
  font-weight: normal;
}

.basic_form .row .label abbr.required {
  border: 0;
}

.basic_form .row .input sub {
  font-size: 0.8em;
}

.basic_form .row.info .input,
.basic_form .row.radio .input,
.basic_form .row.check .input {
  display: block;
  padding: 0 0 1em 1.5em;
}

.basic_form .row.check.input_first .input {
  padding: 0;
  display: inline;
}

.basic_form .row.check.input_first .label {
  display: inline;
}

@media only screen and (min-width: 40em) {
  .basic_form .row {
    padding-left: 11.5em;
  }

.basic_form .row .label,
.basic_form .row.input_first .input {
    float: left;
    width: 11em;
    margin: 0 0 0 -11.5em;
    text-align: right;
  }

  .basic_form .row.text .label,
.basic_form .row.date .label,
.basic_form .row.email .label,
.basic_form .row.password .label,
.basic_form .row.postcode .label,
.basic_form .row.textarea .label,
.basic_form .row.number .label {
    margin-top: 2px;
  }

  .basic_form .row.info .input {
    margin-bottom: 0;
    margin-left: 0;
  }

  .basic_form .row.input_first .label {
    float: none;
    display: inline;
    width: auto;
    margin-left: 0;
    text-align: left;
  }

  .basic_form .row.info .input,
.basic_form .row.radio .input,
.basic_form .row.checkboxes .input:nth-child(2),
.basic_form .row.radios .input:nth-child(2) {
    display: block;
    padding: 0;
  }

  .basic_form .row.check .input {
    display: inline;
    /* Allow .info span to be inline as well (see order pending/completed checkboxes) */
    padding: 0;
  }
}
.basic_form .row.date input {
  text-align: center;
}

.basic_form .row.textarea .input textarea {
  width: 90%;
  padding: 10px;
  font-family: arial, sans-serif;
}

.basic_form .submit {
  padding-bottom: 1em;
}

.basic_form .submit input {
  border: 0;
  background: 0;
  background: rgb(var(--cps_altblue));
  color: #fff;
  margin-top: 1em;
  display: inline-block;
  font-size: 13px;
  border-radius: 0;
  padding: 10px 5px;
  width: auto;
}

.basic_form .submit input:hover {
  cursor: pointer;
  background: #67674f;
}

.basic_form .row .note {
  color: #AAA;
}

.basic_form .row.textarea.js-scribe div[contenteditable=true] {
  min-height: 100px;
  border: 1px solid #000;
  margin: 5px 0;
  padding: 5px;
}

.basic_form .carousel_item,
.basic_form .banner_item {
  padding-top: 1em;
  margin-top: 1em;
  border-top: 1px solid #8f8e81;
}

.basic_form fieldset h2 + .table_form {
  padding: 1em 0 0 1em;
}

.basic_form .row .table_form table {
  margin: 0;
}

.basic_form .table_form td {
  vertical-align: middle;
}

.basic_form .table_form td.field .label {
  position: absolute;
  left: -5000px;
}

.basic_form .table_form td.field ul {
  margin: 3px 0 0 0;
  list-style: none;
}

.basic_form .table_form td.field ul li {
  margin-bottom: 3px;
}

.basic_form .table_form + .row.submit {
  padding-left: 0;
}

/*--------------------------------------------------*/
/* Search form                                      */

.search_form {
	padding: 10px;
	background: #ccc;
}

/*.search_form fieldset {
  margin: 0 0 1em 0;
}*/

.search_form div {
  display: inline;
}

.search_form div input[type=text] {
  min-width: 350px;
  padding: 10px;
  border: 0;
  border: 1px solid #ccc;
}

.search_form .submit {
  padding-bottom: 1em;
}

.search_form .submit input {
  border: 0;
  background: 0;
  padding: 10px;
  background: rgb(var(--cps_altblue));
  color: #fff;
  display: inline-block;
  font-size: 13px;
}

.search_form .submit input:hover {
  cursor: pointer;
  background: #67674f;
}

/*--------------------------------------------------*/
/* Delete form                                      */
.delete_form fieldset {
  margin: 0 0 1em 0;
}

.delete_form .error_list,
.delete_form .error {
  color: red;
  background: inherit;
  font-weight: bold;
}

/*--------------------------------------------------*/
/* Basic Table                                      */
.basic_table {
  padding-right: 10px;
}

.basic_nav_child .basic_table {
  padding-right: 0;
}

.basic_table table {
  margin: 0 0 1em 0;
  color: inherit;
  border-top: 1px solid #000;
  border-right: 0;
  border-bottom: 0;
  border-left: 1px solid #000;
  min-width: 300px;
}

.basic_table.full_width table {
  width: calc(100% - 200px);
}

.basic_table thead span.sort {
  font-size: 0.75em;
}

.basic_table thead span.sort.inactive {
  color: #CCC;
}

.basic_table th,
.basic_table th a {
  color: white;
  background: rgb(var(--cps_altblue));
  text-decoration: none;
}

.basic_table th,
.basic_table td {
  padding: 6px;
  border-top: 0;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  border-left: 0;
}

.basic_table td.no_results {
  text-align: center;
  padding: 2em;
}

.basic_table tr {
	background: #fff;
}

.basic_table tr:nth-child(even) {
  background: #e5ecf7;
  transition: background-color 100ms linear;
}

.basic_table .ui-dragging tr:nth-child(even) {
  background: none;
}

.basic_table tr:hover {
  background-color: #FFD;
}

.basic_table tr.highlight td.name {
  font-weight: bold;
}

.basic_table td.action {
  text-align: center;
  width: 4em;
}

.basic_table td.action_multi {
  text-align: center;
}

.basic_table td.toggle {
  text-align: center;
}

.basic_table td.toggle.true {
  background: #bfff95;
}

.basic_table td.toggle.false {
  background: #d9d9d9;
}

.basic_table td p {
  margin: 0;
}

.basic_table td p + p {
  margin-top: 1em;
}

.basic_table td ul {
  margin: 0 0 0 1.5em;
}

.basic_table .drag_handle {
  float: right;
  cursor: move;
  margin: 2px 0 0 0;
  width: 20px;
  height: 16px;
  border-radius: 3px;
  background: #FFAE00;
  background-image: linear-gradient(to bottom, #FFFFFF 0px, #FFFFFF 1px, #FFAE00 1px, #FFAE00 3px, #FFFFFF 3px, #FFFFFF 4px);
  background-size: 10px 4px;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  text-indent: -5000em;
}

.admin.container {
	padding-top: 40px;
}

.date input {
	max-width: 20%;
}

.admin_wrapper .basic_form .check input {
	display: inline;
	width: auto;
	position: relative;
	top: 18px;
}

.admin_wrapper .basic_form .category {
	text-transform: none;
	color: inherit;
	font-weight: normal;
}

.row.image .preview img {
	max-width: 50%;
	display: block;
}

#p_admin_page_banners_link .basic_form .input input {
	width: auto;
}

#p_admin_page_banners_link .basic_form .banner_choice .input {
	width: 100%;
	display: block;
}


.admin-intro {
	max-width: 600px;
}

.form-wrap {
	width: 100%;
	max-width: 700px;
	background: #fff;
	padding: 20px;
}

.info {
	clear: both;
	display: inline-block;
	margin-top: 10px;
	padding: 0 10px;
}

.select .info {
	margin-top: 15px;
}

.select .info a {
	color: #ff6600;
}

h1 {
	color: rgb(var(--cps_altblue));
	text-transform: uppercase;
	margin-top: 1em;
}

/*--------------------------------------------------*/
/* SLim Select                                      */

.ss-main {
	position: relative;
	display: inline-block;
	user-select: none;
	color: #666;
	width: 100%
}
.ss-main .ss-single-selected {
	display: flex;
	cursor: pointer;
	width: 100%;
	height: 30px;
	padding: 6px;
	border: 1px solid #dcdee2;
	border-radius: 4px;
	background-color: #fff;
	outline: 0;
	box-sizing: border-box;
	transition: background-color .2s
}
.ss-main .ss-single-selected.ss-disabled {
	background-color: #dcdee2;
	cursor: not-allowed
}
.ss-main .ss-single-selected.ss-open-above {
	border-top-left-radius: 0;
	border-top-right-radius: 0
}
.ss-main .ss-single-selected.ss-open-below {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0
}
.ss-main .ss-single-selected .placeholder {
	flex: 1 1 100%;
	text-align: left;
	width: calc(100% - 30px);
	line-height: 1em;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none
}
.ss-main .ss-single-selected .placeholder,.ss-main .ss-single-selected .placeholder * {
	display: flex;
	align-items: center;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap
}
.ss-main .ss-single-selected .placeholder * {
	width: auto
}
.ss-main .ss-single-selected .placeholder .ss-disabled {
	color: #dedede
}
.ss-main .ss-single-selected .ss-deselect {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex: 0 1 auto;
	margin: 0 6px;
	font-weight: 700
}
.ss-main .ss-single-selected .ss-deselect.ss-hide {
	display: none
}
.ss-main .ss-single-selected .ss-arrow {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex: 0 1 auto;
	margin: 0 6px
}
.ss-main .ss-single-selected .ss-arrow span {
	border: solid #666;
	border-width: 0 2px 2px 0;
	display: inline-block;
	padding: 3px;
	transition: transform .2s,margin .2s
}
.ss-main .ss-single-selected .ss-arrow span.arrow-up {
	transform: rotate(-135deg);
	margin: 3px 0 0
}
.ss-main .ss-single-selected .ss-arrow span.arrow-down {
	transform: rotate(45deg);
	margin: -3px 0 0
}
.ss-main .ss-multi-selected {
	display: flex;
	flex-direction: row;
	cursor: pointer;
	min-height: 30px;
	width: 100%;
	padding: 0 0 0 3px;
	border: 1px solid #dcdee2;
	border-radius: 4px;
	background-color: #fff;
	outline: 0;
	box-sizing: border-box;
	transition: background-color .2s
}
.ss-main .ss-multi-selected.ss-disabled {
	background-color: #dcdee2;
	cursor: not-allowed
}
.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-disabled {
	color: #666
}
.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-value .ss-value-delete {
	cursor: not-allowed
}
.ss-main .ss-multi-selected.ss-open-above {
	border-top-left-radius: 0;
	border-top-right-radius: 0
}
.ss-main .ss-multi-selected.ss-open-below {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0
}
.ss-main .ss-multi-selected .ss-values {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	flex: 1 1 100%;
	width: calc(100% - 30px)
}
.ss-main .ss-multi-selected .ss-values .ss-disabled {
	display: flex;
	padding: 4px 5px;
	margin: 2px 0;
	line-height: 1em;
	align-items: center;
	width: 100%;
	color: #dedede;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap
}
@keyframes scaleIn {0% {
	transform: scale(0);
	opacity: 0
}
to {
	transform: scale(1);
	opacity: 1
}

}
@keyframes scaleOut {0% {
transform: scale(1);
opacity: 1
}
to {
transform: scale(0);
opacity: 0
}

}
.ss-main .ss-multi-selected .ss-values .ss-value {
display: flex;
user-select: none;
align-items: center;
font-size: 12px;
padding: 3px 5px;
margin: 3px 5px 3px 0;
color: #fff;
background-color: #5897fb;
border-radius: 4px;
animation-name: scaleIn;
animation-duration: .2s;
animation-timing-function: ease-out;
animation-fill-mode: both
}
.ss-main .ss-multi-selected .ss-values .ss-value.ss-out {
animation-name: scaleOut;
animation-duration: .2s;
animation-timing-function: ease-out
}
.ss-main .ss-multi-selected .ss-values .ss-value .ss-value-delete {
margin: 0 0 0 5px;
cursor: pointer
}
.ss-main .ss-multi-selected .ss-add {
display: flex;
flex: 0 1 3px;
margin: 9px 12px 0 5px
}
.ss-main .ss-multi-selected .ss-add .ss-plus {
display: flex;
justify-content: center;
align-items: center;
background: #666;
position: relative;
height: 10px;
width: 2px;
transition: transform .2s
}
.ss-main .ss-multi-selected .ss-add .ss-plus:after {
background: #666;
content: "";
position: absolute;
height: 2px;
width: 10px;
left: -4px;
top: 4px
}
.ss-main .ss-multi-selected .ss-add .ss-plus.ss-cross {
transform: rotate(45deg)
}
.ss-content {
position: absolute;
width: 100%;
margin: -1px 0 0;
box-sizing: border-box;
border: 1px solid #dcdee2;
z-index: 1010;
background-color: #fff;
transform-origin: center top;
transition: transform .2s,opacity .2s;
opacity: 0;
transform: scaleY(0)
}
.ss-content.ss-open {
display: block;
opacity: 1;
transform: scaleY(1)
}
.ss-content .ss-search {
display: flex;
flex-direction: row;
padding: 8px 8px 6px
}
.ss-content .ss-search.ss-hide,.ss-content .ss-search.ss-hide input {
height: 0;
opacity: 0;
padding: 0;
margin: 0
}
.ss-content .ss-search input {
display: inline-flex;
font-size: inherit;
line-height: inherit;
flex: 1 1 auto;
width: 100%;
min-width: 0;
height: 30px;
padding: 6px 8px;
margin: 0;
border: 1px solid #dcdee2;
border-radius: 4px;
background-color: #fff;
outline: 0;
text-align: left;
box-sizing: border-box;
-webkit-box-sizing: border-box;
-webkit-appearance: textfield
}
.ss-content .ss-search input::placeholder {
color: #8a8a8a;
vertical-align: middle
}
.ss-content .ss-search input:focus {
box-shadow: 0 0 5px #5897fb
}
.ss-content .ss-search .ss-addable {
display: inline-flex;
justify-content: center;
align-items: center;
cursor: pointer;
font-size: 22px;
font-weight: 700;
flex: 0 0 30px;
height: 30px;
margin: 0 0 0 8px;
border: 1px solid #dcdee2;
border-radius: 4px;
box-sizing: border-box
}
.ss-content .ss-addable {
padding-top: 0
}
.ss-content .ss-list {
max-height: 200px;
overflow-x: hidden;
overflow-y: auto;
text-align: left
}
.ss-content .ss-list .ss-optgroup .ss-optgroup-label {
padding: 6px 10px;
font-weight: 700
}
.ss-content .ss-list .ss-optgroup .ss-option {
padding: 6px 6px 6px 25px
}
.ss-content .ss-list .ss-optgroup-label-selectable {
cursor: pointer
}
.ss-content .ss-list .ss-optgroup-label-selectable:hover {
color: #fff;
background-color: #5897fb
}
.ss-content .ss-list .ss-option {
padding: 6px 10px;
cursor: pointer;
user-select: none
}
.ss-content .ss-list .ss-option * {
display: inline-block
}
.ss-content .ss-list .ss-option.ss-highlighted,.ss-content .ss-list .ss-option:hover {
color: #fff;
background-color: #5897fb
}
.ss-content .ss-list .ss-option.ss-disabled {
cursor: not-allowed;
color: #dedede;
background-color: #fff
}
.ss-content .ss-list .ss-option:not(.ss-disabled).ss-option-selected {
color: #666;
background-color: rgba(88,151,251,.1)
}
.ss-content .ss-list .ss-option.ss-hide {
display: none
}
.ss-content .ss-list .ss-option .ss-search-highlight {
background-color: #fffb8c
}

/*--------------------------------------------------*/
/* Grouped Forms                                    */

.group_form fieldset {
	max-width: 900px;
	width: 100%;
	padding: 40px;
	background: #fff;
	margin-bottom: 20px;
	display: block;
	padding-top: 50px;
}

.group_form fieldset legend {
	color: rgb(var(--cps_blue));
	font-size: 22px;
	line-height: 24px;
	text-transform: uppercase;
	position: relative;
	top: 30px;
	border-bottom: 1px solid rgb(var(--cps_blue));
}

.admin_wrapper h2 {
	color: #000;
	font-size: 18px;
	margin-top: 1em;
	display: block;
	position: static;
	text-decoration: underline;
}

/*--------------------------------------------------*/
/* Pricing Table								    */

.prices_wrapper {
	width: 900px !important;
}

.prices_wrapper.full_width table {
	width: 100%;
	position: relative;
	left: -11.5em;
}

/*--------------------------------------------------*/
/* Pagination                                       */

.pagination {
	display: flex;
	padding: 20px 0;
}

.pagination span.pagination_page a,
.pagination span.pagination_page strong,
.pagination span.pagination_first strong,
.pagination span.pagination_first a,
.pagination span.pagination_last strong,
.pagination span.pagination_last a,
.pagination span.pagination_jump a,
.pagination span.pagination_jump span > span{
	padding: 5px 10px;
	margin: 0;
	color: #000;
}

.pagination span.pagination_page strong {
	color: rgb(var(--cps_altblue));
}

.pagination span.pagination_page a,
.pagination span.pagination_jump a {
	color: #000;
	text-decoration: none;
}

/*--------------------------------------------------*/
/* Product admin table                              */

.basic_table table th, .basic_table table td {
	vertical-align: middle;
} 

td.future {
	position: relative;
}

td.strong a {
	font-weight: bold;
	font-size: 1.2em;
	text-decoration: none;
	color: rgb(var(--cps_altblue));
}

td.strong span {
	font-size: 0.9em;
	margin-left: 10px;
}

td.future span::after {
	float: right;
	content: "Future";
	font-size: 0.7em;
	position: relative;
	right: 30px !important;
	left: 0;
	text-decoration: none;
	background: green;
	border-radius: 5px;
	color: #fff;
	padding: 3px;
}

td.archive span::after {
	float: right;
	content: "Archived";
	font-size: 0.7em;
	position: relative;
	right: 30px !important;
	left: 0;
	text-decoration: none;
	background: red;
	border-radius: 5px;
	color: #fff;
	padding: 3px;
}

td.cancelled span::after {
	float: right;
	content: "Cancelled";
	font-size: 0.7em;
	position: relative;
	right: 30px !important;
	left: 0;
	text-decoration: none;
	background: black;
	border-radius: 5px;
	color: #fff;
	padding: 3px;
}

td.soldout,
td.available,
td.oversold {
	position: relative;
}

td.soldout span::after {
	float: right;
	content: "Sold Out";
	font-size: 0.7em;
	position: relative;
	right: 30px !important;
	left: 0;
	text-decoration: none;
	background: red;
	border-radius: 5px;
	color: #fff;
	padding: 3px;
}

td.available span::after {
	float: right;
	content: "Available";
	font-size: 0.7em;
	position: relative;
	right: 30px !important;
	left: 0;
	text-decoration: none;
	background: green;
	border-radius: 5px;
	color: #fff;
	padding: 3px;
}

td.oversold span::after {
	float: right;
	content: "Over Sold!!";
	font-size: 0.7em;
	position: relative;
	right: 30px !important;
	left: 0;
	text-decoration: none;
	background: red;
	border-radius: 5px;
	color: #fff;
	padding: 3px;
	animation: blinker 3s linear infinite;
}

@keyframes blinker {
  20% {
    opacity: 0;
  }
}

div.top-block {
	overflow: hidden;
	display: flex;
}

div.top-block .left {
	flex-grow: 1;
}

.float_button {
	justify-self: flex-end;
	
}

/*--------------------------------------------------*/
/* Custom Select somtimes                           */


.group_form select {
   padding-left: 15px;
    border-radius: 30px;
    border: none;
    -webkit-appearance: none;
    text-overflow: '';
    background-image: url(../../img/common/drop-down-arrow.png);
    background-repeat: no-repeat;
    background-position: 99% center;
    min-height: 40px;
	font-size: 16px;
    margin-bottom: -5px;
	width: 100%;
	border: 1px solid rgb(var(--cps_brandgrey));
	outline: none;
	color: rgb(var(--cps_grey));
}

/*--------------------------------------------------*/
/* Admin Calendar                                   */

.calendar {
/*	max-width: 800px;
*/}

.calendar table {
	width: 100%;
}

.calendar td,
.calendar th {
	border: 1px solid #000;
	padding: 10px;
}

.calendar th {
	background: rgb(var(--cps_altblue));
	color: #fff;
}

.calendar td {
	width: 100px;
	height: 100px;
	background: #fff;
}

.calendar .week_select {
	overflow: hidden;
	text-align: center;
	margin-bottom: 10px;
}

.calendar .prev {
	float: left;
}

.calendar .next {
	float: right;
}

.calendar .select {
	margin: 0 auto;
}

.calendar h3.day {
	color: #000;
	text-align: center;
}

.calendar td.future span::after {
	content: none;
}

.calendar input[type=submit] {
	padding: 2px 5px;
	border: 0;
	background: rgb(var(--cps_altblue));
	color: #fff;
	margin-left: 10px;
	font-weight: bold;
}

#calendar_unit {
	margin-right: 10px;
}

.calendar p.course_session a,
.calendar p.consultation a,
.calendar p.consultations a {
	display: inline-block;
	background: rgb(var(--cps_hotpink));
	padding: 3px;
	color: white;
	text-decoration: none;
	padding: 5px;
	font-size: 12px;
	line-height: 1.3em;
	font-weight: bold;
}

.calendar p.consultation a,
.calendar p.consultations a  {
	background: green;
}

.calendar p.consultations a {
	width: 100%;
	text-align: center;
}

.calendar p.consultations a span {
	font-size: 1.2em;
	font-weight: bold;
}

.calendar p.consultation.booked a {
	background: red;
}

.calendar td.today {
	background: #F7ffb6;
}

.calendar td.past {
	background: repeating-linear-gradient(
	  45deg,
	  #D8d8d5,
	  #f9f9f9 10px,
	  #e7e7e7 10px,
	  #e7e7e7 20px
	);
}

.calendar td time {
	font-weight: bold;
}

.calendars-wrapper .calendar {
	width: 100%;
}

.consultations-side {
	width: 100%;
}

.consultations-side h3 {
	font-size: 1.4em;
	font-weight: bold;
}

.booking_list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.booking_list li {
	background: #f9f9f9;
	border: 1px solid #ddd;
	padding: 10px 12px;
	margin-bottom: 10px;
	border-radius: 5px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.booking_list .time {
	font-weight: bold;
	color: #2a4d9b;
	font-size: 1.1em;
}

.booking_list .attendee {
	font-size: 1em;
	color: #333;
	text-decoration: none;
}

.booking_list .consultant {
	font-size: 0.95em;
	color: #555;
	text-decoration: none;
}

/* Side-by-side layout for wider screens */
@media screen and (min-width: 1000px) {
	.calendars-wrapper {
		display: flex;
		justify-content: space-between;
		gap: 5%;
	}

	.calendars-wrapper .calendar {
		width: 70%;
	}

	.consultations-side {
		width: 25%; /* 70% + 25% + 5% gap = 100% */
	}
}

.consultations-side {
	position: relative;
}

.past-booking {
	opacity: 0.5;
}

.past-booking .time,
.past-booking .attendee,
.past-booking .consultant {
	color: #888;
}


/*--------------------------------------------------*/
/* Basic tabbed nav                                 */

/*--------------------------------------------------*/
/* Basic nav                                        */
.basic_nav {
  margin: 0 0 -1px 0;
  padding: 0;
  overflow: auto;
}

.basic_nav ul {
	display: flex;
	border-bottom: 1px solid #AAA;
}

.basic_nav li {
  list-style: none;
  margin: 0 10px 0 0;
  position: relative;
  /* IE5/6 WIN: needs this the the issueLogBody sits under this li */
  border-top: 1px solid #AAA;
  border-right: 1px solid #AAA;
  border-left: 1px solid #AAA;
  bottom: -1px;
}

.basic_nav li a {
  text-decoration: none;
  outline: 0;
  display: block;
  color: #000;
}

.basic_nav li a:hover strong,
.basic_nav li a:active strong,
.basic_nav li a:focus strong,
.basic_nav li a:hover span,
.basic_nav li a:active span,
.basic_nav li a:focus span {
  text-decoration: underline;
}

.basic_nav li span,
.basic_nav li strong {
  display: block;
  padding: 5px;
  position: relative;
  /* IE5/6 WIN: needs this rule to apply the background colour */
  background: #F5F5F7;
  border-bottom: 1px solid #AAA;
  text-align: center;
}

.basic_nav li strong {
  font-weight: normal;
  background: #FFF;
  padding-bottom: 6px;
  border-bottom: 0;
}

.basic_nav_child {
  border-top: 1px solid #AAA;
  padding: 1em 0 0 0;
  margin: 0 0 20px 0;
  background: linear-gradient(to bottom, #AAA 0%, #FFF 100%) 0 0/1px 10px no-repeat, linear-gradient(to bottom, #AAA 0%, #FFF 100%) 100% 0/1px 10px no-repeat;
}

@media only screen and (min-width: 35em) {
  .basic_nav_child {
    margin-right: 1em;
  }
}

.info {
	display: block;
}

.info p {
	margin: 0;
}

.actions {
	margin: 10px 0;
	padding: 10px;
	background: #fff;
}

.actions input[type=submit] {
	background: none;
	border: none;
	background: rgb(var(--cps_hotpink));
	color: #fff;
	border-radius: 20px;
	padding: 10px;
	cursor: pointer;
	border: 1px solid #fff;

}

.actions input[type=submit]:hover {
	border: 1px solid rgb(var(--cps_hotpink));
	background: #fff;
	color: rgb(var(--cps_hotpink));
}

.basic_form .info .label {
	padding: 0;
}

.admin_wrapper .order_table {
	width: 100%;
}

.admin_wrapper .order_table td {
	font-size: 16px;
}

.admin_wrapper .order_table td h2 {
	margin: 0;
	margin-bottom: 5px;
}

.admin_wrapper .billing_table {
	min-width: 0;
	width: auto;
	text-align: left;
}

.admin_wrapper .billing_table th {
	text-align: right;
}

.admin_content {
	padding: 20px;
	margin: 20px;
	background: #fff;
	height: 100%;
	min-height: 100vh;
}

.admin_content .basic_table {
	width: 100%;
	padding-right: 0;
}

.admin_content .basic_table table {
	width: 100%;
}

.admin_content h1 {
	margin-top: 0;
}

.admin_content .basic_form {
	max-width: 80%;
	margin: 0 auto;
}

.admin_auth {
	margin: 0 auto;
}

.admin_auth_wrapper {
	width: 100%;
}

.search-filters {
	background: #ccc;
	margin-top: 10px;
	padding: 20px 10px;
}

.search-filters h2 {
	margin: 0;
	padding: 0;
	text-decoration: none;
	margin-bottom: 10px;
}

.search-filters label {
	margin-right: 10px;
}

.filter-row {
	width: 33%;
	display: flex;
	align-items: center;
	padding-bottom: 15px;
}

.search-filters form {
	display: flex;
	flex-wrap: wrap;
}

.search-filters form label {
	margin-left: 20px;
	min-width: 100px;
}

.search-filters form .filter-row:first-of-type label {
	margin-left: 0;
}

.search-filters .submit {
	margin-left: 10px;
}

.search-filters .submit input {
	text-transform: capitalize;
}

/*--------------------------------------------------*/
/* Confirmation Messages                            */
	
#page_message {
	width: 100%;
	padding: 20px;
	color: #fff;
	font-size: 20px;
	line-height: normal;
	background: #4BB543;
	text-align: center;
	margin-bottom: 10px;
    animation: cssAnimation 0s ease-in 3s forwards;
    animation-fill-mode: forwards;
}

@keyframes cssAnimation {
    to {
        width: 0;
        height: 0;
		padding: 0;
        overflow:hidden;
    }
}

/*--------------------------------------------------*/
/* Admin Tabs                                       */

#admin_tabs {
	margin-bottom: 1em;
}

a.button {
	color: #fff;
    background: rgb(var(--cps_altblue));
	text-decoration: none;
	padding: 5px;
	display: inline-block;
	margin-top: 5px;
}

span.status {
	float: right;
	padding: 10px;
	background: green;
	color: #fff;
	text-transform: uppercase;
}

span.cancelled {
	background: red;
}

span.part_payment {
	background: orange;
}

.billing_table {
	clear: both;
}

/*--------------------------------------------------*/
/* Admin table totals                               */

.footer_total {
	text-align: right;
	background: rgb(var(--cps_altblue));
	color: #fff;
	font-size: 18px;
}

/*--------------------------------------------------*/
/* Admin Auto Completes                             */

.admin_wrapper #autoComplete_list {
	position: static;
}

/*--------------------------------------------------*/
/* Admin Basket                                     */

.lnk_basket svg,
.lnk_basket svg g {
	fill: rgb(var(--cps_altblue));
}

.lnk_basket:hover svg g {
	fill: rgb(var(--cps_blue));
}

.admin-basket .single_form .text input {
	width: 150px;
}

.admin-basket .single_form .label {
	width: auto;
}

.customer_selection {
	margin-bottom: 1em;
}

.customer_selection h2 {
	margin-left: 20px;
}

.customer_selection .current_customer {
	margin-left: 20px;
	font-size: 20px;
}

/*--------------------------------------------------*/
/* Feedback Admin                                   */

td.average strong {
	font-size: 2em;
	background: #fff;
	width: 100px;
	display: inline-block;
}

.averages_table {
	border-left: 1px solid #000;
}

.averages_table tr,
.averages_table tr:nth-child(even) {
	background: #fff;
}

/*--------------------------------------------------*/
/* Financial Reorts                                 */

.totals_table tfoot td {
	background: #ccc;
	font-weight: bold;
}

/*--------------------------------------------------*/
/* Manage Course sessions                           */

#p_admin_products_sessions form .row {
	padding-bottom: 10px;
}

#p_admin_products_sessions form .row input[type="submit"],
.admin-blue-button {
	padding:10px;
	margin-left: 20px;
	background: rgb(var(--cps_altblue));
	font-weight: bold;
	color: white;
}

#p_admin_products_sessions form .row .label {
	display: inline-block;
	width: 290px;
}

.sort_list {
  background: #4286f4;
  width: 500px;
  padding: 1rem;
}

.list-hidden {
  position: absolute;
  top: -9999px;
  left: -9999px;
}

.ghost {
    opacity: .4;
}

.sort_list-item {
  background: #8bb3f4;
  margin: 1px 0;
}

.sort_list-item td {
	padding: 1rem;
}

.placeholder {
  display: none;
  background: #303742;
  pointer-events: none;
}

/*--------------------------------------------------*/
/* Traffic light helpers                            */

span.green,
span.red {
	font-size: 12px;
	color: #fff;
	padding: 3px 10px;
	border-radius: 10px;
	background: green;
	font-weight: bold;
	margin-right: 10px;
}

span.red {
	background: red;
}

/*--------------------------------------------------*/
/* Sittings Report                                  */

.summary_row td {
	background: #F0F0F0;
	font-weight: bold;
	font-size: 1.2em;
}

tr.seperator:nth-child(even),
tr.seperator:nth-child(even) td,
tr.separator td {
	background: #fff;
	padding: 20px;
}

.group_form .info .label {
	position: relative;
	left: -10px;
}

/*--------------------------------------------------*/
/* Dialog Styles                                    */

dialog {
  position: absolute;
  left: 0; right: 0;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: -webkit-fit-content;
  height: fit-content;
  margin: auto;
  border: solid;
  padding: 1em;
  background: white;
  color: black;
  display: block;
}

dialog:not([open]) {
  display: none;
}

dialog + .backdrop {
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(0,0,0,0.1);
}

._dialog_overlay {
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
}

dialog.fixed {
  position: fixed;
  top: 50%;
  transform: translate(0, -50%);
}

/*--------------------------------------------------*/
/* Dialog                                           */

	dialog {
		position: absolute;
		left: 0;
		right: 0;
		width: -moz-fit-content;
		width: -webkit-fit-content;
		width: fit-content;
		height: -moz-fit-content;
		height: -webkit-fit-content;
		height: fit-content;
		margin: auto;
		border: solid;
		padding: 1em;
		background: #FFF;
		color: black;
		overflow: auto;
		display: none;
		text-align: left;
	}

	dialog[open] {
		display: block;
	}

	dialog::backdrop {
		background: rgba(0,0,0,0.6);
	}

	dialog + .backdrop {
		background: rgba(0,0,0,0.6);
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
	}

	@media screen and (max-width: 540px) {
		dialog[_polyfill_modal] {
			top: 0;
			width: auto;
			margin: 1em;
		}
	}

	._dialog_overlay {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
	}



#p_admin_product_pricing_edit .date input {
	max-width: unset;
	width: 50%;
	text-align: left;
}


.customer_selection {
	background: #ccc;
	padding: 20px;
}

.customer_selection h2 {
	text-decoration: none;
	text-transform: uppercase;
	font-size: 24px;
	color: rgb(var(--cps_altblue));
}

th.filled_cell {
	background: #ebc2e0;
	color: #000;
}

.centered_table td {
	text-align: center;
}

.centered_table td.left_align {
	text-align: left;
	font-weight: bold;
}

.country_list td,
.country_header td {
	text-align: left !important;
	background: none;
	border-left: 0;
	border-right: 0;
}

.country_list,
.country_header  {
	background: none !important;
}

.country_header td:last-of-type,
.country_list td:last-of-type {
	border-right: 1px solid;
}

.country_header td {
	font-weight: bold;
	text-transform: uppercase;
}

.pseudo_header {
	background: #ebc2e0 !important;
	text-transform: revert !important;
}

.blue_bg td,
.total_row td {
	background: rgb(var(--cps_altblue));
	color: #fff;
}

.total_row td {
	font-weight: bold;
}

.total_row_category td {
	font-size: 1.4em;
	background: rgb(var(--cps_yellowgreen));
	color: #000;
	font-weight: bold;
}

.cat_name  {
	background: #fff !important;
}

.basic_table .spacer td {
	border-left: 1px solid #fff;
	border-right: 1px solid #fff;
	background: #fff;
}

.basic_table .prod_name td {
	border-top: 1px solid #000;
}

.basic_table .cat_name td {
	border-left: 1px solid #fff;
	border-right: 1px solid #fff;
	border-bottom: 0;
	text-transform: uppercase !important;
	font-size: 1.3em;
	padding-top: 20px;
	text-decoration: underline;
}

.basic_table .breakdown_header td,
.basic_table .breakdown_header {
	background: #fff !important;
	border-left: 1px solid #fff;
	border-right: 1px solid #fff;
	border-bottom: 1px solid #fff;
	text-decoration: underline;
	font-size: 1.4em;
	padding-top: 15px;
}

.total_outstanding {
	background: rgb(var(--cps_hotpink));
	padding: 5px 10px;
	border-radius: 10px;
	color: #fff;
	font-size: 1.2em;
}


.cn_history {
	font-size: 1.4em;
	background: #ccc;
	padding: 40px;
}


.cn_history .timeline {
	list-style-type: none;
	border-left: 6px solid green;
}

.cn_history .timeline li {
	margin-bottom: 3em;
	font-size: 0.9em;
	width: 30%;
	line-height: 1.3em;
	list-style-type: none;
	background: white;
	padding: 15px;
	border: 1px solid #000;
	overflow: visible;
	margin-left: 40px;
	position: relative;
}

.cn_history .timeline li .inner {
	overflow: hidden;
}


.cn_history .timeline li:before {
	content: "⬤";
	position: absolute;
	left: -53.5px;
	width: 20px;
	height: 20px;
	color: green;
}

.cn_history .timeline li .date {
	color: #c50000;
	font-size: 0.8em;
	display: block;
}

.cn_history .timeline li .balance {
	font-size: 0.8em;
	background: green;
	margin-top: 10px;
	position: absolute;
	bottom: -33px;
	right: -1px;
	color: #fff;
	padding: 3px;
}

.admin_gears {
	width: 100%;
	text-align: center;
	
}

.price-tier {
	float: right;
	position: relative;
	top: -60px;
}

.price-tier table {
	font-size: 0.9em;
	text-align: center;
	border-collapse: collapse;
}

.price-tier h3 {
	font-weight: bold	;
}

.price-tier table td, th {
	border: 1px solid #000;
	padding: 3px;
	vertical-align: middle;
}

.stand-out {
	padding: 10px;
	background: #e5ecf7;
	font-weight: bold;
	width: 60%;
	border: 1px dashed #000;
}

.ss-main .ss-single-selected,
.ss-main .ss-single-selected .placeholder {
	background: white;
}

.admin_content .updates_form {
	margin-left: 0;
	margin-right: 0;
	max-width: 100%;
}

.updates_form .row {
	padding-left: 0 !important;
}

#p_admin_report_tutor .basic_table tr:nth-child(even) {
	background: #fff;
}

.no_positioning {
	margin: 0;
	padding: 0;
	max-width: 100% !important;
}

.no_positioning .row {
	margin: 0;
	padding: 0;
}


/* Home banners edit preview styles */
#p_admin_home_banners_edit .banner-preview-wrap {
	margin-top: 24px;
}

#p_admin_home_banners_edit .banner-preview-wrap h2 {
	margin: 0 0 12px 0;
	font-size: 18px;
}

#p_admin_home_banners_edit .banner-preview-wrap h3 {
	margin: 0 0 8px 0;
	font-size: 15px;
	font-weight: 600;
}

#p_admin_home_banners_edit .bp-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

#p_admin_home_banners_edit .bp-frame {
	position: relative;
	display: inline-block;
	max-width: 100%;
	border: 1px solid #ddd;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

#p_admin_home_banners_edit .bp-frame img {
	display: block;
}

#p_admin_home_banners_edit .bp-land img:first-child {
	width: min(100%, 1200px);
	height: auto;
}

#p_admin_home_banners_edit .bp-land img:last-child {
	position: absolute;
	inset: 0;
	width: min(100%, 1200px);
	height: 100%;
	object-fit: contain;
	pointer-events: none;
}

#p_admin_home_banners_edit .bp-port img:first-child {
	width: 360px;
	height: auto;
}

#p_admin_home_banners_edit .bp-port img:last-child {
	position: absolute;
	inset: 0;
	width: 360px;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
}



//--------------------------------------------------
// Must stay at bottom

#now-marker {
	top: var(--now-marker-top, -9999px);
}



