body,
td,
p,
input,
select,
textarea,
button {
    font-variant: normal;
    text-transform: none;
    font-size: 1em;
    font-weight: normal;
    font-style: normal;
    text-decoration: none;
    font-family: Verdana, Arial, sans-serif;
    color: #000;
    box-sizing: border-box;
    max-width: 100%;
}

select {
    max-width: 15em;
}

header,
section,
footer,
aside,
nav,
main,
figure {
    display: block;
    clear: both;
}

section {
    position: relative;
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
}

section.block, section.product, .content, form.controls, ul.tabs, .tabContainer,
div.vertical, section.order, section.user, .adminMode form, .manage {
    max-width: 85em;
    margin: auto;
    width: 100%;
    box-sizing: border-box;
    text-align: left;
    margin-bottom: 2em;
    margin-top: 0;
}

form h3 {
    padding-bottom: 1em;
    border-bottom: 0.1em solid;
}

section.category, section.products, section.blocks {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content:center;
}

body {
    padding: 0;
    margin: 0;
    font-size: 62.5%;
}

body#tinymce {
    font-size: 0.75em;
}

form,
div.primary {
    clear: both;
    overflow: hidden;
    
}

div.primary {
    flex-direction: column;
    display: flex;
} 

div.primary > * {
    margin-left: auto;
    margin-right: auto;
}

fieldset {
    margin-bottom: 1em;
    border: none;
    clear: both;
}

table,
td,
p,
font {
    font-size: 1em;
}

table tbody td {
    padding: 0.2em 0.5em;
}

#wrapper,
#page,
#main {
    height: 100%;
}

#page,
#report {
    position: relative;
    font-size: 1.2em;
    overflow: visible;
}

header {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
    align-content: flex-start;
    padding: 1em;
}

header nav {
    display: flex;
    align-items: flex-start;
    font-size: 1.5vw;
    position: relative;
}

#main {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    display: flex;
    flex-direction: column;
}

footer {
    padding: 1em;
    padding-left: 0;
    padding-right: 0;
    min-height: 2em;
    overflow: hidden;
    margin-top: 2em;
    clear: both;
}

a {
    text-decoration: none;
    color: #125578;
    outline: none;
}

a:hover {
    color: #125578;
}

a img {
    border: none;
}

a * {
    text-decoration: none;
}

h1,
.h1,
.title {
    font-family: arial, verdana, sans-serif;
    font-size: 2em;
    font-weight: normal;
    margin-bottom: 0.5em;
    margin-top: 2em;
    display: block;
    color: #125578;
    clear: both;
}

h2,
.h2,
.heading {
    font-family: arial, verdana, sans-serif;
    font-size: 1.6em;
    font-weight: normal;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    display: block;
    color: #333;
}

h3,
.h3,
.subHeading,
.caption {
    font-family: arial, verdana, sans-serif;
    font-size: 1.3em;
    font-weight: bold;
    color: #333;
    margin-bottom: 1em;
    margin-top: 1.5em;
}

pre {
    font-family: revert;
    padding: 0.5em;
    background: #333;
    color: #fff;
    line-height: 1.8em;
}

div.hasSecondary aside {
    float: right;
    width: 30%;
    clear: none;
}

div.hasSecondary div.primary {
    float: left;
    width: 65%;
}

div.hasSecondary aside .item .details .image,
div.hasSecondary aside .item .details .video,
div.hasSecondary aside .item .details .googleMap {
    margin: 0;
    margin-bottom: 1em;
    float: none;
    width: auto;
}

#bodyText {
    position: relative;
}

.caption {
    margin-top: 0;
}

.caption a {
    text-decoration: none;
    color: inherit;
    display: block;
    font-size: 1em;
}

h4 {
    margin-top: 0;
    margin-bottom: 0;
    display: block;
    padding: 0;
    text-transform: uppercase;
}

.controls {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
}

.controls h1, .controls h2, .controls h3 {
    width: 100%;
}

.controls select,
.controls textarea,
.controls .inputText,
.controls input[type="text"],
.controls input[type="email"] {
    max-width: 100%;
    box-sizing: border-box;
    max-height: 200px;
}

.controls select.small,
.controls textarea.small,
.controls .inputText.small {
    width: 5em;
}

.controls input[type="number"] {
    width: 9em;
}

.controls input[type="number"].small {
    width: 5em;
}

.controls .dateField {
    width: 4em;
}

.controls .control {
    padding: 0.5em;
    vertical-align: top;
    max-width: 20em;
    min-width: 10em;
    border-radius: 0.5em;
    min-height: 5em;
    float: left;
    box-sizing: border-box;
    text-align: left;
}

.controls .control:hover {
    background: rgba(255, 255, 204, 0.5);
    color: #000000;
}

.controls .control.wide,
.controls .control.label,
.controls .control.month,
.controls .control.textarea,
.controls .control.richtext {
    float: none;
    max-width: unset;
    clear: both;
    width: 100%;
}

.controls .control.label {
    min-height: unset;
    border-bottom: solid 0.1em;
    padding: 0;
    margin-bottom: 0.5em;
    padding-bottom: 0.5em;
    border-radius: 0;
    font-weight: bold;
}

.controls .control.label .field {
    display: none;
}

.controls .control.month span.month {
    white-space: nowrap;
    padding-right: 2em;
    float: left;
}

.controls .control.wide textarea {
    width: 100%;
}

.controls .control.checkbox,
.controls .control.emailOptIn {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    align-items: center;
}

.controls .control>input[type=radio] {
    float: left;
    padding: 0.5em;
    margin: 0.5em;
}

.controls label {
    padding: 0.5em;
    display: block;
    text-transform: uppercase;
}

.controls .field {
    padding: 0.5em;
    vertical-align: top;
    text-align: center;
}

.controls .control.wide label, .controls .control.wide .field {
    display: inline-block;
    width: auto;
}

.controls .field select.searchMatch {
    width: 100%;
    display: block;
}

.controls .field div {
    text-align: left;
}

.controls p {
    clear: left;
}

.controls > button {
    margin-top: 3em;
    margin-left: auto;
}

/* --  Provides user feedback on screen details  -- */

.indicator {
    text-decoration: none;
    font-size: 0.8em;
    font-weight: normal;
    text-align: right;
    margin-bottom: 1em;
}

span.attribute,
div.attribute {
    display: flex;
    flex-direction: row;
    padding: 0.25em 0em;
    width: 100%;
    box-sizing: border-box;
    gap: 1em;
}

.attribute .attName {
    padding-right: 0;
    color: #0007;
}

div.attribute.OR:before,
div.attribute.OW:before {
    font-family: FontAwesome;
    content: "\f21e";
    color: #0007;
}

div.attribute.AR:before,
div.attribute.AW:before {
    font-family: FontAwesome;
    content: "\f023";
    color: #0007;
}

div.attribute.IT:before,
div.attribute.IT:before {
    font-family: FontAwesome;
    content: "\f132";
    color: #0007;
}

/* div.attribute.OR:before,
div.attribute.OW:before {
    font-family: FontAwesome;
    content: "\f007";
    padding-left: 0.5em;
    color: #0007;
} */

div.attribute.MR:before,
div.attribute.MW:before {
    font-family: FontAwesome;
    content: "\f0C0";
    color: #0007;
}

.attDescription {
    padding: 0.5em;
    font-size: 0.8em;
    color: #333;
    text-transform: initial;
}

article .attribute.textarea .attName,
article .attribute.documentLink .attName,
article .attribute.richtext .attName {
    display: none;
}

.attribute .attValue p {
    padding: 0;
}

.attValue li, .tabContainer li {
    margin: 1em;
}

.attribute .attIcon {
    float: right;
    padding-right: 1em;
}

.attribute .discount {
    font-weight: bold;
    line-height: 1em;
    color: #4e9a06;
}

.attribute .discount .saving {
    margin-left: 1em;
    padding: 0.5em;
    background: #edd400;
    color: #000000;
}

.attribute.link .attValue a {
    word-wrap: anywhere;
}

