/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Browser Reset
# Typography
# Elements
# Custom Styles
--------------------------------------------------------------*/

/*------------------------------------------------------------------
[Browser Reset]
-------------------------------------------------------------------*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,overline,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;font:inherit;vertical-align:baseline;font-family:inherit;font-size:100%;font-style:inherit;font-weight:inherit;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}html{font-size:62.5%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}body{background:#fff;line-height:1;}article,aside,details,figcaption,figure,footer,header,main,nav,section{display:block}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0;}caption,th,td{font-weight:normal;text-align:left;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}blockquote,q{quotes:none}a:focus{outline:none}a:hover,a:active{outline:0}a img{border:0}img{max-width:100%;height:auto;}select{max-width:100%}

/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/
body,
button,
input,
select,
textarea { color: white; font-family: 'IBM Plex Sans Condensed', 'Helvetica Neue', sans-serif; font-size: 22px; font-weight: 200; line-height: 1.5; }
h1,
h2,
h3,
h4,
h5,
h6 { font-family: 'IBM Plex Sans Condensed'; clear: both }
h1 {
	display: inline-block;
	margin-bottom: 30px;
	font-size: 2.5em;
	font-weight: bold;
	line-height: 1.3em;
	text-align: left;
}
h2 {
	font-family: 'IBM Plex Sans Condensed';
	font-size: 2em;
	font-weight: 100;
	line-height: 1.3em;
	text-align: left;
	padding-top: 20px;
	padding-bottom: 20px;
}
h2 a {
	text-decoration: none;
}
h3 {
	font-size: 1.7em;
	font-family: 'IBM Plex Sans Condensed';
	padding-top: 0.5em;
	padding-bottom: 1em;
}
h4 { font-size: 1.4em; padding-bottom: 0.5em; }
h5 { font-size: 1em }
h6 { font-size: 0.875em }
p { margin-bottom: 1.5em }
dfn,
cite,
em,
i { font-style: italic }
blockquote { margin: 0 1.5em }
address { margin: 0 0 1.5em }
pre {
	font-family: 'IBMVGA8', 'fixedsys', monospace;
	font-size: 12pt;
	font-weight: normal;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}
code,
kbd,
tt, var { font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; font-size: 15px; font-size: 0.9375rem; }
abbr,
acronym { border-bottom: 1px dotted #666; cursor: help; }
mark,
ins { background: #fff9c0; text-decoration: none; }
big { font-size: 125% }
strong { font-weight: bold; }
overline {
	text-decoration: overline;
}

/*--------------------------------------------------------------
# Elements
--------------------------------------------------------------*/
html { box-sizing: border-box }
*,
*:before,
*:after { box-sizing: inherit }
body {
	background-color: #000;
}
blockquote:before,
blockquote:after,
q:before,
q:after { content: "" }
blockquote,
q { quotes: "" "" }
hr { background-color: #ccc; border: 0; height: 1px; margin-bottom: 1.5em; }
ul,
ol { margin: 0 0 1.5em 3em }
ul { list-style: disc }
ol { list-style: decimal }
li > ul,
li > ol { margin-bottom: 0; margin-left: 1.5em; }
dt { font-weight: bold }
dd { margin: 0 1.5em 1.5em }
img {
	height: auto;
	max-width: 100%;
}

a, a:link, a:visited, a:hover, a:active {
	color: #F8E8CE;
}
a {
	text-decoration: none;
}
a:hover {
	text-decoration: none;
}

input[type="submit"],
button, .button, .reply, .submit {
	display: block;
	cursor: pointer;
	margin: 0px;
	padding: 10px 15px;
	font-weight: 400;
	text-transform: uppercase;
	white-space: nowrap;
	background-color: transparent;
	border: 1px solid white;
}
button:disabled {
	cursor: default;
	pointer-events: none;
	opacity: 0.5;
}

input[type="radio"],
input[type="radio"]:before,
input[type="radio"]:after {
  box-sizing: border-box;
}
input[type="radio"] {
	display: grid;
	place-content: center;
 	appearance: none;
	margin: 0px;
 	height: 1em;
 	width: 1em;
 	color: #222;
	border-radius: 50%;
	background-color: black;
}
input[type="radio"]::before {
	content: "";
	width: 0.65em;
	height: 0.65em;
	border-radius: 50%;
	transform: scale(0);
	transition: 120ms transform ease-in-out;
	box-shadow: inset 1em 1em #e2f4fd;
}
input[type="radio"]:checked::before {
	transform: scale(1);
}

input[type="checkbox"],
input[type="checkbox"]:before,
input[type="checkbox"]:after {
  box-sizing: border-box;
}
input[type="checkbox"] {
	display: grid;
	place-content: center;
 	appearance: none;
	margin: 0px;
 	height: 1em;
 	width: 1em;
 	color: #222;
	background-color: black;
	border: 1px solid white;
}
input[type="checkbox"]::before {
	content: "";
	width: 0.65em;
	height: 0.65em;
	transform: scale(0);
	transition: 120ms transform ease-in-out;
	box-shadow: inset 1em 1em #e2f4fd;
}
input[type="checkbox"]:checked::before {
	transform: scale(1);
}

.checkbox-container {
	display: grid;
	grid-template-columns: 1fr min-content;
	grid-gap: 0.5em;
	align-content: center;
  	align-items: center;
	justify-items: right;
	justify-content: right;
}

/*--------------------------------------------------------------
# Layout
--------------------------------------------------------------*/
.site {
	position: relative;
	width: 100%;
}
.site-content {
	width: 100%;
	max-width: 1480px;
	margin: 0 auto;
	overflow: hidden;
	padding: 0px 20px;
}
.site-main {
}
.site-header {
	width: 100%;
}
.standard-header {
	width: 100%;
	padding-top: 20px;
	padding-bottom: 20px;
}
.not-frontpage.site-header {
	position: absolute;
	padding-top: 27px;
  	padding-left: 26px;
}
.top-header {
	width: 100%;
	position: absolute;
}
.not-frontpage .text-logo-path {
	fill: #19181D !important;
}
#logo-header {
	z-index: 9999;
	opacity: 0;
}
.site-image {
	width: 100%;
	
	background-size: cover;
	background-position: center;
}
.site-footer.divider,
.site-header.divider,
.site-main.divider {
	border-top: 1px solid #1d1c1e;
}
.site-footer {
	padding-top: 2em;
	padding-bottom: 2em;
}
.footer-container {
	padding-top: 20px;
	font-size: 0.8em;
}
.footer-links {
	display: grid;
	grid-template-columns: min-content min-content auto;
	grid-gap: 3em;
	white-space: nowrap;
}
.site-footer .footer-copyright {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	justify-items: right;
  	border-left: 1px solid gray;
  	padding-left: 20px;
}
.site-footer .footer-menu {
	text-align: right;
}
.site-footer header {
	font-size: 1.1em;
	font-weight: bold;
	margin-bottom: 1em;
}
.site-footer a {
	color: #c8c8c8;
}
.site-footer .logotype {
	justify-self: left;
}
.site-footer .logotype img {
	height: 2em;
}

