/* base */
*
{
	outline: none;
	margin: 0;
	padding: 0;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	-moz-tap-highlight-color: rgba(0, 0, 0, 0);
}

body
{
	font-family: Raleway,'Lucida Sans Unicode','Segoe UI',Verdana,sans-serif;
	font-size: 1.0rem;
	color: #696969;
}

a
{
	text-decoration: underline;
	color: #004082;
}

a:hover
{
	color: #004082;
}

hr
{
	margin-top: 0;
	margin-bottom: 4rem;
}

h1
{
	margin: 0 !important;
	line-height: inherit;
	font-weight: inherit;
}

h2
{
	font-size: 1.5rem;
	color: #303030;
	margin-bottom: 1.2rem;
}

ul
{
	padding: 0;
	list-style: none;
}

p
{
	margin-bottom: 0.5rem;
}

::selection
{
	color: #FFFFFF;
	background: #004082;
}

.btn:focus
{
	box-shadow: none;
}

/* custom scroll bar */
::-webkit-scrollbar
{
	width: 0.5rem;
}

::-webkit-scrollbar-thumb
{
	border-radius: 0.5rem;
	background-color: #A0A0A0;
}

::-webkit-scrollbar-thumb:hover
{
	background: #505050;
}

::-webkit-scrollbar-track
{
	background-color: #F0F0F0;
}

/* utility classes */
.code
{
	font-family: 'B612 Mono',Consolas,Courier !important;
	font-size: 0.8rem !important;
	word-break: break-word;
}

div.code
{
	padding: 1rem;
	margin-top: 1rem;
	margin-bottom: 1rem;
	background-color: #F7F7F7;
}

.syntaxhighlighter .code .line code, .syntaxhighlighter .code .line a, pre
{
	font-family: 'B612 Mono',Consolas,Courier !important;
	font-size: 0.8rem !important;
}

/* syntaxhighlighter line should wrap */
.syntaxhighlighter .line, pre
{
	white-space: pre-wrap !important;
	line-height: 1.7em !important;
}

/* syntaxhighlighter block should not have border */
.syntaxhighlighter
{
	margin: 0 !important;
}

.syntaxhighlighter .plain, .syntaxhighlighter .plain a
{
	color: #696969 !important;
}

.alternating-background > div:nth-of-type(odd)
{
	background-color: #EDEDED;
}

.alternating-background > div:nth-of-type(even)
{
	background-color: #F7F7F7;
}

.bullet::before
{
	content: "\2022";
	padding-right: 0.5rem;
	font-weight: bolder;
}

/* main grid */
.main
{
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 20rem auto;
	grid-template-columns: 20rem auto;
	-ms-grid-rows: auto auto auto;
	grid-template-rows: auto auto auto;
	grid-template-areas:
	"header header"
	"navigation main"
	"footer footer";
}

.main-header
{
	grid-area: header;
	-ms-grid-row: 1;
	-ms-grid-column: 1;
	-ms-grid-column-span: 2;
	z-index: 5;
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	height: 5rem;
	background-color: #004082;
}

.main-header.smaller
{
	height: 4rem;
}

.main-navigation
{
	grid-area: navigation;
	-ms-grid-row: 2;
	-ms-grid-column: 1;
	background-color: #F3F6F9;
}

.main-main
{
	grid-area: main;
	-ms-grid-row: 2;
	-ms-grid-column: 2;
	padding-top: 1.5rem;
	padding-left: 2.0rem;
	padding-right: 1.5rem;
	max-width: 1000px;
}

.main-main-content
{
	padding-left: 2.7rem;
	line-height: 1.7rem;
}

.main-footer
{
	grid-area: footer;
	-ms-grid-row: 3;
	-ms-grid-column: 1;
	-ms-grid-column-span: 2;
	background-color: #004082;
	color: #6388B0;
	text-align: left;
	padding-left: 1.2rem;
	padding-right: 1.2rem;
	padding-top: 2.0rem;
	padding-bottom: 2.0rem;
}

