/* usage: var(--ThemePrimary) */
/* the following variables are placed via global parameters and header:
	--ThemePrimary
	--ThemePrimaryVariant
	--ThemeAlternate
	--ThemeAlternateVariant
	--ThemeBlack
	--ThemeDark
	--ThemeWhite
	--ThemeWhiteVariant
	--ThemeLight
	--ThemeRed
	--ThemeRedVariant
	--ThemeGreen
	--ThemeGreenVariant
	--ThemeOrange
*/


/* ====== Global Styles ====== */

:root {
	/* Pagination */
	--swiper-navigation-color: var(--ThemeWhite);
	--swiper-pagination-color: var(--ThemeWhite);
	--swiper-pagination-bullet-inactive-color: var(--ThemeLight);
	--swiper-pagination-bullet-inactive-opacity: 0.7;
	--swiper-pagination-bottom: 8px;
	/* Scrollbar */
	--swiper-scrollbar-bottom: 0px;
	--swiper-scrollbar-size: 8px;
}

.swiper-button-disabled {
	display: none;
}

.autoplay-progress {
	position: absolute;
	right: 16px;
	bottom: 16px;
	z-index: 10;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	color: var(--ThemeWhite);
}

.autoplay-progress svg {
	--progress: 0;
	position: absolute;
	left: 0;
	top: 0px;
	z-index: 10;
	width: 100%;
	height: 100%;
	stroke-width: 2px;
	stroke: var(--ThemeWhite);
	fill: none;
	stroke-dashoffset: calc(125.6px * (1 - var(--progress)));
	stroke-dasharray: 125.6;
	transform: rotate(-90deg);
}

/* Set Print size to override Bootstrap print view being shown as mobile */
@media print {
	@page {
		size: 330mm 427mm;
		margin: 14mm;
	}
	.container, .container-fluid {
		width: 1170px;
	}
}

hr {
	width:100%;
	margin-top:0.5rem;
	margin-bottom:0.75rem; /*matches table header spacing*/
}

body{
	display:flex;
	min-height:100vh;
	flex-direction:column;
	min-width:350px;
	font-family: "Work Sans", sans-serif;
	font-weight: 400;
	color: #1a1a1a;
	font-style: normal;
	font-variation-settings: "slnt" 0;
}

.flex-spacer{
	flex-grow:1;
}

/* thinner card guttering than bootstrap's default because we use cards in much smaller spacings */

.card-deck{
	flex-flow:row wrap;
}

.card-deck .card{
	height:100%;
	margin-bottom:0px;
}

.card-body {
	display:flex;
	flex-direction:column;
	align-items:stretch;
	text-align:center;
}

.card-text {
	font-size: 0.875rem;
}

.card-text p:last-of-type {
	margin: 0px;
}

.card-footer {
	background: var(--ThemeWhite);
}

/* ------ Text Styling ------ */

.h1, h1 { /* major title of the page */
	font-size: 2rem;
	font-weight: 600;
	font-family: "Roboto Condensed", sans-serif;
}

.h2, h2 { /* subheadings in copy pages */
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Roboto Condensed", sans-serif;
}

.h3, h3 { /* interface heading */
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Roboto Condensed", sans-serif;
}

.h4, h4 { /* Major product labels, copy page minor labels */
	font-size: 1.1rem;
	font-weight: 600;
	font-family: "Roboto Condensed", sans-serif;
}

.h5, h5 { /* not actually used but available for customisations and copy */
	font-size: 1rem;
	font-weight: 600;
	font-family: "Roboto Condensed", sans-serif;
}

@media (max-width: 991px) {
	.h1, h1 { 
		font-size: 1.4rem;
	}
	
	.h2, h2 {
		font-size: 1.3rem;
	}
	
	.h3, h3 {
		font-size: 1.2rem;
	}
	
	.h4, h4 {
		font-size: 1.1rem;
	}
	
	.h5, h5 {
		font-size: 1rem;
	}
}

.nav-tabs .nav-link {
	color: var(--ThemeDark);
	font-size: 0.875rem;
	font-weight: 500;
}

