@charset "UTF-8";
/* CSS Document */
html, body {
	margin: 0;
	padding: 0;
	width: 100%;
	min-height: 100%;
	height: 100%;
	font-family: 'Roboto', sans-serif; /* 100, 300, 400, 500, 700 */
	font-weight: 300;
	font-style: normal;
	font-size: 10px;
	line-height: normal;
	color: #222;
	-moz-text-size-adjust: none;
	-ms-text-size-adjust: none;
	-webkit-text-size-adjust: none;
}

/* ==================================== Typography ===================================== */

/* Reset */

h1, h2, h3, h4, h5, h6, p, li, ul, ol, blockquote {
	margin: 0;
	padding: 0;
	font-weight: normal;
	font-style: normal;
	line-height: normal;
}

h1, h2, h3, h4, h5 {
	font-family: 'Montserrat', sans-serif; /* 200, 300, 400, 600 */
	font-weight: 600;
	line-height: 1.3em;
	margin-bottom: .5em;
	color: #222;
}

table, tr, td {
	padding: 0px 0px 0px 0px;
	margin: 0px 0px 0px 0px;
	border: none;
	border: 0;
	border-collapse: collapse;
}

p, ul, ol, table, h5 {
	font-weight: 300;
	font-size: 1.5em;
}

h4 {
	font-size: 1.5em;
}

ul, ol {
	margin-left: 18px;
}

td, th  {
	padding-top: 3px;
	padding-bottom: 3px;
	padding-right: 10px;
}

table th {
	text-align: left;
}

table tr {
	border-bottom: 1px solid #CCC;
}

p, li, blockquote > h3 {
	line-height: 1.6em;
	font-weight: 300;
}

p, ul, ol, table, h5 {
	margin-bottom: 1.6em;
}

.excerpt > p {
	margin-bottom: 0;
}

ul > li > ul, ul > li > ul > li > ul,
ol > li > ol, ol > li > ol > li > ol,
ul > li > ol, ol > li > ul {
	margin-bottom: 0;
}

h5.miniheading {
	text-transform: uppercase;
}

ul > li > ul, ol > li > ol, ol > li > ul, ul > li > ol {
	font-size: 1.5rem;
}

sup, sub {
	vertical-align: baseline;
	position: relative;
	top: -0.4em;
}

sub { 
	top: 0.4em; 
}

.centered-text {
	text-align: center;
}

/*
a {
	text-decoration: none;
	color: #677883;
}
*/

p > a {
	font-weight: 400;
}

.textcontent p > a  {
	text-decoration: none;
	border-bottom: 1px solid #009fe3;
	color: #000;
}

a.withicon {
	padding-left: 22px;
	display: inline-block;
	text-decoration: none;
	color: #000;
}

/*
a.download {
	background: url(https://framgreentechnology.com/images/common/download-icon-micro-pos-adj.svg) no-repeat;
}

a.link {
	background: url(https://framgreentechnology.com/images/common/link-icon-micro-pos-adj.svg) no-repeat;
}
*/

