/*  MAIN   ********************************************/
body {
	display:none;
	font-family:poppins;
	word-wrap: break-word;
}

input[type='text'], input[type='password'], select {
	font-size: 16px;
    line-height: 26px;
    height: 36px;
    padding: 4px 8px;
    border: 1px solid #ccc;
    border-radius: 5px;
	transition: all 250ms linear;
	outline:none !important;
}

input[type='text']:hover, input[type='password']:hover, select:hover {
	border-color:#bbb;
	transition: all 250ms linear;
}

input[type='button'] {
	border: 0;
    padding-left: 1rem;
    padding-right: 1rem;
	margin-left:.25rem;
	margin-right:.25rem;
	background:#555;
	border-radius:5px;
	height:36px;
	line-height:34px;
	font-size:16px;
	color:#fff;
	cursor:pointer;
    transition: all 250ms linear;	
}

input[type='button']:hover {
	opacity:.8;
    transition: all 250ms linear;	
}

.float-right {
	float:right;
}

.ai-dynamic-button {
	display:none !important;
}




/* OPACITY MODIFIERS *********************************/
.opacity-div {
	height:100%;
	width:100%;
}

.opacity-lighter {
	background-color:#ffffff44;
}

.opacity-lightest {
	background-color:#eeeeeef6;
}

.opacity-darker {
	background-color:#33333344;
}

.opacity-darkest {
	background-color:#111111cc;
}





/* THEMING *****************************************/
.theme-button {
	border:0;
	padding-left:1rem;
	padding-right:1rem;
	transition:all 250ms linear;
}

.theme-button:hover {
	opacity:.8;
	transition:all 250ms linear;
}

.rounded-circle.theme-button {
	padding-left: .75rem;
    padding-right: 0.75rem;
}





/* POPUP DIALOG ***********************************/
#popup-dialog {
    max-width: 80vw;
    padding: 2rem;
	padding-top:0px;
    border-radius: 6px;
    background: #555; 
    color:#fff;
    border: 4px solid #aaa;
	outline:0;
	box-shadow: 0px 0px 9000px 9000px #00000077;
}

#popup-dialog-contents { 
    font-family:Poppins;
    font-size:16px;
    line-height:28px;
    max-height: calc(100vh * .6);
    overflow:auto;
	padding: 1.5rem;
	padding-top: .5rem;
    margin-left: -36px;
    margin-right: -36px;
    margin-top: 15px;
}

.popup-dialog-title {
    font-size:1.3em; 
    font-weight:500;
    margin-bottom:24px;
}

.popup-dialog-text {
    
}

.popup-dialog-text div {
    margin-bottom:22px;
}

.popup-dialog-highligted {
    background-color: #bbb;
    font-family: monospace;
    font-weight: 500;
    width: fit-content;
    padding: 6px 36px;
    border-radius: 5px;
    margin-left: 10px;
    margin-right: 10px;
    color: #000;
}

#popup-dialog-close {
    margin: auto;
    margin-top: 40px;
    width: 100px;
    display: none;
}

#popup-dialog-topclose {
    background: #533;
    color: white;
    width: 36px;
    padding: 10px;
    float: right;
    clear: both;
    margin-top: 0px;
    margin-right: -32px;
    border-bottom-left-radius: 8px;
    cursor: pointer;
    transition: all 250ms linear;
}

#popup-dialog-topclose:hover {
    opacity:.7;
    transition: all 250ms linear;  
}





/* MODALBOX ******************************************/
#MB_window {
	position:relative;
	z-index:501;
	border-radius: 4px;
	max-width:100vw;
}

#MB_frame {
	border:1px solid #333 !important;	
	border-top:0px !important;
	background-color: #f6f6f6 !important;
	padding-bottom:1rem !important;
}

#MB_header {
	background: #333 !important;
	border-bottom:0px !important;
	color:#ccc !important;
	font-family: poppins;
}

#MB_content {
	background-color:#f6f6f6;
	padding: 1.5rem !important;
}

#MB_caption {
	color:#fff !important;
	font-size:16px;
	line-height:36px;
	font-weight:600 !important;
}

#MB_close {
	margin-right:6px !important;
	color:#fff !important;
	font-size:28px !important;
	line-height:36px;
	font-weight:600 !important;	
	transition: all 250ms linear;
}

