/* Base Style Sheet. */
/* Leave this file alone. Override these styles in ../custom/custom.css and leave this file alone. */

/* ************************* HEADER ********************* */
.topLinks a span.linkText {
	display: none; /* just display icons on small devices */
}
.storeName a {
	text-decoration: none;
}
.storeLogo img {
	height: 40px;
}
ul.categoryTreeCategories {
	list-style: none;
}
.categoryTreeItem > a {
	padding: .5rem var(--bs-dropdown-item-padding-x);
	color: var(--bs-link-color);
}
.searchForm .autoSuggest {
  margin-top: 0;
}
.parentCategoryTreeItem ul.categoryTreeCategories {
	background-color: #fff;
}

.categoryTreeCategories .dropdown-toggle::after {
	margin-left: .6em;
	border-top: .4em solid transparent; /* make the carets bigger */
	border-bottom: .4em solid transparent;
	border-left: .4em solid;
}

/* Header - small devices (tablets, 768px and up) */
@media (min-width:768px) {
	.topLinks a {
		padding: .25rem 0;
	}
	.topLinks a span.linkText{
		display: inline;
	}
	.storeLogo img {
		height: 48px;
	}
}

/* ************************* ERRORS and MESSAGES ********************* */
ul.messagesAndErrors {
	list-style-type: none;
	margin-top: .5em;
}
.closeButtonWrap {
	float: right;
}
.ajaxError { /* Ajax errors and messages */
	padding:1px 4px;
	font-weight:bold;
	background-color:#ff0000;
	color:#fff;
}
.addItemTool-errorModal .ajaxError, .deliveryAddressChangedModal-errorModal .ajaxError { /* The edit item tools show errors in a modal. There we don't want the red background */
	padding: 0;
	font-weight: inherit;
	background-color: inherit;
	color: inherit;
}
.ajaxWarning {
	padding:1px 4px;
	font-weight:bold;
	background-color:#ffff00;
}
.ajaxMessage {
	padding:1px 4px;
	font-weight:bold;
	background-color:#00ff00;
}
#ajaxErrorsList, ul#ajaxMessagesList {
	list-style-type:none;
}
#cartContent > .ajaxSnippet { /* Inventory or other messages above the cart need a little space */
	margin-top: 2rem;
}

/* ************************* BREADCRUMBS and PAGE HEADER ********************* */
.breadcrumbs {
	margin: .5rem 0;
	padding-top: 0.5rem;
	font-size: .8rem;
}

.breadcrumbs a {
	text-decoration: none;
}

.page-header {
  padding-bottom: 9px;
  margin: 1rem 0;
  border-bottom: 1px solid #eee;
}

@media (min-width: 768px) {
	.page-header {
	  margin-top: 2rem;
	}
}

/* ************************* HOME PAGE SIDE PANEL ********************* */

.panels .panel {
	margin-top: 2rem;
}

/* ************************* SITE MAP ********************* */

.siteMapOfLink {
  font-size: .75rem;
}

.siteMapDetail ul {
	margin-left: 2rem;
}

.siteMapDetail h5 {
	margin-top: 2rem;
}

/* ************************* FACETED SEARCH ********************* */
.facetedSearchSelections {
	margin-top: 1rem;
	margin-bottom: 1rem;
}

.facetGroup {
	margin-bottom: 2rem;
}

ul.facetList, 
ul.facetSubcategories {
	list-style: none;
}

.badge.facetCount {
	background-color: #999;
	border-radius: 10px;
}

.facetedSearchSpinner {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(255, 255, 255, 0.6); /* semi-transparent white */
	justify-content: center;
	z-index: 10;
}

/* ************************* PRODUCT LISTS ********************* */
span.pageText {
	position: relative;
	display: block;
	padding: .375rem .75rem;
	font-size: var(--bs-pagination-font-size);
}

.productListPagination .page-item { /* Eg. Next plus arrow should not wrap. */
	white-space: nowrap;
}