a.map {
	background: url(https://framgreentechnology.com/images/common/googlemap-icon-pos.svg) no-repeat;
}

a.email {
	background: url(https://framgreentechnology.com/images/common/email-icon-pos.svg) no-repeat left center;
}

a.linkedin {
	background: url(https://framgreentechnology.com/images/common/linkedin-icon-pos.svg) no-repeat left center;
}

a.phone {
	background: url(https://framgreentechnology.com/images/common/phone-icon-pos.svg) no-repeat left center;
}

.dark-bg a.email {
	background: url(https://framgreentechnology.com/images/common/email-icon-neg.svg) no-repeat left center;
}

.dark-bg a.linkedin {
	background: url(https://framgreentechnology.com/images/common/linkedin-icon-neg.svg) no-repeat left center;
}

.dark-bg a.map {
	background: url(https://framgreentechnology.com/images/common/googlemap-icon-neg.svg) no-repeat left center;
}

.dark-bg a.phone {
	background: url(https://framgreentechnology.com/images/common/phone-icon-neg.svg) no-repeat left center;
}

p > a.button-ish-link {
	font-size: 1.1rem;
	text-transform: uppercase;
	font-weight: 500;
	border-bottom: none;
	padding: 6px 22px 4px 22px;
	border: 1px solid #333;
	color: #333;
	background: transparent;
	float: left;
	clear: both;
}

/*
p > a.button-ish-link:after {
	content: " ⟶";
}
*/

p > a.button-ish-link:hover {
	color: #FFF;
	background: #333;
}

.dark-bg p > a.button-ish-link {
	border-color: #fff;
	color: #fff;
}

.dark-bg p > a.button-ish-link:hover {
	background: #fff;
	color: #333;
}

blockquote {
	padding-top: 10px;
	margin-top: 20px;
	padding-left: 30px;
	background: url(https://framgreentechnology.com/images/common/fnutts.svg) no-repeat top left;
}

@media screen and (max-width: 460px) {
	h1 {
		font-size: 3.2em;
	}
	h2 {
		font-size: 2.15em;
	}
	h3 {
		font-size: 1.8em;
	}
	.excerpt p, p.excerpt {
		font-size: 1.6em;
	}
	blockquote > p {
		font-size: 1.6em;
	}
}

@media screen and (min-width: 461px) and (max-width: 768px) {
	h1 {
		font-size: 3.4em;
	}
	h2 {
		font-size: 2.2em;
	}
	h3 {
		font-size: 1.9em;
	}
	.excerpt p, p.excerpt {
		font-size: 1.8em;
	}
	blockquote > p {
		font-size: 1.7em;
	}
}

@media screen and (min-width: 769px) and (max-width: 1023px) {
	h1 {
		font-size: 4.4em;
	}
	h2 {
		font-size: 2.8em;
	}
	h3 {
		font-size: 1.9em;
	}
	.excerpt p, p.excerpt {
		font-size: 1.9em;
	}
	blockquote > p {
		font-size: 1.8em;
	}
}

@media screen and (min-width: 1024px) {
	h1 {
		font-size: 4.8em;
	}
	h2 {
		font-size: 3.2em;
	}
	h3 {
		font-size: 2.1em;
	}
	.excerpt p, p.excerpt {
		font-size: 2.2em;
	}
	blockquote > p {
		font-size: 2.2em;
	}
}

/* ===================================== Main blocks ================================== */

article, aside, canvas, figure, figcaption, footer, header, hgroup, #menu, nav, section, address,/* main,*/ img {  
	display: block;
	padding: 0;
	margin: 0;
}

html {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

*, *:before, *:after {
	-webkit-box-sizing: inherit;
 	-moz-box-sizing: inherit;
	box-sizing: inherit;
}

a, a:active, a:focus, img, img a, a img {
	outline: none;
	outline: 0;
}

img, a img {
	border: none;
	border: 0;
}

:focus {
    outline: none !important;
}

main, section, .fullwidth, footer, figure, figcaption, img, .topbanner, .sectiongap {
	float: left;
	width: 100%;
	clear: both;
}

.width-limit {
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
}

.text-width-limit {
	width: 100%;
	max-width: 840px;
	margin: 0 auto;
}

.contactcontainer {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
}

.topbanner {
	height: 55vw;
	min-height: 340px;
	max-height: 600px;
	background-repeat: no-repeat;
	background-size: cover;
/*	position: relative;*/
}

#videobanner {
	position: relative;
	overflow: hidden;
}

.banner__video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  min-width: 100%;
  height: auto;
  min-height: 100%;
  transform: translateX(-50%) translateY(-50%);
  z-index: 0;
}

.topbanner > section {
	position: absolute;
	bottom: 0px;
}

figcaption {
	margin-top: 15px;
}

figcaption > p {
	font-size: 1.2em;
	margin-bottom: 0;
}

figure.roundimage > img {
	float: none;
	width: 80%;
	max-width: 400px;
	margin: 0 auto;
	border-radius: 50%;
}

.flex {
	display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	flex-wrap: wrap;
}

.flex.center {
	justify-content: center;
}

.flex-center {
	align-items: center;
}

.flex-stretch {
	flex-wrap: wrap;
	align-items: stretch;
}

.flex-end {
	flex-wrap: wrap;
	align-items: flex-end;
}

.flex-column {
	flex-direction: column;
}

.flex-row {
	flex-flow: row;
}

.min-h-screen {
	min-height: 100vh;
}

@media screen and (min-width: 769px) {
	.flex.rowreverse {
		flex-direction: row-reverse;
	}
}

/* ============================ TEMP - kan sannsynligvis slettes etterhvert ==================== */

.halfcolumn.planetprofitpeople > img {
	float: none;
	margin: 0px auto;
	max-width: 180px;
}

/* =========================== Colors / backgrounds ============================= */


.lightgrey-bg {
	background: #E8E8E8;
}

.darkest-bg {
	background: #232a34;
}

.darkgreen-bg {
	background: #174732;
}

.grey-green {
	background: #767D7A;
}

.white-bg {
	background: #FFF;
}

.dark-bg, .dark-bg h1, .dark-bg h2, .dark-bg h3, .dark-bg h4, .dark-bg h5, .dark-bg h6, 
.dark-bg p, .dark-bg ul, .dark-bg li, .dark-bg a {
	color: #FFF;
}

/* =============================== Animation =============================== */

button, .button-ish-link, input[type=submit] {
	-webkit-transition: all .4s ease-in-out;
	-moz-transition: all .4s ease-in-out;
	-o-transition: all .4s ease-in-out;
	transition: all .4s ease-in-out;
}

/* ============================= Blocks / columns =============================== */

.quartercolumn, .threequartcolumn, .onethird, .twothirds, .halfcolumn {
	float: left;
}

@media screen and (max-width:768px) {
	.quartercolumn, .threequartcolumn, .onethird, .twothirds, .halfcolumn {
		width: 100%;
		clear: both;
	}
}

@media screen and (min-width: 769px) {
	.quartercolumn {
		width: 25%;
	}
	.halfcolumn {
		width: 50%;
	}
	.onethird {
		width: 33.33%;
	}
	.twothirds {
		width: 66.67%;
	}
}

@media screen and (max-width: 500px) {
	.oneof4, .twoof4 {
		width: 100%;
		clear: both;
	}
}

@media screen and (min-width: 501px) and (max-width: 900px) {
	.oneof4 {
		width: 50%;
	}
	.twoof4 {
		width: 100%;
		clear: both;
	}
}

@media screen and (min-width: 901px) {
	.oneof4 {
		width: 25%;
	}
	.twoof4 {
		width: 50%;
	}
}

/* ============================ Paddings / margins ============================ */


@media screen and (max-width: 500px) {
	.halfpadding {
		padding-left: 10px;
		padding-right: 10px;
	}
	.fullpadding {
		padding-left: 20px;
		padding-right: 20px;
	}
	.halfpaddingaround {
		padding: 10px 10px 10px 10px;
	}
	.fullpaddingaround {
		padding: 20px 20px 20px 20px;
	}
	section, .sectionpadding {
		padding-top: 40px;
		padding-bottom: 40px;
	}
	.listingwrapper {
		padding-left: 10px;
		padding-right: 10px;
	}
	.listingitem {
			padding: 10px;
	}
	.fullbottommargin {
		margin-bottom: 30px;
	}
	.sectiongap {
		height: 20px;
	}
}

@media screen and (min-width: 501px) and (max-width: 768px) {
	.halfpadding {
		padding-left: 15px;
		padding-right: 15px;
	}
	.fullpadding {
		padding-left: 30px;
		padding-right: 30px;
	}
	.halfpaddingaround {
		padding: 15px 15px 15px 15px;
	}
	.fullpaddingaround {
		padding: 30px 30px 30px 30px;
	}
	section, .sectionpadding {
		padding-top: 40px;
		padding-bottom: 40px;
	}
	.listingwrapper {
		padding-left: 20px;
		padding-right: 20px;
	}
	.listingitem {
			padding: 10px;
	}
	.fullbottommargin {
		margin-bottom: 30px;
	}
	.sectiongap {
		height: 30px;
	}
}

@media screen and (min-width: 769px) and (max-width: 1000px) {
	.halfpadding {
		padding-left: 20px;
		padding-right: 20px;
	}
	.fullpadding {
		padding-left: 40px;
		padding-right: 40px;
	}
	.halfpaddingaround {
		padding: 20px 20px 20px 20px;
	}
	.fullpaddingaround {
		padding: 40px 40px 40px 40px;
	}
	section, .sectionpadding {
		padding-top: 40px;
		padding-bottom: 40px;
	}
	.listingwrapper {
		padding-left: 30px;
		padding-right: 30px;
	}
	.listingitem {
			padding: 10px;
	}
	.fullbottommargin {
		margin-bottom: 60px;
	}
	.sectiongap {
		height: 40px;
	}
}

@media screen and (min-width: 1001px) {
	.halfpadding {
		padding-left: 30px;
		padding-right: 30px;
	}
	.fullpadding {
		padding-left: 60px;
		padding-right: 60px;
	}
	.halfpaddingaround {
		padding: 30px 30px 30px 30px;
	}
	.fullpaddingaround {
		padding: 60px 60px 60px 60px;
	}
	section, .sectionpadding {
		padding-top: 60px;
		padding-bottom: 60px;
	}
	.listingwrapper {
		padding-left: 50px;
		padding-right: 50px;
	}
	.listingitem {
			padding: 10px;
	}
	.fullbottommargin {
		margin-bottom: 80px;
	}
	.sectiongap {
		height: 60px;
	}
}


/* =============================== Header ============================= */

header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 4;
	width: 100%;
	height: 60px;
	background: #FFF;
}

.logocontainer {
	float: left;
	clear: none;
}

a.logo {
	display: block;
	background: url(https://framgreentechnology.com/images/common/fgt_logo.svg) no-repeat left center;
	background-size: contain;
}

#largescreenmenu {
	display: inline-block;
	float: right;
}

#largescreenmenu ul, #largescreenmenu li {
	list-style: none;
}

#largescreenmenu ul {
	float: right;
}

#largescreenmenu li {
	float: left;
	margin-left: 26px;
}

.dark-bg #largescreenmenu li > a {
	color: #FFF;
	text-transform: uppercase;
	font-size: 1.4rem;
	text-decoration: none;
}

/*
.frontpage #largescreenmenu li > a, .infopage #largescreenmenu li > a {
	color: #fff;
}
*/

#largescreenmenu li:hover > a, #largescreenmenu li.here > a, #largescreenmenu li.parent-here > a,
#navigation li:hover > a, #navigation li.here > a, #navigation li.parent-here > a {
	color: #dfcd00;
}

#largescreenmenu li.here > a, #largescreenmenu li.parent-here > a {
	font-weight: 700;
}