/*--------------------------------------------------------------
# Front Page
--------------------------------------------------------------*/
.header-area {
	position: relative;
	padding-top: 170px;
	text-align: left;
}
.header-text {
	width: 43%;
	margin-top: 110px;
	margin-bottom: 0px;
}
.header-area h1 {
	font-size: 3em;
	color: #e2f4fd;
	position: relative;
	font-weight: 100;
}
.header-area p {
	font-size: 1.4em;
	margin-bottom: 0;
}
.mobile-header-image {
	display: none;
}

.site-main.frontpage {
	padding-top: 50px;
}

.benefits {
	font-size: 1.3em;
	letter-spacing: 0.05em;
}

.product-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 1px;
	gap: 1px;
	overflow: hidden;
	padding-bottom: 50px;
}
.product-grid a {
	display: block;
	margin: 0;
	padding: 0;
	width: 100%;
}
.product-container {
	position: relative;
	background-position: center;
	background-size: cover;
	height: 500px;
 	max-height: 100vw;
	color: white;
}
.product-container header {
	display: grid;
	grid-template-columns: auto min-content;
	overflow: hidden;
	white-space: nowrap;
	padding: 1em;
	background-color: #0000004d;
}
.product-container label {
	display: inline;
	font-size: 0.6em;
	text-transform: uppercase;
	opacity: 0.6;
	background-color: black;
	padding: 0.5em;
}

