* {
	font-family: 'franklin-gothic-urw', sans-serif;
	font-size: 17px;
	color: #6d6e71;
}

body { margin: 5px; }

::-webkit-input-placeholder { color: #9d9fa3; }
     :-ms-input-placeholder { color: #9d9fa3; }
         ::-moz-placeholder { color: #9d9fa3; }
          :-moz-placeholder { color: #9d9fa3; }
		      ::placeholder { color: #9d9fa3; }
			  
:focus {
	-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
	   -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
	        box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
			  
.subtext {
	font-size: 13px;
	margin-top: 3px;
}

header, main, footer {
	max-width: 849px;
	margin: 0 auto;
}

header h1 {
	font-weight: normal;
	font-size: 38px;
	color: #939598;
	margin-bottom: 30px;
}

header { margin-bottom: 5px; }

header::after {
	content: '';
	display: block;
	clear: both;
}

header .tab {
	float: left;
	width: 210px;
	height: 60px;
	padding: 0 30px;
	background: #777;
	font-size: 0;
	
	-webkit-border-radius: 0 12px 0 0;
	   -moz-border-radius: 0 12px 0 0;
	        border-radius: 0 12px 0 0;
}

header .tab ~ .tab { margin-left: 3px; }

header .tab > * {
	display: inline-block;
	vertical-align: middle;
	line-height: 60px;
}

header .tab span {
	font-weight: bold;
	font-size: 25px;
	color: #fff;
	margin-left: 15px;
}

header .tab.income  { background-color: #98aad5; }
header .tab.needs   { background-color: #bde3f8; }
header .tab.savings { background-color: #f7dcac; }
header .tab.wants   { background-color: #d2e6af; }

header .tab.income:hover  { background-color: #a9b7d9; }
header .tab.needs:hover   { background-color: #d1eaf9; }
header .tab.savings:hover { background-color: #f8e4c0; }
header .tab.wants:hover   { background-color: #dbeac0; }

header .tab.income.selected  { background-color: #005da8; }
header .tab.needs.selected   { background-color: #51c2eb; }
header .tab.savings.selected { background-color: #ecb23b; }
header .tab.wants.selected   { background-color: #93c841; }

header .tab.income.selected:hover  { background-color: #0865b4; }
header .tab.needs.selected:hover   { background-color: #66c6ea; }
header .tab.savings.selected:hover { background-color: #ebba51; }
header .tab.wants.selected:hover   { background-color: #9cc955; }

header .tab.income  .icon { width: 46px; height: 36px; fill: #fff;    }
header .tab.needs   .icon { width: 60px; height: 27px; fill: #98aad5; }
header .tab.savings .icon { width: 41px; height: 45px; fill: #e2b898; }
header .tab.wants   .icon { width: 38px; height: 41px; fill: #b3c597; }

header .tab.needs.selected   .icon { fill: #005da8; }
header .tab.savings.selected .icon { fill: #bc682c; }
header .tab.wants.selected   .icon { fill: #5b8327; }

main .tab { padding: 55px 50px; }
main .tab:not(.selected) { display: none; }

main .tab.income {
	background: -webkit-linear-gradient(180deg, #ccdfee 0%, #f5f7fc 100%);
	background:    -moz-linear-gradient(180deg, #ccdfee 0%, #f5f7fc 100%);
	background:         linear-gradient(180deg, #ccdfee 0%, #f5f7fc 100%);
}

main .tab.needs {
	background: -webkit-linear-gradient(180deg, #daf2fb 0%, #f9fcfe 100%);
	background:    -moz-linear-gradient(180deg, #daf2fb 0%, #f9fcfe 100%);
	background:         linear-gradient(180deg, #daf2fb 0%, #f9fcfe 100%);
}

main .tab.savings {
	background: -webkit-linear-gradient(180deg, #fbefd5 0%, #fefbf5 100%);
	background:    -moz-linear-gradient(180deg, #fbefd5 0%, #fefbf5 100%);
	background:         linear-gradient(180deg, #fbefd5 0%, #fefbf5 100%);
}

main .tab.wants {
	background: -webkit-linear-gradient(180deg, #e8f3d7 0%, #fafcf7 100%);
	background:    -moz-linear-gradient(180deg, #e8f3d7 0%, #fafcf7 100%);
	background:         linear-gradient(180deg, #e8f3d7 0%, #fafcf7 100%);
}

main .tab.totals {
	background: -webkit-linear-gradient(180deg, #e8e9e9 0%, #fafafa 100%);
	background:    -moz-linear-gradient(180deg, #e8e9e9 0%, #fafafa 100%);
	background:         linear-gradient(180deg, #e8e9e9 0%, #fafafa 100%);
}

main .tab h2 {
	font-size: 26px;
	margin: 0 0 5px 25px;
}

main .tab.income  h2 { color: #005da8; }
main .tab.needs   h2 { color: #51c2eb; }
main .tab.savings h2 { color: #ecb23b; }
main .tab.wants   h2 { color: #93c841; }
main .tab.totals  h2 { color: #005da8; }

main .tab p { margin: 0 0 40px 25px; }
main .tab label {
	float: left;
	display: inline-block;
	font-size: 30px;
	text-align: right;
	width: 325px;
	padding-right: 25px;
}

main .tab .field { margin-bottom: 15px; }

main .tab .field::after {
	content: '';
	display: block;
	clear: both;
}

main .tab .field input {
	background-color: #fff;
	padding: 0 10px 0 35px;
	border: 1px solid #a7a9ac;
	height: 46px;
	width: 100%;
	font-size: 30px;
	color: #005da8;
}

main .tab .field > div > div {
	position: relative;
	display: inline-block;
	width: calc(100% - 325px);
}

main .tab .field span {
	position: absolute;
	top: 0;
	left: 10px;
	line-height: 48px;
	font-size: 30px;
	color: #9d9fa3;
}

main .tab .field.new > input {
	float: left;
	width: 300px;
	margin-right: 25px;
	padding-left: 10px;
}

main .tab .field.new button {
	width: 37px;
	height: 30px;
	line-height: 30px;
	background-color: #fff;
	border: 1px solid #a7a9ac;
	font-size: 30px;
	color: #9d9fa3;
}

main .tab .field.new button:hover { background-color: #f5f5f5; }
main .tab .field.new button:active { line-height: 32px; }

main .tab nav {
	margin: 60px 0 0 auto;
	width: calc(100% - 325px);
	clear: both;
}

main .tab nav::after {
	content: '';
	display: block;
	clear: both;
}

  main .prev
, main .next {
	display: inline-block;
	line-height: 36px;
	height: 36px;
	padding: 0 16px;
	background-color: #51c2eb;
    font-weight: bold;
	font-size: 18px;
	color: #fff;
}

main .prev { float: left; }
main .next { float: right; }

main .prev::before { content: '< Back'; }
main .next::before { content: 'Next >'; }

  main .prev:hover
, main .next:hover { background-color: #66c6ea; }

  main .prev:active
, main .next:active { line-height: 38px; }

main .tab .add {
	display: block !important;
	margin: 10px 0 0 auto;
	line-height: 30px;
}

main .tab .add > * {
	display: inline-block;
	vertical-align: middle;
}

main .tab .add div {
	margin-left: 10px;
	color: #005da8;
}

main .tab .field.funds label {
	font-weight: bold;
	color: #ecb23b;
}

main .tab .field.funds input {
	background-color: #ecb23b;
	color: #fff;
}

main .tab .field.funds span { color: #fff; }

main .tab .field.funds ::-webkit-input-placeholder { color: #fff; }
main .tab .field.funds      :-ms-input-placeholder { color: #fff; }
main .tab .field.funds          ::-moz-placeholder { color: #fff; }
main .tab .field.funds           :-moz-placeholder { color: #fff; }
main .tab .field.funds 		         ::placeholder { color: #fff; }

main .tab.totals nav::after {
	content: '';
	display: block;
	clear: both;
}

main .tab.totals nav > div {
	float: right;
	text-align: center;
}

main .tab.totals nav a {
	display: inline-block;
	background-color: #005da8;
	color: #fff;
	padding: 0 50px;
	height: 46px;
	line-height: 46px;
	margin-bottom: 5px;
}

main .tab.totals nav a:hover { background-color: #0865b4; }
main .tab.totals nav a:active { line-height: 48px; }

footer {
	background-color: #0081be;
	padding: 25px 35px;
	margin-top: -12px;
	
	-webkit-border-radius: 0 12px 0 0;
	   -moz-border-radius: 0 12px 0 0;
	    -ms-border-radius: 0 12px 0 0;
}

footer * { color: #fff; }
footer > *:not(.selected) { display: none; }

footer ul.totals::after {
	content: '';
	display: block;
	clear: both;
}

footer .totals li {
	position: relative;
	float: left;
	width: 25%;
	text-align: center;
}

footer .totals li ~ li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 15px;
	bottom: 15px;
	border-left: 1px solid #fff;
}

footer .totals li div {
	display: inline-block;
	text-align: left;
}

footer .totals h3 { font-size: 18px; }
footer .totals h2 { font-size: 38px; }

footer .complete::after {
	content: '';
	display: block;
	clear: both;
}

footer .complete * {
	display: inline-block;
	vertical-align: middle;
	line-height: 1;
}

footer .complete h2 {
	font-size: 24px;
	max-width: 300px;
	margin-right: 20px;
}

footer .complete h2:first-child { text-transform: uppercase; }

footer nav { 
	margin-left: 20px;
	padding-left: 20px;
	border-left: 3px solid #fff;
	text-align: right;
}

footer a {
	font-weight: bold;
	font-size: 24px;
}
footer a:hover { text-decoration: underline; }

footer .button {
	background-color: #fff;
	text-transform: uppercase;
	font-weight: bold;
	font-size: 17px;
	color: #005da8;
	line-height: 33px;
	height: 33px;
	padding: 0 20px;
}

footer .button:hover {
	color: #2783d1;
	text-decoration: none;
}

footer .button:active { line-height: 35px; }

.modal {
	position: fixed;
	z-index: 99;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(255, 255, 255, 0.6666);
	
	-webkit-transition: opacity 300ms ease-in-out;
	   -moz-transition: opacity 300ms ease-in-out;
	    -ms-transition: opacity 300ms ease-in-out;
	     -o-transition: opacity 300ms ease-in-out;
	        transition: opacity 300ms ease-in-out;
}

.modal:not(.open) { display: none; }
.modal:not(.visible) { opacity: 0; }

.modal > div {
	position: absolute;
	top: 50%;
	left: 50%;
	
	-webkit-transform: translate(-50%, -50%);
	   -moz-transform: translate(-50%, -50%);
	    -ms-transform: translate(-50%, -50%);
	     -o-transform: translate(-50%, -50%);
	        transform: translate(-50%, -50%);
	
	width: 476px;
	padding: 25px;
	border: 1px solid #005da8;
	background-color: #fff;
	
	-webkit-box-shadow: 10px 10px 15px rgba(0, 0, 0, 0.3333);
	   -moz-box-shadow: 10px 10px 15px rgba(0, 0, 0, 0.3333);
	        box-shadow: 10px 10px 15px rgba(0, 0, 0, 0.3333);
}

.modal .close {
	position: absolute;
	top: 10px;
	right: 10px;
	
	display: inline-block;
	width: 30px;
	height: 30px;
	line-height: 30px;
	text-align: center;
	
	background-color: transparent;
}

.modal .close::after {
	content: '\00d7';
	font-size: 30px;
	color: #aaa;
}

.modal .close:hover::after { color: #777; }
.modal .close:active::after { line-height: 32px; }

.modal .title {
	padding-right: 40px;
	font-weight: normal;
	font-size: 28px;
	color: #93c841;
	margin-bottom: 30px;
}

.wpcf7 {
	width: calc(100% + 10px);
	
	-webkit-transform: translateX(-5px);
	   -moz-transform: translateX(-5px);
	    -ms-transform: translateX(-5px);
	     -o-transform: translateX(-5px);
	        transform: translateX(-5px);
}

.wpcf7 form { font-size: 0; }

.wpcf7 .field, .wpcf7 .footer {
	margin: 5px;
	width: calc(100% - 10px);
}

.wpcf7 .field { display: inline-block; }
.wpcf7 .field ~ .field { padding-top: 25px; }
.wpcf7 .field.width-66  { width: calc(66.6666% - 10px); }
.wpcf7 .field.width-33  { width: calc(33.3333% - 10px); }

.wpcf7 .field input {
	width: 100%;
	background-color: #f3f3f4;
	height: 39px;
	padding: 0 20px;
	color: #646566;
}

.wpcf7-not-valid-tip { display: none !important; }
.wpcf7-response-output { display: none; }
  .wpcf7 .field input.wpcf7-not-valid
, .field input.invalid { background-color: #ffe9e9 !important; }

.wpcf7 .footer { margin-top: 41px; }

.wpcf7 input[type=submit] {
	background-color: #94c83d;
	text-transform: uppercase;
	font-weight: bold;
	color: #fff;
	
	height: 41px;
	line-height: 41px;
	padding: 0 28px;
}

.wpcf7 input[type=submit]:hover { background-color: #a6ce60; }
.wpcf7 input[type=submit]:active { line-height: 43px; }

.grecaptcha-badge { display: none !important; }

@media (max-width: 880px) {
	header {
		width: calc(100% + 4px);
		-webkit-transform: translateX(-2px);
		   -moz-transform: translateX(-2px);
		    -ms-transform: translateX(-2px);
		     -o-transform: translateX(-2px);
		        transform: translateX(-2px);
	}
	header .tab {
		width: calc(25% - 4px);
		margin: 0 2px !important;
		text-align: center;
		padding: 0 10px;
	}
	
	header .tab span { display: none; }
	
	footer .complete { text-align: right; }
	footer .complete h2:first-child { float: left; }
	footer .complete h2:nth-child(2) {
		float: none;
		margin-right: 0;
	}
	
	footer nav {
		display: block !important;
		float: none;
		text-align: center;
		margin: 40px 0 0;
		border: 0;
		padding-left: 0;
	}
	
	footer .button {
		float: left;
		margin-top: 7px;
	}
}

@media (max-width: 768px) {
	main .tab label {
		float: none;
		display: block;
		text-align: left;
	}
	
	main .tab .field > div > div {
		width: auto;
		display: block;
	}
	
	main .tab .field input {
		font-size: 32px;
		height: 50px;
	}
	
	main .tab .field span {
		font-size: 32px;
		line-height: 50px;
	}
	
	main .tab .field.new > input {
		float: none;
		margin-bottom: 5px;
	}
	
	main .tab nav { width: auto; }
	
	footer .totals li { width: 50%; }
	footer .totals li:nth-child(2)::before { bottom: 0; }
	footer .totals li:nth-child(3)::before { display: none; }
	footer .totals li:nth-child(4)::before { top: 0; }
	footer .totals li:nth-child(2) ~ li { padding-top: 20px; }
	footer .totals h3 { font-size: 26px; }
	footer .totals h2 { font-size: 48px; }
	footer .totals li div {
		display: block;
		padding: 0 20px;
	}
	
	.wpcf7 .field input {
		height: 50px;
		font-size: 32px;
	}
}

@media (max-width: 640px) {
	main .tab h2 { margin-left: 0; }
	main .tab p  { margin-left: 0; }
	footer { padding: 25px 10px; }
	main .tab { padding: 55px 20px; }
	
	.wpcf7 {
		width: auto;
		-webkit-transform: none;
		   -moz-transform: none;
		    -ms-transform: none;
		     -o-transform: none;
		        transform: none;
	}
	
	.wpcf7 .field {
		width: auto !important;
		display: block;
		margin: 5px 0;
	}
	
	.modal > div {
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		border: 0;
		padding: 25px 15px;
		
		-webkit-transform: none;
		   -moz-transform: none;
		    -ms-transform: none;
		     -o-transform: none;
		        transform: none;
	}
}

@media (max-width: 560px) {
	footer button { margin-top: 50px; }
	footer nav { text-align: right; }
}

@media (max-width: 480px) {
	header h1 {
		font-size: 32px;
		text-align: center;
	}
	
	main .tab .field.new > input { width: 100%; }
	footer .totals li { width: 100%; }
	footer .totals li::before { display: none; }
	footer .totals li ~ li { padding-top: 20px; }
	footer .complete { text-align: right; }
	footer button {
		margin-top: 0;
		float: none;
	}
	
	footer .complete h2:nth-child(2) {
		max-width: 100%;
		width: 100%;
		text-align: center;
		margin-top: 20px;
		float: right;
	}
	
	footer nav {
		margin-right: 0;
		width: 100%;
		text-align: center;
		float: right;
	}
}