a, .nav-link {
	color: var(--ThemePrimary);
	text-decoration: none;
	transition: all 0.25s ease-in-out;
}

a:hover, .nav-link:hover {
	color: var(--ThemePrimaryVariant);
}

.page-link, .page-link:hover {
	color: var(--ThemeDark);
}

.card-title {
	margin-bottom: .75rem;
}

.card-title a {
	color: var(--ThemeDark);
}

@media (max-width: 575px) {
	.card-title, .card .price {
		font-size: 0.875rem;
	}
}

.col-form-label{
	font-weight: 500;
	color: #545454;
}

.form-label {
	font-weight: 500;
	color: #545454;
}

.form-control-plaintext {
	width: auto; /* Overrides the width 100% in Bootstrap 5 for Single Page Checkout etc */
}

.form-control:read-only {
	background-color: var(--ThemeWhiteVariant);
	pointer-events: none;
}

.form-control:focus, .form-select:focus, .page-link:focus {
    box-shadow: 0 0 0 .25rem rgba(0, 167, 209, 0.25); /* 25 % opacity of ThemePrimary) - https://rgbacolorpicker.com/hex-to-rgba */
	border-color: var(--ThemePrimary);
}

.form-heading {
	color: var(--ThemePrimary);
}

.form-check-input:checked {
	background-color: var(--ThemePrimary);
	border-color: var(--ThemePrimary);
}

strong, b, th, .table.dataTable tr.totalsRow td {
	font-weight: 600;
}

tbody, td, tfoot, th, thead, tr {
	border-color: var(--ThemePrimary);
}

.table-striped > tbody > tr:nth-of-type(2n+1) > * {
	--bs-table-bg-type: #f2f5f7;
}

/* ------ Buttons ------ */

.btn {
	font-weight: 500;
}

.btn-check:checked+.btn, .btn.active, .btn.show, .btn:first-child:active, :not(.btn-check)+.btn:active,
.btn:focus-visible, :not(.btn-check)+.btn:active:focus-visible {
	background-color: var(--ThemePrimary);
    border-color: var(--ThemePrimary);
	color: var(--ThemeWhite);
	box-shadow: none;
}

.btn-primary {
	background-color: var(--ThemePrimary);
    border-color: var(--ThemePrimary);
}

.btn-primary:hover {
	background-color: var(--ThemePrimaryVariant);
    border-color: var(--ThemePrimaryVariant);
}

.btn-outline-primary{
	border-color: var(--ThemePrimary);
	color: var(--ThemePrimary);
}
.btn-check:checked+.btn.btn-outline-primary, .btn-check:checked+.btn.btn-outline-primary:hover {
	color: var(--ThemeWhite);
}
.btn.btn-outline-primary:hover {
	color: var(--ThemePrimary);
	border-color: var(--ThemePrimary);
}

.btn-check.unavailable+.btn, .btn-check.unavailable+.btn:hover{
	border-color: var(--ThemeAlternate);
	color: var(--ThemeAlternate);
	text-decoration: line-through;
}

.btn-light {
	background-color: var(--ThemeWhite);
	border-color: var(--ThemeLight);
	color: var(--ThemeDark);
}

.btn-light:hover {
	background-color: #d3d4d5;
	color: var(--ThemeDark);
    border-color: var(--bs-btn-hover-border-color);
}

.btn-danger {
	background-color: var(--ThemeRed);
	border-color: var(--ThemeRed);
	color: var(--ThemeWhite);
}

.btn-danger:hover {
	background-color: var(--ThemeRedVariant);
	border-color: var(--ThemeRedVariant);
    color: var(--ThemeWhite);
}

.btn-cart {
	width:130px;
}

.btn-circle {
    display: inline-block;
    width: 40px;
    height: 40px; 
    /* line-height: 40px; */ /* Centers the icon vertically */
    text-align: center; /* Centers the icon horizontally */
    border-radius: 50%; 
    background-color: var(--ThemeWhite);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); 
    transition: all 0.25s ease-in-out; 
	color: var(--ThemeDark);
	border: 1px solid var(--ThemeLight);
}