.order .attributes {
    float: left;
    margin-right: 2em;
    margin-bottom: 2em;
    font-size: 1.2em;
    line-height: 2em;
}

.order .orderItem,
.order .totals p {
    display: flex;
    flex-wrap: wrap;
    flex-flow: row wrap;
    line-height: 1.8em;
    align-items: flex-start;
    justify-content: right;
}

.order .totals p {
    justify-content: flex-end;
    font-weight: bold;
    margin: 0;
}

.order .orderItem>*,
.order .totals p>* {
    padding-left: 0.5em;
    padding-right: 0.5em;
}

.order .orderItem .details {
    flex-grow: 3;
}

.attributes {
    display: flex;
    flex-direction: column;
}

.attribute {
    clear: left;
    display: flex;
    flex-direction: row;
    gap:1em;
}

.orderDetails p.action {
    display: block;
    margin: 0;
    padding-top: 0.2em;
    padding-bottom: 0.2em;
}

.orderDetails p.action:before {
    font-family: FontAwesome;
    content: "\f013";
    padding-right: 0.5em;
}

.user {
    padding: 0.5em;
}

.user.selectable {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1em;
}

.user .attribute .attName {
    /* width: 15em; */
    text-align: right;
    color: #0009;
    float: left;
    font-weight: normal;
    padding: 0;
    padding-right: 1em;
}

.user .attribute span.attName,
.order .attribute span.attName {
    clear: left;
    float: left;
    padding-right: 0.5em;
    white-space: nowrap;
}

.user .attribute span.attValue,
.order .attribute span.attValue {
    float: left;
    clear: right;
    display: block;
}

table tr.attribute {
    float: none;
    display: table-row;
}

table tr.attribute td.attValue,
table tr.attribute td.attName {
    float: none;
    display: table-cell;
}

.orderStatus {
    float: right;
}

.orderStatus div,
.user .status {
    padding: 1em;
    color: rgba(0, 0, 0, 0.5);
    background: rgba(200, 200, 200, 0.5);
    font-size: 0.8em;
    text-transform: uppercase;
    overflow: hidden;
}

.orderStatus div.canceled,
.user .userCancelled,
.status.off {
    background: #FFE4E3;
}

.orderStatus div.finished {
    background: #FFE4E3;
}

.orderStatus div.finalised {
    background: #E0FFD3;
}

.orderStatus div.invoiced {
    background: #E0FFD3;
}

.orderStatus div.paused {
    background: #FFF6BF;
}

.orderStatus div.reoccurring,
.user .userActive,
.status.on {
    background: #E0FFD3;
}

table.order tfoot select {
    text-align: right;
}

select#orderOccurance {
    width: 100%;
}

.selectable {
    cursor: pointer;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    gap: 1em;
    padding: 0.5em;
    border-bottom: 0.1em #0007;
}

tr.selectable {
    display: table-row;
}

.selectable:hover {
    background-color: rgba(149, 255, 63, 0.5);
}

.highlight {
    background-color: rgba(255, 242, 63, 0.5);
}

.tableBorder tbody tr:hover td tbody tr td {
    background-color: transparent;
}

.tableBorder a:link {
    text-decoration: none;
}

.dragging,
.tableBorder tbody tr.dragging:hover,
.tableBorder tbody tr.shade.dragging,
.tableBorder tbody tr:hover {
    background-color: #FFF6BF66;
}

a.logo {
    background: url(images/logo.jpg) no-repeat 0% 50%;
    background-size: contain;
    min-width: 4em;
    height: 3em;
    display: inline-block;
    display: flex;
    align-content: center;
    align-items: center;
}

header a.logo {
    width: 15%;
    min-width: 8vw;
    height: 6em;
    margin-right: 2em
}

header a.logo h1 {
    display: none;
    margin: 0;
}

#banner #simpleSearch {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    align-content: stretch;
}

#banner #simpleSearch a.toggle {
    background: #333;
    min-width: 1.5em;
    text-align: center;
}

#banner #simpleSearch a.toggle:hover {
    background: #ddd;
}

#banner #simpleSearch>a.toggle .label {
    display: none;
}

#banner #simpleSearch input[type=text] {
    width: 10em;
    margin: 0;
    line-height: normal;
    background: #fff;
    border: none;
    padding: 0.25em;
}

#banner #simpleSearch form {
    border: none;
    background: rgba(0, 0, 0, 0.2);
    display: none;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    align-content: stretch;
    margin: 0;
}

#banner #simpleSearch form[style*='display: block'] {
    display: flex !important;
}

#banner #simpleSearch form button, #banner #simpleSearch form button:hover {
    margin: 0;
    border: none;
    color: #fff;
    background: #333;
}

#banner .controls #setCurrency {
    clear: none;
    margin-right: 1em;
    padding-top: 0.5em;
}

#banner .controls #setCurrency h3 {
    display: none;
}

nav {
    text-transform: capitalize;
}

nav#nav ul {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5em;
}

nav#nav ul ul {
    gap: 0.5em;
    justify-content: space-around;
    padding: 0.5em;
    font-size: 0.8em
}

nav#nav ul li {
    position: relative;
}

nav#nav ul li div {
    background: #125578;
    border-top: medium none;
    position: absolute;
    right: 0;
    white-space: normal;
    min-width: 10em;
    max-width: 25vw;
    width: 100vw;
    z-index: 999;
    font-size: 0.8em;

    /* display: none; */
    visibility: hidden;
    opacity: 0;
    transition: all 0.5s ease 0.3s;
}

nav#nav ul ul li div {
    position: static;
    width: auto;
}

nav#nav ul li.selected div {
    background: #333;
}

nav#nav ul li div span.description {
    display: none;
    padding: 0.5em;
    color: #ffffff;
}

nav#nav ul li:hover div,
nav#nav ul li.hover div {
    visibility: visible;
    transition: visibility 0s linear 0.5s, opacity 0s linear 0.5s;
    opacity: 1;
    /* display: block; */
}

nav#nav li {
    clear: both;
    display: block;
    margin: 0;
    padding: 0;
}

nav#nav a.toggle {
    display: block;
    cursor: pointer;
    align-content: center;
    align-items: center;
}

nav#nav li li {
    border: 0;
    padding: 0;
    font-weight: normal;
    flex-grow: 1;
}

nav a,
nav a:link,
nav a:visited {
    text-decoration: none;
    display: block;
    margin: 0;
    color: #ffffff;
    padding: 0.5em;
    background: #125578;
    white-space: nowrap;
}

nav li li a,
nav li li a:link,
nav li li a:visited {
    background: #fff3;
    text-align: center;
}

nav a:hover,
nav a:active {
    color: #333;
    background: #ABDBF2;
}

nav#nav li li a:hover,
nav#nav li li a:active {
    background: #fff7;
}

nav#nav li.selected a,
nav#nav li.selected a:hover {
    background: #333;
    color: #fff;
}

nav#nav ul li.kids > a::after {
  font-family: FontAwesome;
  content: "\f107";
  padding-left: 0.5em;
}

nav#nav ul li li.kids > a::after {
    content: none;
    padding-left: 0;
  }

.left {
    float: left;
    margin: 1em;
    margin-left: 0;
    margin-right: 5em;
}

.right {
    float: right;
    margin-bottom: 2em;
    margin-top: 0;
    margin-right: 0;
    margin-left: 5em;
    clear: none;
}

.clear {
    clear: both;
}

.clearfix {
    zoom: 1;
    /* For IE 6/7 (trigger hasLayout) */
}

.hide {
    display: none;
}

.mobileOnly {
    display: none !important;
}

.nowrap {
    white-space: nowrap;
}

.negative {
    color: #cc0000;
}

#searchOwnerUser #ownerId {
    height: 150px;
    overflow: auto;
}

.loading {
    background-image: url(images/admin/loading.gif);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    text-align: center;
    padding-top: 20px;
    color: #6FACCB;
}

.showNextRow {
    cursor: pointer;
}

tr.showNextRow td.state:after {
    font-family: FontAwesome;
    content: "\f067";
    padding-left: 1em;
}

