@charset "UTF-8";
.panel-next-btn-wrap {
  display: flex;
  justify-content: end;
  margin: 10px 0;
}

.card:has([data-checkout-panel]) [data-checkout-panel].panel-loading {
  min-height: 100px;
  pointer-events: none;
  position: relative;
}
.card:has([data-checkout-panel]) [data-checkout-panel].panel-loading::after {
  content: " ";
  background-image: url(/img/loading.gif);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100px;
  background-color: rgba(255, 255, 255, 0.7);
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  bottom: 0;
  left: 0;
}

html {
  font-size: 13px;
}

.tooltip-inner {
  color: white !important;
}

.ui-dialog .ui-dialog-titlebar-close {
  background: none;
  border: none;
  color: var(--button-icons-bg);
  font-size: 1.5em;
  top: 10px;
  right: 10px;
}
.ui-dialog .ui-dialog-titlebar-close::after {
  content: "×";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  color: black;
  line-height: 20px;
}
.ui-dialog .ui-dialog-buttonpane {
  padding: 10px 0 !important;
}
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
  float: none !important;
  display: flex;
  justify-content: space-between;
  margin: 0;
  padding: 0 calc(1em - 5px);
}
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button {
  margin: 0 5px;
  border: 1px solid var(--button-icons-bg);
  border-radius: 5px;
}
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button:not([class*=danger]) {
  background: linear-gradient(135deg, var(--button-icons-bg-lighten) 0%, var(--button-icons-bg-darken) 100%);
  color: var(--button-icons-text-color);
}

/* tables */
/* so that we can use sticky elements on the table we have to remove the box shadow and background colors that bootstrap use*/
.table.table-striped > thead > tr > th {
  background: #fff;
}
.table.table-striped > tbody > tr td {
  background: #fff;
  box-shadow: none;
}
.table.table-striped > tbody > tr:nth-of-type(odd) td {
  background: #f2f2f2;
}
.table.table-striped > tbody > tr:hover td {
  background: #ececec;
}

/* end of tables */
.wsp-loading {
  min-height: 60px;
}
.wsp-loading:not(.offcanvas) {
  position: relative;
}

/* Pure CSS spinner circle */
.wsp-loading::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 40px;
  height: 40px;
  border: 4px solid #ccc;
  border-top-color: #666;
  border-radius: 50%;
  animation: rotating 0.8s linear infinite;
  z-index: 3;
}

/* Light overlay */
.wsp-loading::after {
  content: "";
  position: absolute;
  z-index: 2;
  background-color: rgba(255, 255, 255, 0.6);
  top: -4px;
  right: -4px;
  bottom: -4px;
  left: -4px;
}