.btn-circle:hover {
    background-color: #d3d4d5;
	color: var(--ThemeDark);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 
}

.badge {
	font-weight: 400;
}

/* Active and Focus */
.active>.page-link, .page-link.active, .dropdown-item.active, .dropdown-item:active, .dropdown-item:focus, .dropdown-item:hover {
	background-color: rgba(0, 167, 209, 0.1); /* 10 % opacity of ThemePrimary) - https://rgbacolorpicker.com/hex-to-rgba */
	border-color: #dee2e6;
	color: inherit;
}

/* ------ Messaging ------ */

.alert-info {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
}

/* ------ Misc ------- */

hr {
	opacity: 1;
    color: #dee2e6;
}

.list-group-item{
	border-color: #f2f2f2;	
}

.breadcrumb {
	font-size: 0.875rem;
	white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.breadcrumb-item {
	display: inline;
}

.breadcrumb-item a {
	color: var(--ThemeDark);
}

.breadcrumb-item+.breadcrumb-item::before {
	float: none;
	padding-right: 0.1rem;
}

.breadcrumb-item+.breadcrumb-item {
	padding-left: 0.1rem;
}

@media (max-width: 575px) {
	.breadcrumb {
		font-size: 0.625rem;
	}
}

#captcha {
    text-transform: uppercase;
}

/* ====== Location Specific Styles ====== */

/* ------ Container Styling ------ */

.fluid-restricted{
	max-width:1500px;
}
.form-restricted{
	max-width:650px;
}

/* ------ Header Common & Mobile Styling ------ */

/* Header Desktop */

.header-desktop .nav-link {
	color: var(--ThemeDark);
	margin: 0rem 0.5rem;
	font-weight: 500;
}

.header-desktop .nav-link:hover,
.header-desktop .nav-link.active {
	border-color: var(--ThemePrimary);
	color: var(--ThemeDark);
	font-weight: 500;
}

.header-desktop .nav-link:first-child {
	margin-left: 0rem;
}

.header-desktop .nav-link:last-child {
	margin-right: 0rem;
}

.header-desktop .nav-link i {
	color: var(--ThemeDark);
}

/* Header Desktop - Collapse and Dropdown Styling */

@media (max-width: 991px) {
	.dropdown-header{
		padding: 0.5rem 0rem;
		font-weight: 500;
		margin-bottom: 0;
		font-size: 0.875rem;
		color: #6c757d;
		white-space: nowrap;
	}

	.dropdown-divider {
		height: 0;
		margin: 0.5rem 0;
		overflow: hidden;
		border-top: 1px solid #dee2e6;
		opacity: 1;
	}
}

/* Mobile Header */

@media (max-width: 991px) {
	.header-mobile {
		padding-top: 1rem;
		padding-bottom: 1rem;
		border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
		z-index: 998;
		box-shadow: 0 2px 5px rgba(0, 0, 0, 0.16), 0 2px 3px rgba(0, 0, 0, 0.12);
		overflow: auto;
		background: var(--ThemeWhite);
		position: sticky;
		top: 0;
	}
	.header-mobile-icons {
		font-size: 1.25rem;
	}
	.header-mobile a {
		color: var(--ThemeDark);
		font-weight: 500;
	}
	.mobile-nav-collapse {
		padding-left: 0;
		list-style: none;
	}
}

.mobile-subpage, .view-all-products {
	font-weight: 400;
}

/* ------ Logo Styling ------ */

/*
#company-logo {

}
*/

/* ------ Wholesale Styling ------ */

.wholesale {
    width: 100%;
    max-width: 400px;
    margin: auto;
    justify-content: center;
	background-color: #f2f5f7;
}

.wholesale > .container-fluid {
	background: #fff;
	padding: 2rem;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	min-height: 405px;
}

.wholesale h1, .wholesale h2 {
	font-size: 1.2rem;
	margin-bottom: 1.5rem;
	text-align: center;
}

/* ------ Main Menu Styling ------ */

.nav-menu {
	background-color: #f2f5f7;
}