#navtriggerwrapper {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 5;
	width: auto;
}

#nav-icon3 {
  width: 30px;
  height: 30px;
  margin: 15px;
  position: relative;
  float: right;
  clear: none;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  cursor: pointer;
}

#nav-icon3 span {
  display: block;
  position: absolute;
  height: 2px;
background: #fff;
  border-radius: 1px;
  opacity: 1;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .25s ease-in-out;
  -moz-transition: .25s ease-in-out;
  -o-transition: .25s ease-in-out;
  transition: .25s ease-in-out;
}

#nav-icon3:hover span {
	background: #dfcd00;
}
#nav-icon3 span:nth-child(1) {
  top: 6px;
}

#nav-icon3 span:nth-child(2), #nav-icon3 span:nth-child(3) {
  top: 14px;
}

#nav-icon3 span:nth-child(4) {
  top: 22px;
}

#nav-icon3:not(.open) span:nth-child(1) {
	left: 0px;
	width: 30px;
}

#nav-icon3:not(.open) span:nth-child(2), #nav-icon3:not(.open) span:nth-child(3) {
/*	left: 10px;
	width: 20px;*/
	left: 0px;
	width: 30px;
}

#nav-icon3:not(.open):hover span:nth-child(2), #nav-icon3:not(.open):hover span:nth-child(3) {
/*	left: 10px;
	width: 20px;*/
	left: 0px;
	width: 30px;
}