.selling-points {
	margin-top: 60px;
}
.selling-point {
	display: grid;
	height: 700px;
	grid-template-columns: 1fr 1fr;
}
.selling-point .text {
	padding: 36px;
	max-width: 740px;
}
.selling-point .right {
	text-align: right;
}

.center {
	text-align: center;
}

/*--------------------------------------------------------------
# Product Page
--------------------------------------------------------------*/
.product-cover {
	display: grid;
	min-height: 700px;
	grid-template-columns: 1fr 1fr;
	overflow: hidden;
}
.product-cover-image {
	width: 100%;
	background-size: cover;
	background-position: center;
}
.product-info {
	display: grid;
	grid-template-columns: 1fr;
	align-items: start;
	height: 100%;
	max-width: 740px;
	padding: 36px;
}
.product-header {
	display: grid;
	grid-template-columns: auto min-content;
	align-items: center;
  	grid-gap: 20px;
}
.product-actions {
	display: grid;
	grid-template-columns: auto min-content;
	height: 100px;
	align-self: end;
	align-content: end;
}
.product-actions .price {
	align-content: center;
}
.product-actions .price b {
	font-weight: bold;
}
.product-actions .status {
	color: #e2f4fd;
  	white-space: nowrap;
  	font-size: 0.7em;
  	font-weight: normal;
}
.product-actions .status.sold-out {
	color: #fde2e2;
}
.product-images {
	display: flex;
}
.product-image {
	background-position: center;
	background-size: cover;
	width: 100%;
	height: 20vw;
}
.product-image.thumbnail {
	cursor: pointer;
}
.product-image.fullsize {
	height: 100vw;
}

#ordering-form.hidden {
	display: none;
}
#swish-form.hidden {
	display: none;
}

.pen-options {
	margin-bottom: 1px;
}
.pen-option {
	display: grid;
	grid-template-columns: 3em auto min-content;
	grid-gap: 2px;
	align-items: center;
	align-content: center;
	justify-items: center;
	height: 4em;
	background-color: #222;
  	margin-bottom: 1px;
	white-space: nowrap;
}
.pen-option .description {
	justify-self: left;
}
.pen-option tag.missing {
	background-color: black;
  	color: #222;
}
.pen-option .price {
	padding-right: 1em;
	text-align: right;
}
.pen-option .price.sold {
	opacity: 0.5;
}
.pen-option .price b {
	font-weight: bold;
}
.pen-option .status {
	text-align: right;
}

.ordering-form {
	display: grid;
	grid-template-columns: 1fr 2fr;
	grid-gap: 1px;
}

