:root {
	--base-font-family:'Sligoil Micro';
	--base-font-size:50px;
	--base-line-height:30px;
	--base-font-color:#333;
	
	--color1:rgba(185,206,172,1); /* gruen */
	--color2:rgba(239,233,203,1); /* beige */
	--color3:rgba(252,205,129,1); /* orange */
	--color4:rgba(181,172,213,1); /* lila */
	
	--roller-dot-scale:5;
}

@font-face {
	font-family: 'Sligoil Micro';
	src: url("fonts/Sligoil-Micro.otf") format("opentype");
	font-weight: normal;
}

@font-face {
	font-family: 'Sprat Regular Light';
	src: url("fonts/Sprat-Regularlight.otf") format("opentype");
	font-weight: normal;
}

html, body {
	width: 100vw;
    	
	background: #fff;
	color: var(--base-font-color);
	font-family: var(--base-font-family);
	font-size: var(--base-font-size);
	line-height: var(--base-line-height);
}

*, *::before, *::after {
	-webkit-box-sizing: border-box;
	 box-sizing: border-box;
}

body {
	height:auto; min-height: 100vh;
	position:relative;
	margin: 0;
	padding: 0;
	overflow: hidden;
}

body.color1,
body.color1 .seperator,
body.color1 .info,
body.color1.type-result .qr-wrapper {
	background-color:var(--color3);
}

body.color2,
body.color2 .seperator,
body.color2 .info,
body.color2.type-result .qr-wrapper {
	background-color:var(--color2);
}

body.color3,
body.color3 .seperator,
body.color3 .info,
body.color3.type-result .qr-wrapper,
body.color4.type-result .qr-wrapper{
	background-color:var(--color3);
}

body.color4,
body.color4 .seperator,
body.color4 .info {
	background-color:var(--color4);
}

h1 {
	font-size:1rem;
	line-height:1.4rem;
}

h2 {
	font-size:.8rem;
	line-height:1.2rem;
}

p {
	font-size:.7rem;
}

.hidden {
    display: none;
}

.grid {
	display:grid;
}

.lang-de .en,
.lang-en .de {
    display: none;
}

.button {
    background: #000000;
    color: #ffffff;
    display: inline-block;
    padding:0.8em 1em;
    font-size: 1rem;
    letter-spacing: 1px;
    min-width: 160px;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    border: 2px solid currentColor;
    cursor: pointer;
}

.button.age.de {
	width:auto;
	min-width:414px;
}

.close {
	position:fixed;
	top:50px; right:50px;
	z-index:3;
}

.close a {
	color:var(--base-font-color);
	text-decoration:none;
}

.page-wrap.grid {
    height:100vh;
	display:block;
	position:relative;
}

body.intro {
}

body.intro .page-wrap.grid {
	display:block;
	position:relative;
}

body.intro .page-wrap.grid header {
	position:absolute;
	bottom:0;
	z-index:100;
}

body.intro .page-wrap.grid main {
	height:100vh;
}

main {
	position:relative;
	z-index:1;
}

header {
	position:absolute;
	left:0; bottom:0;
	display:grid;
	width: 100vw; height: 140px;
	padding: 70px 0.5em 0.5em;
	grid-template-columns: repeat(3, 1fr); /* own grid template */
	grid-row-start: 2; /* own grid-position */
    grid-row-end: 3; /* own grid-position */
	
	background-color: transparent;
	background-repeat:repeat;
	background-position:top, -10px 0;
	background-size:25%;	
	background-image:url(../img/animation/shape9.png), url(../img/animation/shape1-shadow.png); 
	
	z-index:100;
}

header h1 {
	margin: 0;
	font-size: .8rem !important;
	font-weight: 700;
	letter-spacing: .1px;
	line-height:1rem;
	text-transform: uppercase;
	text-align:center;
	color:var(--base-font-color);
}

header h1 span:not(.dot) {
}


header img {
    display: inline-block;
	justify-self: start;
    margin-top: -10px;
}

.intro .seperator.reaction, 
.age .seperator.reaction, 
.intro .close {
	display: none;
}

.seperator {
	opacity:0;
	position:absolute;
	display: block;
	width: 100vw; height: 100vh;
	-webkit-animation: anim2FadeOut 2.5s ease forwards, scaling .1s linear 2.5s forwards;
	animation:  anim2FadeOut 2.5s ease 0 forwards, scaling .1s linear 2.5s forwards;
	z-index: 2;
}

.introAnimInner,
.choose-lang-inner{
    position: absolute;
    top: 30%;
    width: 100%;
    z-index: 2;
}

.intro main {
	width: 100vw;
	text-align: center;
	overflow: hidden;

    grid-row-start: 1;
    grid-row-end: 2;
}