.main-ads
{
	grid-area: ads;
	background-color: #F3F6F9;
	display: none;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
	padding-top: 2.0rem;
}

/* header */
.header-container
{
	height: 100%;
	margin-left: 1.2rem;
	display: -ms-grid;
	display: grid;
	grid-template-columns: max-content auto;
	-ms-grid-columns: max-content auto;
	grid-template-areas: "logo text";
	align-items: center;
}

.header-logo
{
	grid-area: logo;
	margin-right: 0.8rem;
}

.header-logo img
{
	height: 2.8rem;
	box-shadow: 0px 0px 0px 1px rgba(255,255,255,0.3);
	transition: all 0.2s ease-in-out;
}

.smaller .header-logo img
{
	height: 2.0rem;
}

.header-text
{
	grid-area: text;
	font-size: 2rem;
	font-weight: 800;
	color: #FFFFFF;
	text-decoration: none;
	transition: all 0.2s ease-in-out;
}

.header-text:hover
{
	color: #FFFFFF;
	text-decoration: none;
}

.smaller .header-text
{
	font-size: 1.6rem;
}

/* navigation */
.navigation-toggle-button
{
	grid-area: button;
	display: none;
	z-index: 1;
	border: 0;
	background-color: transparent;
	width: 1.5rem;
	cursor: pointer;
	margin-right: 1rem;
}

.icon-bar
{
	display: block;
	width: 100%;
	height: 3px;
	background-color: #ffffff;
	transition: 0.3s;
}

.icon-bar + .icon-bar
{
	margin-top: 5px;
}

.active .navigation-toggle-button .icon-bar:nth-of-type(1)
{
	transform: translate3d(0, 8px, 0) rotate(45deg);
}

.active .navigation-toggle-button .icon-bar:nth-of-type(2)
{
	opacity: 0;
}

.active .navigation-toggle-button .icon-bar:nth-of-type(3)
{
	transform: translate3d(0, -8px, 0) rotate(-45deg);
}

.navigation-title
{
	display: block;
	text-decoration: none;
	font-size: 2.0rem;
	font-weight: 800;
	color: #004082;
	padding-left: 1.2rem;
	padding-top: 1.5rem;
	padding-bottom: 0.2rem;
}

.navigation-title:hover
{
	text-decoration: none;
}

.navigation ul
{
	margin-bottom: 0;
}

.navigation li a
{
	text-decoration: none;
	display: block;
	padding-top: 0.6rem;
	padding-bottom: 0.6rem;
	padding-left: 1.2rem;
	padding-right: 1.2rem;
}

.navigation li a:hover
{
	text-decoration: none;
	background-color: #D1DDE9;
}

.navigation-link-active
{
	background-color: #D9E4EF;
}

.navigation-adds
{
	padding-left: 1.2rem;
	padding-right: 1.2rem;
	padding-top: 0.6rem;
	padding-bottom: 1.2rem;
}

.navigation-adds .the_sz-envelope-o:before
{
	font-size: 18px;
	line-height: 31px;
}

.navigation-ads
{
	padding-left: 1.2rem;
	padding-right: 1.2rem;
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
}

/* footer */
.footer-line a
{
	text-decoration: none;
	color: #B1C4D8;
}

.footer-line a:hover
{
	text-decoration: underline;
}

.footer-line .footer-item
{
	display: inline-block;
}

.footer-line .footer-item:not(:last-child):after
{
	content: "\B7";
	padding-left: 0.7rem;
	padding-right: 0.5rem;
}

.footer-line.with-padding
{
	padding-bottom: 0.5rem;
}

.footer-line.with-large-padding
{
	padding-bottom: 2.5rem;
}

/* product title */
.title
{
	font-weight: 800 !important;
	color: #004082;
	padding-bottom: 2.0rem;
	display: grid;
	grid-template-columns: max-content auto;
	grid-column-gap: 0.7rem;
	grid-template-areas:
	"image main"
	"image sub";
}