tr.showNextRow.open td.state:after {
    font-family: FontAwesome;
    content: "\f068";
    padding-left: 1em;
}

span.icon {
    float: left;
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;
    background-position: 50% 50%;
}


/*
.googleMap .gm-style a, .googleMap .gm-style-cc span {
	display: none !important;
}
*/

.toolbar {
    background: #DBDBD5;
    padding: 0.5em;
    border-radius: 0.5em 0.5em 0 0;
    overflow: hidden;
}

/* Buttons for an item */

.item .popupMenu,
.user .popupMenu,
.order .popupMenu {
    float: left;
    position: relative;
    margin: 0px;
    padding: 0px;
}

.details .colour .attValue {
    display: block;
    height: 20px;
}

article .status,
.block .status {
    background: #333333dd;
    color: #ffffffcc;
    padding: 0.5em;
    float: left;
    text-transform: uppercase;
}

article .attributes>.status {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 999;
}

article.item.CANCELED,
article.item.AR {
    border: #c00a solid 0.5em;
}

.status.CANCELED,
.status.AR {
    background: #cc0000aa;
    color: #fff;
}

.status.CURRENT {
    background: #73d216aa;
    color: #333;
}

.status.EXPIRED {
    background: #edd400aa;
    color: #333;
}

.status a:link {
    color: inherit;
    font-style: italic;
}

.button,
.button:visited,
.openClose,
ul.tabs li,
.bar,
.bar:link,
.bar:visited,
.inputBoxButton,
button,
form input[type=submit] {
    display: inline-block;
    z-index: 80;
    background-color: rgba(0, 0, 0, 0.3);
    background: none;
    color: rgba(0, 0, 0, 0.7);
    padding: 0.5em 0.85em;
    text-align: center;
    text-decoration: none;
    /* white-space: nowrap; */
    margin: 0.5em;
    cursor: pointer;
    text-transform: uppercase;
    border: solid 0.1em;
    white-space: nowrap;
}

.buttons .button, .buttons button {
    margin: auto;
}

button[disabled] {
    cursor: not-allowed;
}

ul.tabs {
    margin-bottom: 0;
}

div.vertical > ul.tabs {
    max-width: 3.5em;
    padding: 0;
    display: flex;
    flex-direction: column;
    margin-top: 1em;
    margin-bottom: 1em;
}

div.vertical > ul.tabs li {
    float: none;
    display: block;
    margin: 0;
    text-align: center;
    min-width: unset;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.3) 80%, rgba(0, 0, 0, 0.4) 100%);
}

div.vertical > ul.tabs li.selected {
    border: solid 0.1em rgba(0, 0, 0, 0.3);
    border-right: none;
    background: #fff;
    margin-right: -0.1em;
}

ul.tabs.labelOnHover li {
    position: relative;
}

ul.tabs.labelOnHover li a>span {
    display: none;
    position: absolute;
    top: 0;
    padding: 0.5em;
    margin-left: 1.5em;
    background: #333;
    padding-right: 2em;
    border-radius: 0 1em 1em 0;
}

ul.tabs.labelOnHover li:hover {
    background: #333;
}

ul.tabs.labelOnHover li:hover a>span {
    display: block;
}

ul.tabs.labelOnHover li.selected:hover a>span {
    background: #fff;
}

.button.red,
ul.tabs li.red,
.openClose.red {
    background-color: rgba(200, 0, 0, 0.7);
    color: #000000;
}

.button.orange,
ul.tabs li.orange,
.openClose.orange {
    background-color: rgba(200, 100 , 0, 0.7);
    color: #000000;
}

.button.green,
button.green,
ul.tabs li.green,
.openClose.green {
    background-color: rgba(0, 200, 0, 0.7);
    color: #000000;
}

.button.blue,
ul.tabs li.blue,
.openClose.blue {
    background-color: rgba(0, 0, 200, 0.7);
    color: #000000;
}

.button.yellow,
ul.tabs li.yellow,
.openClose.yellow {
    background-color: rgba(200, 200, 0, 0.7);
    color: #000000;
}

.button.active {
    background-color: #ABDBF2;
}

.button:hover,
.openClose:hover,
ul.tabs li:hover,
.bar:hover,
.inputBoxButton:hover,
button:hover,
form input[type=submit]:hover {
    background-color: rgba(0, 0, 0, 0.7);
    color: rgba(255, 255, 255, 0.6);
    text-shadow: none;
}

.mce-container button:hover,
.mce-reset button:hover {
    background-color: unset;
}

.button.left {
    float: left;
    margin-right: 0.5em;
    margin-left: 0;
}

.button span {
    display: none;
}

.button label {
    font-weight: normal;
    padding: 0;
}

.button input {
    margin: 0;
    display: none;
}

.openClose.open,
.item .buttons .button.openClose.open,
.item .buttons .button.openClose.open:link,
.item .buttons .button.openClose.open:visited {
    border-bottom: none;
    clear: both;
    margin: 0;
    margin-top: 0.5em;
    text-align: left;
}

.openClose.open span {
    display: inline;
}

.openClose h3 {
    font-size: 1em;
    margin: 0;
    padding: 0;
    font-weight: inherit;
}

.openClose:after {
    font-family: FontAwesome;
    content: "\f107";
    padding-left: 1em;
}

.openClose.open:after {
    font-family: FontAwesome;
    content: "\f106";
    padding-left: 1em;
    float: right;
}

.openClose.row {
    float: none;
    display: block;
}

.openClose.wide {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin-left: 0;
    margin-right: 0;
}

section.dialog {
    text-align: center;
    font-size: 1.5em;
}

section.dialog form.controls .control {
    float: none;
    width: 100%;
    max-width: unset;
    box-sizing: border-box;
}

section.dialog form.controls .control label {
    text-align: center;
}

section.dialog button,
section.dialog input[type=submit],
section.dialog .openClose,
section.dialog a.button {
    display: inline-block;
    float: none;
}

.sectionOpen {
    background: rgba(255, 255, 255, 0.5);
    padding: 0.5em;
    margin-bottom: 1em;
    overflow: hidden;
    clear: both;
    text-align: left;
    border-top: solid 0.1em rgba(0, 0, 0, 0.2);
    border-bottom: solid 0.1em rgba(0, 0, 0, 0.2);
}

td.buttons {
    vertical-align: middle;
    white-space: nowrap;
    float: none;
    flex-wrap: nowrap;

}

td.buttons a.button {
    float: none;
    display: inline-block;
    margin: 0;
}

.bar .buttons {
    float: right;
    margin-top: 3px;
}

td.buttons .button span,
.bar .buttons .button span {
    display: inline-block;
    text-indent: -9999px;
}

.item .buttons .button img,
.user .buttons .button img,
.order .buttons .button img,
.button img {
    vertical-align: text-bottom;
}

.bar,
.bar:link,
.bar:visited {
    float: none;
    text-align: left;
    margin: 4px 0 4px 0;
    line-height: 28px;
    font-size: inherit;
}

.bar a:link,
.bar a:visited {
    float: left;
    text-decoration: none;
    color: inherit;
}

.actionButtons {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100%;
}

.buttons .menu a {
    text-decoration: none;
}

.item .buttons .menu .button,
.user .buttons .menu .button,
.order .buttons .menu .button,
.imageList .buttons .menu .button {
    text-align: left;
    float: left;
}

.menu span,
.order .buttons .button span {
    padding-left: 1em;
    word-break: break-all;
}

.button.image span,
.menu a.image span {
    display: inline;
    padding-left: 4px;
}


/* --  Used For Site Exceptions and other errors  -- */

.notification,
.actionSuccess,
.exception,
.information,
.security,
.adminDetails,
.informationIT,
.actionFeedback div {
    color: rgba(0, 0, 0, 0.8);
    text-align: left;
    padding: 0.5em;
    overflow: hidden;
    display: block;
}

div.notification,
div.actionSuccess,
div.exception,
div.information,
div.adminDetails,
div.security,
div.informationIT,
.actionFeedback div {
    clear: both;
    max-width: 40em;
    margin: auto;
}

