html{
    background-color: #000000;
}
body{
    background-color: transparent;
    margin: 0 auto;
    max-width: 1020px;
}
ul{
    list-style: none;
    margin: 0px;
    padding: 0px;
}
a{
    color: #000000;
    text-decoration: none;
}
#header{
    align-items: center;
    background-color: transparent;
    display: flex;
    height: 200px;
    justify-content: space-evenly;
    margin-top: 30px;
    padding: 30px;
}
#header img{
    display: block;
    max-width: 430px;
    width: 100%;
}
#header .title{
    font-size: 60px;
    font-weight: 700;
}
#header .subtitle{
    font-size: 30px;
}
main{
    background: linear-gradient(135deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 45%, rgba(255, 240, 0, 0.63) 80%, rgba(0, 75, 29, 0.59) 99%);
    border-radius: 30px;
    height: calc(100vh - 150px);
    margin-top: 30px;
    overflow-x: scroll;
    padding: 30px 8px 00px 15px;
}
main #cart{
    align-items: center;
    background: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 20px;
    display: flex;
    justify-content: space-between;
    margin-right: 8px;
    padding: 15px 30px 15px 30px;
}
main #cart .title{
    font-weight: 600;
}
main #cart .price{
    font-size: 18px;
    font-weight: 700;
}
main #cart .go-to-cart{
    background-color: #ffcc00;
    border-radius: 20px;
    font-size: 14px;
    line-height: 40px;
    padding: 0px 16px;
}
main #navigation{
    display: flex;
    padding: 30px 10px 0px 0px;
}
main #categories{
    border-radius: 5px;
    border: 1px solid #dddddd;
    height: calc(100vh - 546px);
    margin-right: 16px;
    overflow-y: scroll;
    width: 25%;
}
main #categories ul{
    background-color: #ffffff;
}
main #categories li:not(:last-child){
    border-bottom: 1px solid #dddddd;
}
main #categories li a{
    display: block;
    font-size: 14px;
    padding: 9px 9px;
}
main #categories li:first-child a{
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
}
main #categories li:last-child a{
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
}
main #categories li a:hover,
main #categories li a.selected{
    background-color: #eeeeee;
}
main #listing{
    align-content: baseline;
    display: flex;
    flex-wrap: wrap;
    height: calc(100vh - 505px);
    overflow-y: scroll;
    padding-right:20px;
    width: 73%;
}
main #listing .article-cnt{
    padding: 0px 8px 45px 8px;
    width: 33.3333%;
}
#cart_page main #listing .article-cnt{
    width: 25.00%;
}
#cart_page main #listing{
    width: 100%;
}
main #listing .article{
    background-color: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 20px;
    height: 100%;
    min-height: 200px;
    padding: 15px;
    position: relative;
    display: flex;
    flex-flow: column;
    justify-content: space-between;
}
footer{
    padding: 30px;
    text-align: center;
}
footer .button{
    background-color: #323232;
    border-radius: 30px;
    color: #ffffff;
    cursor: pointer;
    display: inline-block;
    line-height: 60px;
    margin: 0 auto;
    padding: 0px 20px;
}
footer .button:hover{
    background-color: #424242;
}
footer .button.active{
    background-color: #626262;
}
footer .button .icon{
    background-color: #1a8fd4;
    border-radius: 50%;
    display: inline-block;
    height: 32px;
    line-height: 32px;
    margin-right: 20px;
    width: 32px;
}
.article img{
    display: block;
    margin: 0 auto;
    max-height: 150px;
    max-width: 150px;
    padding: 16px 0px;
    width: auto;
}
.article .name{
    font-size: 14px;
    font-weight: 600;
}
.article .reference{
    font-size: 14px;
}
.article .action-cnt{
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-top: 0px;
}
.article .price{
    font-size: 15px;
    font-weight: 600;
}
.article .add-to-cart{
    background-color: #ffcc00;
    border-radius: 15px;
    font-size: 14px;
    line-height: 30px;
    padding: 0px 16px;
}
.article .remove-from-cart{
    background-color: #ff3300;
    border-radius: 15px;
    color: #ffffff;
    font-size: 14px;
    line-height: 30px;
    padding: 0px 16px;
}
#address{
    background: #fff;
    border-radius: 20px;
    border: 1px solid #ddd;
    font-size: 18px;
    font-weight: 700;
    /*height: 620px;*/
    margin-left: 8px;
    margin-right: 8px;
    padding: 16px 32px;
    width: 48%;
}
#address > div {
    margin-top: 8px;
}
#address label{
    font-size: 16px;
    font-weight: 500;
    width: 100%;
}
#address input{
    border: 1px solid #dddddd;
    border-radius: 5px;
    line-height: 30px;
    width: 100%;
}