a.sortBy {
	text-decoration: none;
}

.productListItemCount, .sortByLinks { /* Line these up with the pagination. */
	padding: .375rem .75rem;
}

.columnList .card { /* columnList covers cards on product lists, subcategories, and the brands page. */
	overflow:hidden;
	width:100%;
	margin-bottom: 1rem;
}
	
.columnList a.card-body { /* Make the whole card linked. */
	text-decoration: none;
	display:block;
}

.columnList .card:hover, 
.columnList .card:focus, 
.columnList .card.active { /* Highlight the card's border on hover. */
    border-color: #428BCA;
}

.columnList .card .image  {
	text-align: center;
	padding: .25rem;
}

.productList .card {
	padding-bottom: 45px; /* Make space for the animation coming up from the bottom. */
}

.productList .product .viewDetails { /* No animation on mobile - links are there already. */
	background-color:#eee;
	bottom:0px;
	height:45px;
	margin:0;
	padding:0 10px;
	position:absolute;
	width:100%;
}
.productList .product .viewDetails .addItemTool {
	width: 50%; 
	margin: 10px 0 0 0;
	float: left;
}

.productList .product .viewDetails a.productListDetails {
	margin: 10px 0 0 0;
	float: right;
}

.ani200{
	-webkit-transition:all 200ms linear;-moz-transition:all 200ms linear;-o-transition:all 200ms linear;-ms-transition:all 200ms linear;transition:all 200ms linear;
	-webkit-animation-duration:200ms;-moz-animation-duration:200ms;-o-animation-duration:200ms;animation-duration:200ms;
}

/* Product Lists - large desktops, 1200px and up) */
@media (min-width:1200px) {
	.productList .product .viewDetails { /* Content starts out of sight, then gets animated into view. */
		bottom:-45px;
	}
	.productList .product:hover .viewDetails {
		bottom:	0px;
	}
	.productList .product .viewDetails.loading {
		bottom:	0px;
	}
}

/* ************************* CAROUSEL ********************* */
.carousel {
	margin-bottom: 1rem;
}
/*
.carousel, .carousel-control-prev-icon, .carousel-control-next-icon { 
	background-color: #ddd;  support images that are either light or dark 
}
.carousel-indicators [data-bs-target] {
	background-color: revert;
}*/
.carousel-caption {
	text-shadow: 2px 2px 2px white; /* help the captions show up over a dark image */
}
.carousel-item {
	text-align: center; /* center the images */
	/* height: 300px; to show the image at full width but just the top of the image */
}
.carousel-item img {
	height: 300px; /* to show the entire image but not covering the full width of the screen */
}


/* ************************* CONTENT BLOCKS ********************* */

.testimonial {
	margin-bottom: 3rem;
}

.faq-question, .faq-answer {
	border: 1px solid #ddd;
	padding: 1rem;
}

.faq-question a {
	text-decoration: none;
}

.faq-answer {
	margin-bottom: 2rem;
}

/* ************************* PRODUCT PAGE ********************* */
#productDetails, 
#productInfo {
	margin-bottom: 1rem;
}

.attribute, 
.attributeImage, 
.productQuantity {
	margin: 1rem 0;
}

.attribute label.name, 
.productQuantity label {
	font-weight: bold;
}

.productQuantity input { /* Don't take up the whole width for the quantity input. */
	display:inline-block; 
	width:50px;
}

#additionalImages, #iframesVideos {
	margin: 1rem;
}

.additionalImage {
	padding: 5px;
	text-align: center;
}

.additionalImage a {
	text-decoration: none;
}

.additionalImageDescription {
	font-size: .8rem;
	font-weight: 400;
	color: #6c757d;
}

.starImages {
	white-space: nowrap;
}

#addToWishListButton input { /* Need to wrap this, for on mobile. */
	white-space: normal;
}

.productReviewPagination {
 	justify-content: center;
}

