@font-face {
    font-family: 'Asap';
    src: url('fonts/Asap-Medium.woff2') format('woff2'),
        url('fonts/Asap-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: 'Asap';
    src: url('fonts/Asap-Bold.woff2') format('woff2'),
        url('fonts/Asap-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
}


@font-face {
    font-family: 'Asap';
    src: url('fonts/Asap-MediumItalic.woff2') format('woff2'),
        url('fonts/Asap-MediumItalic.woff') format('woff');
    font-weight: 500;
    font-style: italic;
}

:root {
	--blue: rgba(46,69,82,1);
	--white: #F2F2F2;
	--yellow: rgba(222,221,28,1);
	--transYellow: rgba(222,221,28,0.85);
}

*, *::before, *::after {box-sizing: border-box;}

html, body {padding: 0; margin: 0; overflow-x: hidden;}

#loader {position: fixed; z-index: 999; top: 0; left: 0; background-color: var(--white); display: flex; flex-flow: row nowrap; align-items: center; justify-content: center;width: 100%; height: 100vh;transition: 0.5s ease-out; transition-delay: 1s; pointer-events: none;}
#loader > * {max-width: 750px;transition: 0.5s ease-out; transition-delay: 0.75s; height: 100%;}

section:not(#slider) > *, footer > *, .breakOut > * {
	transform: translateX(-25vw); 
	opacity: 0;
	transition: 0.5s ease-out;
}

section:not(#slider) > *:nth-child(2n), footer > *:nth-child(2n), .breakOut > *:nth-child(2n), .breakOut > *:nth-child(3n) {
	transform: translateX(25vw); 
	transition-delay: 0.1s;
}

section:not(#slider) > *:nth-child(3n), footer > *:nth-child(3n), .breakOut > *:nth-child(3n) {transition-delay: 0.2s;}

*.animateOn {backface-visibility: hidden; transform-style: preserve-3d;}

section:not(#slider) > *.animateOn, footer > *.animateOn, .breakOut > *.animateOn {transform: translateX(0); opacity: 1;}

img {width: 100%; max-width: 100%; min-width: 0; max-height: 100vh;}

h1,h2,h3,h4,h5,h6,p, div,a {font-family:'Asap', Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif"; line-height: 1.2;}

h1,h2,h3,h4,h5 {font-weight: bold;}

h6,p,ul,li,div,* {font-weight: 500;}

ul, li { font-style: italic;}

span {font-weight: inherit !important; font-style: inherit !important;}

p span {text-transform: lowercase !important;}

a {text-decoration: none; color: inherit;}


.yellow {
	background-color: var(--yellow);
	color: var(--blue);
}

.white {
	background-color: var(--white);
	color: var(--blue);
}

.blue {
	background-color: var(--blue);
	color: var(--white);
}

.phoneBox.blue {color: var(--yellow);}

a.yellow, a.white, a.blue {
	transition: 0.25s ease;
	border: 1px solid transparent;
}

a.yellow:hover {
	background-color: var(--white);
	color: var(--blue);
	/*border: 1px solid var(--yellow);*/
}
a.white:hover {
	background-color: var(--yellow);
	/*color: var(--white);*/
	/*border: 1px solid var(--white);*/
}

a.blue:hover {
	background-color: var(--white);
	/*color: var(--blue);*/
	/*border: 1px solid var(--blue);*/
}

form {display: flex; flex-flow: row wrap;font-size: 1.5em;}

form > * {flex: 1 1 45%;}

input, select {
	background-color: transparent;
	border: 2px solid var(--white);
	color: var(--white);
	padding: 1em;
	width: 50%;
	margin: 0.75rem;
	font-size: 0.75em;
	border-radius: 100px;
}

input.prefill {background-color: var(--white); color: var(--blue) !important;}

::placeholder {color: var(--white);}

input.prefill::placeholder {color: var(--blue) !important;}

option {color: var(--blue);}

input[type="submit"] {
	background-color: var(--yellow);
	color: var(--blue);
	border: none;
	transition: 0.25s ease;
	cursor: pointer;
}

/*input[value="Captcha"] {
	background-color: var(--white);
	color: var(--blue);
	border: none;
	
	cursor: pointer;
}*/

input[type="submit"]:hover {
	background-color: var(--white);
}

header {
	width: 100%;
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: space-between;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background-color: var(--white);
	padding: 1rem 2rem 0;
	z-index: 900;
}

header > * {flex: 0 1 11rem;}

header > h1 {
	position: relative;
	color: var(--yellow);
	background-color: var(--blue);
	flex: 1 1 100%;
	text-align: center;
	padding: 0.5em 2em;
	font-weight: bold;
	font-size: 1em;
	text-transform: capitalize;
	margin: 0;
	margin-top: 1rem;
	margin-left: -2rem;
	margin-right: -2rem;
}

header > h1::before, header > h1::after { 
	content: ''; 
	width: 15vw; 
	height: 3px; 
	background-color: var(--yellow); 
	position: absolute;
	border-radius: 10px; 
	top: 47.5%;
}

header > h1::before {margin-left: -16.5vw;}
header > h1::after {margin-left: 1.5vw;}

header > div {
	flex: 1 1 33%;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: flex-end;
}

header > div > .numberAndIcon, .formArea .numberAndIcon {margin-right: 1rem;}

.block .numberAndIcon {margin-bottom: 1rem;}

header div div, .block .numberAndIcon, .block .messageAndIcon, .numberAndIcon, .messageAndIcon {
	display: flex; flex-flow: row nowrap;
	align-items: center;
	justify-content: space-around;
	flex: 0 1 13rem;
	font-size: 1.25em;
}

header div a, header div p, .block .numberAndIcon a, .block .messageAndIcon p, .numberAndIcon a, .messageAndIcon p {
	text-decoration: none;
	color: var(--blue);
	font-weight: bold;
	flex: 1 0 10rem;
	cursor: pointer;
	transition: 0.25s ease;
}

header div > *:hover {
	color: var(--yellow);
}

header div img, .block .numberAndIcon img, .block .messageAndIcon img, .numberAndIcon img,  .messageAndIcon img {
	margin-right: 1rem;
	flex: 1 0 20%;
}

.block h4 {color: var(--yellow);font-style: italic;}


header img {
	width: auto !important;
	height: auto !important;
}

header #logo {
	flex: 0 1 25rem;
}

section, footer {
	min-height: calc(100vh - 7rem); 
	width: 100%;
	background-color: var(--white);
	color: var(--blue);
	position: relative;
	padding: 2rem;
	display: flex;
	flex-flow: row wrap;
	align-items: stretch;
	justify-content: space-between;
	
}

#moreInfo, footer {min-height: 0; padding: 4rem 2rem;}

section#slider {
	padding: 0;
	overflow: hidden;
	flex-flow: row nowrap;
	align-items: stretch;
	justify-content: flex-start;
	background-color: transparent;
}

.circle {
	position: absolute;
	background-color: var(--yellow);
	border-radius: 50%;
	width: calc((600px / 0.7) - 2.5vw);
	padding-bottom: calc((600px / 0.7) - 2.5vw);
	bottom:-15vh;
	left: -100px;
	margin: auto;
	z-index: 0;
	transition: 0.75s ease;
	transform-origin: left;
	opacity: 0.9;
}

@supports (mix-blend-mode: darken) {
	.circle {
		/*background-color:rgba(185, 185, 53, 0.95);
		mix-blend-mode: multiply;*/
	}/*.circle:nth-of-type(2) {mix-blend-mode: lighten;}*/
}

.circle.spin {
	transform: rotate(-360deg);
}
.circle.spinback {
	transform: rotate(360deg);
}

.controls, .prompts {
	position: absolute;
	right: 2rem;
	bottom: 2rem;
	z-index: 10;
	display: flex;
	flex-flow: row nowrap;
}

.prompts {
	right: unset;
	left: 3rem;
}

.controls > * {
	background-color: var(--transYellow);
	border-radius: 50%;
	width: 3rem;
	height: 3rem;
	padding: 0.25rem 0.75rem;
	color: var(--blue);
	font-size: 2em;
	font-weight: bold;
	transition: 0.25s ease-out;
	cursor: pointer;
	border: 2px solid var(--blue);
	line-height: 0.9;
}

.prompts > * {
	border: 2px solid var(--blue);
	border-radius: 50px;
	width: auto;
	padding: 0.5rem 1.5rem;
	color: var(--blue);
	font-size: 1.25em;
	
	font-style: italic;
	transition: 0.25s ease-out;
	cursor: pointer;
}

.prompts > *:hover {
	border: 2px solid var(--white);
	color: var(--white);
}

.controls > *:hover {background-color: rgba(185, 185, 53, 0.5); border-color: var(--yellow); color: var(--blue);}

/*.prompts > *:hover {background-color: navy;}*/

.controls > .left, .prompts > * {margin-right: 1rem;}

.controls > .right {padding-left: 0.9rem;}

.slide {
	flex: 1 0 100%;
	width: 100%;
	min-height: 100vh;
	position: relative;
	display: flex;
	flex-flow: column wrap;
	align-items: flex-start;
	align-content: flex-start;
	justify-content: flex-end;
	padding: 10rem 3rem 6rem;
	transition: 0.25s ease-out;
	overflow-x: hidden;
	font-size: 1.25em;
	
}

.slide h2, .slide h3, .slide p {
	position: relative;
	z-index: 5;
	color: var(--blue) !important;
	/*max-width: 50%;*/
	/*animation: 7.5s ontoscreen both infinite;*/
	transform: translateX(200px);
	opacity: 0;
	line-height: 1;
	transition: 1s ease-out;
	min-width: 250px;
	max-width: 550px;
}

.slide h2 {
	animation-delay: 0.1s;
	/*max-width: 50%;*/
	font-size: 2.5em;
	margin: 0 0 0.25em;
	font-weight: bold;
}
.slide h3 {
	animation-delay: 0.15s;
	margin: 0;
	/*width: 25%;*/
	text-align: right;
	position: relative;
	font-size: 1.5em;
	color: var(--white) !important;
	font-style: italic;
	font-weight: bold;
	transition-delay: 0.1s;
}

.slide h3::before {
	content: '';
	position: absolute;
	height: 2px;
	background-color: var(--white);
	left: 0;
	right: 75%;
	top: 50%;
}

.slide p {
	animation-delay: 0.2s;
	line-height: 1.2;
	transition-delay: 0.2s;
}

.slide.onthescreen > * {opacity: 1 !important ;transform: translateX(0) !important;}

.slide.animationOff > * {animation: none !important;opacity: 1;transform: translateX(0);}
.slide.animatePaused > * {animation-play-state: paused !important;}

@keyframes ontoscreen {
	0% {transform: translateX(200px);opacity: 0;}
	25%, 92.5% {opacity: 1;}
	20%, 95% {transform: translateX(0);}
	100% {transform: translateX(-200px);opacity: 0;}
}

.slide img {
	position: absolute;
	object-fit: cover;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
}

#messageBox {
	/*width: 25em;*/
	width: 100%;
	/*height: 25em;*/
	height: calc(100vh - 7rem);
	padding: 2em;
	position: fixed;
	z-index: 899;
	/*top: calc(50vh - 12.5em);*/
	top: 7rem;
	left: calc(-100vw - 25em);
	/*left: -150vw;*/
	
	/*background-color: var(--blue);*/
	background-color: rgba(46,69,82,0.9);
	color: var(--white);
	display: flex;
	flex-flow: row wrap;
	align-items: stretch;
	justify-content: center;
	opacity: 0;
	transition: 0.25s ease-out opacity;
}

#messageBox > img {
	flex: 1 1 10%; 
	object-fit: cover;
	border: 1px solid var(--white);
	border-right: none;
	transition: 0.35s ease-out 0.25s;
	
	transform: translateX(-100vw);
}
#messageBox article {
	flex: 2 1 49%;
	border: 1px solid var(--white);
	border-left: none;
	transition: 0.25s ease-out 0.25s;
	opacity: 1;
	transform: translateX(-100vw);
	border-radius: unset;
}