#customer_info{
    background: #fff;
    border-radius: 20px;
    border: 1px solid #ddd;
    font-size: 18px;
    font-weight: 700;
    height: 620px;
    margin-left: 8px;
    margin-right: 8px;
    padding: 16px 32px;
    width: 48%;
}
#customer_info > div {
    margin-top: 8px;
}
#customer_info label{
    font-size: 16px;
    font-weight: 500;
    width: 100%;
}
#customer_info input{
    border: 1px solid #dddddd;
    border-radius: 5px;
    line-height: 30px;
    width: 100%;
}


.loader {
    transform: rotateZ(45deg);
    perspective: 1000px;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    color: #eade1b;
}
    .loader:before,
    .loader:after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: inherit;
    height: inherit;
    border-radius: 50%;
    transform: rotateX(70deg);
    animation: 1s spin linear infinite;
}
.loader:after {
    color: #004b1d;
    transform: rotateY(70deg);
    animation-delay: .4s;
}

@keyframes rotate {
    0% {
    transform: translate(-50%, -50%) rotateZ(0deg);
    }
    100% {
    transform: translate(-50%, -50%) rotateZ(360deg);
    }
}

@keyframes rotateccw {
    0% {
    transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
    transform: translate(-50%, -50%) rotate(-360deg);
    }
}

@keyframes spin {
    0%,
    100% {
    box-shadow: .2em 0px 0 0px currentcolor;
    }
    12% {
    box-shadow: .2em .2em 0 0 currentcolor;
    }
    25% {
    box-shadow: 0 .2em 0 0px currentcolor;
    }
    37% {
    box-shadow: -.2em .2em 0 0 currentcolor;
    }
    50% {
    box-shadow: -.2em 0 0 0 currentcolor;
    }
    62% {
    box-shadow: -.2em -.2em 0 0 currentcolor;
    }
    75% {
    box-shadow: 0px -.2em 0 0 currentcolor;
    }
    87% {
    box-shadow: .2em -.2em 0 0 currentcolor;
    }
}

#intro_page main{
    display: flex;
    flex-flow: column;
    justify-content: center;
    padding: 30px;
}
#intro_page #header{
    background-color: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 30px;
    flex-flow: column;
    height: 570px
}
#intro_page #header a{
    color: #ffffff;
    display: flex;
    flex-flow: column;
    height: 100%;
    justify-content: center;
    width: 100%;
}
#intro_page #header.header-brunner{
    background-image: url('/img/theme/background.jpg');
    background-size: cover;
    color: #ffffff;
    text-align: center;
    text-shadow: 1px 1px 2px black;
}
#intro_page #header.header-brunner img{
    margin: 0 auto;
}
#intro_page #header.header-queue{
    background-image: url('/img/theme/background-2.jpg');
    background-size: cover;
    color: #ffffff;
    text-align: center;
    text-shadow: 1px 1px 2px black;
}
#search_page #listing{
    width: 100%;
}
#search{
    margin-top: 30px;
    margin-right: 8px;
    position: relative;
}

