/*!
 * @package     JoomCart
 * @author      JoomCart.com https://joomcart.com
 * @license     https://www.gnu.org/licenses/gpl-3.0.html GPLv3
 * @link        https://joomcart.com
 * @copyright   (C) 2025 JoomCart.com
 */
:root, [data-joomcart-theme="light"] {
	--joomcart-hue: 214;
	--joomcart-bg-light: #f0f4fb;
    --joomcart-text-dark: #495057;
    --joomcart-text-light: #ffffff;
    --template-special-color: #001b4c;
	--joomcart-body-bg: #f0f4fb;
	--joomcart-body-color: #212529;
	--joomcart-subtext-color: #6c757d;
	--joomcart-link-color: #2a69b8;
	--joomcart-link-hover-color: #173a65;
	--joomcart-content-bg: #ffffff;
	--joomcart-color-featured: #e98b00;
	--joomcart-color-success: #457d54;
	--joomcart-color-grey: hsl(var(--joomcart-hue), 27%, 86%);
	--joomcart-card-bg: var(--joomcart-content-bg);
	--joomcart-border-color: #dee2e6;
	--joomcart-box-shadow: 0 2px 10px -8px hsl(var(--joomcart-hue), 40%, 50%);
	--joomcart-card-box-shadow: 0 2px 10px -8px hsl(var(--joomcart-hue), 40%, 50%);
	--joomcart-heading-color: hsl(var(--joomcart-hue), 40%, 20%);
	--joomcart-menu-hover-color: hsl(var(--joomcart-hue), 40%, 40%);
	--joomcart-menu-border-bottom: 1px solid hsl(var(--joomcart-hue), 40%, 90%);
	--joomcart-menu-item-bg: var(--joomcart-card-bg);
	--joomcart-submenu-item-bg: #fafeff;
	--joomcart-menu-item-active-bg: hsl(var(--hue), 40%, 98%);
	--joomcart-menu-item-border-color: hsl(var(--joomcart-hue), 40%, 40%);
	--joomcart-table-border-color: var(--joomcart-border-color);
	--joomcart-table-bg: var(--joomcart-content-bg);
	--joomcart-table-bg-secondary: #fafbff;
	--joomcart-border-width: 1px;
	--joomcart-gap: 0;
	--joomcart-gap-xs: 0.4rem; /* Extra Small gap */
	--joomcart-gap-sm: 1rem;   /* Small gap */
    --joomcart-gap-md: 5%;     /* Medium gap */
    --joomcart-gap-lg: 1.5rem;   /* Large gap */
    --joomcart-gap-lgr: 2rem;   /* Large gap */
	--joomcart-fieldset-border: 1px solid hsl(var(--joomcart-hue), 40%, 80%);
	--joomcart-info-icon-bg: rgba(255, 87, 34, 0.07);
	--joomcart-info-icon-color: rgba(255, 55, 55, 0.78);
	--joomcart-title-margin-bottom: 1.25rem;
	--joomcart-help-sidebar-border: rgba(255, 55, 55, 0.78);
	--joomcart-icon-width-md: 1.625rem;
	--joomcart-highlight-bg: #fffbd2;
	--joomcart-label-bg: #f8f9fa;
	--joomcart-label-border: 1px solid #dee2e6;
	--joomcart-color-positive: #28a745;
	--joomcart-color-error: #dc3545;
	--joomcart-modal-background: rgba(0, 0, 0, 0.35);
	--joomcart-modal-content-bg: #fff;
	--joomcart-color-success: #198754;
	--joomcart-loader-border-width: 2px;
	--joomcart-loader-bg-color: rgba(0, 0, 0, 0.2);
	--joomcart-loader-fg-color: var(--joomcart-link-color);
	--joomcart-loader-size: 14px;
	--joomcart-loader-sm: 14px;
	--joomcart-loader-md: 24px;
	--joomcart-loader-lg: 34px;
	--joomcart-loader-xl: 44px;
	--joomcart-info-border-color: #e9ecef;
	--joomcart-info-bg: #f8f9fa;
	--joomcart-info-box-shadow: rgba(9, 30, 66, 0.25) 0px 1px 1px, rgba(9, 30, 66, 0.13) 0px 0px 1px 1px;
	--joomcart-published-status-button-color: var(--joomcart-color-success);
	--joomcart-unpublished-status-button-color: #cdcdcd;
	--joomcart-tooltip-bg: #000000;
 	--joomcart-tooltip-color: #ffffff;
}

.joomcart * {
	box-sizing: border-box;
}

.joomcart-row {
    display: flex;
    flex-flow: row wrap;
    list-style: none;
    margin: 0;
    padding: 0;
    text-rendering: optimizeSpeed;
    gap: var(--joomcart-gap);
}

.joomcart-block {
	flex: 1;
	min-width: 0;
	min-height: 0;
}