#nav-icon3:not(.open) span:nth-child(4) {
/*	left: 10px;
	width: 20px;*/
	left: 0px;
	width: 30px;
}

#nav-icon3:not(.open):hover span:nth-child(4) {
/*	left: 10px;
	width: 10px;*/
	left: 0px;
	width: 30px;
}

#nav-icon3.open span, #nav-icon3:not(.open):hover span {
	left: 0px;
	width: 100%;
}

#nav-icon3:not(.open):hover span {
	left: 0px;
}

#nav-icon3.open span:nth-child(1), #nav-icon3.open span:nth-child(4) {
	top: 14px;
	opacity: 0;
}

#nav-icon3.open span:nth-child(2) {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
}

#nav-icon3.open span:nth-child(3) {
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

@media screen and (max-width: 900px) {
	#largescreenmenu {
		display: none;
	}
	#navtriggerwrapper, menu {
		display: block;
	}
	main {
		padding-top: 50px;
	}
	a.logo {
		width: 200px;
		height: 50px;
	}
}

@media screen and (min-width: 901px) {
	#largescreenmenu {
		display: block;
	}
	#navtriggerwrapper, menu {
		display: none !important;
	}
	#largescreenmenu li > a {
		line-height: 60px;
	}
	main {
		padding-top: 60px;
	}
	a.logo {
		width: 220px;
		height: 60px;
	}
}