.pagination > li.productReviewFirstPageNumber > a { /* Support for pagination of product reviews. */
	margin-left: 0;
	border-bottom-left-radius: 4px;
	border-top-left-radius: 4px;
}

/* ************************* ADD ITEM TOOL ********************* */
.addItemTool-successModal .text-success {  
	margin: .25em 1em 0 1em; 
	float: left;
} 

.addItemTool-successModal .modal-title {
	display: inline-block;
	font-size: 3rem;
}

.addItemTool-successModal a.btn, .addItemTool-successModal button.btn {
	width: 100%;
}

div.addItemTool-icon-wrapper  { /* Loading image and its wrapper */
	float: left;
}

img.addItemTool-icon, img.paginationTool-icon  {
	display: none;
	width: 20px;
	height: 20px;
}

.productPage .ui-datepicker { /* Make it rise above the 'sticky' add to cart card */
	z-index: 2040 !important;
}

/* ************************* CART and EDIT ITEM TOOL ********************* */

input#couponCode {
	min-width: 30%
}
.cartItemNameLink,
.estimatedShippingLink {
	text-decoration: none;
}

.cartQuantity .quantityInput { /* Doesn't need to be too wide. */
  width: 60px;
}

.cartItemTotal { /* Line it up vertically with the quantity and X button. */
  margin-top: 4px;
  font-weight: bold;
  font-size: 1.25rem;
}

.cartRemoveButton {
	margin-top: 5px;
	text-align: right;
}

.cartUpdateForm { /* Success check should show right next to the quantity input */
	float: left;
}

@media (min-width:768px) {
	.cartUpdateForm {
		text-align: center;
	}
}

.hideCartEmpty { /* Don't use d-none because it adds !important, and jquery can't override that when it has to show it. */
	display: none;
}

div.editItemTool-icon-wrapper  {
	height: 20px;
	width: 20px;
	z-index: 100;
	float: left;
	margin-top: 7px;
}

.editItemTool-icon  {
	display: none;
	width: 20px;
	height: 20px;
}

.editItemTool-successIcon {
	color: green;
}

.editItemTool-errorIcon {
	color: red;
	cursor: pointer;
}

.editItemAttributeTool .form-control,
.editItemAttributeTool .editItemTool-icon-wrapper { /* Icons side by side with the attribute value displayed. */
	float: none;
	display: inline-block;
}

.editItemAttributeTool .editItemTool-editIcon { /* Icons side by side with the attribute value displayed. */
	display: inline-block; /* Don't try to do nowrap - no worth it. */
	cursor: pointer;
}

.editItemAttributeTool .cartItemAttributeInput { /* Hide the input div initially or it will show a blank line space */
	display: none;
}	

.editItemAttributeTool .attribute {
	margin: 0;
}

#paypal-button-container {
	margin-top: 1rem;
}

div.updateCartFieldsTool-icon-wrapper  {
	width: 100%; 
	z-index: 1; 
	position: absolute; 
	text-align: center;
	opacity: 1.0 !important;
}

.updateCartFieldsTool-icon  {
	display: none;
}
/* ************************* ACCOUNT SCREENS ********************* */

#wishListTable td {
	padding-top: .75rem; /* line up regular cells with buttons */
}

#wishListTable td.actions {
	padding-top: .5rem; /* line up regular cells with buttons */
}


/* ************************* CHECKOUT ********************* */

.onePageCheckoutTabs a.card-header  { /* Tab headers are <a> tags so they are clickable. */
	text-decoration: none;
	color: inherit;
	display: block;
	padding-top: 1rem;
}

.onePageCheckoutTabs .card-header  { /* For some strange reason the header text is not vertically centered. */
	padding-top: 1rem;
}

.loadingBar { /* This is what's used on the one-page checkout and customer account addresses screens. */
	background: url(../../images/wait.gif) no-repeat center center; 
	height: 20px;
}

.agreementFormScrollable {
	max-height: 300px; 
	overflow: scroll;
	border: 1px solid #ccc;
	padding: 1rem;
}