span.notification,
span.actionSuccess,
span.exception,
span.information,
span.adminDetails,
span.security,
span.informationIT {
    margin: 0.4em;
    padding: 0.5em;
}

.actionSuccess,
.actionFeedback .success,
.actionFeedback .add  {
    background-color: rgba(0, 200, 0, 0.5);
}

.notification {
    background-color: rgba(200, 200, 0, 0.5);
}

.exception,
.actionFeedback .remove,
.actionFeedback .admin {
    background-color: rgba(200, 0, 0, 0.5);
}

.actionFeedback .debug {
    background-color: rgba(200, 100, 200, 0.3);
}


/* --  Used For user information  -- */

.information,
.actionFeedback .change,
.adminDetails {
    background-color: rgba(0, 100, 200, 0.3);
}

.information a,
.adminDetails a {
    color: rgba(0, 100, 200, 0.8);
}

.security,
.informationIT {
    background-color: rgba(100, 100, 100, 0.5);
}

.adminDetails h1,
.adminDetails h2,
.adminDetails h3,
.actionSuccess h1,
.actionFeedback h1,
.notification h1,
.exception h1,
.information h1,
.security h1,
.actionSuccess h2,
.actionFeedback h2,
.notification h2,
.exception h2,
.information h2,
.security h2,
.actionSuccess h3,
.actionFeedback h3,
.notification h3,
.exception h3,
.information h3,
.security h3,
.actionSuccess h4,
.actionFeedback h4,
.notification h4,
.exception h4,
.information h4,
.security h4 {
    margin: 0px;
    padding: 0px;
    font-weight: bold;
    border-bottom: none;
    text-decoration: none;
    color: rgba(0, 0, 0, 0.6);
    font-family: verdana, sans-serif;
    line-height: normal;
    margin: 0 0 0.5em;
    padding-bottom: 0.5em;
    text-align: center;
}

.selectListIcon {
    padding-left: 20px;
    background-position: 2px 2px;
    background-repeat: no-repeat;
    width: 210px;
}

.selectListIcon option {
    padding-left: 23px;
    background-position: 2px 1px;
    background-repeat: no-repeat;
}

.code {
    width: 120px;
    text-transform: uppercase;
}

textarea.richtext,
textarea.inputText {
    width: 100%;
    box-sizing: border-box;
}

input.dateField,
input.small,
input.number,
input[type=number],
input.colour {
    width: 8em;
    text-align: right;
}

.default .inputText {
    width: 50px;
}

.datePicker img {
    border: solid 1px #cccccc;
    vertical-align: bottom;
}

.datePicker span {
    margin-top: 0.5em;
}

input.datePicker {
    width: 150px;
}

.inputBoxButton {
    float: none;
    height: 24px;
    display: inline;
    margin: 0;
    text-align: center;
}

.tableBorder,
table.stripe {
    margin-bottom: 1em;
    margin-top: 1em;
    clear: both;
    border-collapse: collapse;
    background: #fff7;
    width: 100%;
}

table th,
.columnHeader {
    text-align: left;
    font-size: 1.1em;
    color: rgba(0, 0, 0, 0.5);
    border: 0.1em solid rgba(0, 0, 0, 0.3);
    font-weight: normal;
    padding: 0.2em 0.5em;
    white-space: nowrap;
    text-shadow: 0.1em 0.1em rgba(255, 255, 255, 0.6);
    /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#000000+0,000000+100&0.05+0,0.25+100 */
    background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.25) 100%);
    /* FF3.6-15 */
    background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.25) 100%);
    /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.25) 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#0d000000', endColorstr='#40000000', GradientType=0);
    /* IE6-9 */
}

.tableBorder tbody td,
table.stripe td {
    border-bottom: 1px solid #DDDDDD;
    border-top: 1px solid #DDDDDD;
}

table td.number,
table th.number,
.number {
    text-align: right;
    white-space: nowrap;
}

.tableBorder tbody tr.open td {
    border-bottom: none;
}

.tableBorder tbody tr.dataOpen td {
    border-top: none;
}

.tableBorder tfoot td,
table.stripe tfoot td {
    font-weight: bold;
    border: none;
    padding: 0.2em 0.5em;
}

tr.credit td {
    background: #E0FFD3;
}

.tableBorder tr.credit td {
    border-top: solid 1px #8AD66A;
    border-bottom: solid 1px #8AD66A;
}

tr.debit td {
    background: #fcecec;
}

.tableBorder tr.debit td {
    border-top: solid 1px #E47E7A;
    border-bottom: solid 1px #E47E7A;
}

.tableBorder .tableBorder .columnHeader,
.tableBorder .tableBorder th {
    background-color: #ABDBF2;
}

.list .row {
    border-bottom: 1px solid #DDDDDD;
    padding: 0.5em;
    clear: both;
    float: left;
    width: 100%;
    box-sizing: border-box;
}

.list .row>* {
    float: left;
    width: 45%;
    margin-right: 2%;
}

.list .date {
    text-align: right;
}

.setUser .scroll {
    padding: 0;
    border: 0;
}

span.help {
    font-size: 0.8em;
    font-style: italic;
}

.hint,
.tip {
    display: none;
    position: absolute;
    width: 15em;
    padding: 1em;
    border-radius: 0.5em;
    text-align: left;
    color: #333333;
    z-index: 9999;
    background: #ffc;
    font-size: 0.8em;
}

.hint .hintPointer,
.tip .tipPointer {}

.hint a.close {
    float: right;
    width: 16px;
    height: 16px;
    text-indent: -9999px;
    margin-left: 6px;
    background: url(images/admin/close.png) no-repeat;
}

.hint.wide {
    width: 350px;
}

#pageBodyCalendar .date {
    background: #AAAAAA;
    padding: 6px;
    margin: 0px;
    margin-right: 20px;
    text-align: center;
}

#pageBodyCalendar .date .day {
    display: block;
    font-weight: bold;
    font-size: 20px;
}

#pageBodyCalendar .date .month {
    display: block;
    font-weight: normal;
    font-size: 12px;
}

#pageBodyCalendar .date .year {
    display: none;
}

.pageSplitSort {
    margin-top: 1em;
}

.pageSplitSort .controls .contrtol select {
    width: auto;
}

#orderByAttribute {
    float: right;
}

#resultSets {
    float: left;
    width: auto;
}

#accountStatement table,
#paymentResults table {
    border-collapse: collapse;
}

#accountStatement table td,
#paymentResults table td,
table tr.showNextRow td {
    vertical-align: top;
}

#accountStatement td p,
#paymentResults td p {
    margin: 0;
}

#accountStatement tr.debit .details {
    text-transform: uppercase;
}

#accountStatement tr.debit .details div.notes {
    font-size: 0.8em;
    text-transform: initial;
}

.results .user {
    border-top: solid 1px;
}


/* styles for the star rater */

.starRating {}

.starRating a,
.starRating a:visited {
    padding-right: 0.5em;
    color: #ccc;
}

.starRating a.selected,
.starRating a:hover {
    color: #000;
}


/* remove halo effect in firefox   */

a:active {
    outline: none;
}

.item .author {
    background: #ffffff;
    position: absolute;
    margin: 0;
    padding: 0;
    border-radius: 50%;
    right: 0;
    top: 0;
}

.item .author a {
    text-decoration: none;
    display: block;
}

.item .author img {
    height: 30px;
    margin: 0px;
    border-radius: 50%;
    float: left;
    background: url(images/icons/user.png) 50% 50% no-repeat;
    min-width: 20px;
    width: auto !important;
    width: 20px;
}

.item .author span {
    display: none;
}

label {
    cursor: pointer;
    padding-right: 1em;
}

nav#categoryTree {
	clear: both;
	background: #222;
	font-size: 1.6em;
	padding: 1em;
}

nav#categoryTree ul {
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: row;
	gap: 1em;
	flex-wrap: wrap;
	font-size: 0.9em;
	justify-content: space-between;
}

nav#categoryTree ul li {
	clear: none;
	padding: 0;
	list-style: none;
}