#search input{
    background-color: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 20px;
    padding: 15px 30px 15px 30px;
    width: 100%;
}
#search button{
    background-color: #ffcc00;
    border: 0px;
    border-radius: 15px;
    font-size: 14px;
    line-height: 30px;
    padding: 0px 16px;
    position: absolute;
    right: 14px;
    top: 14px;
}
#search_cart_page main #listing .article-cnt{
    width: 33.33333%;
}
#search_cart_page main #listing{
    width: 100.00%;
}
#cart_page #carrier{
    width: 50%;
}
.container {
    background-color: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 5px;
    padding: 20px 20px 20px 20px;
    display: block;
    position: relative;
    padding-left: 60px;
    margin-bottom: 12px;
    cursor: pointer;
    font-size: 22px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Hide the browser's default checkbox */
.container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/* Create a custom checkbox */
.checkmark {
  position: absolute;
  top: 24px;
  left: 20px;
  height: 25px;
  width: 25px;
  background-color: #eee;
}

/* On mouse-over, add a grey background color */
.container:hover input ~ .checkmark {
  background-color: #ccc;
}

/* When the checkbox is checked, add a blue background */
.container input:checked ~ .checkmark {
  background-color: #ffcc00;
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.container input:checked ~ .checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */
.container .checkmark:after {
  left: 10px;
  top: 6px;
  width: 7px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
#customer_info{
    display: none;
}

#cart_page.pay #carrier{
    width: 100%;
}
.pay .go-to-pay{
    background-color: #ffcc00;
    border-radius: 20px;
    float: right;
    font-size: 14px;
    line-height: 40px;
    padding: 0px 16px;
}
.pay .container {
    padding-left: 20px;
}

#intro_page.accessibility main{
    justify-content: end;
}
.accessibility #header{
    height: 800px;
}
#privacy{
    background: #fff;
    border-radius: 20px;
    border: 1px solid #ddd;
    display: none;
    padding: 20px;
}
.article-image{
    cursor: pointer;
    height:150px; 
    width: 185px;
}
#payment-form .sr-combo-inputs-row{
    background-color: #f1f1f1;
    border-radius: 3px;
    padding: 20px;
    margin: 20px 0px;
}
.ElementsApp, .ElementsApp .InputElement{
    color: #000000 !important;
}

/* Variables */
:root {
	--body-color: rgb(247, 250, 252);
	--button-color: rgb(30, 166, 114);
	--accent-color: #0a721b;
	--link-color: #ffffff;
	--font-color: rgb(105, 115, 134);
	--body-font-family: -apple-system, BlinkMacSystemFont, sans-serif;
	--radius: 6px;
	--form-width: 400px;
}

/* Base */
* {
	box-sizing: border-box;
}

body {
	font-family: var(--body-font-family);
	font-size: 16px;
	-webkit-font-smoothing: antialiased;
}

/* Layout */
.sr-root {
	display: flex;
	flex-direction: row;
	width: 100%;
	max-width: 980px;
	padding: 48px;
	align-content: center;
	justify-content: center;
	height: auto;
	min-height: 100vh;
	margin: 0 auto;
}

.sr-main {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
	align-self: center;
	padding: 75px 50px;
	background: var(--body-color);
	width: var(--form-width);
	border-radius: var(--radius);
	box-shadow: 0px 0px 0px 0.5px rgba(50, 50, 93, 0.1),
	0px 2px 5px 0px rgba(50, 50, 93, 0.1),
	0px 1px 1.5px 0px rgba(0, 0, 0, 0.07);
}

.sr-field-error {
	color: var(--font-color);
	text-align: left;
	font-size: 13px;
	line-height: 17px;
	margin-top: 12px;
}

/* Inputs */
.sr-input,
input[type="text"] {
	border: 1px solid var(--gray-border);
	border-radius: var(--radius);
	padding: 5px 12px;
	height: 44px;
	width: 100%;
	transition: box-shadow 0.2s ease;
	background: white;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
}

.sr-input:focus,
input[type="text"]:focus,
button:focus,
.focused {
	box-shadow: 0 0 0 1px rgba(50, 151, 211, 0.3), 0 1px 1px 0 rgba(0, 0, 0, 0.07),
	0 0 0 4px rgba(50, 151, 211, 0.3);
	outline: none;
	z-index: 9;
}

.sr-input::placeholder,
input[type="text"]::placeholder {
	color: var(--gray-light);
}

.sr-result {
	height: 44px;
	-webkit-transition: height 1s ease;
	-moz-transition: height 1s ease;
	-o-transition: height 1s ease;
	transition: height 1s ease;
	color: var(--font-color);
	overflow: auto;
}