/* Rotation animation */
@keyframes rotating {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.safety-tape {
  height: 20px;
  width: 100%;
  /* repeating diagonal stripes */
  background: repeating-linear-gradient(135deg, var(--button-icons-bg) 0 14px, #000000 14px 28px);
  /* thin border lines like the sample (optional) */
  border-top: 1px solid rgba(0, 0, 0, 0.85);
  border-bottom: 1px solid rgba(0, 0, 0, 0.85);
  box-sizing: border-box;
}

.full-width-breakout {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

.card .card-header {
  background-color: var(--CardTitleBackground);
  color: var(--CardTitleText);
}
.card .card-header * {
  color: var(--CardTitleText);
}

.wsp-breadcrumbs {
  background: var(--BreadCrumbBackground);
  padding: 10px 0px;
  margin: 0 0 20px;
}
.wsp-breadcrumbs ol {
  margin: 0;
}
.wsp-breadcrumbs ol .breadcrumb-item a {
  color: var(--BreadCrumbText) !important;
}
.wsp-breadcrumbs ol .breadcrumb-item.home a {
  padding: 0 5px;
}
.wsp-breadcrumbs ol .breadcrumb-item.home a i {
  color: var(--button-icons-bg) !important;
}

body {
  margin-bottom: 60px;
  overflow-x: hidden;
}
body > .page-loading-message {
  display: none;
}
body.page-loading::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  background-image: url(../img/loading.gif);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 200px;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.page-loading > .page-loading-message {
  display: block;
  position: fixed;
  top: calc(50% - 100px);
  transform: translateX(-50%);
  left: 50%;
  font-size: 20px;
  color: #333;
  z-index: 10000;
  font-weight: bold;
}

body {
  padding-top: 0;
}

.wsp-header-top-nav-bar {
  background-color: var(--HeaderTopBarBackground);
  color: var(--HeaderTopBarText);
  display: none;
}
@media (min-width: 768px) {
  .wsp-header-top-nav-bar {
    display: flex;
  }
}
.wsp-header-top-nav-bar ul li a, .wsp-header-top-nav-bar ul li i {
  color: var(--HeaderTopBarText) !important;
  text-decoration: none;
}

.shop-header {
  background: var(--header-bar-bg-color);
  color: var(--header-bar-text-color);
  padding: 1rem 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  position: initial;
}
.shop-header .shop-logo {
  max-height: 80px;
  width: auto;
  max-width: 150px;
}
@media (min-width: 768px) {
  .shop-header .shop-logo {
    max-width: unset;
  }
}
.shop-header h1 a {
  color: var(--header-bar-text-color) !important;
}
.shop-header h1 + p {
  color: var(--header-bar-text-color) !important;
}
.shop-header h1 + p i {
  color: var(--header-bar-text-color) !important;
}

.wsp-main-menu-nav-bar {
  background-color: var(--MainMenuBarBackground);
  color: var(--MainMenuBarText);
}
.wsp-main-menu-nav-bar .navbar-toggler {
  border: none;
}
.wsp-main-menu-nav-bar .navbar-toggler i {
  color: var(--MainMenuBarText);
}
.wsp-main-menu-nav-bar ul li a {
  padding-left: 12.5px !important;
  padding-right: 12.5px !important;
  font-weight: 500;
}
.wsp-main-menu-nav-bar ul li a, .wsp-main-menu-nav-bar ul li i {
  color: var(--MainMenuBarText) !important;
}

.product-card {
  border: none;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  border-radius: 12px;
  overflow: hidden;
}
.product-card .wsp-prod-thumb-img {
  height: 220px;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
}
@media (min-width: 768px) {
  .product-card .wsp-prod-thumb-img {
    height: 380px;
    -o-object-position: center;
       object-position: center;
  }
}

.product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.product-card .card-body {
  padding: 1.5rem;
}

.product-price {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--button-icons-bg);
}

.hero-section {
  text-shadow: 0px 0px 15px var(--bs-body-color);
  background: linear-gradient(135deg, rgba(18, 32, 35, 0.95) 0%, rgba(44, 70, 78, 0.95) 100%);
  color: white;
  padding: 3rem 0;
  margin-bottom: 3rem;
}

.contact-info {
  background: rgba(255, 255, 255, 0.1);
  padding: 1rem;
  border-radius: 8px;
  margin-top: 1rem;
}

.contact-info i {
  color: #2ecc40;
  margin-right: 0.5rem;
}

html body {
  background-color: var(--background-color);
  color: var(--text-color);
}

h1:not(.btn, .text-white, .text-danger, .badge),
p:not(.btn, .text-white, .text-danger, .badge),
a:not(.btn, .text-white, .text-danger, .badge),
div:not(.btn, .text-white, .text-danger, .badge),
span:not(.btn, .text-white, .text-danger, .badge) {
  color: var(--text-color);
}

main {
  padding-bottom: 3rem;
}

.shop-footer {
  background-color: var(--footer-bar-background-color);
  color: var(--footer-bar-text-color);
  padding: 2rem 0;
  margin-top: 0;
}
.shop-footer h1, .shop-footer h2, .shop-footer h3, .shop-footer h4, .shop-footer h5, .shop-footer h6 {
  color: var(--FooterHeadings);
}
.shop-footer p:not(.text-white, .text-danger),
.shop-footer a:not(.text-white, .text-danger),
.shop-footer div:not(.text-white, .text-danger),
.shop-footer span:not(.text-white, .text-danger) {
  color: var(--footer-bar-text-color);
}
.shop-footer .wsp-footer-logo {
  max-width: 200px;
}
.shop-footer .wsp-footer-logo img {
  border-radius: 5px;
}

.footer-contact-area {
  background-color: var(--footer-bar-background-color);
  color: var(--footer-bar-text-color);
}
.footer-contact-area *:not(.text-white, .text-danger),
.footer-contact-area h1:not(.text-white, .text-danger),
.footer-contact-area p:not(.text-white, .text-danger),
.footer-contact-area div:not(.text-white, .text-danger),
.footer-contact-area span:not(.text-white, .text-danger) {
  color: var(--footer-bar-text-color);
}

.btn-success, .btn-primary, .btn-primary.disabled {
  background-color: var(--ButtonsColour);
  color: var(--button-icons-text-color);
  border-color: var(--button-icons-bg);
}
.btn-success i, .btn-primary i, .btn-primary.disabled i {
  color: var(--button-icons-text-color);
}

i {
  color: var(--button-icons-bg);
}

.btn-success i {
  color: var(--button-icons-text-color);
}

.badge {
  background: var(--button-icons-bg);
  color: var(--button-icons-text-color);
}

.category-sidebar {
  border: 1px solid var(--button-icons-bg);
  border-radius: 5px;
}
.category-sidebar h5 {
  background-color: var(--button-icons-bg);
  color: var(--button-icons-text-color);
  margin: 0;
  padding: 20px 10px;
  text-align: center;
}
.category-sidebar ul.list-group {
  margin-top: 1px;
}
.category-sidebar ul.list-group li.list-group-item {
  padding: 0;
  border: none;
  border-radius: 0;
}
.category-sidebar ul.list-group li.list-group-item a {
  color: var(--text-color);
  display: block;
  padding: 10px 15px;
  border-top: 1px solid var(--button-icons-bg);
}
.category-sidebar ul.list-group li.list-group-item.active {
  background-color: var(--button-icons-bg-lighten);
}
.category-sidebar ul.list-group li.list-group-item.active a {
  color: var(--button-icons-text-color);
}
.category-sidebar ul.list-group li.list-group-item:first-child a {
  border-top: none;
}

.wsp-search-filters {
  border: 1px solid var(--button-icons-bg);
  border-radius: 5px;
  overflow: hidden;
}
.wsp-search-filters h5 {
  background-color: var(--button-icons-bg);
  color: var(--button-icons-text-color);
  margin: 0;
  padding: 15px;
  text-align: center;
  font-size: 1rem;
  font-weight: 600;
}
.wsp-search-filters form {
  padding: 0;
}
.wsp-search-filters .wsp-filter-group {
  border-top: 1px solid #e0e0e0;
}
.wsp-search-filters .wsp-filter-group:first-child {
  border-top: none;
}
.wsp-search-filters .wsp-filter-group .wsp-filter-group-title {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0;
  padding: 12px 15px;
  background-color: #f8f9fa;
  border-bottom: 1px solid #e0e0e0;
  color: #333;
}
.wsp-search-filters .wsp-filter-group .wsp-filter-options {
  padding: 8px 0;
}
@media (min-width: 768px) {
  .wsp-search-filters .wsp-filter-group .wsp-filter-options {
    max-height: 300px;
    overflow-y: auto;
  }
}
.wsp-search-filters .wsp-filter-group .wsp-filter-option {
  padding: 6px 15px;
  display: flex;
  align-items: center;
  transition: background-color 0.15s ease;
}
.wsp-search-filters .wsp-filter-group .wsp-filter-option:hover {
  background-color: #f8f9fa;
}
.wsp-search-filters .wsp-filter-group .wsp-filter-option .form-check-input {
  margin-right: 8px;
  margin-top: 0;
  cursor: pointer;
  flex-shrink: 0;
}
.wsp-search-filters .wsp-filter-group .wsp-filter-option .form-check-input:focus {
  border-color: var(--button-icons-bg);
  box-shadow: 0 0 0 0.2rem rgba(var(--button-icons-bg-rgb), 0.25);
}
.wsp-search-filters .wsp-filter-group .wsp-filter-option .form-check-input:checked {
  background-color: var(--button-icons-bg);
  border-color: var(--button-icons-bg);
}
.wsp-search-filters .wsp-filter-group .wsp-filter-option .form-check-label {
  cursor: pointer;
  margin: 0;
  flex-grow: 1;
  font-size: 0.9rem;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.wsp-search-filters .wsp-filter-group .wsp-filter-option .wsp-filter-count {
  color: #6c757d;
  font-size: 0.85rem;
  margin-left: 6px;
  flex-shrink: 0;
}
.wsp-search-filters.wsp-loading {
  opacity: 0.6;
  pointer-events: none;
}

.wsp-mobile-filter-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 500;
}
.wsp-mobile-filter-btn i {
  font-size: 1.1rem;
}

.wsp-category-thumbnail {
  margin-bottom: 15px;
}
.wsp-category-thumbnail .wsp-category-image a {
  display: block;
}
.wsp-category-thumbnail .wsp-category-image img {
  height: 200px;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (min-width: 768px) {
  .wsp-category-thumbnail .wsp-category-image img {
    height: 300px;
  }
}
.wsp-category-thumbnail .wsp-category-button a {
  display: block;
  margin-top: 10px;
  border: none;
  color: var(--button-icons-text-color);
}

.wsp-search-box input.form-control {
  border: 1px solid var(--button-icons-bg);
  border-radius: 5px 0 0 5px;
  box-shadow: none;
  height: 50px;
}
.wsp-search-box button.btn {
  width: 50px;
  border: none;
  color: var(--button-icons-text-color);
  background-color: var(--ButtonsColour);
}
.wsp-search-box button.btn i {
  color: var(--button-icons-text-color);
  font-size: 16px;
}

/* Mobile header actions */
.mobile-header-actions {
  display: none;
}

@media (max-width: 767px) {
  .mobile-header-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
  }
  .mobile-header-actions a {
    color: var(--header-bar-text-color);
    text-decoration: none;
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    position: relative;
    /* Hide text on mobile, show only icons */
  }
  .mobile-header-actions a .badge {
    font-size: 0.6rem;
    padding: 0.25em 0.4em;
  }
  .mobile-header-actions a span:not(.badge) {
    display: none;
  }
}
/* Ensure desktop layout unchanged */
@media (min-width: 768px) {
  .desktop-header-actions {
    display: flex;
  }
  .mobile-header-actions {
    display: none !important;
  }
}
/* Mobile main menu off-canvas */
#wsp-main-menu-offcanvas {
  width: 320px;
  max-width: 80vw;
}
#wsp-main-menu-offcanvas .offcanvas-header {
  background-color: var(--button-icons-bg, #f8f9fa);
  border-bottom: 1px solid #dee2e6;
  color: var(--button-icons-text-color, #333);
}
#wsp-main-menu-offcanvas .offcanvas-header .offcanvas-title {
  font-size: 1.25rem;
  font-weight: 600;
}
#wsp-main-menu-offcanvas .offcanvas-body {
  padding: 1.5rem 0;
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-search {
  padding: 0 1.5rem;
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-search .wsp-search-box {
  margin: 0;
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-search .wsp-search-box .input-group input.form-control {
  height: 45px;
  border-right: none;
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-search .wsp-search-box .input-group button.btn {
  width: 50px;
  border-left: none;
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-menu-list .wsp-offcanvas-menu-item {
  border-bottom: 1px solid #e9ecef;
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-menu-list .wsp-offcanvas-menu-item:last-child {
  border-bottom: none;
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-menu-list .wsp-offcanvas-menu-item .wsp-offcanvas-menu-link {
  display: block;
  padding: 1rem 1.5rem;
  color: #333;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;
  transition: background-color 0.2s ease;
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-menu-list .wsp-offcanvas-menu-item .wsp-offcanvas-menu-link:hover {
  background-color: #f8f9fa;
  color: var(--button-icons-bg, #007bff);
}
#wsp-main-menu-offcanvas .offcanvas-body .wsp-offcanvas-menu-list .wsp-offcanvas-menu-item .wsp-offcanvas-menu-link:active {
  background-color: #e9ecef;
}

.wsp-usps-area {
  background-color: var(--USPsBarBackground);
  padding: 0;
}
.wsp-usps-area .wsp-usps-wrap {
  padding: 10px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.wsp-usps-area .wsp-usps-wrap .wsp-usp {
  width: 100%;
}
.wsp-usps-area .wsp-usps-wrap .wsp-usp .wsp-usp-inner {
  color: var(--USPsBarText);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}
.wsp-usps-area .wsp-usps-wrap .wsp-usp .wsp-usp-inner p {
  color: var(--USPsBarText);
  margin: 0;
}
.wsp-usps-area .wsp-usps-wrap .wsp-usp .wsp-usp-inner i {
  color: var(--USPBarIcons);
  margin-right: 5px;
  margin-top: 1px;
}

/*** quick quote ***/
#wsp-quick-quote-handler {
  z-index: 1;
  position: fixed;
  right: 0;
  top: calc(50% - 150px);
  transform: rotate(-90deg);
  transform-origin: bottom right;
}
@media (max-width: 767px) {
  #wsp-quick-quote-handler {
    bottom: 0;
    top: auto;
    transform: rotate(0deg);
    transform-origin: center top;
    left: calc(50% - 100px);
    width: 200px;
  }
}
#wsp-quick-quote-handler a {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--ButtonsColour);
  color: var(--ButtonsTextColour);
  white-space: nowrap;
  font-size: 18px;
  padding: 10px;
  height: 50px;
  width: 200px;
  cursor: pointer;
  box-shadow: 0 0 10px #000000;
}
#wsp-quick-quote-handler a i {
  margin-right: 15px;
  color: var(--ButtonsTextColour);
}

#wsp-quote-offcanvas {
  transition: width 0.3s ease-in-out;
  width: 500px;
}
@media (max-width: 1599px) {
  #wsp-quote-offcanvas[data-mode=Customise], #wsp-quote-offcanvas[data-mode=QuoteOrderForm] {
    width: -moz-fit-content;
    width: fit-content;
    max-width: 90vw;
  }
  #wsp-quote-offcanvas[data-mode=Customise] .wsp-quote-next, #wsp-quote-offcanvas[data-mode=QuoteOrderForm] .wsp-quote-next {
    text-align: right;
  }
}
#wsp-quote-offcanvas .offcanvas-body {
  display: flex;
  flex-direction: column;
}
#wsp-quote-offcanvas .offcanvas-body .wsp-quote-body {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
}
#wsp-quote-offcanvas .offcanvas-body .wsp-quote-next .btn {
  width: 100%;
  margin-top: 10px;
  border: none;
  background: var(--button-icons-bg) !important;
  color: var(--button-icons-text-color);
  font-weight: bold;
  font-size: 14px;
}
#wsp-quote-offcanvas .offcanvas-body .wsp-quote-next .btn:hover {
  background: var(--button-icons-bg-darken) !important;
  color: var(--button-icons-text-color);
}
#wsp-quote-offcanvas .offcanvas-body .wsp-quote-next .btn.wsp-quote-continue {
  background: #333333 !important;
  color: white !important;
  font-weight: normal;
}