nav#categoryTree ul li.kids {
	border: none;
	padding: 0;
}

nav#categoryTree ul div.description, nav#categoryTree ul li.kids ul  {
	padding: 1em;
	background: #fff7
}

nav#categoryTree li li {
	background: none;
	border: 0;
	padding: 0;
	font-weight: normal;
	line-height: 1.6em;
    max-width: 29em;
}

nav#categoryTree a, nav#categoryTree a:link, nav#categoryTree a:visited {
	text-decoration: none;
	display: inline-block;
	margin: 0;
	padding: 0.5em 0.8em;
	border-radius: 0em;
	background: #fff7;
	color: #333;
}

nav#categoryTree a:hover {
	background: linear-gradient(0deg, #fff7 0%, #fff3 100%);
}


article.item span.tags {
    background: rgba(255, 255, 255, 0.5);
    padding: 0.5em;
    border-radius: 0.5em;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

article.item .attribute.tags .attName {
    display: none;
}

.tags a {
    padding-right: 1em;
    text-transform: uppercase;
    font-size: 0.8em;
}

#scriptResult table {
    border: solid 1px #777777;
    border-collapse: collapse;
    width: 100%;
}

#scriptResult td {
    border-top: solid 1px #cccccc;
    border-left: none;
    border-right: none;
    border-bottom: none;
    margin: 0px;
}

#scriptResult tr:hover td {
    border: none;
    border-top: solid 1px #438DB4;
    border-bottom: solid 1px #438DB4;
    background-color: #ACDCF3;
}

*.iconFile {
    padding-left: 20px;
    background: url(images/icons/document.png) no-repeat 2px 50%;
}

.iconPDF {
    background-image: url(images/icons/document-pdf.png);
}

.iconTXT,
.iconCSV {
    background-image: url(images/icons/document-text.png);
}

.iconFAL,
.iconSWF {
    background-image: url(images/icons/document-flash.png);
}

.iconDOC {
    background-image: url(images/icons/document-word.png);
}

.iconXSL {
    background-image: url(images/icons/document-excel.png);
}

.iconHTM,
.iconHTML {
    background-image: url(images/icons/document-code.png);
}

.iconJPG,
.iconPNG,
.iconGIF {
    background-image: url(images/icons/document-image.png);
}

.iconMP3,
.iconWAV {
    background-image: url(images/icons/document-music.png);
}

.iconAVI,
.iconMOV,
.iconFLV {
    background-image: url(images/icons/document-film.png);
}

ul.tabs {
    padding: 0;
    list-style: none;
    margin-top: 1em;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.2em;
    padding-left: 1em;
}

ul.tabs.bottom {
    margin-top: 0;
    margin-bottom: 1em;
}

ul.tabs li,
ul.filter li {
    white-space: nowrap;
    margin: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.3) 80%, rgba(0, 0, 0, 0.4) 100%);
    border: none;
    font-size: 1.2em;
}

ul.tabs li.selected,
ul.filter li.selected {
    background: #fff;
    border: solid 0.1em rgba(0, 0, 0, 0.3);
    border-bottom-color: rgba(0, 0, 0, 0.3);
    border-bottom-style: solid;
    border-bottom-width: 0.1em;
    border-bottom: none;
    margin-bottom: -0.1em;
}

ul.tabs.bottom li.selected {
    border: solid 0.1em rgba(0, 0, 0, 0.3);
    border-top: none;
    margin-top: -0.1em;
    margin-bottom: 0;
}

ul.tabs li.selected a,
ul.filter li.selected a {
    color: #000d;
}

ul.tabs li a img,
ul.filter li a img {
    vertical-align: middle;
}

ul.tabs li a,
ul.filter li a {
    color: inherit;
    text-decoration: none;
}

ul.tabs li a.disabled,
ul.filter li a.disabled {
    font-style: italic;
    cursor: default;
}

ul.tabs li a span,
ul.filter li a span {
    padding-left: 0.5em;
}

ul.filter {
    margin: 0;
    padding: 0;
    float: right;
    clear: both;
    list-style: none;
    overflow: hidden;
}

ul.filter li {
    border: solid 0.1em rgba(0, 0, 0, 0.3);
    border-radius: 0.5em;
    margin-right: 0;
    margin-left: 1em;
}

.tabContainer {
    padding: 1em;
    clear: both;
    border: solid 0.1em rgba(0, 0, 0, 0.3);
    overflow: hidden;
    background: #ffffff;
}

.tabContainer.bottom {
    margin-bottom: 0;
}

.tabContainer>div {
    overflow: scroll;
}

div.vertical {
    margin: auto;
    display: flex;
    flex-direction: row;
}

div.vertical > .tabContainer {
    clear: none;
    overflow: auto;
    margin: 0;
}

hr {
    margin-top: 1em;
    margin-bottom: 1em;
    padding: 0;
    height: 0.1em;
    border: none;
    border-top: solid 0.1em rgba(0, 0, 0, 0.5);
    clear: both;
}

.scroll {
    margin-bottom: 1em;
    overflow: auto;
    border: solid 0.1em rgba(0, 0, 0, 0.5);
    border-left: none;
    border-right: none;
    background: rgba(255, 255, 255, 0.5);
    padding: 1em;
}

#attributeKey h3 {
    margin: 0;
    margin-bottom: 5px;
    line-height: 22px;
}

#attributeKey h4 {
    clear: both;
    margin: 0;
    padding-top: 12px;
    padding-bottom: 6px;
}

#attributeKey div,
#attributeKey span {
    float: left;
    line-height: 18px;
    margin-bottom: 6px;
    margin-left: 30px;
}

#attributeKey div img,
#attributeKey span img,
#attributeKey h4 img {
    vertical-align: top;
}

.captcha {
    border: 0.1em solid #D0D0D0;
    border-radius: 0.5em;
    background: rgba(255, 255, 255, 0.2);
    padding: 1em;
    margin: 1em;
    margin-top: 2em;
    margin-bottom: 2em;
    clear: both;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 2em;
}

.captchaCode {
    font-size: 2em;
    padding-right: 1em;
}

#userCaptcha {
    margin: 0;
    width: 3.5em;
    font-size: 2em;
    text-transform: uppercase;
    text-align: center;
}

article.item,
article.user {
    margin-bottom: 2em;
    float: none;
    clear: both;
    width: 100%;
    box-sizing: border-box;
    max-width: 85em;
    margin: auto;
}

article.item.simple {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1em;
    margin: 0;
    padding: 0.5em;
    border-bottom: solid 0.1em rgba(0, 0, 0, 0.3)
}

article .details .image,
article .details .video,
article .details .images,
article .details .googleMap {
    display: block;
    max-width: 33em;
    width: 40%;
    min-width: 10em;
    margin: 0;
}

article .details .image .frame,
article .details .googleMap {
    max-height: 450px;
    overflow: hidden;
    box-sizing: border-box;
}

.googleMap .googleMap {
    display: none;
}

article .details .video iframe {
    max-width: 100%;
}

article .details.hasImages.cycle .images {
    position: relative;
    overflow: hidden;
    height: 68vw !important;
    max-height: 400px;
    min-height: unset !important;
}

article .details.hasImages.cycle .images a {
    display: block;
}

article .details.hasImages.cycle .images .image {
    width: 100%;
    max-height: unset;
    visibility: hidden;
}

article .details.hasImages.cycle .images .image.cycling {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    visibility: visible;
    display: none;
}

article .details .images .image {
    width: 50%;
    max-height: 200px;
    margin: 0;
    float: left;
}

article .details .frame {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}

article .details .images .image.active {
    width: 100%;
    margin: 0;
    max-height: 400px;
}

#productImagePicker {
    clear: both;
}

#productImagePicker .image {
    max-width: 48%;
    border: solid 0.1em rgba(0, 0, 0, 0.3);
    padding: 0.5em;
    box-sizing: border-box;
    float: left;
    margin: 1%;
    position: relative;
}