.joomcart-col-1 {
    flex: 0 0 calc(8.33333% - var(--joomcart-gap) * 11 / 12);
    max-width: calc(8.33333% - var(--joomcart-gap) * 11 / 12);
}

.joomcart-col-2 {
    flex: 0 0 calc(16.66667% - var(--joomcart-gap) * 10 / 12);
    max-width: calc(16.66667% - var(--joomcart-gap) * 10 / 12);
}

.joomcart-col-3 {
    flex: 0 0 calc(25% - var(--joomcart-gap) * 9 / 12);
    max-width: calc(25% - var(--joomcart-gap) * 9 / 12);
}

.joomcart-col-4 {
    flex: 0 0 calc(33.33333% - var(--joomcart-gap) * 8 / 12);
    max-width: calc(33.33333% - var(--joomcart-gap) * 8 / 12);
}

.joomcart-col-5 {
    flex: 0 0 calc(41.66667% - var(--joomcart-gap) * 7 / 12);
    max-width: calc(41.66667% - var(--joomcart-gap) * 7 / 12);
}

.joomcart-col-6 {
    flex: 0 0 calc(50% - var(--joomcart-gap) * 6 / 12);
    max-width: calc(50% - var(--joomcart-gap) * 6 / 12);
}

.joomcart-col-7 {
    flex: 0 0 calc(58.33333% - var(--joomcart-gap) * 5 / 12);
    max-width: calc(58.33333% - var(--joomcart-gap) * 5 / 12);
}

.joomcart-col-8 {
    flex: 0 0 calc(66.66667% - var(--joomcart-gap) * 4 / 12);
    max-width: calc(66.66667% - var(--joomcart-gap) * 4 / 12);
}

.joomcart-col-9 {
    flex: 0 0 calc(75% - var(--joomcart-gap) * 3 / 12);
    max-width: calc(75% - var(--joomcart-gap) * 3 / 12);
}

.joomcart-col-10 {
    flex: 0 0 calc(83.33333% - var(--joomcart-gap) * 2 / 12);
    max-width: calc(83.33333% - var(--joomcart-gap) * 2 / 12);
}

.joomcart-col-11 {
    flex: 0 0 calc(91.66667% - var(--joomcart-gap) * 1 / 12);
    max-width: calc(91.66667% - var(--joomcart-gap) * 1 / 12);
}

.joomcart-col-12 {
    flex: 0 0 100%;
    max-width: 100%;
}

.joomcart-flex-270 {
	flex: 0 0 270px;
	max-width: 270px;
}

.joomcart-no-gap {
	--joomcart-gap: 0;
}
.joomcart-gap-xs {
    --joomcart-gap: var(--joomcart-gap-xs);
}
.joomcart-gap-sm {
    --joomcart-gap: var(--joomcart-gap-sm);
}

.joomcart-gap-md {
    --joomcart-gap: var(--joomcart-gap-md);
}

.joomcart-gap-lg {
    --joomcart-gap: var(--joomcart-gap-lg);
}

.joomcart-gap-lgr {
    --joomcart-gap: var(--joomcart-gap-lgr);
}

.joomcart-white-space-nowrap {
	white-space: nowrap;
}

.joomcart-align-items-center {
	align-items: center;
}

.joomcart-justify-content-center {
	justify-content: center;
}

.joomcart-justify-content-start {
	justify-content: flex-start;
}

.joomcart-justify-content-end {
	justify-content: flex-end;
}

.joomcart-justify-content-between {
	justify-content: space-between;
}

.joomcart-justify-content-around {
	justify-content: space-around;
}

.joomcart-card {
	background: var(--joomcart-card-bg);
    box-shadow: var(--joomcart-card-box-shadow);
    border-radius: .25rem;
	margin: 0 0 1.5rem;
}
.joomcart-card-content {
    box-shadow: none;
    border: 0;
    border-radius: 0;
    padding: 1.875rem 2vw;
}

.joomcart-loader {
	position: relative;
}

.joomcart-loading > .joomcart-loader-content {
    opacity: 0.35;
}
.joomcart-loader-shape {
	display: none;
	position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}