#MB_close:hover {
	color:#faa0a0 !important;
	transition: all 250ms linear;
}

#modalbox_div, #modalbox_div p {
	font-size:15px;
	color:#333;
}

#modalbox_div {
	overflow-y: auto;
}




/*  PAGE   ********************************************/
.widget-container {
  	margin-bottom: 2rem;
}

#content {
	z-index: 0;
}

#page-content, .cart_container {
	margin-top: 190px;
	margin-bottom: 90px;
	padding:0px;
	padding-left: 1.25rem;
    padding-right: 1.25rem;
	min-height: 90dvh;
	color:#111;
}

#page-content img, .cart_container img {
	max-width:100%;
}

#page-wrapper, .max-content-width {
	/*max-width:1200px;*/
	max-width:1368px;
}

.widget {
	margin-bottom:3rem;
}

.widget-title {
	font-size:24px;
	font-weight:500;
}

.item-tile {
	padding:0px !important;
}

/* HANDLES NON-WIDGET PAGES */
#wrapper {
	color:#111;
}

#page-title, #page-subtitle, .card-title, .card-subtitle {
	cursor:default;
}




/* BOOTSTRAP CARDS   ***********************************/
.card-body {
	padding-bottom:4rem;
}

.item-tile .card {
	margin:1rem;
	height:92%; 
	box-shadow: 0px 0px 2px 0px #ccc;
	transition: all 250ms linear;
}

.item-tile .card:hover {
	border-color:#bbb;
	box-shadow: 0px 0px 6px 0px #bbb;
	transition: all 250ms linear;
}

.item-tile .card img {
	height: 165px;
	object-fit: cover;
}

.item-tile .card-title {
	font-size:1.2rem;
	color:#111;
	font-weight:500;
	max-height:85px;
	overflow:hidden;
}

.item-tile .card-subtitle {
	height: 70px;
    overflow: hidden;
}

.item-tile .card-buttons {
	width: 100%;
    left: 0;
    position: absolute;
    display: block;
	bottom:8px;
	
}

.listing {
	border-radius: 12px;
	padding: 1rem;
	padding-bottom: 1.5rem;
	margin-top: 1rem;
	height: 132px;
	transition: all 250ms linear;
}

.listing:hover {
	background:#eee;
	transition: all 250ms linear;
}

.listing img {
	float:left;
	width:150px;
	max-width:20vw;
	height:100px;
	border-radius:12px;
	margin-right: 1rem;
	object-fit: cover;
}

.listing .card-body .card-title {
	height: 55px;
	overflow:hidden;
}

.listing .card-body .card-buttons {
	margin-top: .5rem;
	width: auto;
	position:relative;
}

.listing .card-body .card-subtitle {
	display:none;
}

.h-card {
	width:99%;
	padding:8px; 
	box-shadow: 0px 0px 2px 0px #ccc;
	transition: all 250ms linear;
}

.h-card:hover {
	box-shadow: 0px 0px 6px 0px #bbb;
	transition: all 250ms linear;
}





/*  SIDE BAR   ********************************************/
#side-bar {
	display:none;
	overflow:hidden;
  	margin-top: 190px;
	margin-bottom: 5rem;
  	border-radius:12px;
}

.sidebar {
	min-height:50vh !important; /* bootstrap override */
}

#sidebar-links {
	z-index: 1;
	margin-top:2rem;
	margin-left: 2rem;
    margin-right: 2rem;
}

#company-logo {
	display:none;
  	margin-top: 2rem;
  	margin-bottom: 4rem;
  	width: 12rem;
  	height: 5rem;
  	object-fit: contain;
}

#user-avatar-large {
  	border-radius: 100px;
}

#user-welcome-message {
  	margin-top: 1rem;
}

#nav-menu-overlay {
	display:none;
	position:fixed;
	top:0;
	left:0;
	width:100vw;
	height:100dvh;
	overflow-y: auto;
    padding-bottom: 2rem;
	z-index:1000;
}

#nav-menu-overlay #sidebar-links {
	margin-top:4rem;
}

#nav-menu-close-button {
	cursor: pointer;
	position: fixed;
    top: 0;
    right: 0;
	color:#fff;
    background: #333333cc;
    padding: 1rem;
    border-radius: 0px 0px 0px .5rem;
    font-weight: 800;
	transition: all 250ms linear;
}