.form-field {
	position: relative;
  	background-color: #222;
}
.form-field label {
	position: absolute;
	top: 2px;
	left: 13px;
	font-size: 0.8em;
	opacity: 0.75;
}
.form-field.address {
	grid-column-end: 3;
  	grid-column-start: 1;
}
.form-field input {
	background-color: #222;
	border: none;
	outline: none;
	margin: 0;
	height: 3em;
	width: 100%;
	text-indent: 12px;
	padding-top: 14px;
}
.form-field input:focus {
	border: none;
	outline: none;
	background-color: rgb(63, 63, 63);
}
.submitted .form-field input:invalid {
	background-color: rgb(66, 0, 0);
}
.submitting .pen-option,
.submitting input[type="submit"],
.submitting .form-field input {
	opacity: 0.5;
	pointer-events: none;
}
.order-total {
	display: grid;
  	grid-template-columns: auto min-content;
  	grid-gap: 0.5em;
	align-items: center;
	align-content: center;
	justify-content: right;
  	justify-items: right;
  	white-space: nowrap;
  	margin-top: 2em;
}
.order-total b {
	font-weight: bold;
}
.order-total .tax {
	font-size: 0.8em;
}
.form-footer {
	display: grid;
	grid-template-columns: auto min-content;
	grid-gap: 0.5em;
	align-items: center;
	justify-content: right;
	margin-top: 1em;
}
.form-footer .loader {
	display: none;
}
.form-footer .error {
	display: none;
	color: #fde2e2;
}
form.submitting .form-footer .loader {
	display: block;
}
form.submitting .form-footer .error {
	display: none;
}
form.error .form-footer .error {
	display: inline;
}

#swish-form {
}
.swish-header {
	display: grid;
	grid-template-columns: auto min-content;
	align-items: center;
  	grid-gap: 10px;
}
#swish-form .error {
	color: #fde2e2;
}

.loader {
  width: 1em;
  height: 1em;
  border: 4px solid #FFF;
  border-radius: 50%;
  display: inline-block;
  box-sizing: border-box;
  position: relative;
  animation: pulse 1s linear infinite;
}
.loader:after {
  content: '';
  position: absolute;
  width: 1em;
  height: 1em;
  border: 4px solid #FFF;
  border-radius: 50%;
  display: inline-block;
  box-sizing: border-box;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  animation: scaleUp 1s linear infinite;
}

@keyframes scaleUp {
  0% { transform: translate(-50%, -50%) scale(0) }
  60% , 100% { transform: translate(-50%, -50%)  scale(1)}
}
@keyframes pulse {
  0% , 60% , 100%{ transform:  scale(1) }
  80% { transform:  scale(1.2)}
}

tag,
span.tag {
	display: inline-block;
	position: relative;
	font-size: 0.6em;
	font-family: monospace;
	white-space: nowrap;
	text-transform: uppercase;
	padding: 0.2em 0.5em;
	border-radius: 3px;
	line-break: strict;
	background-color: #e2f4fd;
  	color: black;
}

a.tag {
	display: inline-block;
	overflow: hidden;
	white-space: nowrap;
	background-color: #1e1b36;
	padding: 2px 8px;
	border-radius: 2px;
	font-size: 16px;
	color: #a2e8b3;
}
.tag + .tag {
	margin-left: 0.25em;
}

@media handheld, only screen and (max-width: 699px) {
	body {
		font-size: 18px;
	}
	.site-main.frontpage {
		padding-top: 20px;
	}
	.header-area h1 {
		font-size: 2em;
	}
	.footer-links {
		grid-template-columns: 1fr;
		align-content: center;
	  	align-items: center;
		grid-gap: 2em;
	}
	.site-footer,
	.site-footer .footer-copy,
	.site-footer .footer-menu,
	.site-footer .footer-social {
		text-align: center;
	}
	.site-footer .footer-social {
		font-size: 26px;
	}
	.site-footer .footer-copyright {
		border: none;
	}

	.benefits {
		font-size: 0.9em;
	}

	.selling-point {
		height: 402px;
	}
	.selling-point h2 {
		font-size: 1.8em;
	}
	.product-grid {
  		grid-template-columns: 1fr;
	}

	.product-cover {
  		grid-template-columns: 1fr;
		height: auto;
	}
	.product-cover-image {
		height: 300px;
	}
	.product-header {
		grid-template-columns: 1fr;
		grid-gap: 0;
	}
	.product-header .product-name {
		order: 2;
	}
	.product-info {
		padding: 20px;
	}

	.ordering-form {
		grid-template-columns: 1fr;
	}
	.form-field.address {
		grid-column-end: auto;
	  	grid-column-start: auto;
	}

	.pen-option .description {
		font-size: 0.8em;
	}
}