.intro .introAnim {
    position: relative;
    width: 100%;
    height: 100%;
}

.intro .introAnim .introAnimInner,
.choose-lang-inner,
.age main {
	display:grid;
	grid-template-columns:60% 40%;
	grid-template-rows:1fr;
}

.text-wrapper {
	grid-row-start: 1;
	grid-column-start:1;
	grid-column-end:2;
	padding-right:25px;
	padding-left:200px;
	text-align:right;
}

.text-wrapper h1 {
	margin:0;
}

.text-wrapper h2 {
	margin-top:15px;
}

.button-wrapper {
	grid-row-start: 1;
	grid-column-start:2;
	grid-column-end:3;
	padding-left:25px;
	text-align:left;
}

.button-wrapper h2 {
	margin-top:0;
}

.intro .introAnim .introAnimInner h1,
.intro .introAnim .introAnimInner h2 {
	text-align:right;
	/*text-shadow: -5px -5px 0 #fff, 5px -5px 0 #fff, -5px 5px 0 #fff, 5px 5px 0 #fff;*/
}

.intro .introAnim .introAnimInner h1 i,
.intro .introAnim .introAnimInner h2 i {
	font-style:normal;
}

.intro .introAnim .introAnimInner h1 {
    font-size: 1.4rem;
    line-height:2rem;
}

.intro .introAnim .introAnimInner h2 {
    font-size: 1rem;
    line-height: 1.3rem;
}

.intro .introAnim .introAnimInner h2 span + span {
    display:block;
	margin-top:20px;
}

.intro .introAnim .introAnimInner .txt-en {
    font-size: 0.8rem;
    line-height: 1.1rem;
}

.intro .introAnim .introAnimInner .button-wrapper {
    position:relative;
}

.intro .introAnim .introAnimInner .button-wrapper .intro-btn {
    position:absolute;
	bottom:49px;
}

@keyframes shake {
	0% { transform:translate(0,0) }
	1.78571% { transform:translate(5px,0) }
	3.57143% { transform:translate(0,0) }
	5.35714% { transform:translate(5px,0) }
	7.14286% { transform:translate(0,0) }
	8.92857% { transform:translate(5px,0) }
	10.71429% { transform:translate(0,0) }
	100% { transform:translate(0,0) }
}

.intro .introAnim .introAnimInner .button {
	-webkit-animation: shake 4.72s ease infinite;
	animation: shake 4.72s ease infinite;
}

.intro .introAnim .shapes {
    position: absolute;
    width: 100%;
    height: calc(100vh - 70px);
    background-color: #fff;
    overflow: hidden;
    z-index: 1;
}

	.intro .introAnim .shapes video {
		width:100%;
		height:100%;
	}

.choose-lang-inner div div {
	margin-top:-15px;
}

.choose-lang-inner .button-wrapper {
	position:relative;
	top:32px;
}

.choose-lang-inner  .button-wrapper div+ div {
	margin-top:30px;
}

.choose-lang-inner div div,
.age-switch div div {
	margin-bottom:30px;
}

.age main {
	padding-top:10%;
}

.age .intro,
.age .age-switch {
	line-height:1rem;
}

.age .age-switch.button-wrapper {
	position:relative;
	top:175px;
}

.age .intro p {
	padding-left:100px;
}

.question .progress {
	/*font-size:.4rem;*/
}

.progressWrap {
	display:none;
}

.question main {
	opacity:0;
	display:block;
	height: calc(100vh - 70px);
	padding:160px 15px 60px 15px;
	overflow:hidden;
	-webkit-animation: anim2FadeIn .5s ease 1.5s forwards;
	animation: anim2FadeIn .5s ease 1.5s forwards;
}

.question .questionaire {
	display:grid;
	grid-template-columns:1fr 1fr;
	grid-template-rows:1fr;
}

.question .questionaire p#question {
	margin:0;
	padding:0 60px 30px 0;
	font-size:.8rem;
	line-height:1.2rem;
	text-align:right;
}

.question .questionaire .question-wrap h1 {
	margin-top:0;
	margin-bottom:10px;
	padding-right:60px;
	text-align:right;
}

.question .questionaire .question-wrap h1 * {
	font-style:normal;
}

.question .questionaire .answer-wrap {
	margin:0;
	margin-top:39px;
	text-align:left;
	
}

.question .questionaire .answer-wrap h3 {
	margin:0;
	font-size:.6rem;
	line-height:1rem;
	font-weight:normal;
}

.question .questionaire .answer-wrap .button {
	position:relative;
	padding:.6em .6em .6em 45px;
	font-size:.5rem;
	line-height:.85rem;
	text-align:left;
	text-transform:none;
}

.question .questionaire .answer-wrap .button + .button {
	margin-top:15px;
}