#nav-menu-close-button:hover {
    background: #33333377;
}

#sidebar-links .nav-link {
	padding-left: .75rem;
	padding-right: .75rem;
	margin-bottom: .5rem;
	border-radius:5px;
	transition: all 250ms linear;
}

#sidebar-links .nav-link:hover {
	background: #cccccc77;
	transition: all 250ms linear;
}

#sidebar-links .nav-link-current-page {
	background:#33333322;
}





/*  HEADER   ********************************************/
#top-bar {
  	position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 55px;
    background-color: #22222288;
    z-index: 3;
}

.topbar .nav-item .nav-link {
	height: 3.375rem;
	border-radius:12px;
}

#sign-in-button {
	height: 2.375rem;
    border-radius: 20px;
    padding: 0 2rem;
}

#logo-bar {
  	position: fixed;
    top: 0;
    padding-top: 61px;
    left: 0px;
    width: 100%;
    height: 165px;
	overflow:hidden;
    z-index: 2;
}

#logo-container {
	margin-top:0px !important;
	padding-left:0px !important;
	padding-right:0px !important;
	--bs-gutter-x: 0px !important;
}

#company-logo-top {
	margin-top: 1px;
  	margin-bottom: 0px;
    width:auto;
  	max-width: 100%;
    height: 110px;
	margin-left:1.5rem;
    object-fit: contain;
	cursor:pointer;
}

#menu-button {
	
} 

#cart-button {
	opacity:.7;
	color:#fff;
	height: 0px;
    margin-top: 1.25rem;
    margin-right: 1.25rem;
	cursor:pointer;
	transition: all 250ms linear;
}

#cart-button:hover {
	opacity:1;
	transition: all 250ms linear;
}






/*  FOOTER   ********************************************/
#bottom-bar {
  	width: 100%;
  	min-height: 210px;
  	z-index: 3;
  	padding: 0;
}

#bottom-bar div {
	overflow:auto;
}

#bottom-bar a i {
  	display: block;
  	font-size: 1.5rem;
  	line-height: 2.5rem;
}

#bottom-bar a {
  	text-decoration: none !important;
  	width: 2.5rem;
  	height: 2.5rem;
  	transition: all 250ms linear;
}

#bottom-bar a:hover {
  	transition: all 250ms linear;
}

#bottom-bar-icons {
  	border-width: 0px;
  	width: 70%;
  	float: left;
}

#copyright-notice {
	text-align: center;
	margin-top:1rem;
	font-size:12px;
	line-height: 3em;
    font-weight: 400;
    display: inline-block;
	opacity:.7;
}

#scroll-to-top-button {
  	border-color: #cccccc66 !important;
}

#language_packs_div {
	max-width: 70vw;
	overflow:hidden;
    margin: auto;
}

#language_packs_div img {
    width: 22px;
    height: 24px;
    margin: 2px;
    padding: 2px;
    cursor: pointer;
    opacity: .5;
    transition: opacity 250ms linear;
}

#language_packs_div img:hover {
    opacity: 1;
    transition: opacity 250ms linear;
}





/* SHOPPING CART *******************************************/
.cart_title {
	font-size:24px;
	font-weight:500;
	margin-bottom:1rem;
}

.cart_table {
		
}

.cart_table td {
	margin-bottom:1rem;
}

.cart-item-row {
    border-radius: 15px;
    margin-bottom: 2rem;
    width: 100%;
}

.cart_item, .cart_total, .cart_subtotal, .cart_discount, .cart_tax {
	padding:1rem;
}

.cart_item_title {
	font-weight:500;
}

.cart_item_links {
	font-size:.8em;	
}

.cart_subtotal {
	padding-top:4rem;
}

.cart-item-image {
	object-fit: cover;
	border-radius:8px;
	margin-right:1rem;
	margin-bottom: 2px;
    margin-top: 2px;
}

.cart_coupon_container {
	color:#555;
	padding:2rem;
	background:#fff;
	border-radius:15px;
	margin-top:4rem;
}

.cart_coupon_container i {
	font-size:48px;	
}

.cart_coupon_caption {
	font-weight:600;
	line-height:1.5rem;
}