.joomcart-loader-shape::after {
	content: "";
	position: absolute;
	top: 50%;
    left: 0;
    right: 0;
    width: var(--joomcart-loader-size);
    height: var(--joomcart-loader-size);
	margin: calc(var(--joomcart-loader-size) / -2) auto 0;
    border: var(--joomcart-loader-border-width) solid var(--joomcart-loader-bg-color);
    border-top-color: var(--joomcart-loader-fg-color);
    border-radius: 50%;
    animation: joomcart-spin 1s linear infinite;
}
.joomcart-loader-sm {
	--joomcart-loader-size: var(--joomcart-loader-sm);
	--joomcart-loader-border-width: 2px;
}
.joomcart-loader-md {
	--joomcart-loader-size: var(--joomcart-loader-md);
	--joomcart-loader-border-width: 3px;
}
.joomcart-loader-lg {
	--joomcart-loader-size: var(--joomcart-loader-lg);
	--joomcart-loader-border-width: 3.5px;
}
.joomcart-loader-xl {
	--joomcart-loader-size: var(--joomcart-loader-xl);
	--joomcart-loader-border-width: 4px;
}
.joomcart-loading > .joomcart-loader-shape {
	display: block;
}
.btn .joomcart-loader-shape::after {
	--joomcart-loader-bg-color: #fff;
}
.joomcart-btn-wider {
	min-width: 200px;
}

/**
Modal
*/
.joomcart-modal {
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: var(--joomcart-modal-background);
    z-index: 999999999;
}

.joomcart-modal.joomcart-modal-active {
    display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
}
.joomcart-modal.joomcart-modal-active.joomcart-modal-full,
.joomcart-modal.joomcart-modal-active.joomcart-modal-large {
	justify-content: flex-start;
}
body.joomcart-modal-active {
    overflow: hidden;
}
.joomcart-modal-wrapper {
    position: relative;
    z-index: 11;
    background: var(--joomcart-modal-content-bg);
    width: 90vw;
    margin: 5vh 0;
    border-radius: 0.25rem;
    animation: .4s joomcart-dialog-show;
	box-shadow: 1px 3px 3px 0px rgba(0, 0, 0, 0.2), 1px 3px 15px 2px rgb(0, 0, 0, 0.2);
	overflow: hidden;
}
.joomcart-modal-no-animation .joomcart-modal-wrapper {
	animation: none !important;
}
.joomcart-modal-standard .joomcart-modal-wrapper {
	max-width: 800px;
}
.joomcart-modal-full .joomcart-modal-wrapper {
	height: 90vh;
	max-width: 1700px;
}
.joomcart-modal-large .joomcart-modal-wrapper {
	height: 90vh;
	max-width: 1200px;
}
.joomcart-modal-small .joomcart-modal-wrapper {
	max-width: 600px;
}
.joomcart-modal-content {
	padding: 1.25rem 1.5rem 1.25rem;
    max-height: calc(70vh);
    overflow: auto;
}
.joomcart-modal-iframe .joomcart-modal-content {
	height: 90vh;
	max-height: 90vh;
	padding: 0 !important;
}
.joomcart-modal-full .joomcart-modal-content,
.joomcart-modal-large .joomcart-modal-content {
	max-height: calc(90vh - 60px);
	padding-bottom: 50px;
}
.joomcart-modal-content iframe {
	width: 100%;
	height: 100%;
	border: none;
}
.joomcart-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: var(--joomcart-modal-content-bg);
	border-bottom: 1px solid rgba(34, 36, 38, 0.15);
	padding: 1rem 1.5rem 1rem;
}
.joomcart-modal-header > h3 {
    margin: 0;
}

@keyframes joomcart-dialog-show {
	0% {
		opacity: 0;
		transform: translateY(-50px);
	}

	30% {
		opacity: 1;
	}

	100% {
		transform: translateY(0);
	}
}

/* Tooltip */
[data-joomcart-tooltip] {
	position: relative;
}

[data-joomcart-tooltip]:hover::after {
	content: attr(data-joomcart-tooltip);
	position: absolute;
	bottom: auto;
    right: auto;
    left: 50%;
    top: 100%;
	transition: all .1s ease;
	transform: translateX(-50%);
	transform-origin: center top;
	text-align: start;
	background: var(--joomcart-tooltip-bg);
	color: var(--joomcart-tooltip-color);
	font-weight: normal;
	margin: .25em;
    padding: .5em;
	border-radius: .2rem;
	white-space: nowrap;
	z-index: 999999999;
}
[data-joomcart-tooltip-style="left fixed"]:hover::after {
	left: 0 !important;
	transform: none !important;
	white-space: normal !important;
	width: 250px !important;
}
[data-joomcart-tooltip-style="left"]:hover::after {
	left: 0 !important;
	transform: none !important;
}
.joomcart-product {
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}
.joomcart-product a:not(.btn) {
	text-decoration: none;
	color: inherit;
}
.joomcart-product-price {
	font-size: 18px;
	font-weight: 600;
}

.joomcart-product-info {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}
.joomcart-cart input.joomcart-quantity-input {
	max-width: 100px !important;
}
.joomcart-text-center {
	text-align: center !important;
}
.joomcart-text-right {
	text-align: right !important;
}
.joomcart-font-weight-bold {
	font-weight: bold !important;
}
.joomcart-flex-valign-center {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.joomcart-flex-column {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.joomcart-spacer-sm {
	height: 30px;
}
.joomcart-spacer {
	height: 50px;
}