.title-link
{
	text-decoration: none !important;
}

.title-link:hover
{
	text-decoration: none !important;
}

.title-image
{
	grid-area: image;
	padding-top: 0.5rem;
}

.title-image img
{
	width: 32px;
	height: 32px;
}

.title-main
{
	grid-area: main;
	font-size: 2.0rem;
}

.title-sub
{
	grid-area: sub;
	font-size: 1.2rem;
}

/* section grid */
.section-left
{
	display: grid;
 	align-items: start;
	grid-template-columns: max-content auto;
	grid-column-gap: 1.5rem;
	grid-template-areas:
	"image text";
	padding-bottom: 4rem;
}

.section-right
{
	display: grid;
 	align-items: start;
	grid-template-columns: auto max-content;
	grid-column-gap: 1.5rem;
	grid-template-areas:
	"text image";
	padding-bottom: 4rem;
}

.section-text
{
	grid-area: text;
}

.section-image
{
	grid-area: image;
	width: -moz-fit-content;
	width: fit-content;
}

/* section */
.section-full
{
	padding-bottom: 4rem;
}

/* imagelist */
.imagelist
{
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	grid-column-gap: 0.7rem;
	grid-template-areas:
	"image text";
	text-decoration: none;
	padding-bottom: 0.5rem;
}

.imagelist:hover
{
	text-decoration: none;
}

.imagelist:hover .imagelist-main
{
	text-decoration: underline;
}

.imagelist-image
{
	grid-area: image;
	width: 32px;
	height: 55px;
	margin-top: 0.2rem;
	transition: 0.2s ease-in;
}

.imagelist:hover .imagelist-image
{
	transform: scale(1.15);
}

.imagelist-image img
{
	width: 32px;
	height: 32px;
}

.imagelist-text
{
	grid-area: text;
	line-height: 1.4rem;
}

.imagelist-main
{
	color: #696969;
}

.imagelist-sub
{
	color: #A0A0A0;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}

/* disqus */
.disqus
{
	background-color: #F7F7F7;
	padding: 2rem;
	max-height:1000px;
	overflow-y:auto;
}

/* commentbox */
.commentbox
{
	background-color: #F7F7F7;
	padding: 1.5rem;
	max-height:1000px;
	overflow-y:auto;
}

/* box grid */
.box
{
	display: grid;
	grid-template-columns: 75px  auto;
	grid-column-gap: 1.5rem;
	grid-template-areas:
	"image text";
}

.box-image
{
	grid-area: image;
	justify-self: end;
	align-self: center;
}

.box-text
{
	grid-area: text;
	align-self: center;
}

/* download */
.download
{
	padding: 2rem;
}

.download-new
{
	word-break: break-all;
}

.download-small-container
{
	padding: 2rem;
	padding-top: 1.5rem;
	padding-bottom: 1.0rem;
}

.download-small
{
	display: inline-block;
	padding-right: 0.6rem;
	padding-bottom: 0.5rem;
}

.download-link
{
	color: #D03842;
}

.download-link:hover
{
	color: #D03842;
}

/* winget */
.winget
{
	padding: 2rem;
}

.winget span.code::before
{
	content: ">";
	padding-right: 6px;
}

.winget i.copy
{
	font-size: 1.1rem;
	margin-top: 6px;
	cursor: pointer;
}

/* download instruction */
.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after
{
	border-bottom-color: #004082;
}

.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before
{
	border-bottom-color: #004082;
}

.popover
{
	max-width: none;
	border-radius: 0;
	box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.6);
	z-index: 2;
}

.popover-header
{
	background-color: #004082;
	color: #FFFFFF;
	font-size: 1rem;
	border-radius: 0;
	padding: 1.0rem;
}

.popover-body
{
	line-height: 3rem;
	font-size: 1rem;
	color: #696969;
}

.instruction-step
{
	background-color: #004082;
	color: #FFFFFF;
	width: 1.5rem;
	height: 1.5rem;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 1rem;
	margin-right: 0.2rem;
}