/* ================================= Navigation ================================= */

menu {
	position: fixed;
	top: 0;
	right: -300px;
	height: 100%;
	margin: 0;
	padding: 100px 0 0 0;
	width: 300px;
	z-index: 2;
}

#navigation {
	width: 300px;
	padding-left: 40px;
	padding-right: 40px;
	float: left;
}

#navigation ul, #navigation li {
	list-style: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

#navigation a {
	Text-decoration: none;
}

#navigation li a {
	padding: 15px 0;
	font-weight: 300;
	font-size: 1.4em;
	display: block;
	line-height: 1.1em;
}

#navigation li.here a {
	font-weight: 700;
}

nav {
	float:left;
	clear: none;
	height: 100%;
	width: 300px;
	margin: 0;
	padding: 0;
	overflow: hidden;
}

#nav-inner {
	width: 340px;
	height: 100%;
	overflow-x: hidden;
	overflow-y: scroll;
}

#nav-inner::-webkit-scrollbar { 
    display: none; 
}


/* ============================ Content sections ========================== */

@media screen and (min-width: 769px) {
	.banner > .bannertext > .inner {
		max-width: 700px;
	}
	.banner.rowreverse > .bannertext > .inner {
		float: right;
		margin-left: auto;
	}
}

@media screen and (max-width:768px) {
	.halfcolumn.bannerimage {
		width: 100%;
		float: left;
		clear: both;
		min-height: 54vw;
	}
}

/* === Overlap === */

/*
.entryimage {
	background-repeat: no-repeat;
    background-position: center center;
	background-size: cover;
}
*/

.textandimage > .entrytext > .inner {
	background: #E8E8E8;
}

.lightgrey-bg .textandimage > .entrytext > .inner {
	background: #FFF;
}

@media screen and (max-width:768px) {
	.entrytext {
		width: 100%;
	}
	.entryimage {
		width: 100%;
		float: left;
		clear: both;
		min-height: 54vw;
	}
}

@media screen and (min-width:769px) {
	.textandimage {
		position: relative;
		margin-top: 30px;
		margin-bottom: 30px;
	}
	.entrycontainer {
		padding-top: 30px;
		padding-bottom: 30px;	
	}
	.entrytext {
		width: 55%;
		z-index: 1;
	}
	.textandimage > .entrytext {
		margin-left: 45%;
		margin-top: 20px;
		margin-bottom: 20px;
	}
	.textandimage.rowreverse > .entrytext {
		margin-left: 0%;
		margin-right: 45%;
	}
	.textandimage > .entryimage {
		position: absolute;
		top: 0;
		bottom: 0;
		width: 45%;
		clear: none;
		z-index: 0;
	}
}

@media screen and (min-width: 769px) and (max-width:1000px) {
	.textandimage {
		padding-left: 40px;
		padding-right: 40px;
	}
}

@media screen and (min-width: 1001px) {
	.textandimage {
		padding-left: 60px;
		padding-right: 60px;
	}
}

/* ============================== Contacts ============================== */

.contacttile {
	width: 300px;
	text-align: center;
}