#wsp-filters-offcanvas {
  width: 320px;
  max-width: 85vw;
}
#wsp-filters-offcanvas .offcanvas-header {
  background-color: #f8f9fa;
  border-bottom: 1px solid #dee2e6;
}
#wsp-filters-offcanvas .offcanvas-header .offcanvas-title {
  font-size: 1.25rem;
  font-weight: 600;
}
#wsp-filters-offcanvas .offcanvas-body {
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#wsp-filters-offcanvas .offcanvas-body .wsp-filters-scroll-area {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 1rem;
}
#wsp-filters-offcanvas .offcanvas-body .wsp-filters-scroll-area .wsp-search-filters h5 {
  display: none;
}
#wsp-filters-offcanvas .offcanvas-body .wsp-filters-actions {
  padding: 1rem;
  border-top: 1px solid #dee2e6;
  background-color: #fff;
  flex-shrink: 0;
}
#wsp-filters-offcanvas .offcanvas-body .wsp-filters-actions .btn {
  font-weight: 600;
  padding: 0.75rem;
  background-color: var(--button-icons-bg);
  border-color: var(--button-icons-bg);
  color: var(--button-icons-text-color);
}
#wsp-filters-offcanvas .offcanvas-body .wsp-filters-actions .btn:hover {
  background-color: var(--button-icons-bg-darken, var(--button-icons-bg));
  border-color: var(--button-icons-bg-darken, var(--button-icons-bg));
  color: var(--button-icons-text-color);
}