.main-menu-desktop .nav-link {
	color: var(--ThemeDark);
	margin: 0rem 0.5rem;
	font-weight: 500;
}

.main-menu-desktop .nav-link:hover, 
.main-menu-desktop .nav-link.active {
	border-color: var(--ThemePrimary);
	color: var(--ThemeDark);
	font-weight: 500;
}

.main-menu-desktop li:first-child a {
	margin-left: 0rem;
}

.main-menu-desktop li:last-child a {
	margin-right: 0rem;
}

.main-menu-desktop .nav-link i {
	color: var(--ThemeDark);
}

/* old bad 'mega' menu */
.show>.product-2col{
	display:flex;
	flex-direction:row;
	flex-wrap:wrap;
	width:550px;
}
.product-2col a{
	flex:0 0 50%;
}
.show>.product-3col{
	display:flex;
	flex-direction:row;
	flex-wrap:wrap;
	width:800px;
}
.product-3col a{
	flex:0 0 33.3%;
}

/* ------ Dropdowns ------ */

.dropdown-toggle::after {
    display: none; /* Hide the default caret */
}

.dropdown-toggle {
    position: relative;
}

.dropdown-toggle::before {
    content: '\f078';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    right: -16px;
    top: 55%;
    transform: translateY(-50%);
    font-size: 10px;
    line-height: 10px;
	transition: transform 0.3s ease;
	transform-origin: center; /* Set the origin of transformation */
}

[data-bs-toggle="dropdown"].show::before {
	transform: rotate(180deg) translateY(50%); /* Adjust the Y translation if needed */
	color: var(--ThemePrimary);
}

.nav-link.dropdown-toggle {
	margin-right: 1rem;
}

/* ------ Main Content ------ */

.content-container {
	margin-top:1rem;
	margin-bottom:1rem;
}

/* Zippay / Afterpay / PayPal */

#zip-product-widg {
	padding: 0px;
}

.afterpay-details {
	margin-bottom: 5px;
	font-size: 0.875rem;
}

.afterpay-line {
	min-height:49px;
	font-size: 0.875rem;
}

.afterpay-list {
	min-height: 72px;
	font-size: 0.875rem;
}

.afterpay-view-more {
	font-size: 11px;
}

.afterpay-payment-image, .paypal-payment-image {
	height:22px;
	vertical-align:middle;
}

.zip-container span {
	font-size: 0.875rem !important;
}

.zip-container {
	color: #1a1a1a;
}

.zip-payment-image {
	height: 28px;
	vertical-align:middle;
}

.zip-container .zip-logo {
	margin-left: -5px !important;
}

/* Blog & Cart Sidebar */

@media (min-width: 992px) {
	.general-sidebar {
		background: #f9fafb;
		padding: 1.5rem;
		border-radius: 0.400rem;
		position: sticky;
		top: .5rem;
	}
}

.cart-sidebar {
	background: #f9fafb;
    padding: 1.5rem;
	border-radius: 0.400rem;
	position: sticky;
    top: .5rem;
}


/* ------ Filter & Category Sidebar ------ */

.sidebar-component{
	margin-bottom:.5rem;
}

.sidebar-component .list-group-item:hover {
	text-decoration: none;
}

.sidebar-container .list-group-item {
	color: #595959;
	padding: 0.75rem 0rem;
}

.sidebar-container .dropdown-item {
	color: #595959;
}

.sidebar-container .list-group-item.active {
	font-weight: 500;
	background-color: var(--ThemeWhite);
	color: var(--ThemeDark);
	border-color: #f2f2f2;
}

.sidebar-section-title {
	padding: 0rem 0rem 0.5rem 0rem
}

.sidebar-section-title > a {
	color: var(--bs-body-color);
}

.sidebar-filter-title {
	padding: 0.5rem 0rem;
	font-weight: 500;
	color: var(--ThemeDark);
}

.sidebar-filter > a {
	width: fit-content;
}

.no-filter {
	padding: 0.5rem 0rem;
	font-weight: 400;
	font-size: 0.875rem;
	color: #595959;
}