#messageBox.revealed {
	/*left: calc(50vw - 12.5em);*/
	left: 0;
	opacity: 1;
} 

#messageBox.revealed article, #messageBox.revealed img  {
	transform: translateX(0);
} 

#close {
	position: absolute;
	top: -2rem;
	right: -1rem;
	background-color: var(--yellow); 
	border-radius: 50%; 
	color: var(--blue);
	padding: 0.9rem 1.35rem;
	transition: 0.25s ease;
	cursor: pointer;
}#close:hover {background-color:tomato;}

section > h2 {margin:0;}

div.breakOut {
	width: 100%;
	height: auto;
	padding: 2rem;
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: space-around;
	/*background-color: var(--blue);
	color: var(--white);*/
	z-index: 5;
	position: relative;
}

div.breakOut > *{margin: 0.25em 0;}

div.breakOut.column {
	flex-flow: column nowrap;
	justify-content: center;
	align-items: center;
	text-align: center;
}


div.breakOut.column > p {
	color: var(--yellow);
	font-style: italic;
	font-weight: bold;
	font-size: 1.5em;
	text-align: center;
}

div.halfBlock {
	flex: 1 1 35%;
	display: flex;
	flex-flow: column;
	padding: 2rem;
}

section.hashalfImg {
	padding: 0;
}