.wsp-quote-body .wsp-quote-item .wsp-quote-item-remove {
  font-size: 20px;
  cursor: pointer;
}
.wsp-quote-body .wsp-quote-item .wsp-quote-item-remove i {
  color: #ff5050;
}
.wsp-quote-body .wsp-quote-save-form {
  display: flex;
  padding: 10px;
  margin: 10px 0;
  max-width: 500px;
  margin-left: auto;
  background-color: lightgray;
}
.wsp-quote-body .wsp-quote-save-form .btn {
  white-space: nowrap;
  margin-left: 10px;
}
.wsp-quote-body .wsp-quote-next {
  display: flex;
  justify-content: space-between;
}
.wsp-quote-body .wsp-quote-order-item-details {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.wsp-quote-body .wsp-quote-order-item-details .wsp-quote-order-item-price {
  font-size: 20px;
}
.wsp-quote-body .wsp-quote-order-item-form thead {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #fff;
}
.wsp-quote-body .wsp-quote-order-item-form tbody tr td {
  vertical-align: middle;
  text-align: center;
}
.wsp-quote-body .wsp-quote-order-item-form tbody tr td input {
  max-width: 60px;
  min-width: 50px;
  height: 30px;
  padding: 0;
  text-align: center;
}
.wsp-quote-body .wsp-quote-order-item-form tbody tr td:first-child {
  position: sticky;
  left: 0;
  text-align: left;
}
.wsp-quote-body .wsp-quote-order-item-form tbody tr td:first-child img {
  max-height: 20px;
}
.wsp-quote-body .wsp-quote-order-form-submit {
  padding-top: 10px;
  text-align: right;
}
.wsp-quote-body .ws-quote-add-step ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.wsp-quote-body .ws-quote-add-step ul li {
  margin: 0;
  padding: 0;
  clip-path: polygon(0 0, 85% 0, 100% 50%, 85% 100%, 0 100%);
}
.wsp-quote-body .ws-quote-add-step ul li a {
  display: block;
  padding: 10px;
  background: linear-gradient(135deg, var(--button-icons-bg-lighten) 0%, var(--button-icons-bg-darken) 100%);
  color: var(--button-icons-text-color);
  border-color: var(--button-icons-bg);
  cursor: pointer;
  text-decoration: none;
}
.wsp-quote-body .ws-quote-add-step ul li a h5, .wsp-quote-body .ws-quote-add-step ul li a p,
.wsp-quote-body .ws-quote-add-step ul li a .wsp-quote-form-active-qty {
  color: var(--button-icons-text-color);
}
.wsp-quote-body .ws-quote-add-step ul li a p {
  margin: 0;
}
.wsp-quote-body .ws-quote-add-step ul li a .wsp-quote-form-active-qty:after {
  content: " / ";
}
.wsp-quote-body .ws-quote-add-step ul li a:not(.active) {
  opacity: 0.5;
  filter: grayscale(0.5);
}
.wsp-quote-body .ws-quote-add-step ul li a:not(.active) .wsp-quote-form-active-qty {
  display: none;
}
.wsp-quote-body .ws-quote-add-step ul li a:not(.active).complete {
  cursor: not-allowed;
}
.wsp-quote-body .ws-quote-add-step ul li a:not(.active):not(.complete):hover {
  opacity: 0.8;
  filter: grayscale(0.2);
}
.wsp-quote-body .ws-quote-add-step .wsp-quote-order-form .wsp-quote-product-order-table td:has(.wsp-qq-swatch-img) {
  white-space: nowrap;
  vertical-align: middle;
}
.wsp-quote-body .ws-quote-add-step .wsp-quote-order-form .wsp-quote-product-order-table td:has(.wsp-qq-swatch-img) .wsp-qq-swatch-img {
  width: 20px;
}
.wsp-quote-body .ws-quote-add-step .ws-quote-confirmation {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex-direction: column;
}

.wsp-customisation h3 {
  text-align: center;
}
.wsp-customisation .wsp-customisation-areas .wsp-customisation-areas-area .wsp-customisation-positions {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -10px;
}
.wsp-customisation .wsp-customisation-areas .wsp-customisation-areas-area .wsp-customisation-positions .wsp-customisation-position-group {
  display: flex;
  flex-direction: column;
  max-width: 120px;
  padding: 10px;
}
.wsp-customisation .wsp-customisation-areas .wsp-customisation-areas-area .wsp-customisation-positions .wsp-customisation-position-group button {
  margin-top: 10px;
}
.wsp-customisation .wsp-customisation-areas .wsp-customisation-areas-area .wsp-customisation-positions .wsp-customisation-position-group img {
  max-height: 90px;
  width: auto !important;
}

.wsp-customistation-price-table {
  text-align: left;
  border: 1px solid;
  border-color: #999999 !important;
  margin: 10px 0 20px;
}
.wsp-customistation-price-table .quantity {
  white-space: nowrap;
}
.wsp-customistation-price-table tr {
  /* add before and after elements so the border follows */
}
.wsp-customistation-price-table tr th {
  border: none;
  border-bottom: 1px solid #999999 !important;
  font-weight: normal;
  vertical-align: top;
  position: relative;
  font-size: 12px;
}
.wsp-customistation-price-table tr th:has(.wsp-customisation-remove) {
  padding-right: 15px;
}
.wsp-customistation-price-table tr th .wsp-customisation-remove {
  cursor: pointer;
  display: block;
  position: absolute;
  right: 5px;
  top: 7px;
}
.wsp-customistation-price-table tr th .wsp-customisation-remove i {
  color: red;
}
.wsp-customistation-price-table tr th.total-price {
  font-weight: bold;
  font-size: 13px;
}
.wsp-customistation-price-table tr .quantity:after, .wsp-customistation-price-table tr .quantity:before,
.wsp-customistation-price-table tr .total-price:after,
.wsp-customistation-price-table tr .total-price:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: #999999;
}
.wsp-customistation-price-table tr .quantity:after,
.wsp-customistation-price-table tr .total-price:after {
  right: 0;
}
.wsp-customistation-price-table tr .quantity:before,
.wsp-customistation-price-table tr .total-price:before {
  left: -1px;
}
.wsp-customistation-price-table tr .quantity {
  position: sticky;
  left: 0;
  z-index: 2;
}
.wsp-customistation-price-table tr .total-price {
  position: sticky;
  right: 0;
  z-index: 2;
}
.wsp-customistation-price-table tr td {
  font-size: 12px;
  border: none;
}
.wsp-customistation-price-table tr td.total-price {
  font-weight: bold;
  font-size: 13px;
}