/* Address and PO field labels right-justified on larger screens */
@media (min-width:768px) {
	.addressesForm .col-form-label, 
	.agreementInformation .col-form-label, 
	.paymentInformation .col-form-label,
	.agreement .col-form-label { 
		text-align: right;
		margin-bottom: .5rem;
	}
}
@media (max-width:768px) { /* Mobile actually needs bottom padding on the input boxes */
	.addressesForm .form-control, 
	.agreementInformation .form-control, 
	.paymentInformation .form-control,
	.agreement .form-control { 
		margin-bottom: .5rem;
	}
}

canvas.signaturePad {
	border: 1px solid #ccc;
    background: #fff;
    cursor: crosshair;
	    width: 330px;
	    height: 110px;
}

/* Signature pad - small devices (tablets, 768px and up) */
@media (min-width:768px) {
	canvas.signaturePad {
	    width: 420px;
	    height: 140px;
	}
}

@media (min-width:992px) {
	canvas.signaturePad {
	    width: 630px;
	    height: 210px;
	}
}

@media (min-width:1200px) {
	canvas.signaturePad {
	    width: 750px;
	    height: 250px;
	}
}

/* Agreement forms in checkout and on the standalone agreement page */
.agreementSubmitted .text-success, .agreementCertificate .text-success {
	margin: -0.3em 1em 0 1em; 
	float: left;
}

.agreementSubmitted h4 { 
	padding-top: .5rem
}

.agreementCertificate {
	border: 4mm ridge #bbb;
	padding: 2rem;
	margin-bottom: 2rem;
	page-break-before: always; 
}

.agreementCertificate h2 {
	margin-bottom: 2rem;
}

@media (max-width:572px) {
	.agreementCertificate td.checksum {
		font-size: smaller;
	}
}

.requiredAsterisk { 
	color: #ff0000; 
	font-weight: bold;
	padding-right: 4px;
}

#paypal-button-container {
	width: 50%;	
}

.orderDetailsContainer .card,
.orderDetailsContainer .table {
	margin-bottom: 1rem;
}

.orderTotalLabel{
	text-align: right;
	width: 90%;
}

.orderTotalAmount, 
.orderDetailsContainer table .total {
	text-align: right;
}

.form-control::placeholder {
  color: #bbb;
}

/* ************************* AUTHORIZE.NET ********************* */

.AuthorizeNetPopupInner {
	margin: 0 auto;
	text-align:center;
	min-width:442px;
}

#authorizeNetAPIPopup {
	text-align:left;
	min-width:400px;
}

#authorizeNetAPIPopupButtons {
	text-align:center;
}

#authorizeNetAPIPopupAdd {
	text-align:left;
	min-width:400px;
}

#authorizeNetAPIPopupAddButtons {
	text-align:center;
}

.ui-dialog {
	z-index: 1100 !important;
}

.paymentProfiles .rentalChargesSummary {
	margin: 0 auto;
}

@media (max-width:572px) { /* Shift the hosted form over a bit, and shrink it, for mobile. */
	#divAuthorizeNetPopup {
		padding: 15px 5px;
	}
	.AuthorizeNetPopupInner {
	  overflow: hidden;
	}
	/*#iframeAuthorizeNet {
	  margin-left: -45px;
	}*/
	.AuthorizeNetPopupInner {
		width: 133%; 
		height: 375px;
		padding: 0;
		margin: 0;
		overflow: hidden;
	}
	#iframeAuthorizeNet {
		padding: 0;
		margin: 0;
		width: 133%;
		height: 500px;
		overflow: scroll;
		-moz-transform: scale(0.75, 0.75); 
		-webkit-transform: scale(0.75, 0.75); 
		-o-transform: scale(0.75, 0.75);
		-ms-transform: scale(0.75, 0.75);
		transform: scale(0.75, 0.75); 
		-moz-transform-origin: top left;
		-webkit-transform-origin: top left;
		-o-transform-origin: top left;
		-ms-transform-origin: top left;
		transform-origin: top left;
	}
}