.hashalfImg .halfBlock {
	padding: 4rem;
}

.halfImg {
	flex: 1 1 45%;
	object-fit: cover;
}

article.formArea {
	background-color: var(--blue);
	
	padding: 2rem 3rem;
	color: var(--white);
	position: sticky;
	top: 9rem;
	flex: 3 1 60%;
	text-align: center;
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: center;
	align-content: space-evenly;
	border-radius: 50px 0 0 50px;
}



section .formArea, footer .formArea {margin-right: -2rem;} 
.formArea h2 {flex: 1 1 100%; font-size: 3em;}

.formArea .numberAndIcon a {
	color: var(--white);
	margin-right: 1em;}
	

.formArea h4 {
	color: var(--yellow);
	flex: 1 1 0;
	text-align: left;
	margin-left: 1rem;
	display: table;
}

.errors {margin: 1rem 0 0;}
.captcha {display: flex;
flex-flow: row nowrap;
align-items: center;
justify-content: center;}

.leftLine {
	padding-left: 1rem;
	border-left: 1px solid var(--blue);
	margin-left: 2rem;
	max-width: 75%;
	font-style: italic;
}

ul.leftLine {
	padding-left: 3rem;
	margin-left: 3rem;
} ul.leftLine li {
	padding-left: 0.5rem;
	margin-bottom: 1.5em;
} ul.leftLine li:last-child {
	margin-bottom:0;
}