/* faq */
.faq
{
	padding: 2rem;
}

.faq-link
{
	text-decoration: none;
	color: inherit;
}

.faq-link:hover
{
	text-decoration: none;
	color: inherit;
}

.faq-link i
{
	padding-left: 0.4rem;
	font-size: 1.4rem;
	color: #B0B0B0;
	vertical-align: -0.2rem;
}

.faq-link:hover i 
{
	color: inherit;
}

/* help */
.help
{
	padding: 2rem;
}

/* languages */
.languages
{
	padding: 2rem;
}

.languages-container
{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.languages-item
{
	padding: 0.3rem;
	padding-right: 0;
}

.languages-item img
{
	vertical-align: baseline;
}

/* related */
.related h2:not(:first-child)
{
	padding-top: 2rem;
}

/* category */
.category a
{
	margin-bottom: 1.5rem;
}

/* mirror */
.mirror
{
	height: 30px;
	margin-bottom: 1.0rem;
	margin-right: 1.0rem;
	-webkit-transition: -webkit-filter 0.5s;
	-webkit-filter: grayscale(100%);
	transition: filter 0.5s;
	filter: grayscale(100%);
}

.mirror:hover
{
	-webkit-filter: grayscale(0%);
	filter: grayscale(0%);
}

/* usbid */
.usbid
{
	display: grid;
	/* grid-template-columns: 5rem 5rem fit-content(100%) fit-content(100%) auto; */
	grid-template-columns: 5rem 5rem fit-content(100%);
	grid-template-areas:
	"vendor-id product-id vendor-name product-name"
	". . comment comment";
	padding-top: 0.4rem;
	padding-bottom: 0.4rem;
}

.usbid-container .usbid:not(:last-child)
{
	border-bottom: 1px solid #CCCCCC;
}

.usbid div
{
	overflow: hidden;
}

.usbid-vendor-id
{
	grid-area: vendor-id;
}

.usbid-product-id
{
	grid-area: product-id;
}

.usbid-vendor-name
{
	grid-area: vendor-name;
}

.usbid-product-name
{
	grid-area: product-name;
	padding-left: 0.5rem;
}

.usbid-comment
{
	grid-area: comment;
}

.usbid-comment:empty
{
	display: none;
}

.usbid-company
{
	color: #004082;
}

.usbid-picture
{
	background-image: url(/common/images/checker.png);
	background-size: 5px 5px;
	max-height: 15px;
	max-width: 150px;
	margin-right: 8px;
}

/* accordion */
.accordion .card-header
{
	padding: 0.75rem;
}

.accordion .btn
{
	width: 100%;
	font-size: 1.0rem !important;
	color: #696969 !important;
	padding: 0;
	text-align: left;
}

.accordion .btn i
{
	color: #004082;
}

.accordion .card
{
	border: none;
	border-radius: 0;
}

.accordion .card:not(:last-child)
{
	border-bottom: 1px solid rgba(0,0,0,.125) !important;
}

.accordion .card-header
{
	border: none;
	border-radius: 0;
}

.accordion .card-body
{
	background: rgba(0, 0, 0, 0.03);
}

/* scroll out animation  */
[data-scroll]
{
	opacity: 0;
	will-change: transform, scale, opacity;
	transform: translateY(6rem) scale(0.63);
	transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

[data-scroll="in"] 
{
	opacity: 1;
	transform: translateY(0) scale(1);
}

/* image / magnify */
.magnify-link
{
	width: -moz-fit-content;
	width: fit-content;
}

.image-container
{
	position: relative;
	padding: 0.15rem;
}

.image-container-shadow
{
	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
}

.image-container div
{
	overflow: hidden;
}

.image-scale
{
	transition: 0.2s ease-in;
}

.image-scale:hover
{
	transform: scale(1.05);
}

.magnify-image
{
	position: absolute;
	right: -16px;
	bottom: -8px;
	opacity: 0;
}

/* floating label, 'required' is required */
.form-group
{
	position: relative;
}

.form-control-placeholder
{
	position: absolute;
	top: 0;
	padding: 0.6rem 0 0 1rem;
	transition: all 0.2s;
	opacity: 0.8;
	user-select: none;
	pointer-events: none;
}

.form-control:focus + .form-control-placeholder,
.form-control:valid + .form-control-placeholder
{
	font-size: 90%;
	transform: translate3d(0, -120%, 0);
	opacity: 1.0;
}

/* align material icons correctly */
.material-icons
{
	vertical-align: bottom;
	margin-right: 0.5rem;
}

/* bootstrap form changes */
button, input, select, .custom-file-label, .custom-select
{
	box-shadow: none !important;
}

.btn, .form-control, .custom-file-label, .custom-select
{
	border-radius: 0;
}
 
.btn-primary
{
	background-color: #004082;
	border-color: #002D5A;
}

.btn-primary:hover
{
	background-color: #005EBE;
}

.btn i
{
	transition: 0.2s ease-in;
}

.btn:hover i
{
	transform: scale(1.2);
}

/* tables have no additional border at the bottom */
.table
{
    margin-bottom: 0;
}

/* tables have no line at the top */
.table tr:first-child td
{
	border-top-style: none;
}

.table thead th
{
	border-bottom-width: 1px;
	border-top-width: 0;
	font-weight: normal;
}

/* image border has no round borders */
.img-thumbnail
{
	border-radius: 0;
	padding: 0;
}

.embed-responsive-3by4::before
{
	padding-top: 75%;
}

/* we have 0.8rem spacing */
.row
{
	margin-right: -0.8rem;
	margin-left: -0.8rem;
}

/* tooltips */
.tooltip
{
	z-index: 1;
}

.tooltip-inner
{
	max-width: 20rem;
	text-align: left;
	white-space:pre-wrap;
}

/* iconhovereffects */
.hi-icon
{
	width: 45px;
	height: 45px;
	text-decoration: none;
	color: #FFFFFF;
	border:4px solid #FFFFFF;
	box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.2);
}

.hi-icon:hover
{
	background-color: #FFFFFF;
	text-decoration: none;
}

.hi-icon:before
{
	font-family: 'the_sz';
}

.the_sz-arrow-down:hover
{
	color: #D03842;
}

.the_sz-arrow-down:before
{
	font-size: 26px;
	line-height: 41px;
}

.the_sz-arrow-down:after
{
	background-color: #D03842 !important;
}

.the_sz-help:hover
{
	color: #004082;
}

.the_sz-help:before
{
	font-size: 31px;
	line-height: 41px;
}

.the_sz-help:after
{
	background-color: #004082 !important;
}

.the_sz-envelope-o:hover
{
	color: #004082;
}

.the_sz-envelope-o:before
{
	font-size: 24px;
	line-height: 35px;
}

.the_sz-envelope-o:after
{
	background-color: #004082 !important;
}

/* iconhovereffects for download-small */
.download-small .hi-icon-effect-2
{
	display: inline-block;
	vertical-align: middle;
	padding-right: 0.1rem;
}

.download-small .hi-icon
{
	width: 30px;
	height: 30px;
	box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.1);
}