#cart_apply_coupon_button {
	display:block;
	margin-top:.25rem;
}

#cart_coupon_code {
	display: block;
    width: 100%;
}

.cart-block {	
	
}

.cart-block-inner {
	background:#fff;
	border-radius:15px;
	padding:2rem;
	margin:1rem;	
	height:650px;
}

.cart-section-title {
	font-size:1.2rem;
	font-weight:500;
	line-height:2rem;
}

.cart-message {
	color:#555;
}

.cart-form {
	margin-top:2.5rem;
}

.cart-form input, .cart-form .cart-field-desc {
	width: 90%;
	max-width:500px;
    margin-left: 1rem;
}

.cart-form input[type='radio'], .cart-form input[type='checkbox'] {
	width:auto;
	margin-right:.5rem;
}

.cart-form select {
	width: 90%;
	max-width:500px;
    margin-left: 1rem;
}

.cart-form .cart-field-desc {
	color: #555;
    font-size: .8rem;
    margin-top: .1rem;
    margin-left: 1.2rem;
    margin-bottom: 1rem;
}

.cart_userform_error_message {
	display: none;
    color: #222;
    font-size: .8rem;
    padding: 1rem;
    background: #ffcccb;
    border-radius: 15px;
    margin: .25rem 0;
    width: 90%;
	max-width:500px;
}

.cart_orderform_section_title {
	font-weight: 500;
    font-size: 18px;
    line-height: 45px;
}

.cart-second-container {
	margin-top:2rem !important;
}

.cart_use_existing_info {
	margin-top: 10rem;
}

.cart_empty_message {
	margin-top:10rem;
}

.cart_container .portal_button {
	margin-bottom:2px;
}

.contact_us_caption {
	padding-bottom:1rem;
}





/* UTILITY **************************************************/

.popup__video, .popup__resource, .popup__webpage {
	width:75vw;
	height:55dvh;
	border-radius:12px;
	margin-top:-2.5rem;
}

.black-background {
	background:#000 !important;
	background-color:#000 !important;
}

.dark-background {
	background:#111 !important;
	background-color:#111 !important;
}

.white-background {
	background:#fff !important;
	background-color:#fff !important;
}

.light-background {
	background:#eee !important;
	background-color:#eee !important;
}

.padding-h-0 {
	padding-left: 0px !important;
	padding-right: 0px !important;
}

.img-nice {
	width: 100%;
    height: 100%;
	max-height: 280px;
    object-fit: cover;
}

.ellipsis-2 {
	overflow: hidden;
	text-overflow: ellipsis;
	-webkit-line-clamp: 2;
	display: -webkit-box;
	-webkit-box-orient: vertical;
}

.ellipsis-3 {
	overflow: hidden;
	text-overflow: ellipsis;
	-webkit-line-clamp: 3;
	display: -webkit-box;
	-webkit-box-orient: vertical;
}

.word-break {
	word-break: break-all;
}






/*
	MEDIA QUERY OVERRIDES
*/

/* WHEN WIDTH GREATER THAN 599px */
@media( min-width: 599px ) {
	#nav-menu-overlay {
		top:46px;
		left:0;
		width:340px;
		
		/* height:70dvh; */
		
		height:auto;
		max-height:calc( 90dvh - 80px );
		
		border-radius:5px;
		box-shadow: 0px 0px 2px 0px #00000077;
	}
	
	#nav-menu-overlay #sidebar-links {
		margin-top:2rem;
	}
	
	#nav-menu-close-button {
		display:none;
	}
}

/* WHEN WIDTH GREATER THAN 991px */
@media( min-width: 992px ) {
	#side-bar { display: block !important; }	
}

/* WHEN WIDTH LESS THAN 992px */
@media( max-width: 991px ) {
	#logo-bar { height: 110px; }	
	#company-logo-top { height: 55px; margin-top:2px; }
	#page-content { margin-top: 150px; }
	.cart_container { margin-top: 150px; }
	#checkout_form .container { padding-left:0; padding-right:0; }
	#logo-container { margin-top: 0px !important; }
	#popup-dialog { max-width: 96vw; }
	.listing img { width:100px; }
}


/* CUSTOM CSS FROM ADMIN WILL WIND UP BELOW HERE */