#productImagePicker .image h3 {
    margin-top: 1em;
    margin-bottom: 0em;
    padding-bottom: 1em;
    border-bottom: solid 0.1em rgba(0, 0, 0, 0.3);
    text-align: center;
}

#productImagePicker a.remove {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 2em;
    padding: 0.5em;
    color: #fff;
    text-shadow: 0 0 0.2em #000;
}

article .attributes {
    vertical-align: top;
    text-align: left;
    line-height: 1.8em;
    position: relative;
    padding: 1em;
    display: flex;
    flex-direction: column;
    flex-grow: 3;
    box-sizing: border-box;
    max-width: 85em;
    margin: auto;
    width: 20em;
}

article h3.caption {
    padding-top: 1em;
    padding-bottom: 1em;
    margin-bottom: 1em;
    border-bottom: solid 1px #7777;;
    text-transform: uppercase;
}

article .hasMap a.button.map {
    display: none;
}

article .noImage .attributes {
    width: 100%;
    padding-top: 0;
    max-width: unset;
}

article .attributes .textarea {
    display: block;
    margin-bottom: 0.5em;
}

article .details {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  flex-wrap: wrap;
  row-gap: 4em;
  column-gap: 2em;
  width: 100%;
  align-items: flex-start;
}

article:nth-child(even) .details {
    flex-direction: row-reverse;
}

article .image a {
    display: block;
}

article .image img {
    display: block;
    width: 100%;
    max-width: none;
    image-orientation: from-image;
}

.buttons, .menu {
    position: relative;
    clear: both;
    min-height: 3em;
    display: flex;
    flex-wrap: wrap;
    gap:0.5em;
}

.buttons.wide {
    flex-basis: 100%;
}

td.buttons,
div.buttons {
    text-align: right;
}

section header {
    text-align: center;
}

header div.buttons {
    float: none;
    text-align: center;
}

.buttons a {
    padding-left: 1em;
}

.item .buttons,
.item .buttons .public,
.block .buttons {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    width: 100%;
    flex-wrap: wrap;
    align-items: center;
}

article.item .buttons {
    position: static;
    margin-top: 2em;
    text-transform: uppercase;
    flex-grow: 2;
}

article.item.simple .buttons {
    width: auto;
  flex-grow: unset;
  margin: 0;
}

#objectBodyInfo .popupMenu,
article.item .buttons .popupMenu {
    position: relative;
}

section.block:hover .popupMenu,
article.product:hover .admin .popupMenu {
    display: block;
}

.popupMenu div.menu {
    display: none;
    background: #b2b2b2;
    position: absolute;
    bottom: 0;
    max-width: 30em;
    min-width: 18em;
    z-index: 999;
    text-align: center;
}

.popupMenu.hover div.menu {
    display: block;
}

.popupMenu div.menu h4 {
    padding: 8px;
    margin: 0;
    color: #000000;
    margin: 0.5em;
    clear: both;
}

.popupMenu div.menu ul {
    list-style: none;
    line-height: 2em;
    padding-left: 1em;
}

.popupMenu div.menu ul a {
    text-decoration: none;
}

.item .buttons .buttons {
    text-align: right;
    display: block;
    line-height: normal;
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100%;
}

.popupMenu .menu a.button:link {
    float: none;
    margin: 2%;
    min-width: 46%;
    box-sizing: border-box;
}

.popupMenu a.button span {
    text-align: left;
}

.item .buttons .buttons .publicButtons {
    margin-top: 0.5em;
}

.options td {
    padding: 0.5em;
}

.options td.attributeName {
    width: 250px;
    padding: 0;
    text-align: left;
}

.options .indent td.attributeName {
    padding-left: 2em;
    width: 210px;
}

.options h3 {
    margin-top: 1em;
    margin-bottom: 0.5em;
    padding-bottom: 0.5em;
    line-height: 1.3em;
    font-size: 1.3em;
}

.options h3 img {
    float: left;
    margin-right: 12px;
}

input.checkbox {
    margin-bottom: 5px;
    margin-top: 5px;
    vertical-align: sub;
    cursor: pointer;
}

div.dragAndDropFiles,
div.uploadFiles {
    background: none repeat scroll 0 0 rgba(171, 219, 242, 0.5);
    overflow: hidden;
    padding: 1em;
    text-align: center;
    border-radius: 1em;
    margin-top: 1em;
    margin-bottom: 1em;
}

div.dragAndDropFiles h3,
div.uploadFiles h3 {
    text-align: center;
}

div.dragAndDropFiles.dragOver {
    border-color: #125578;
    background: #ABDBF2;
    color: #125578;
}

div.dragAndDropFiles h5 {
    padding-left: 20px;
    background-position: 0px;
    background-repeat: no-repeat;
    background-position: 0 50%;
    margin-top: 4px;
    margin-bottom: 4px;
}

div.dragAndDropFiles .status {
    padding: 4px;
}

div.dragAndDropFiles .progress {
    padding-right: 20px;
    background: #ffffff url(images/admin/loading.gif) right 50% no-repeat;
}

div.dragAndDropFiles .fileList {
    text-align: left;
}

.fileSelector .folders {
    border-bottom: solid 0.1em rgba(0, 0, 0, 0.3);
    padding: 1em;
}

.fileSelector .folder {
    padding: 0.5em;
    width: 10em;
    display: inline-block;
}

.fileSelector .file {
    border: solid 0.1em rgba(0, 0, 0, 0.3);
    margin: 0.5%;
    display: inline-grid;
    position: relative;
    vertical-align: top;
    width: 22%;
    overflow: hidden;
}

.fileSelector .file .preview {
    text-align: center;
    max-height: 15em;
    margin-bottom: 0.5em;
    overflow: hidden;
}

.fileSelector .file .attributes,
.fileSelector .file .controls {
    padding: 0.5em;
}

.fileSelector .file .controls {
    display: none;
}

.fileSelector .file .attributes .attribute {
    display: block;
}

.fileSelector .file input[type=checkbox] {
    margin-right: 1em;
    position: absolute;
    top: 0;
    left: 0;
}

.fileSelector .file .preview img {
    width: 100%;
    display: inline-block;
}

.fileSelector .file:hover,
.fileSelector .folder:hover {
    background-color: #FFF6BF;
}

.fileSelector .file:hover .controls {
    display: block;
}

.imagePreview img {
    max-width: 100%;
}

.products {
    clear: both;
}

.products .childItems {
    clear: both;
    font-size: 0.8em;
}

.products .childItems .item {
    width: 32%;
    min-width: 300px;
    float: left;
    margin-right: 2%;
}

.item .parentItem>h3,
.item .childItems>h3,
.item .relatedItems>h3,
.item .tagList h3,
.item .itemImages h3,
.item .map h3 {
    margin-top: 1em;
    padding-top: 1em;
    margin-bottom: 1em;
    padding-bottom: 1em;
    border-bottom: solid 1px;
    text-transform: uppercase;
    clear: both;
}

#itemTypeViewer .bar.info {
    display: none;
    top: 25px;
    position: absolute;
    z-index: 999;
    right: 0;
    line-height: 14px;
    font-size: 11px;
}

.itemImages {
    clear: both;
}

#gallery {
    margin-bottom: 2em;
    clear: both;
    float: left;
    width: 100%;
    background: #E5E5E5;
    padding: 0.5em;
    box-sizing: border-box;
}

#gallery #photo {
    display: none;
    position: fixed;
    background: #000;
    z-index: 10000;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    bottom: 0;
}

#gallery #photo a {
    position: absolute;
    top: 1em;
    right: 1em;
    display: block;
    padding: 0.5em;
    background: #ffffff;
    border-radius: 0.5em;
    cursor: pointer;
    font-size: 1.2em;
}

#gallery #photo .image {
    float: none;
    min-width: 400px;
    padding: 0.5em;
}

#gallery #photo .image .frame {
    padding: 0;
    max-height: unset;
    text-align: center;
}

#gallery #photo .image img {
    width: 100%;
    display: inline-block;
    margin: 0;
    max-width: 900px;
    text-align: center;
}

#gallery #thumbnails {
    padding: 0;
    margin: 0;
    padding: 1em;
    display: inline;
}