.download-small .the_sz-arrow-down:before
{
	font-size: 17px;
	line-height: 23px;
}

/* fancybox nicer background */
.fancybox-bg
{
	background: #000000;
}

.fancybox-is-open .fancybox-bg
{
	opacity: 1;
}

/* browse button */
.custom-file-label::after
{
	padding-top: 0.5rem !important;
}
.custom-file-label
{
	padding-top: 0.5rem !important;
}
 
/* mobile version */
@media screen and (max-width: 991px)
{
	/* main grid */
	.main
	{
		grid-template-columns: auto;
		grid-template-rows: auto auto auto;
		grid-template-areas:
		"header"
		"main"
		"footer";
	}

	.main-main
	{
		padding-left: 0.8rem;
		padding-right: 0.8rem;
		padding-top: 0.8rem;
		padding-bottom: 0.8rem;
	}

	.main-header
	{
		height: 3.5rem;
	}

	.main-header.smaller
	{
		height: 3.0rem;
	}

	.main-navigation
	{
		grid-area: main;
		background-color: transparent;
	}
	
	.active .main-navigation
	{
		z-index: 4;
	}

	.main-main-content
	{
		padding-left: 0;
	}

	/* header */	
	.header-container
	{
		grid-template-areas: "button text";
	}

	.header-text
	{
	    font-size: 1.5rem;
	}

	.smaller .header-text
	{
		font-size: 1.3rem;
	}

	.header-logo
	{
		display: none;
	}

	/* navigation */
	.navigation
	{
		font-weight: 600;
		font-size: 1.0rem;
		transform: translateX(-101%);
		transition: transform 0.3s;
		will-change: transform;
		contain: paint;
		background-color: #F3F6F9;
		border-bottom: 1rem solid #004082;
	}

	.active .navigation
	{
		transform: none;
		box-shadow: 0px 5px 30px 10px rgba(0, 0, 0, 0.5);
	}

	.navigation-toggle-button
	{
		display: block;
	}
	
	.navigation li a
	{
		padding-top: 1.0rem;
		padding-bottom: 1.0rem;
		padding-left: 1.2rem;
		padding-right: 1.2rem;
	}
	
	.navigation-ads
	{
		padding-left: 0;
		padding-right: 0;
	}

	/* section grid */
	.section-left, .section-right
	{
		grid-template-columns: auto;
		grid-template-areas:
		"text"
		"image";
	}
	
	/* section */
	.section-image
	{
		margin-top: 0.5rem;
	}

	.usbid
	{
		grid-template-columns: 1fr 4fr;
		grid-template-areas:
		"vendor-id vendor-name"
		"product-id product-name"
		". comment";
	}

	.usbid-product-name
	{
		padding-left: 0;
	}
	
	/* hide link menu tooltip */
	.bs-tooltip-left
	{
		display: none !important;
	}
}

