/**
 *
 * @author SM planet - smplanet.net
 * @package VirtueMart
 * @subpackage custom
 * @copyright Copyright (C) 2012-2016 SM planet - smplanet.net. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 *
 **/

.catproducttable, .catproducttable tr, .catproducttable th, .catproducttable td { border:none; }

.catproducttable th { font-weight:400; font-size: 120%; text-align:center;}

.catproducttable td { text-align: center; }

.catproducttable .cell_image { text-align: left;}

.catproducttable .cell_image img { max-height: 70px; max-width: 80px;}

.catproducttable .cell_id { text-align: left;}

.catproducttable .cell_sku { text-align: left;}

.catproducttable .cell_name { text-align: center;}

.catproducttable .cell_s_desc { text-align: left;}

.catproducttable .cell_weight { text-align: center;}

.catproducttable .cell_size {text-align: center;}

.catproducttable .cell_stock {}

.catproducttable .cell_basePrice {}

.catproducttable .cell_basePriceWithTax {}

.catproducttable .cell_priceWithoutTax {}

.catproducttable .cell_salesPrice {}

.catproducttable .cell_taxAmount {}

.catproducttable .cell_discountAmount {}

.catproducttable .cell_sum_weight {}

.catproducttable .cell_sum_basePrice {}

.catproducttable .cell_sum_basePriceWithTax {}

.catproducttable .cell_sum_taxAmount {}

.catproducttable .cell_sum_discountAmount {}

.catproducttable .cell_sum_priceWithoutTax {}

.catproducttable .cell_sum_salesPrice {}

.catproducttable .row_attached_product {font-weight:700;}

#total_weight {}

#total_basePrice {}

#total_basePriceWithTax {}

#total_taxAmount {}

#total_discountAmount {}

#total_priceWithoutTax {}

#total_salesPrice {}

.catproduct-loading {
	display:none;
	background: url("ajax-loader.gif") no-repeat;
	height: 32px;
	left: 50%;
	top: -200px;
	position: relative;
	width: 32px;
}

.catproducttable  input.quantity-controls {padding: 0px;}
.catproducttable  .vm-price-value span {min-width: inherit;}

.catproducttable td.cell_addToCartEach { text-align: right; }

.catproducttable .cell_link { text-align: left; vertical-align: top;}
.catproducttable .cell_link img {max-width: 15px;}

/* FYI Bulk Order v1.1.16: stable product-page controls and price presentation */
.catproduct_form .catproducttable {
	border-collapse: collapse;
	table-layout: auto;
}
.catproduct_form .catproducttable th,
.catproduct_form .catproducttable td {
	vertical-align: middle;
	padding: 10px 8px;
}
.catproduct_form .catproducttable .cell_salesPrice,
.catproduct_form .catproducttable .cell_basePrice,
.catproduct_form .catproducttable .cell_basePriceWithTax,
.catproduct_form .catproducttable .cell_priceWithoutTax {
	white-space: nowrap;
	min-width: 90px;
}
.catproduct_form .catproducttable .cell_quantity {
	white-space: nowrap;
	min-width: 118px;
}
.catproduct_form .quantity-box,
.catproduct_form .quantity-controls {
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
}
.catproduct_form input.quantity-input {
	box-sizing: border-box;
	width: 52px;
	height: 40px;
	margin: 0 4px 0 0;
	padding: 4px;
	text-align: center;
}
.catproduct_form span.quantity-controls {
	gap: 4px;
}
.catproduct_form input.quantity-controls,
.catproduct_form button.quantity-controls {
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 40px;
	min-width: 38px;
	margin: 0;
	padding: 0;
	border: 1px solid currentColor;
	border-radius: 3px;
	background: #174f83 !important;
	background-image: none !important;
	box-shadow: none !important;
	color: #fff !important;
	font: 700 22px/1 Arial, sans-serif;
	text-indent: 0;
	cursor: pointer;
}
.catproduct_form .vm-price-value,
.catproduct_form [class^="Price"],
.catproduct_form [class*=" Price"] {
	display: inline;
	min-width: 0;
}


/* FYI Bulk Order v1.1.16: permanent literal controls; no inherited VM glyphs. */
.catproduct_form button.quantity-controls::before,
.catproduct_form button.quantity-controls::after,
.catproduct_form input.quantity-controls::before,
.catproduct_form input.quantity-controls::after,
.catproduct_form .quantity-plus::before,
.catproduct_form .quantity-plus::after,
.catproduct_form .quantity-minus::before,
.catproduct_form .quantity-minus::after {
	content: none !important;
	display: none !important;
	background: none !important;
	font-family: inherit !important;
}
.catproduct_form button.quantity-controls {
	text-decoration: none !important;
	text-shadow: none !important;
	-webkit-text-fill-color: #fff !important;
}