.contacttile > figure {
	margin-bottom: 20px;
}

.contacttile > figure > img {
	border-radius: 50%;
	float: none;
	width: 160px;
	margin: 0 auto;
}

.contacttile a {
	color: #000;
	text-decoration: none;
}

/* === CV === */

@media screen and (min-width:769px) {
	.cv-excerpt {
		z-index: 0;
		margin-top: -60px;
	}
	.cv-portrait {
		z-index: 1;
	}
}

/* =========================== Reference projects  ============================= */

.ref-wrapper {
	margin-bottom: 40px;
}

@media screen and (max-width: 400px) {
	.ref-wrapper {
		width: 100%;
		clear: both;
	}
}

@media screen and (min-width: 401px) and (max-width: 767px) {
	.ref-wrapper {
		width: 50%;
	}
}

@media screen and (min-width: 768px) {
	.ref-wrapper {
		width: 33.33%;
	}
}

.ref-wrapper .inner {
	border-bottom: 1px solid #222;
	padding-bottom: 10px;
/*	flex-grow: 1;*/
height: 100%;
}

.ref-wrapper .description {
	flex-grow: 1;
}

/* ================================ Footer ================================ */

.footerlogo > img {
	width: 140px;
}

@media screen and (min-width: 769px) {
	footer .address {
		text-align: right;
	}
}

/*
footer a.email {
	background: url(https://framgreentechnology.com/images/common/email-icon-neg.svg) no-repeat left center;
}
*/

/* ============================= Input, buttons ============================== */

input[type=submit], a.button-ish-link {
	font-weight: 500;
	font-size: 1.1em;
	float: left;
	border-radius: 0;
	padding: 10px 20px 9px 26px;
	background: transparent;
	color: #333;
	border: 1px solid #333;
}

input[type=submit]:hover, a.button-ish-link:hover {
	background: #333;
	color: #FFF;
	border: 1px solid #333;
}

a.button-ish-link {
	text-decoration: none;
}

/* ================================= Consent ================================= */

#consent {
	width: 100%;
	position: fixed;
	left: 0;
	bottom: 0;
	z-index: 4;
	padding-top: 15px;
	padding-bottom: 15px;
}

#consent p {
	font-size: 1.2em;
	float: left;
	line-height: 1.4em;
	padding: 5px 20px 5px 0;
	margin-bottom: 5px;
}

#consent a.button-ish-link {
	background: #0f1a2d;
	color: #FFF;
	border-color: #FFF;
}

#consent a.button-ish-link:hover {
	background: #FFF;
	color: #0f1a2d;
}

/* ========================= Checkbox / radio button styling ========================= */

.fancyinput {
    -ms-user-select: none;
    position: relative;
	margin-bottom: 10px;
}
.fancyinput label {
	cursor: default !important;
}
.fancyinput label.blockify {
	display: block;
}
.fancyinput input[type=checkbox], .fancyinput input[type=radio] {
	cursor: pointer;
	width: auto;
	height: auto;
	padding: 0;
	margin: 3px 0;
}

.fancyinput [type=checkbox]:checked+label, .fancyinput [type=checkbox]:not(:checked)+label,
.fancyinput [type=radio]:checked+label, .fancyinput [type=radio]:not(:checked)+label {
    position: relative;
    cursor: pointer;
}

.fancyinput [type=checkbox]:checked+label, .fancyinput [type=checkbox]:not(:checked)+label {
	padding-left: 24px;
}

.fancyinput [type=radio]:checked+label, .fancyinput [type=radio]:not(:checked)+label {
    padding-left: 30px;
}

.fancyinput [type=checkbox]:checked, .fancyinput [type=checkbox]:not(:checked),
.fancyinput [type=radio]:checked, .fancyinput [type=radio]:not(:checked) {
    position: absolute;
    opacity: 0;
}

.fancyinput [type=checkbox]:checked+label:before, .fancyinput [type=checkbox]:not(:checked)+label:before,
.fancyinput [type=radio]:checked+label:before, .fancyinput [type=radio]:not(:checked)+label:before {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    border: 1px solid #333;
    background: #FFF;
}