#gallery #thumbnails .image {
    float: left;
    display: block;
    margin: 0.5em;
    padding: 0;
    cursor: pointer;
    clear: none;
    width: auto;
    max-width: 200px;
    overflow: hidden;
    border: #fff solid 0.5em;
    background: #fff;
}

#gallery #thumbnails .image img {
    height: 85px;
    width: auto;
    display: block;
    margin: 0;
}

#gallery #thumbnails .image.selected {
    border-color: rgba(0, 0, 0, 0.5);
}

#gallery #thumbnails .image h3 {
    border: none;
    background: none;
    text-align: center;
    color: #000;
}

ul.actionList li.done {
    list-style: none;
    padding-left: 20px;
    background: url(images/icons/tick.png) 0 3px no-repeat;
    padding-top: 2px;
    padding-bottom: 2px;
}

.googleMap {
    height: 90vh;
    width: 100%;
    border: 1em solid rgba(100, 100, 100, 0.5);
}

a[rel="lightbox"] {
    cursor: url(images/icons/zoom_in.png), auto;
}

#menu .logo {
    background: url(images/logo.png) no-repeat scroll 50% 50% rgba(255, 255, 255, 0.7);
    border-radius: 10px;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
    height: 111px;
    margin-bottom: 20px;
    display: block;
}

#toolbar .logo:hover,
#menu .logo:hover {
    background-color: rgba(171, 219, 242, 0.2);
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
}

.attribute .price .priceDetails {
    padding-left: 0.6em;
}

.red {
    color: rgb(200, 0, 0);
}

.orange {
    color: rgb(200, 100, 0);
}

.yellow {
    color: rgb(200, 200, 0);
}

.green {
    color: rgb(0, 200, 0);
}

.blue {
    color: rgb(0, 0, 200);
}

.purple {
    color: rgb(100, 0, 200);
}

#actionProgress,
#sessionTimeout {
    position: fixed;
    width: 80%;
    box-shadow: 0 0 2em #000000;
    border: solid 0.2em;
    background: rgba(255, 255, 255, 0.8);
    color: black;
    text-align: center;
    font-size: 2em;
    font-weight: bold;
    top: 40%;
    left: 0;
    border-radius: 1em;
    margin-left: 10%;
    padding: 1em;
    box-sizing: border-box;
    z-index: 999;
}

#sessionTimeout {
    display: none;
    font-size: 1em;
}

#actionProgress .spinner,
.ajaxProgress {
    padding-top: 0.5em;
    font-size: 3em;
    line-height: 2em;
    color: #333;
    text-align: center;
    margin: auto;
}

span.tag {
    background: #ABDBF2;
    cursor: pointer;
}

.block .templateInstructions {
    max-width: 300px;
    float: left;
}

nav #clientMenu,
nav #cart {
    text-transform: capitalize;
    cursor: pointer;
    text-align: left;
    z-index: 999;
    width: auto;
}

nav #clientMenu ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
  font-size: 0.8em;
}

nav #clientMenu ul li {
    float: none;
    margin: 0;
    text-align: left;
}

nav#nav #clientMenu a {
    text-decoration: none;
    display: block;
    background: #333;
    white-space: nowrap;
}

nav#nav #clientMenu a:hover {
    background: #ABDBF2;
}

nav #clientMenu h3 {
    margin: 0;
    font-weight: bold;
    font-size: 1em;
    color: rgba(0, 0, 0, 0.4);
}

nav #clientMenu.hover h3 {
    color: rgba(0, 0, 0, 0.9);
}

nav #clientMenu span.userName {
    font-size: 0.8em;
    display: block;
    line-height: normal;
    padding-bottom: 0.5em;
}

nav #clientMenu div.userMenu {
    display: none;
    position: absolute;
    z-index: 9999;
    right: 0;
    background: #333;
    text-align: center;
    max-width: 18em;
}

nav #clientMenu.simple {
    position: absolute;
}

#clientMenu.simple.hover h3 {
    display: none;
}

#categoryPath {
    line-height: 2.5em;
    text-transform: uppercase;
    color: #555555;
    font-size: 1.2em;
    float: none;
    width: auto;
    margin-top: 2em;
}

#miniOrder {
    float: right;
    margin: 0.5em;
    margin-right: 0;
    margin-left: 0;
    width: auto;
    clear: both;
}

#miniOrder a {
    font-weight: 1.4em;
    padding: 0.5em;
    display: block;
    text-decoration: none;
    font-weight: bold;
    margin-bottom: 0.1em;
    text-align: center;
}

#miniOrder a:hover {
    background: #EDEDED;
}

#main.hasMenu {

}

nav#menu {
    min-width: 12em;
}

nav#menu ul {
    padding: 0;
    margin: 0;
    display: flex;
    gap: 1em;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    font-size: 1.4em;
}

nav#menu ul li div {
    background: #125578;
    border-top: medium none;
    white-space: normal;
    z-index: 999;
    font-size: 0.8em;
}

nav#menu ul ul li div {
    position: static;
}

nav#menu ul li.selected div {
    background: #333;
}

nav#menu ul li div li {
    float: none;
    border: none;
    border-top: solid 1px #ffffff;
    margin: 0;
}

nav#menu ul li div span.description {
    display: none;
    padding: 0.5em;
    color: #ffffff;
}

nav#menu li {
    height: 1%;
    clear: both;
    display: block;
    margin: 0;
    padding: 0;
}

nav#menu li li {
    background: none;
    border: 0;
    padding: 0;
    font-weight: normal;
    line-height: 1.6em;
}

nav#menu a,
nav#menu a:link,
nav#menu a:visited {
    text-decoration: none;
    display: block;
    margin: 0;
    color: #ffffff;
    padding: 0.5em;
    background: #125578;
}

nav#menu li.selected a,
nav#menu li.selected a:hover {
    background: #333;
    color: #ffffff;
}

nav#menu a:hover,
nav#menu a:active {
    color: #333;
    background: #ABDBF2;
}

nav.horizontal ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

nav.horizontal ul li {
    float: left;
    margin: 0.5em;
    padding: 0.5em;
}

.pageWatch {
    border-top: solid 4px rgba(0, 0, 0, 0.1);
    border-bottom: solid 4px rgba(0, 0, 0, 0.1);
    padding-top: 1em;
    padding-bottom: 1em;
    margin-bottom: 1em;
    line-height: 2em;
    display: flex;
    flex-direction: column;
    gap: 2em;
    align-items: center;
}

.smallText {
    font-size: 0.8em;
    line-height: normal;
}

span.key i {
    padding-right: 0.5em;
    font-size: 1.2em;
}

.column {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.column2 {
    float: left;
    width: 45%;
    min-width: 20em;
  padding: 2%;
  box-sizing: border-box;
}

.column4 {
    float: left;
    width: 20%;
    min-width: 20em;
    padding: 2%;
    box-sizing: border-box;
}

.item.template {
    border-top: #ddd solid 1px;
    width: 100%;
    padding: 1em;
    box-sizing: border-box;
}

.item.template .children {
    padding-left: 5em;
}

.item .attributes .icon {
    float: none;
    width: auto;
    display: block;
    text-align: center;
    height: auto;
    margin: 0px;
    line-height: 0em;
    font-size: 8em;
}

.item .attributes .icon .attValue {
    padding: 0;
}

.order .basket {
    width: 60%;
    float: left;
}

.order .item {
    padding-bottom: 3em;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5em;
    gap: 1em;
}

.order .item:hover {
    background-color: rgba(255, 242, 63, 0.5);
}

.order .item a.photo {
    width: 10em;
    max-width: 200px;
    float: left;
    text-align: center;
    overflow: hidden;
}

.order .item a.photo i {
    font-size: 6em;
}

.order .item a.photo img {
    width: 100%;
    display: block;
}

.order .item .details {
    max-width: 50%;
}

.order .item a {
    line-height: 1.5em;
}

.order .item input.number {
    width: 4em;
}

.order .delivery select {
    max-width: 100%;
    text-align: center;
}

.order .total {
    text-align: center;
    float: right;
    width: 40%;
    background: #ddd;
    padding: 1em;
    box-sizing: border-box;
}

.order .delivery .deliveryOption {
    padding: 0;
    font-weight: normal;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    text-align: left;
    gap: 1em;
    border: solid 1px #0007;
    color: #000;
    margin-bottom: 0.5em;
    border-radius: 0.5em;
    padding: 0.5em;
}

.order .delivery .deliveryOption .description {
    flex-grow: 1;
}

.order .total .deliveryOption .price {
    font-size: 1.4em;
    text-align: right;
}

footer nav a {
    padding: 0.5em;
    background: rgba(0, 0, 0, 0.1);
    display: block;
}

.cols .colHalf {
    float: left;
    width: 48%;
    margin-left: 1%;
    margin-right: 1%;
    margin-bottom: 2em;
    clear: none;
}

.cols {
    display: flex;
    flex-wrap: wrap;
    gap: 3em;
}


/* .cols .colHalf:nth-child(even) {
    float: right;
} */

audio {
    width: 100%;
}

#objectBodyInfo ul {
    list-style: inside;
}