.sidebar-container .category1-text,
.sidebar-container .category2-text,
.sidebar-container .category3-text {
	margin-right:10px; 
}

.sidebar-container .category2-text {
	margin-left: 10px;
	font-size: 0.875rem;
}

.sidebar-container .category3-text {
	margin-left: 20px;
	font-size: 0.825rem;
}

@media (max-width: 991px) {
	.category2-text {
		margin-left: 10px;
		font-size: 0.875rem;
	}
	.category3-text {
		margin-left: 20px;
		font-size: 0.825rem;
	}
}

.category-icon {
	position:absolute;
	top:calc(50% - 10px);
	right:12px;
	color: rgba(0, 0, 0, 0.35);
	font-size: 0.825rem;
}

.mobile-category-expand {
	font-size: 0.825rem;
    color: rgba(0, 0, 0, 0.35);
}

/* ------ Cart ------ */

.fullCart h5 a {
	color: var(--ThemeDark);
}

.fullCart th, .fullCart td{
	vertical-align: inherit;
}

.removeCart {
	text-align: center;
}

.removeCart a {
	color: var(--ThemeRed)
}

.clearCart a {
	font-size: 0.875rem;
    color: var(--ThemeRed);
}

.cartsummary_controls .btn {
	min-width: 130px;
}

.savecart_controls{
	width: 300px;
}

@media (max-width: 767px) {
	.cartsummary_controls, .savecart_controls {
		width: 100%;
		max-width: 300px;
	}
	.cartsummary_controls .btn{
		width: 100%;
	}
}

.cart-image {
	width: 75px;
	object-fit: contain;
	height: 75px;
	border: 1px solid var(--ThemeLight);
}

/* Checkout Prices*/

.checkout-line {
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.5rem; 
	align-items: center;
}

.label {
	font-weight: 500; 
}

.amount {
	text-align: right;
}

.cart-warning-container {
	z-index: 5;
    bottom: 20px;
    left: 20px;
}

.toast {
	width: 30vw;
    min-width: 300px;
	max-width:unset;
	background-color: var(--ThemeWhite);
}
.toast-header {
	background-color: var(--ThemePrimary);
	color: var(--ThemeWhite);
}
.toast-header .close {
	color: var(--ThemeWhite);
}

/* ------ Product List ------ */

.pl-container {
	display:grid;
}

.sortby, .viewas, .itemsperpage, .pagination, #blogCategoryWrapper, #blogSearchWrapper {
	margin-bottom:0.5rem;
}

.product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem; /* This sets both row and column gaps */
	margin-bottom: 0.5rem;
	align-items: stretch; /* This ensures that all cards are of equal height */
}

.productlist h5 {
	margin-bottom: 0.25rem;
}

.productlist h5 a {
	color: var(--ThemeDark);
}

.product-image-card {
	object-fit: contain;
	height: 100%;
	max-width: 100%;
}

@media (min-width: 400px) and (max-width: 575px) {
	.product-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 576px) and (max-width: 767px) {
	.product-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 991px) {
	.product-grid {
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	}
}

.product-image-list{
	object-fit: contain;
	min-height: 150px;
	max-height: 200px;
	max-width: 100%;
	display: block;
	margin: auto;
}

.product-image-detail-primary {
	width:100%;
	object-fit:contain;
	max-height:500px;
}

.product-image-detail-secondary {
	object-fit:contain;
	max-height:100px;
	display:block;
	margin:auto;
}

.product-image-line {
	width: 100px;
	object-fit: contain;
	height: 100px;
	border: 1px solid var(--ThemeLight);
}

.cart-alignment {
	/*width and placing of the cart widget and anything that needs to follow it */
	width:100%;
	max-width: 220px;
}

.card .cart-alignment {
	margin: auto;
	max-width: 150px;
	float: none;
}

/*
@media (min-width: 1200px) {
	#productDetailWrapper .cart-alignment {
		float: right;
	}
}
*/
.cart-widget button {
	width:40px;
}

.cart-column {
	min-width:195px;
}