/* ************************* LIGHTBOX ********************* */


[data-lightbox]{
	cursor:zoom-in;
}
#iframesVideos [data-lightbox] {
	cursor: pointer;
}

body:after { /* Preload images */
  content: url(close.png) url(loading.gif) url(prev.png) url(next.png);
  display: none;
}

body.lb-disable-scrolling {
  overflow: hidden;
}

.lightboxOverlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: black;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
  opacity: 0.8;
  display: none;
}

.lightbox {
  position: absolute;
  left: 0;
  width: 100%;
  z-index: 10000;
  text-align: center;
  line-height: 0;
  font-weight: normal;
}

.lightbox .lb-image {
  display: block;
  height: auto;
  max-width: inherit;
  max-height: none;
  border-radius: 3px;

  /* Image border */
  border: none;
}

.lightbox a img {
  border: none;
}

.lb-outerContainer {
  position: relative;
  *zoom: 1;
  width: 250px;
  height: 250px;
  margin: 0 auto;
  border-radius: 4px;

  /* Background color behind image.
     This is visible during transitions. */
  background-color: white;
}

.lb-outerContainer:after {
  content: "";
  display: table;
  clear: both;
}

.lb-loader {
  position: absolute;
  top: 43%;
  left: 0;
  height: 25%;
  width: 100%;
  text-align: center;
  line-height: 0;
}

.lb-cancel {
  display: block;
  width: 32px;
  height: 32px;
  margin: 0 auto;
  background: url(loading.gif) no-repeat;
}

.lb-prev {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 10;
}

.lb-next {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: 100%;
  z-index: 10;
}

.lb-container > .nav {
  left: 0;
}

a.lb-prev, a.lb-next {
  outline: none;
  background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
}

.lb-prev, .lb-next {
  height: 100%;
  cursor: pointer;
  display: block;
}

a.lb-prev {
  width: 15%;
  left: 0;
  float: left;
  margin-top: -50px;
	background: url(prev.png) left top no-repeat;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
  opacity: 0.7;
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  -o-transition: opacity 0.2s;
  transition: opacity 0.2s;
}

a.lb-prev:hover {
  cursor: pointer;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

a.lb-next {
  width: 15%;
  right: 0;
  float: right;
  margin-top: -50px;
background: url(next.png) right top no-repeat;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
  opacity: 0.7;
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  -o-transition: opacity 0.2s;
  transition: opacity 0.2s;
}

a.lb-next:hover {
  cursor: pointer;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

.lb-dataContainer {
  margin: 0 auto;
  padding-top: 5px;
  *zoom: 1;
  width: 100%;
  -moz-border-radius-bottomleft: 4px;
  -webkit-border-bottom-left-radius: 4px;
  border-bottom-left-radius: 4px;
  -moz-border-radius-bottomright: 4px;
  -webkit-border-bottom-right-radius: 4px;
  border-bottom-right-radius: 4px;
}

.lb-dataContainer:after {
  content: "";
  display: table;
  clear: both;
}

.lb-data {
  padding: 0 4px;
  color: #ccc;
}

.lb-data .lb-details {
  width: 85%;
  float: left;
  text-align: left;
  line-height: 1.1em;
}

.lb-data .lb-caption {
  font-size: 13px;
  font-weight: bold;
  line-height: 1em;
}

.lb-data .lb-caption a {
  color: #4ae;
}

.lb-data .lb-number {
  display: block;
  clear: left;
  padding-bottom: 1em;
  font-size: 12px;
  color: #999999;
}

.lb-data .lb-close {
  display: block;
  float: right;
  width: 30px;
  height: 30px;
  background: url(close.png) top right no-repeat;
  text-align: right;
  outline: none;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
  opacity: 0.7;
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  -o-transition: opacity 0.2s;
  transition: opacity 0.2s;
}

.lb-data .lb-close:hover {
  cursor: pointer;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}