/* The legacy loader is toggled by existing AJAX handlers. It is not required
   for quantity recalculation and its old image can render as a broken glyph. */
.catproduct-loading,
#catproduct-loading,
.catproduct_form .catproduct-loading {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	background: none !important;
	background-image: none !important;
}

/* FYI Bulk Order v1.1.20: keep literal button labels visible after all theme styles load. */
.catproduct_form button.quantity-controls.quantity-plus,
.catproduct_form button.quantity-controls.quantity-minus {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-family: Arial, sans-serif !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-indent: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* FYI Bulk Order v1.1.31: compact commerce styling refinement. */
.catproduct_form {
    --fyi-bulk-border: #d9e1ea;
    --fyi-bulk-primary: #174f83;
    --fyi-bulk-primary-hover: #123f69;
}

.catproduct_form > .catproducttable {
    width: 100%;
    table-layout: auto;
}

/* The outer table caption is a legacy "Products" label and has no useful UI role. */
.catproduct_form > .catproducttable > caption {
    display: none;
}

.catproduct_form .catproducttable th,
.catproduct_form .catproducttable td {
    padding-left: .55rem;
    padding-right: .55rem;
}

/* Keep identifiers compact and let product content consume the available row width. */
.catproduct_form .catproducttable .cell_sku {
    width: 1%;
    max-width: none;
    padding-left: .35rem;
    padding-right: .75rem;
    white-space: nowrap;
}

.catproduct_form .catproducttable .cell_name,
.catproduct_form .catproducttable .cell_s_desc {
    width: 100%;
    text-align: left;
}

.catproduct_form .catproducttable .cell_salesPrice,
.catproduct_form .catproducttable .cell_basePrice,
.catproduct_form .catproducttable .cell_basePriceWithTax,
.catproduct_form .catproducttable .cell_priceWithoutTax,
.catproduct_form .catproducttable .cell_sum_salesPrice {
    width: 1%;
    min-width: 0;
    text-align: right;
    white-space: nowrap;
}

.catproduct_form .catproducttable .cell_quantity {
    width: 1%;
    min-width: 0;
    white-space: nowrap;
}

.catproduct_form .quantity-box,
.catproduct_form span.quantity-controls {
    gap: 0;
}

.catproduct_form input.quantity-input {
    width: 3.5ch;
    min-width: 3.5ch;
    max-width: 3.5ch;
    height: 38px;
    margin: 0;
    padding: 3px 2px;
    border: 1px solid #b9c6d5;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    text-align: center;
}

.catproduct_form input.quantity-controls,
.catproduct_form button.quantity-controls {
    width: 34px;
    min-width: 34px;
    height: 38px;
    border-radius: 0;
}

.catproduct_form button.quantity-plus {
    border-radius: 7px 0 0 7px;
}

.catproduct_form button.quantity-minus {
    border-radius: 0 7px 7px 0;
}

.catproduct_form .cell_addToCart {
    padding-top: 16px;
}

.catproduct_form .cell_addToCart span.addtocart-button {
    float: none !important;
    display: flex;
    justify-content: flex-end;
}

.catproduct_form input.addtocart-button,
.catproduct_form button.addtocart-button {
    appearance: none;
    min-height: 44px;
    border: 1px solid var(--fyi-bulk-primary);
    border-radius: 8px;
    padding: .75rem 1.2rem;
    background: linear-gradient(180deg, #23689f 0%, var(--fyi-bulk-primary) 100%);
    color: #fff;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: .01em;
    box-shadow: 0 2px 5px rgba(23,79,131,.22);
    cursor: pointer;
    transition: background .15s ease, box-shadow .15s ease, transform .15s ease;
}

.catproduct_form input.addtocart-button:hover,
.catproduct_form button.addtocart-button:hover {
    background: var(--fyi-bulk-primary-hover);
    box-shadow: 0 4px 10px rgba(23,79,131,.25);
    transform: translateY(-1px);
}

.catproduct_form input.addtocart-button:active,
.catproduct_form button.addtocart-button:active {
    transform: translateY(0);
    box-shadow: 0 1px 3px rgba(23,79,131,.2);
}

.catproduct_form input.addtocart-button:focus-visible,
.catproduct_form button.addtocart-button:focus-visible,
.catproduct_form button.quantity-controls:focus-visible,
.catproduct_form input.quantity-input:focus-visible {
    outline: 3px solid rgba(23,79,131,.28);
    outline-offset: 2px;
}

@media (max-width: 700px) {
    .catproduct_form {
        overflow-x: auto;
    }

    .catproduct_form .catproducttable {
        min-width: 620px;
    }
}

/* FYI Bulk Order v1.1.31: enforced CRM-hosted column proportions. */
@media (min-width: 48em) {
    form.catproduct_form table.catproducttable table.catproducttable {
        width: 100% !important;
        table-layout: fixed !important;
    }

    /* SKU / identifier: only slightly wider than a normal three-digit SKU. */
    form.catproduct_form table.catproducttable table.catproducttable th.cell_sku,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_sku,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_id,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_id {
        width: 5.5ch !important;
        min-width: 5.5ch !important;
        max-width: 5.5ch !important;
        padding-left: .35rem !important;
        padding-right: .35rem !important;
        white-space: nowrap !important;
    }

    /* Product name/description owns the flexible space. */
    form.catproduct_form table.catproducttable table.catproducttable th.cell_name,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_name,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_s_desc,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_s_desc {
        width: auto !important;
        min-width: 18rem !important;
        max-width: none !important;
        text-align: left !important;
    }

    /* Price and line total remain compact and scannable. */
    form.catproduct_form table.catproducttable table.catproducttable th.cell_salesPrice,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_salesPrice,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_sum_salesPrice,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_sum_salesPrice {
        width: 7.5rem !important;
        min-width: 7.5rem !important;
        max-width: 7.5rem !important;
        white-space: nowrap !important;
        text-align: right !important;
    }

    /* Qty includes the three-digit field plus the stacked +/- controls. */
    form.catproduct_form table.catproducttable table.catproducttable th.cell_quantity,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_quantity {
        width: 8rem !important;
        min-width: 8rem !important;
        max-width: 8rem !important;
        white-space: nowrap !important;
    }
}

form.catproduct_form .cell_quantity .quantity-box {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    vertical-align: middle !important;
}

form.catproduct_form .cell_quantity input.quantity-input,
form.catproduct_form .cell_quantity input[name="quantity[]"] {
    box-sizing: border-box !important;
    width: 4.5ch !important;
    min-width: 4.5ch !important;
    max-width: 4.5ch !important;
    flex: 0 0 4.5ch !important;
    padding-left: .2rem !important;
    padding-right: .2rem !important;
    text-align: center !important;
}

form.catproduct_form .cell_quantity span.quantity-controls {
    display: inline-flex !important;
    flex-direction: column !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    margin-left: .35rem !important;
    vertical-align: middle !important;
}


/* FYI Bulk Order v1.1.34: final CRM-hosted column containment and elastic product column. */
@media (min-width: 48em) {
    form.catproduct_form table.catproducttable table.catproducttable {
        width: 100% !important;
        table-layout: auto !important;
        border-collapse: separate !important;
        border-spacing: 0 !important;
    }

    /* ID and SKU use only their intrinsic content width and may never paint into Product. */
    form.catproduct_form table.catproducttable table.catproducttable th.cell_id,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_id,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_sku,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_sku {
        box-sizing: border-box !important;
        width: 1% !important;
        min-width: 0 !important;
        max-width: none !important;
        padding-left: .35rem !important;
        padding-right: .45rem !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        vertical-align: middle !important;
    }

    /* Product owns every remaining pixel and stops only 4-6px before Price. */
    form.catproduct_form table.catproducttable table.catproducttable th.cell_name,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_name,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_s_desc,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_s_desc {
        box-sizing: border-box !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        padding-left: .35rem !important;
        padding-right: .35rem !important;
        text-align: left !important;
        white-space: normal !important;
        overflow: visible !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        vertical-align: middle !important;
    }

    form.catproduct_form table.catproducttable table.catproducttable th.cell_salesPrice,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_salesPrice,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_basePrice,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_basePrice,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_basePriceWithTax,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_basePriceWithTax,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_priceWithoutTax,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_priceWithoutTax,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_sum_salesPrice,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_sum_salesPrice {
        box-sizing: border-box !important;
        width: 1% !important;
        min-width: 4.75rem !important;
        max-width: none !important;
        padding-left: .3rem !important;
        padding-right: .3rem !important;
        white-space: nowrap !important;
        text-align: right !important;
        vertical-align: middle !important;
    }

    form.catproduct_form table.catproducttable table.catproducttable th.cell_quantity,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_quantity {
        box-sizing: border-box !important;
        width: 1% !important;
        min-width: 5.35rem !important;
        max-width: none !important;
        padding-left: .3rem !important;
        padding-right: .3rem !important;
        white-space: nowrap !important;
        vertical-align: middle !important;
    }
}

form.catproduct_form .cell_quantity input.quantity-input,
form.catproduct_form .cell_quantity input[name="quantity[]"] {
    width: 3ch !important;
    min-width: 3ch !important;
    max-width: 3ch !important;
    flex: 0 0 3ch !important;
}

/* Standard provider metadata line rendered beneath the workspace heading. */
.fyi-provider-build-metadata {
    display: block;
    margin: 0;
    color: #64748b;
    font-size: .82rem;
    font-weight: 500;
    line-height: 1.35;
}

/* FYI Bulk Order v1.1.34: canonical provider-owned presentation.
   These rules intentionally apply in articles, CRM Commerce Workspace,
   and future provider hosts so the Bulk Order table renders consistently. */
:root {
    --fyi-bulk-price: #5c9200;
    --fyi-bulk-qty: #5b9000;
    --fyi-bulk-control: #17558b;
    --fyi-bulk-control-hover: #10446f;
    --fyi-bulk-rule: #e3e9f1;
}

form.catproduct_form,
form.catproduct_form table.catproducttable {
    font: inherit;
    color: inherit;
}

@media (min-width: 48em) {
    form.catproduct_form table.catproducttable table.catproducttable {
        width: 100% !important;
        table-layout: auto !important;
        border-collapse: collapse !important;
        border-spacing: 0 !important;
    }

    form.catproduct_form table.catproducttable table.catproducttable th,
    form.catproduct_form table.catproducttable table.catproducttable td {
        box-sizing: border-box !important;
        border: 0 !important;
        border-bottom: 1px solid var(--fyi-bulk-rule) !important;
        padding-top: .38rem !important;
        padding-bottom: .38rem !important;
        vertical-align: middle !important;
    }

    form.catproduct_form table.catproducttable table.catproducttable th.cell_id,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_id,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_sku,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_sku {
        width: 1% !important;
        min-width: 4.75rem !important;
        max-width: 8rem !important;
        padding-left: .3rem !important;
        padding-right: .5rem !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        text-align: left !important;
    }

    form.catproduct_form table.catproducttable table.catproducttable th.cell_name,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_name,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_s_desc,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_s_desc {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        padding-left: .25rem !important;
        padding-right: .35rem !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        text-align: left !important;
    }

    form.catproduct_form table.catproducttable table.catproducttable th.cell_salesPrice,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_salesPrice,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_basePrice,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_basePrice,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_basePriceWithTax,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_basePriceWithTax,
    form.catproduct_form table.catproducttable table.catproducttable th.cell_priceWithoutTax,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_priceWithoutTax {
        width: 1% !important;
        min-width: 5.25rem !important;
        padding-left: .3rem !important;
        padding-right: .3rem !important;
        white-space: nowrap !important;
        text-align: right !important;
    }

    form.catproduct_form table.catproducttable table.catproducttable th.cell_quantity,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_quantity {
        width: 1% !important;
        min-width: 5.1rem !important;
        padding-left: .25rem !important;
        padding-right: .25rem !important;
        white-space: nowrap !important;
        text-align: left !important;
    }

    form.catproduct_form table.catproducttable table.catproducttable th.cell_sum_salesPrice,
    form.catproduct_form table.catproducttable table.catproducttable td.cell_sum_salesPrice {
        width: 1% !important;
        min-width: 5.25rem !important;
        padding-left: .35rem !important;
        padding-right: .3rem !important;
        white-space: nowrap !important;
        text-align: right !important;
    }
}

form.catproduct_form .cell_salesPrice .salesPrice_text,
form.catproduct_form .cell_salesPrice .PricebasePrice,
form.catproduct_form .cell_salesPrice .PricesalesPrice,
form.catproduct_form .cell_salesPrice [class*="Price"] {
    color: var(--fyi-bulk-price) !important;
    font-weight: 700 !important;
}

form.catproduct_form .cell_quantity .quantity-box {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    vertical-align: middle !important;
}

form.catproduct_form .cell_quantity input.quantity-input,
form.catproduct_form .cell_quantity input[name="quantity[]"] {
    box-sizing: border-box !important;
    width: 3ch !important;
    min-width: 3ch !important;
    max-width: 3ch !important;
    height: 38px !important;
    flex: 0 0 3ch !important;
    margin: 0 !important;
    padding: 0 .15rem !important;
    border: 1px solid var(--fyi-bulk-qty) !important;
    border-radius: 0 !important;
    background: var(--fyi-bulk-qty) !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-align: center !important;
    box-shadow: none !important;
}

form.catproduct_form .cell_quantity span.quantity-controls {
    display: inline-flex !important;
    flex-direction: column !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    margin: 0 0 0 .28rem !important;
    vertical-align: middle !important;
}

form.catproduct_form .cell_quantity button.quantity-controls {
    box-sizing: border-box !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 19px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--fyi-bulk-control) !important;
    color: #fff !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    line-height: 19px !important;
    text-align: center !important;
    box-shadow: none !important;
}

form.catproduct_form .cell_quantity button.quantity-controls + button.quantity-controls {
    border-top: 1px solid rgba(255,255,255,.7) !important;
}

form.catproduct_form .cell_quantity button.quantity-controls:hover {
    background: var(--fyi-bulk-control-hover) !important;
}

form.catproduct_form .cell_sum_salesPrice,
form.catproduct_form .cell_sum_salesPrice [class*="Price"] {
    color: inherit !important;
    font-weight: 400 !important;
}