@media (min-width: 576px) {
	.productlist .cart-alignment {
		margin-left: auto;
	}
}
/*
@media (min-width: 1200px) {
	.option-info {
		min-height: 150px;
	}
}
*/
.list-cart{
	/*margin:auto;*/
	max-width:360px;
}

.list-cart p{
	margin-bottom:0.25rem;
}

.gallery-cart{
	min-height:31px;
	display: flex;
    align-items: center;
}

.price {
	font-weight: 500;
	margin-bottom: 0rem;
	letter-spacing: -1px;
    display: flex;
    align-items: center;
	justify-content: flex-end;
    gap: 5px;
}

.card .price {
	justify-content: center;
}

@media (max-width: 575px) {
	.line-price .price {
		justify-content: flex-start;
	}
}

#productDetailInfo .price {
	font-size:1.25rem;
	justify-content: flex-start;
}

.gst-text{
	font-size: 0.8rem;
    font-weight: 400;
	letter-spacing: -1px;
	color: #4b4b4b;
}

.product-information {
	font-size: 0.875rem;
}

/* Categories */

.carousel_categories .card {

}

.carousel_categories .card-body {
	justify-content: center;
}

.carousel_categories .card-title a {
	color: var(--ThemeBlack);
}

.carousel_categories .card-title a:hover {
	color: var(--ThemeBlack);
	opacity: 0.8;
}

/* May want to adjust this to a different height and "contain" depending on the images used */
.carousel_categories img {
    height: 200px;
    background: #fff;
}

/* Stock */

.InStockMessage {
	margin-bottom: .25rem;
	font-size: 0.875rem;
	color: #4b4b4b;
}

#productDetailInfo .InStockMessage {
	margin-bottom: .5rem;
}

.inStock i {
	color: var(--ThemeGreen)
}

.lowStock i {
	color: var(--ThemeOrange)
}

.outOfStock i {
	color: var(--ThemeRed)
}

.onBackorder i {
	color: var(--ThemeDark)
}

/* ------ Checkout ------ */

.FatZebraFrame {
    max-width:500px;
    width:100%;
    height: 530px;
}

@media screen and (max-width: 414px) {
    .FatZebraFrame {
        height: 550px;
    }
}

/* ------ Footer Styles ------ */

.footer-navigation h3 {
	color: var(--ThemePrimary);
}

.footer-navigation{
	background-color:var(--ThemeWhite);
	color: var(--ThemeDark); 
	font-size: 0.875rem;
}

.footer-navigation a {
	color: var(--ThemeDark);
	width:fit-content;
}

.footer-navigation a:hover {
	color: var(--ThemePrimary);
}

@media (max-width: 991px) {
	.footer-navigation {
		text-align: center;
	}
	.footer-address {
		padding: 0rem 1rem;
	}
	.footer-address .nav-link {
		margin:auto;
	}
	.payment-icons > div {
		justify-content: center;
	}
}

.footer-navigation .nav-link {
	padding: .25rem 0 .25rem 0; /* reduce vertical and horizontal padding for footer links */
}

.footer-navigation .fa-stack {
	width: 2em; /* Unifies footer icon spacing */
}

.footer-navigation .list-unstyled {
	font-weight: 500;
}

.footer-navigation .list-unstyled:hover {
	color: var(--ThemePrimary);
}

#mce-EMAIL::placeholder,#mce-EMAIL:focus,#mce-EMAIL{
	/* background: transparent; */
	max-width: 300px;
}

.footer-text-area p:last-of-type { /* Removes spacing of text so icons control it */
	margin: 0px;
}

.social-icons a {
	color: var(--ThemeWhite);
}

.social-icons a:hover {
	color: var(--ThemeLight);
}

.social-icons .fa-inverse {
	color: var(--ThemePrimary);
}

.footer-payment-image {
	filter: grayscale(1);
    height: 25px;
    margin-bottom: 1px;
}

.zip-logo {
	margin-left: 2px;
}

.footer-newsletter {
	background-color: var(--ThemeWhite);
	font-size: 0.875rem;
}

/* ------ Copyright Styles ------ */