#objectBodyInfo ul li {
    margin-bottom: 0.5em;
}

#jumpTop {
    position: fixed;
    bottom: 1em;
    right: 1em;
    text-transform: uppercase;
    display: none;
    padding: 1em;
    background: #777;
    color: #fff;
}

.manage {
    padding: 0.5em;
    background: rgba(250, 250, 100, 0.8);
    overflow: hidden;
    clear: both;
    text-align: center;
    font-size: 1.2em;
    box-sizing: border-box;
    display: flex;
    gap: 0.5em;
    flex-wrap: wrap;
}

.hideManage .manage {
    display: none;
    align-items: center;
    /* z-index: 9999;
    top: 1em;
    left: 30%;
    right: 30%;
    position: absolute; */
}

.hideManage .blocks:hover>.manage,
.hideManage .block:hover>.manage,
.hideManage .item:hover .manage,
.hideManage .products:hover>.manage,
.hideManage .category:hover>.manage {
    display: flex;
}

.manage .buttons {
    justify-content: center;
}

.manage h3 {
    float: left;
    clear: left;
    margin: 0;
    margin-right: 2em;
}

section.tagList ul {
    margin: 0;
    padding: 0;
}

section.tagList ul li {
    margin: 0;
    list-style: none;
    float: left;
    margin-right: 0.5em;
    margin-bottom: 0.5em;
}

section.tagList ul li a {
    text-decoration: none;
}

.tagList li,
.tagList a {
    float: left;
    height: 2em;
    line-height: 2em;
    position: relative;
    font-size: 1em;
}

.tagList a,
.tagList a:visited {
    padding: 0 1em 0 1em;
    background: rgba(200, 200, 200, 0.75);
    color: #000a;
    text-decoration: none;
    border-radius: 1em 0.3em 0.3em 1em;
    margin: 0.5em;
}

.tagList a:hover {
    background: #000;
    color: #fff;
}

.tagList a span {
    font-style: italic;
    margin-left: 1em;
}

.tagList a.add {
    background: rgba(200, 255, 200, 0.75);
}

.tagList a.remove {
    background: rgba(255, 200, 200, 0.75);
}

.tagList a:hover {
    background: #333;
    color: #fff;
}

.content {
    padding-left: 1em;
    padding-right: 1em;
}

.content > .content {
    padding: 0;
}

.content img {
    max-width: 100%;
    height: auto;
}

.imageList .imageList .imagePreview,
#productImagePicker .image .sections {
    display: none;
}

#productImagePicker .image.selected {
    border: none;
    background: none;
    float: none;
    clear: both;
    padding: 0;
    border: none;
}

#productImagePicker .image.selected .sections {
    display: block;
}

#productImagePicker .image a.opener {
    position: absolute;
    bottom: 1em;
    left: 1em;
}

#productImagePicker .image.selected a.opener {
    font-size: 1.8em;
    float: none;
    color: #333;
    text-align: left;
    cursor: default;
    line-height: normal;
    position: static;
    background: none;
    padding: 0;
    display: block;
    border: none;
}

.image.selected .section,
#productImagePicker .image.selected div.dragAndDropFiles,
#productImagePicker .image.selected .imagePreview {
    border-radius: 1em;
    float: left;
    margin: 1em;
    min-width: 45%;
}

#productImagePicker .image .controls {
    position: absolute;
    top: 1em;
    right: 1em;
    display: none;
}

#productImagePicker img.preview {
    max-width: 500px;
    width: 100%;
}

#productImagePicker .image.selected .controls {
    display: block;
}

.stripePayment {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 1em;
    margin-top: 1em;
    margin-bottom: 1em;
}

.stripePayment #stripePaymentButton {
    margin: 0;
}

.stripePayment #stripeCardDetails {
    max-width: 40em;
    border: solid 1px #777;
    padding: 0.5em;
    width: 100%;
    box-sizing: border-box;
}

.stripePayment #cardErrors {
    color: #c00;
    line-height: 2.5em;
    width: 100%;
    text-align: center;
}

section.grid>div {
    display: grid;
    float: left;
    border: solid 1px;
    padding: 0.5em;
    margin: 0.5em;
}

body #popup,
.popup {
    background: #000d;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    text-align: center;
    z-index: 99999;
}

body>#popup div.ajax,
body>#popup div.ajaxProgress,
.popup .inner {
    background: #fff;
    padding: 1em;
    min-width: 300px;
    max-width: 600px;
    height: 100%;
    margin: auto;
    box-sizing: border-box;
    position: relative;
}

body > #popup div.ajax div.ajax,
body>#popup div.ajax div.ajaxProgress {
    background: none;
    min-width: unset;
    max-width: unset;
    height: auto;
    padding: 0;
}

body>#popup div.ajax {
    text-align: left;
    overflow: scroll;
    font-size: 1.4em;
}

body>#popup div.ajax div.colHalf {
    float: none;
    width: auto;
    min-width: unset;
}

body>#popup a.close,
.popup .inner a.close {
    position: absolute;
    top: 0;
    right: 0;
    line-height: 2em;
    font-size: 2em;
    cursor: pointer;
    text-align: center;
    background: #fff;
}

body>#popup a.close:after,
.popup .inner a.close:after {
    font-family: FontAwesome;
    content: "\f00d";
    padding: 0.5em;
}

.signaturePad canvas {
    width: 100%;
    height: 200px;
    border-top: solid 1px #777;
    border-bottom: solid 1px #000;
}

.shade,
.userDetails .altRow,
table.stripe tr:nth-child(even) td,
.stripe:nth-child(even) {
    background-color: rgba(0, 0, 0, 0.1);
}


/* The sticky class is added to the navbar with JS when it reaches its scroll position */

.sticky.stuck {
    position: fixed;
    z-index: 9999;
    margin: 0;
    right: 0;
    font-size: 2em;
}


/* Add some top padding to the page content to prevent sudden quick movement (as the navigation bar gets a new position at the top of the page (position:fixed and top:0) */

.sticky.stuck+.content {
    padding-top: 60px;
}

a.button.icon {
    text-align: center;
    min-width: 4em;
}

a.button.icon i {
    display: block;
    font-size: 2em;
    text-align: center;
    margin-bottom: 0.2em;
}

a.button.icon span {
    display: block;
    text-align: center;
    font-size: 0.8em;
    padding: 0;
    text-indent: 0;
}

.flexRow {
    display: flex;
    flex-direction: row;
    gap: 1em;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
}

.flexRow.wide {
    justify-content: space-between;
}

.flexRow .flexRow {
    flex-grow: 2;
    flex-wrap: wrap;
}

.card {
    padding: 1em;
    max-width: 30em;
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    border-radius: 0.5em;
    border: solid 0.1em;
    box-shadow: 0 0 0.5em #7777;
}

.itemImages .frame {
    background-repeat: none;
    background-size: cover;

}

.itemImages .frame img {
    visibility: hidden;
}