.largerText {
	font-size: 1.5em;
}

.phoneBox {
	padding: 0rem 2rem 0 1rem;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: space-between;
	flex: 0 1 auto;
	min-width: 250px;
	font-size: 1.5em;
	border-radius: 100px;
}
.phoneBox > p {
	flex: 1 1 auto;
	display: table;
}

.phoneBox > img {
	/*flex: 0 1 5rem;*/
	flex: 1 1 20%;
	min-width: 100px;
    max-height: 5rem;
}

.breakOut h3 {
	flex: 0 1 50%;
}

.breakOut > img, .breakOut  >  img + * {
	flex: 0 1 30%;
}

.breakOut .block:nth-child(3) {
	flex: 0 1 11rem;
	
}
.breakOut .block:nth-child(3) a, .breakOut .block:nth-child(3) p {color: var(--yellow);}
.breakOut .block:nth-child(3) a:hover, .breakOut .block:nth-child(3) p:hover {color: var(--white);}

section.causes {
	
}


aside.values {
	flex: 1 1 25%;
	display: flex;
	position: relative;
	flex-flow: column wrap;
	align-items: center;
	align-content: center;
	justify-content: center;
	text-align: center;
	padding-right: 1rem;
	border-right: 1px solid var(--blue);
	overflow-x: hidden;
}

aside.values > *{ position: relative; z-index: 5; }
aside.values .controls {
	position: relative;
	right: unset; 
	bottom: unset; 
	justify-content: center;
	
}

aside.values .controls > *{
	background-color: var(--blue);
	color: var(--yellow);
}
 
#valuesSlider {
	position: relative;
	z-index: 0;
	margin-top: 2rem;
	display: flex;
	width: 100%;
	
	flex-flow: row nowrap;
	align-self: center;
	justify-content: flex-start;
	align-items: center;
}
#valuesSlider::before {
	content: '';
	position: absolute;
	top: -5%;
	top: calc(-5% + -2vw);
	left: 0;
	right: 0;
	width: 80%;
	padding-bottom: 80%;
	border-radius: 50%;
	z-index: 0;
	background-color: var(--yellow);
	margin: auto;
}

#valuesSlider .value { 
	position: relative;
	flex: 0 0 100%;
	margin-right: 2rem;
	transition: 0.25s ease-out;
}

.value h4 {
	font-weight: bold;
	font-size: 1.5em;
	margin-bottom: 0;
}


section.causes > div {
	flex: 1 1 70%;
	display: flex;
	flex-flow: row wrap;
	align-items: flex-end;
	justify-content: space-around;
	align-content: space-evenly;
	padding-left: 2rem;
}

.causes > div img {
	flex: 1 1 100%;
	object-fit: cover;
	height: 50%;
}

.causes > div .block, .causes #causesList {
	flex: 1 1 45%;
	padding-left: 2rem;
	position: relative;
	padding-top: 1rem;
	z-index: 1;
}

.causes > div .block::before, .causes #causesList::before {
	content: '';
	position: absolute;
	z-index: -1;
	
	height: 5rem;
	width: 5rem;
	border-radius: 50%;
	background-color: var(--yellow);
}
.causes > div .block::before {
	top: -1rem;
	left: 0;
}
.causes #causesList {
	display: table; 
	margin-left: 5rem; 
	margin-bottom: -1rem;
}
.causes #causesList::before {
	bottom: -2rem;
	right: 1rem;
}