/*** end of quick quote ***/
.wsp-product-image-viewer .wsp-main-image {
  padding-bottom: 100%;
  position: relative;
}
.wsp-product-image-viewer .wsp-main-image > a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wsp-product-image-viewer .wsp-main-image > a img {
  max-height: 100%;
}
.wsp-product-image-viewer .wsp-additional-images .wsp-additional-image-wrap {
  padding-bottom: 100%;
  position: relative;
}
.wsp-product-image-viewer .wsp-additional-images .wsp-additional-image-wrap .inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: white;
}
.wsp-product-image-viewer .wsp-additional-images .wsp-additional-image-wrap .inner a {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.wsp-product-image-viewer .wsp-additional-images .wsp-additional-image-wrap .inner a img {
  max-height: 100%;
  width: auto;
}
.wsp-product-image-viewer .wsp-additional-images .owl-nav {
  display: none;
}
.wsp-product-image-viewer .wsp-additional-images .owl-dots {
  margin-top: 10px;
}

.wsp-slider-section .wsp-slide-inner {
  display: flex;
  justify-content: center;
  align-items: center;
}
.wsp-slider-section .wsp-slide-inner img {
  display: block;
}

.wsp-home-feature-blocks .cms-slider {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 -10px;
}
.wsp-home-feature-blocks .cms-slider .wsp-home-feature-blocks-item {
  margin: 0 10px;
}

.wsp-home-categories .wsp-home-cat-item .inner {
  background-color: var(--CardTitleBackground);
  height: 240px;
  display: flex;
  align-items: stretch;
  box-shadow: 0 0 20px -10px;
}
.wsp-home-categories .wsp-home-cat-item .inner .image-wrap {
  position: relative;
  width: 55%;
  height: 100%;
}
.wsp-home-categories .wsp-home-cat-item .inner .image-wrap .bg-image {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}
.wsp-home-categories .wsp-home-cat-item .inner .desc-cta {
  padding: 15px;
  width: 45%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.wsp-home-categories .wsp-home-cat-item .inner .desc-cta .name {
  font-size: 18px;
  font-weight: bold;
}
.wsp-home-categories .wsp-home-cat-item .inner .desc-cta .view-items-link {
  text-align: right;
}
.wsp-home-categories .wsp-home-cat-item .inner .desc-cta a {
  color: var(--CardTitleText);
  text-decoration: none;
}

.wsp-product-swatches {
  margin: 30px 0 20px;
}
.wsp-product-swatches .values-count {
  display: flex;
  margin: 10px 0 20px;
}
.wsp-product-swatches .values-count .axis-count {
  margin-right: 30px;
  font-size: 15px;
  margin-bottom: 15px;
  font-weight: bold;
  display: flex;
  align-items: center;
}
.wsp-product-swatches .values-count .axis-count i {
  font-size: 28px;
}
.wsp-product-swatches .wsp-available-sizes {
  margin: 20px 0;
  font-size: 18px;
}
.wsp-product-swatches .swatch-buttons-wrap {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
}
.wsp-product-swatches .swatch-buttons-wrap .swatch-buttons {
  display: flex;
  flex-wrap: wrap;
}
.wsp-product-swatches .swatch-buttons-wrap .swatch-buttons .swatch-button {
  height: 40px;
  width: 40px;
  flex-shrink: 0;
  border: none;
  display: block;
  margin: 0 5px 5px 0;
  cursor: pointer;
  border-radius: 50%;
}
.wsp-product-swatches.wsp-product-swatches-compact {
  margin: 0 0 15px;
}
.wsp-product-swatches.wsp-product-swatches-compact .swatch-buttons {
  flex-wrap: wrap;
  overflow: hidden;
}
.wsp-product-swatches.wsp-product-swatches-compact .swatch-buttons .swatch-button {
  height: 20px;
  width: 20px;
  margin: 0 3px 3px 0;
}
.wsp-product-swatches.wsp-product-swatches-compact .more-swatches {
  margin: 0 3px 3px 5px;
  font-size: 10px;
  vertical-align: top;
  padding: 0 5px;
  display: inline-block;
  height: 20px;
  line-height: 18px;
  border: 1px solid #333;
  border-radius: 10px;
}

.product-description {
  margin-bottom: 20px;
}

.wsp-product-pricebreaks-table table {
  background-color: white;
}

.product-options-selector .option-select {
  max-width: 240px;
}

.chosen-designs-header .title {
  font-size: 16px;
  font-weight: normal;
}
.chosen-designs-header .design-names {
  font-size: 18px;
  font-weight: bold;
}

.wsp-order-item-group-row {
  position: relative;
}
.wsp-order-item-group-row .item-delete-button-wrap {
  position: absolute;
  top: 5px;
  right: 5px;
  width: auto;
}
.wsp-order-item-group-row .item-delete-button-wrap i {
  color: red;
}
.wsp-order-item-group-row .group-header {
  margin: 0 0 15px;
  display: flex;
  flex-direction: column;
  align-items: start;
}
.wsp-order-item-group-row .group-header .name {
  font-size: 18px;
  font-weight: bold;
}
.wsp-order-item-group-row .group-header .code {
  font-size: 14px;
}
.wsp-order-item-group-row .group-header .customisations-names {
  font-weight: bold;
  margin: 10px 0 0;
}
.wsp-order-item-group-row .matrix-table-wrap {
  overflow-x: auto;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table tr:has(td.wsp-matrix-quantity-cell:hover) td.wsp-matrix-quantity-cell,
.wsp-order-item-group-row .matrix-table-wrap .matrix-table tr:has(td.wsp-matrix-quantity-cell:hover) td.colour-name {
  background-color: #f0f0f0;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table td.column-hover {
  background-color: #f0f0f0;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table th {
  padding: 3px 5px;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table th.size-head {
  background-color: #ddd;
  border: 1px solid #333;
  font-weight: normal;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table td {
  padding: 5px;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .matrix-group-colours-row.colour-not-present {
  display: none;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .matrix-group-colours-row .total {
  font-weight: bold;
  text-align: right;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .matrix-table-group-total .total {
  border-top: 1px solid #333;
  border-bottom: 2px double #333;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell {
  cursor: pointer;
  position: relative;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell .edit-qty-btn {
  display: none;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell .edit-qty-btn,
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell .add-qty-btn,
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell .option-unavailable {
  opacity: 0;
  transition: all 0.2s ease-in-out;
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell:hover {
  /*.edit-qty-btn,*/
}
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell:hover .add-qty-btn,
.wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell:hover .option-unavailable {
  opacity: 1;
}
@media (hover: none) {
  .wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell {
    /* for touch devices, always show the buttons */
  }
  .wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell .edit-qty-btn,
  .wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell .add-qty-btn,
  .wsp-order-item-group-row .matrix-table-wrap .matrix-table .wsp-matrix-quantity-cell .option-unavailable {
    opacity: 1;
  }
}

.cart-grand-total-footer {
  display: flex;
  justify-content: space-between;
  margin: 15px 0;
}
.cart-grand-total-footer .value {
  padding: 5px 0;
  font-weight: bold;
  font-size: 18px;
  border-top: 1px solid black;
  border-bottom: 3px double black;
}

.wsp-customisations-logo-upload {
  padding-top: 15px;
}
.wsp-customisations-logo-upload .inner {
  display: flex;
  flex-wrap: wrap;
}
.wsp-customisations-logo-upload .inner .customisation-item {
  width: calc(33.33% - 10px);
  display: grid;
  background: #efefef;
  margin: 0 5px 10px;
  padding: 10px;
  border-radius: 5px;
  row-gap: 4px;
  grid-template-rows: auto 20px 80px 28px;
}
@media (max-width: 767px) {
  .wsp-customisations-logo-upload .inner .customisation-item {
    width: calc(50% - 10px);
    grid-template-rows: auto auto auto auto;
  }
}
.wsp-customisations-logo-upload .inner .customisation-item.upload-later {
  background: transparent;
  border: 1px solid #dddddd;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (max-width: 767px) {
  .wsp-customisations-logo-upload .inner .customisation-item.upload-later {
    width: 100%;
  }
}
.wsp-customisations-logo-upload .inner .customisation-item.upload-later .action-btn {
  grid-row: 3;
  align-self: center;
}
.wsp-customisations-logo-upload .inner .customisation-item .upload-logo-form,
.wsp-customisations-logo-upload .inner .customisation-item form {
  display: contents;
}
.wsp-customisations-logo-upload .inner .customisation-item .name {
  grid-row: 1;
  grid-column: 1/span 2;
  font-weight: bold;
  text-align: center;
  font-size: 14px;
}
.wsp-customisations-logo-upload .inner .customisation-item .group-name {
  grid-row: 2;
  grid-column: 1/span 2;
  font-size: 12px;
  text-align: center;
  margin-bottom: 10px;
}
.wsp-customisations-logo-upload .inner .customisation-item .logo-preview {
  grid-row: 3;
  grid-column: 1/span 2;
  text-align: center;
  padding: 5px 0;
}
.wsp-customisations-logo-upload .inner .customisation-item .logo-preview img {
  max-width: 100%;
  max-height: 100%;
}
.wsp-customisations-logo-upload .inner .customisation-item .action-btn {
  grid-row: 4;
  grid-column: 1/span 2;
  margin: 0 auto;
}

.wsp-garment-quick-quote-btn {
  width: 100%;
}