.sr-result code {
	overflow: scroll;
}

.sr-result.expand {
	height: 350px;
}

.sr-combo-inputs-row {
	box-shadow: 0px 0px 0px 0.5px rgba(50, 50, 93, 0.1),
	0px 2px 5px 0px rgba(50, 50, 93, 0.1), 0px 1px 1.5px 0px rgba(0, 0, 0, 0.07);
	border-radius: 7px;
}

/* Buttons and links */
button {
	background: #ffcc00;
	border-radius: var(--radius);
	border: 0;
	padding: 12px 16px;
	margin-top: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
	display: block;
	box-shadow: 0px 4px 5.5px 0px rgba(0, 0, 0, 0.07);
	width: 100%;
}

button:hover {
	filter: contrast(115%);
}

button:active {
	transform: translateY(0px) scale(0.98);
	filter: brightness(0.9);
}

button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

a {
	text-decoration: none;
	transition: all 0.2s ease;
}

a:hover {
	filter: brightness(0.8);
}

a:active {
	filter: brightness(0.5);
}

/* Code block */
code,
pre {
	font-family: "SF Mono", "IBM Plex Mono", "Menlo", monospace;
	font-size: 12px;
}

/* Stripe Element placeholder */
.sr-card-element {
	padding-top: 12px;
}

/* Responsiveness */
@media (max-width: 720px) {
	.sr-root {
		flex-direction: column;
		justify-content: flex-start;
		padding: 48px 20px;
		min-width: 320px;
	}

	.sr-header__logo {
		background-position: center;
	}

	.sr-payment-summary {
		text-align: center;
	}

	.sr-content {
		display: none;
	}

	.sr-main {
		width: 100%;
		height: 305px;
		background: rgb(247, 250, 252);
		box-shadow: 0px 0px 0px 0.5px rgba(50, 50, 93, 0.1),
		0px 2px 5px 0px rgba(50, 50, 93, 0.1),
		0px 1px 1.5px 0px rgba(0, 0, 0, 0.07);
		border-radius: 6px;
	}
}

/* todo: spinner/processing state, errors, animations */

.spinner,
.spinner:before,
.spinner:after {
	border-radius: 50%;
}

.spinner {
	color: #ffffff;
	font-size: 22px;
	text-indent: -99999px;
	margin: 0px auto;
	position: relative;
	width: 20px;
	height: 20px;
	box-shadow: inset 0 0 0 2px;
	-webkit-transform: translateZ(0);
	-ms-transform: translateZ(0);
	transform: translateZ(0);
}

.spinner:before,
.spinner:after {
	position: absolute;
	content: "";
}

.spinner:before {
	width: 10.4px;
	height: 20.4px;
	background: var(--accent-color);
	border-radius: 20.4px 0 0 20.4px;
	top: -0.2px;
	left: -0.2px;
	-webkit-transform-origin: 10.4px 10.2px;
	transform-origin: 10.4px 10.2px;
	-webkit-animation: loading 2s infinite ease 1.5s;
	animation: loading 2s infinite ease 1.5s;
}

.spinner:after {
	width: 10.4px;
	height: 10.2px;
	background: var(--accent-color);
	border-radius: 0 10.2px 10.2px 0;
	top: -0.1px;
	left: 10.2px;
	-webkit-transform-origin: 0px 10.2px;
	transform-origin: 0px 10.2px;
	-webkit-animation: loading 2s infinite ease;
	animation: loading 2s infinite ease;
}

#card-errors.show {
    padding: 5px 10px;
    color: #fa755a;
}

@-webkit-keyframes loading {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

@keyframes loading {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

/* Animated form */

.sr-root {
	animation: 0.4s form-in;
	animation-fill-mode: both;
	animation-timing-function: ease;
}

.hidden {
	display: none;
}

@keyframes field-in {
	0% {
		opacity: 0;
		transform: translateY(8px) scale(0.95);
	}
	100% {
		opacity: 1;
		transform: translateY(0px) scale(1);
	}
}

@keyframes form-in {
	0% {
		opacity: 0;
		transform: scale(0.98);
	}
	100% {
		opacity: 1;
		transform: scale(1);
	}
}