.question .questionaire .answer-wrap .button:before {
	content:"X";
	display:block;
	width:80px; height:80px; line-height:80px;
	position:absolute;
	left:-41px; top:-12px; bottom:auto;

	color:var(--base-font-color);
	text-align:center;
	font-weight:bold;
	font-size:32px;

	background-image:url(../img/question-count-bg-orange.png);
	background-repeat:space;
	background-position:center;
	background-size:95%;
	background-color:transparent;
}


.question .questionaire .answer-wrap .button:nth-child(1):before {
	content:"1";
}

.question .questionaire .answer-wrap .button:nth-child(2):before {
	content:"2";
}

.question .questionaire .answer-wrap .button:nth-child(3):before {
	content:"3";
}

.color1 #answers .button:before,
.color3 #answers .button:before {
	background-image:url(../img/question-count-bg-green.png) !important;
}

.question .questionaire .answer-wrap .answer {
	font-size:.5rem;
	line-height:.9rem;
	text-align:left;
}


.type-result {
	display:grid;
	height:100vh;
	grid-template-columns:40% 60%;
	grid-template-rows:1fr 100px;
	background-color:var(--color4) !important;
}
.type-result .shapes {
	position:absolute;
	top:0; right:0; bottom:0; left:0;
}
.type-result .qr-wrapper {
	grid-column-start:1;
	grid-column-end:2;
	grid-row-start:1;
	grid-row-end:3;
	position:relative;
}
.type-result .scroll-wrapper {
	grid-column-start:2;
	grid-column-end:3;
	grid-row-start:1;
	grid-row-end:2;
	overflow-y:auto;
	padding:60px 60px 60px 60px;
	font-size:.5rem;
	line-height:.9rem;
	position:relative;
	z-index:2;
	box-shadow: -5px 0px 5px 1px rgba(0,0,0,.2);
	background-color:var(--color4);
}
.type-result .seperator {
	display:none;
}

.type-result .qr-code {
	position:absolute;
	top:205px; left:170px;
	width:400px;
	transform: rotate(-3deg);
	z-index:2;
}

.type-result .qr-code img {
	width:100%;
}


.type-result .qr-code h4 {
	font-size:.55rem;
	line-height:.7rem;
	margin:0;
	text-align:center;
}

.type-result .qr-code p {
	font-size:.45rem;
	line-height:.5rem;
	margin:0;
	margin-top:10px;
	text-align:justify;
}


.type-result h1 {
	font-size:1.4rem;
}

.type-result h2 {
	margin-bottom:10px;
	font-size:1rem;
}

.type-result h3 {
	margin-top:10px;
	margin-bottom:10px;
	font-size:.8rem;
	/*font-style:italic;*/
}

.type-result p {
	font-size:.5rem;
	margin-top:0;
}

.type-result .profile ul {
	margin-left:0;
	list-style-type:none;
}

/*
.type-result .profile + .profile:before {
	content:"";
	display:block;
	width:240px;
	height:40px;
	margin:60px auto;
	background-repeat:space;
	background-position:center;
	background-size:auto 40px;
}

.color1.type-result .profile + .profile:before {
	background-image:url(../img/shape2.svg);
}

.color2.type-result .profile + .profile:before {
	background-image:url(../img/shape1.svg);
}

.color3.type-result .profile + .profile:before {
	background-image:url(../img/shape4.svg);
}

.color4.type-result .profile + .profile:before {
	background-image:url(../img/shape3.svg);
}
*/

.info {
	position:absolute;
	width:100vw; height:100vh;
	z-index:4;
}

.close-info-wrapper {
	position: absolute;
	top: 50px;
	right: 50px;
}

.close-info {
	color: var(--base-font-color);
	text-decoration: none;
}

.info .text-wrapper {
	padding-left:35px;
	padding-right:35px;
}

.info .text-wrapper + .text-wrapper {
	grid-row-start: 1;
	grid-column-start:2;
	grid-column-end:3;
	padding-left:35px;
	padding-right:35px;
	text-align:left;
}

.info p {
	font-size:.7rem;
	line-height:1rem;
}

.info-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr;
	padding-top:100px;
}

.info-btn-wrapper {
	position:absolute;
	top:58px; right:61px;
}

.info-btn svg {
	width:50px; height:50px;
}

.slider-trigger {
	cursor:pointer;
}

.slider-trigger.button {
	padding:.3rem .5rem;
	font-size:.5rem;
}

.slider-trigger .more {
	display:block;
}

.slider-trigger .less {
	display:none;
}

.slider-trigger.active .more {
	display:none;
}

.slider-trigger.active .less {
	display:block;
}

.slider {
	height:0;
	overflow:hidden;
	transition:height 2s ease-in-out;
}

.slider.unfolded {
	height:auto;
}