footer > .block{
	flex: 1 1 30%;
	font-size: 0.8em;
}

footer > .block a{
	text-decoration: underline;
}


footer > .block:first-child {
	/*border-right: 1px solid var(--blue);*/
	padding-right: 1rem;
}


@media screen and (max-width: 850px) {
	
	header {padding: 0.5rem 1rem 0;}
	header #logo {

    	flex: 1 4 13rem;
    	margin-right: 2rem;

	}
	header div div, header div img {
		flex-grow: 1;
	}
	
	header .messageAndIcon.messageUs {margin-left: 2rem;}
	header > h1 {margin-top: 0.5rem;margin-left: -1rem; margin-right: -1rem;}
	
	header div img {margin-right: 0.5rem !important; flex: 1 1 100px;}
	
	header > h1::before, header > h1::after {content: none;}
	
	section#slider {padding-top: 6rem;}
	
	.circle {
		background-color: transparent; background-image: linear-gradient(35deg, var(--yellow) 60%, rgba(222,221,28,0.00));
		bottom: -30vh !important;
		left: -25vw;
	}
	
	.slide {min-height: calc(100vh - 6rem);}
	
	.slide h2 {font-size: 2em;}
	.slide p {font-size: 0.8em;}
	
	.prompts div:last-child {display: none;}
	
	.controls {bottom: 1.9rem;}
	
	#moreInfo, footer, section.hashalfImg {padding: 2rem;}
	
	div.halfBlock, .hashalfImg .halfBlock {padding: 0; flex: 1 1 100%;margin-bottom: 2rem;}
	
	.formArea h2 {font-size: 2em;}
	
	
	.phoneBox {font-size: 0.95em;}
	
	aside.values {flex: 1 1 100%;height: auto;overflow: hidden; border: none; padding-bottom: 3rem;}
	
	
	#valuesSlider::before {width: 200px; padding-bottom: 200px;}
	
	section.causes > div {padding-left: 0; justify-content: flex-end;}
	
	.causes #causesList {margin-bottom: 5rem;}
	
	footer {padding: 1rem;}
	
	footer > .block {
    	flex: 1 1 100%;
    	align-items: center;
    	text-align: center;
    	justify-content: center;
    	align-content: center;
		margin-bottom: 2rem;
		padding-right: 0;
		word-break: break-word;
	}
	
	#messageBox {
		z-index: 999; 
		top: 0;
		padding: 0; 
		height: 100vh; 
		width: calc(100% + 26px);
		margin-right: -26px;
		overflow-y: scroll;
	}
	
	#messageBox > img {display: none;}
	
	#messageBox .formArea {
		border: none;
		position: relative;
		top: 0 !important; 	
		text-align: center; 
	}
	
	#close {top: 0; right: 2rem;}
	
}

@media screen and (max-width: 600px) {
	header {justify-content: center; position: relative; padding-top: 3.5rem;}
	header > img {flex: 1 1 100% !important; position: fixed; top: 0; left: 0; right: 0; background-color: var(--white);z-index: -1;}
	header > img.boxy {box-shadow: 0px 0px 20px gray;}
	
	header div div, header > img {margin-right: 0 !important;}
	
	header div img, .phoneBox > img {flex: 0 1 40px; min-width: 40px;}
	header > div {justify-content: center;}
	header div div {
		flex-grow: 1;
	}
	
	ul.leftLine {
   		padding-left: 0rem;
    	margin-left: 1rem;
		max-width: 100%;
	}
	
	.circle, .circle.spin {transform: none !important;opacity: 0.8;}
	section#slider {padding-top: 0; min-height: calc(100vh - 10rem);}
	.slide {min-height: calc(100vh - 10rem); padding: 1rem 1rem 6rem !important;}
	
	.prompts {left: 1rem; bottom: 2rem;}
	.controls {right: 1rem; bottom: 1.9rem;}
	
	article.formArea {padding: 1rem;}
	
	.breakOut {text-align: center;}
	
	.breakOut h3 {flex-grow: 1;}
	
	.breakOut > img, .breakOut > img + * {flex: 1 1 100%;}
	
	section.causes > div {margin-top: 4rem;}
	
}

@media screen and (max-width: 450px) {
	header {padding-top: 2.5rem;}
	.slide {padding: 1rem 1rem 9rem !important;}
	.prompts {bottom: 5rem; text-align: center;}
	.controls {left: 1rem;right: 1rem;bottom: 1rem;justify-content: space-between;}
	.circle {bottom: -10vh !important; left: -75vw;}
}