.footer-copyright {
	color: var(--ThemeDark);
	font-size: 0.875rem;
	background-color: var(--ThemeWhite);
}

.footer-copyright a {
	color: var(--ThemeDark);
}

.footer-copyright a:hover {
	color: var(--ThemePrimary);
}

/* ====== Page Specific overrides ====== */

.home-section {
	padding: 4rem 0rem;
}

.home-section h1, .home-section h2  {
	font-size: 1.75rem;
}

.home-section:nth-child(even) {
	background-color: #f2f5f7;
}

.home-category-section {
	background-color: #cdd4dd;
}

/* ====== Addons ====== */

/* ------ Image Carousel ------ */
.carousel-item img{
	min-height: 300px;
    object-fit: cover;
}

/* ------ Callouts ------ */

.callout-content {
	display: flex;
	align-items: center;
	flex-direction: column;
}
.callout-content a {
	width:100%;
}

/* ------ Account Manager ------ */

.AMloggedin {
	background-color:var(--ThemePrimary);  /* highlight colour on logged in customer - default var(--ThemePrimary) */
	color: var(--ThemeWhite);
}

/* ------ Product Carousels and Banner ------ */

.swiper {
	width: 100%;
	height: auto;
}
/* btn-circle container */

.swiper-prev-icon, .swiper-next-icon {
    position: absolute;
    top: 50%;
    margin-top: calc(0px - (var(--swiper-navigation-size)/ 2));
    z-index: 10;
    cursor: pointer;
}

.swiper-prev-icon {
	left: -17px;
}

.swiper-next-icon {
	right: -17px;
}

@media (max-width: 1499px) {
	.swiper-prev-icon {
		left: -10px;
	}
	
	.swiper-next-icon {
		right: -10px;
	}
}

@media (max-width: 991px) {
	.swiper-prev-icon, .swiper-next-icon {
		display: none;
	}
}

.swiper-slide img {
	display: block;
	width: 100%;
}

.swiper-scrollbar {
    cursor: grab;
}

/* Positioning for banner image */
.banner .swiper-pagination {
	bottom: 1rem; /* 1rem from the bottom of the banner image */
}

/* Positioning for product carousel */
.carousel .swiper-pagination {
	position: static;
	margin-top: 1rem; /* 1rem below the carousel */
}

/* ------ Was Price ------ */

.productListWas {
	margin-bottom: 0.25rem;
}

.wasPriceText {
	color: var(--ThemeRed);
	font-weight: 500;
	text-decoration: line-through;
}

.saveText {
	color: var(--ThemeRed);
	font-weight: 500;
}

#productDetailInfo .saveText {
	font-size: 0.875rem;
}

/* Cart Colours */

#ajaxSummaryCart .shopping-cart-on-desktop {
	color: var(--ThemePrimary);
}

#ajaxSummaryCart .shopping-cart-off-desktop {
	color: var(--ThemeDark);
}

#ajaxSummaryCartMini .shopping-cart-on-mobile {
	color: var(--ThemePrimary);
}

#ajaxSummaryCartMini .shopping-cart-off-mobile {
	color: var(--ThemeDark);
}

/* Offcanvas */

.offcanvas-lg {
	z-index: 9999; /* Doesn't hide the mobile header like other offcanvas' */
}

.offcanvas-header {
	border-bottom: 1px solid #dee2e6;
}

.offcanvas-body .nav-link {
	padding: 0.5rem 0rem;
}

.offcanvas-body .navbar-nav .nav-link.active, 
.offcanvas-body .navbar-nav .nav-link.show {
	color: var(--ThemeBlack);
}

@media (max-width: 991px) {
	.offcanvas, .offcanvas-lg {
		--bs-offcanvas-width: 90vw;
	}
}

@media (max-width: 575px) {
	.offcanvas, .offcanvas-lg {
		--bs-offcanvas-width: 100vw;
		font-size: 0.875rem;
	}
}

.offcanvas-body .nav-link {
	color: var(--ThemeDark);
}

/* Search Suggestions */

.searchSuggestionPane {
	max-height: 75vh !important;
	position: static !important;
	padding: 0rem;
}