.dark-bg .fancyinput [type=checkbox]:checked+label:before, .dark-bg .fancyinput [type=checkbox]:not(:checked)+label:before,
.dark-bg .fancyinput [type=radio]:checked+label:before, .dark-bg .fancyinput [type=radio]:not(:checked)+label:before {
    border-color: #FFF;
    background: rgba(255,255,255,.1);
}

.fancyinput [type=radio]:checked+label:before, .fancyinput [type=radio]:not(:checked)+label:before {
    left: 8px;
}

.fancyinput [type=checkbox]:checked+label:before, .fancyinput [type=checkbox]:not(:checked)+label:before  {
	left: 0px;
}

.fancyinput [type=radio]:checked+label:before, .fancyinput [type=radio]:not(:checked)+label:before {
	border-radius: 50%;
}

.fancyinput [type=checkbox]:focus+label:before, .fancyinput [type=checkbox]:checked+label:before,
.fancyinput [type=radio]:focus+label:before, .fancyinput [type=radio]:checked+label:before {
    border-color: #333;
}

.fancyinput [type=checkbox]:checked+label:after {
    content: '';
    display: block;
    position: absolute;
    background: url(https://framgreentechnology.com/images/common/checkbox-check-pos.svg);
    background-size: contain;
    background-repeat: no-repeat;
/*	border-color: #003E7E;*/
    height: 12px;
    width: 12px;
    top: 2px;
    left: 2px;
}

.dark-bg .fancyinput [type=checkbox]:checked+label:after {
    background: url(https://framgreentechnology.com/images/common/checkbox-check-neg.svg) no-repeat center center;
	background-size: contain;
}

.dark-bg .fancyinput [type=checkbox]:disabled+label:before {
    border-color: #AAA;
}

.dark-bg .fancyinput [type=checkbox]:checked:disabled+label:after {
    background: url(https://framgreentechnology.com/images/common/checkbox-check-neg-disabled.svg) no-repeat center center;
	background-size: contain;
}

.fancyinput [type=radio]:checked+label:after {
    content: '';
    display: block;
    position: absolute;
    background: url(https://framgreentechnology.com/images/common/radio-check-pos.svg);
    background-size: contain;
    background-repeat: no-repeat;
	border-color: #333;
    height: 10px;
    width: 10px;
    top: 3px;
    left: 11px;
}

.fancyinput [type=radio]:disabled+label:before {
    border-color: #999;
}

.fancyinput [type=radio]:checked:disabled+label:after {
    background: url(https://framgreentechnology.com/images/common/radio-check-pos-disabled.svg) no-repeat center center;
	background-size: contain;
}

.fancyinput label.blockify {
    display: block;
	float: left;
	font-size: 1.2rem;
	font-weight: 400;
	line-height: 16px;
}

.fancyinput-label {
    width: 100%;
	clear: both;
}

/* ================================== Google map ============================== */

#map {
	position: relative;
/*	display:none;*/
	float: left;
	clear: both;
	overflow: hidden;
}

div#map-canvas {
	display: block;
}

@media screen and (max-width: 400px) {
	#map, #map-canvas {
		height: 200px;
	}
}

@media screen and (min-width: 401px) and (max-width: 600px) {
	#map, #map-canvas {
		height: 300px;
	}
}

@media screen and (min-width: 601px) and (max-width: 800px) {
	#map, #map-canvas {
		height: 400px;
	}
}

@media screen and (min-width: 801px) and (max-width: 1000px) {
	#map, #map-canvas {
		height: 500px;
	}
}

@media screen and (min-width: 1001px) {
	#map, #map-canvas {
		height: 600px;
	}
}

/*
#map #resetbutton {
  position: absolute;
  top: 0px;
  right: 0px;
  padding: 0;
  margin: 0;
  background-color: #660000;
  background-attachment: absolute;
  background-repeat: no-repeat;
  background-position: center center;
  background-image: url(https://framgreentechnology.com/images/common/map-reset.svg);
  cursor: pointer;
  z-index: 2;
}

@media screen and (max-width: 600px) {
	#map #resetbutton {
		width: 50px;
		height: 50px;
	}
}

@media screen and (min-width: 601px) {
  #map #resetbutton {
	  width: 60px;
	  height: 60px;
  }
}
*/