/* extra wide version */
@media screen and (min-width: 1700px)
{
	/* main grid */
	.main
	{
		grid-template-columns: 20rem auto 350px;
		grid-template-rows: auto auto auto;
		grid-template-areas:
		"header header header"
		"navigation main ads"
		"footer footer footer";
	}

	.main-ads
	{
		display: block;
	}
}

/* dark mode */
@media (prefers-color-scheme: dark)
{
	body
	{
		background-color: #35353B;
		color: #F0F0F0;
	}
	.imagelist-main
	{
		color: #F0F0F0;
	}

	.accordion .btn
	{
		color: #F0F0F0 !important;
	}

	a
	{
		color: #208EFF;
	}

	a:hover
	{
		color: #208EFF;
	}

	h2
	{
		color: #208EFF;
	}

	.title
	{
		color: #208EFF;
	}

	.usbid-company
	{
		color: #208EFF;
	}
	
	.accordion .btn i
	{
		color: #208EFF;
	}
	
	.btn-primary
	{
		background-color: #208EFF;
	}

	.navigation-title
	{
		color: #208EFF;
	}

	.main-navigation
	{
		background-color: #29292E;
	}

	.navigation li a:hover
	{
		background-color: #494950;
	}
	
	.navigation-link-active
	{
		background-color: #35353B;
	}

	.alternating-background > div:nth-of-type(odd)
	{
		background-color: #29292E;
	}
	
	.alternating-background > div:nth-of-type(even)
	{
		background-color: #1D1D20;
	}

	.download-link
	{
		color: #FF3845;
	}
	
	.download-link:hover
	{
		color: #FF3845;
	}

	hr
	{
		border-top-color: #545454;
	}

	.card
	{
		background-color: #29292E;
	}

	/* mobile version */
	@media screen and (max-width: 991px)
	{
		.navigation
		{
			background-color: #29292E;
		}
	}
}