.suggestion-container {
	margin-bottom: .5rem;
}

.suggestion-thumb {
	padding: .5rem;
}

.suggestion-name {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-weight: 500;
}

.suggestion-name, .suggestion-code, .suggestion-price {
	color: var(--ThemeDark);
}

.suggestion-price {
	font-weight: 500;
}

.view-all {
	background-color: var(--ThemePrimary);
	padding: .5rem 1rem;
	transition: all 0.25s ease-in-out;
}

.view-all div {
	display: flex;
	justify-content: space-between;
}

.view-all a {
	color: var(--ThemeWhite);
}

.view-all:hover {
	background-color: var(--ThemePrimaryVariant);
}

@media (max-width: 991px) {
	.suggestion-name {
		padding: .5rem 1rem;
	}
}

/* Header Notifications */

#headerNotifications:hover {
	cursor: pointer;
}

#headerNotifications {
	width: 100%;
	color: var(--ThemeWhite);
	background-color: var(--ThemePrimary);
    font-weight: 400;
}

#headerNotifications a {
	color: var(--ThemeWhite);
	transition: all 0.25s ease-in-out;
}

#headerNotifications a:hover {
	color: var(--ThemeWhite);
	text-decoration: none;
}

#headerNotifications p {
	display: inline;
}

#headerNotifications .swiper-slide {
	padding: 0.5rem 0rem;
	font-size: 0.875rem;
}

@media (max-width: 991px) {
	#headerNotifications p {
		font-size: 0.75rem;
	}
}

/* Labels for Carousel 1 */

.carouselOne {
    display: inline-block;
    position: absolute;
    left: 8px;
    top: 8px;
    padding: 2px 4px;
    background: var(--ThemePrimary);
    border: 1px solid var(--ThemePrimary);
    color: var(--ThemeWhite);
    z-index:1;
    border-radius: 4px;
	min-width: 80px;
    font-size: 0.75rem;
	text-align: center;
	font-weight: 400;
}

.carouselOne-line {
    display: inline-block;
    padding: 2px 4px;
    background: var(--ThemePrimary);
    border: 1px solid var(--ThemePrimary);
    color: var(--ThemeWhite);
    font-size: 0.75rem;
	min-width: 100px;
    text-align: center;
	font-weight: 400;
}

/* Labels for Carousel 2 */

.carouselTwo {
    display: inline-block;
    position: absolute;
    left: 8px;
    top: 8px;
    padding: 2px 4px;
    background: var(--ThemePrimary);
    border: 1px solid var(--ThemePrimary);
    color: var(--ThemeWhite);
    z-index:1;
    border-radius: 4px;
	min-width: 80px;
    font-size: 0.75rem;
	text-align: center;
	font-weight: 400;
}

.carouselTwo-line {
    display: inline-block;
    padding: 2px 4px;
    background: var(--ThemePrimary);
    border: 1px solid var(--ThemePrimary);
    color: var(--ThemeWhite);
    font-size: 0.75rem;
	min-width: 100px;
    text-align: center;
	font-weight: 400;
}

/* General styles for both carousels */

.carousel-line-container {
    position: absolute;
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
    bottom: 8px;
    text-align: center;
}

.footer-contact {
	background-color: var(--ThemePrimary) !important;
	color: var(--ThemeWhite);
}

/* Dropdown override for Desktop Product Menu */

.dropdown-menu.show {
	display: flex;
	flex-direction: column;
}

/* Search */

#header-search-button {
	background: #fff;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: .875rem;
	line-height: 1.5;
	color: var(--ThemeDark);
	border-radius: .400rem;
	font-weight: 400;
	height: 34px;
	background-clip: padding-box;
	border: var(--bs-border-width) solid #dcdcef;
	padding: .25rem .5rem;
	transition: all .25s ease-in-out;
	margin-left: auto;
}

#header-search-button:hover {
	background-color: #f4f4fa;
}

/* Override Border Widths */
.table-bordered > :not(caption) > *,
.table-bordered > :not(caption) > * > * {
	border-width: 2px;
}