



body {
	margin: 0;
	padding: 0;
	width: 100vw;
	height: 100vh;
	background: white;
	color: black;
	font-family: "Sora";
	overflow: hidden;
}
img {
	border: 0;
	padding: 0;
	margin: 0;
}
section {
	position: relative;
	min-height: 100vh;
}
ul {
	padding: 0;
	list-style: none;
	text-decoration: none;
}
li {
	margin-top: 5px;
}
input {
	font-family: "Sora", sans-serif;
	font-size: 14px;
	background: #F5F5F5;
	border: 1px solid #DDDDDD;
	border-radius: 20px;
	height: 40px;
	box-sizing: border-box;
	padding: 5px 15px;
	width: 100%;
	margin-bottom: 15px;
}
input::-webkit-input-placeholder {
	color: #999999;
}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
	box-shadow: 0 0 0 1000px white inset;
	-webkit-text-fill-color: #333;
}

#loader {
	position: fixed;
	left: 0; right: 0;
	top: 0; bottom: 0;
	width: 100vw;
	height: 100vh;
	z-index: 100;
	background-image: linear-gradient(180deg, #E6E7E9, #c1c2c3);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-content: center;
}
#loader-logo {
	background: url('../assets/rds_logo.svg');
	background-size: cover;
	background-repeat: no-repeat;
	width: 348px;
	height: 48px;
	margin: 30px 0 20px;
}
#loader .caption {
	font-size: 18px;
	color: #4f4f4f;
}
#loader #loader-icon {
	width: 60px;
	height: 60px;
	align-self: center;
	animation: 2s infinite linear rotator;
}

#logo {
	position: absolute;
	z-index: 10;
	left: 30px;
	top: 30px;
}
.button {
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	user-select: none;
	cursor: pointer;
	position: relative;
}
.button .icon {
	position: absolute;
	left: 13px; top: 11px;
	width: 30px; height: 30px;
	display: none;
}
.button.busy {
	cursor: unset;
	pointer-events: none;
}
.button.deactivated {
	cursor: unset;
	pointer-events: none;
	background: #222 !important;
	color: #888 !important;
}
.button.busy .icon {
	animation: 3s infinite linear rotator;
	display: block;
}
@keyframes rotator {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.notice {
	display: flex;
	width: 100%;
	padding: 15px;
	box-sizing: border-box;
	background: #F5F5F5;
	color: #555;
	border-radius: 15px;
	font-size: 14px;
	justify-content: space-between;
	align-content: center;
	align-items: center;
	border: 1px solid #DDD;
}
.notice .icon {
	margin-right: 15px;
	width: 48px; height: 48px;
}
.screen-width {
	width: 100vw;
	max-width: 370px;
	box-sizing: border-box;
}
.next-button {
	padding: 15px;
	font-weight: 600;
	text-align: center;
	box-sizing: border-box;
	border-radius: 40px;
	background: #149d5a;
	color: white;
	margin: 20px 0;
}
.next-button:hover {
	background: black;
}
.divider {
	display: block;
	border-bottom: 2px solid #CCCCCC;
	margin-bottom: 20px;
}


#totals {
	display: flex;
	justify-content: space-between;
	position: absolute;
	bottom: 0; right: 0;
	z-index: 10;
	padding: 15px 20px;
	background: #E4EDE2;
	color: #1C5800;
	height: 75px;
}
#totals .date {
	text-align: right;
}
#totals .label {
	font-size: 14px;
	padding-bottom: 2px;
}
#totals .value {
	font-size: 20px;
	font-weight: bold;
}

.form-boxes {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	padding-top: 10px;
}
.form-boxes .form-box {
	width: 49%;
}
.bubbles {
	display: flex;
	flex-direction: row;
	justify-content: left;
	margin-bottom: 20px;
}
.bubbles .bubble {
	font-size: 12px;
	font-weight: 600;
	padding: 5px 10px;
	background: #E3EEFF;
	border: 1px solid #C9D6EC;
	border-radius: 20px;
	box-sizing: border-box;
	margin: 4px;
	cursor: pointer;
}
.bubbles .bubble:hover {
	background: #C9D6EC;
}


#start {
	background-image: linear-gradient(45deg, #E6E7E9, #D9DCE1);
	padding-bottom: 20px;
	box-sizing: border-box;
	width: 100vw;
	height: 100vh;
	overflow-y: scroll;
}
#start .overhead {
	min-height: 18vh;
	position: relative;
}
#start .overhead .caption {
	position: absolute;
	font-weight: 900;
	font-size: 18px;
	color: #404754;
	letter-spacing: 5px;
	text-align: center;
	bottom: 55px;
	left: 0; right: 0;
	margin: 0 auto;
	opacity: 0;
}
#start .overhead .h3 {
	position: absolute;
	font-size: 36px;
	color: #404754;
	letter-spacing: -2px;
	text-align: center;
	bottom: 0;
	left: 0; right: 0;
	margin: 0 auto;
	opacity: 0;
}
#start .card-container {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-content: center;
	width: 100vw;
	height: auto;
	min-height: 70vh;
	padding: 10px 10px 20px;
	box-sizing: border-box;
	flex-wrap: wrap;
}
#start .card {
	width: 100%;
	min-width: 300px;
	max-width: 310px;
	height: 254px;
	background: #FFFFFF;
	border: 10px solid #FFFFFF;
	border-radius: 16px;
	overflow: hidden;
	color: #3F4A54;
	margin: 5px;
	font-size: 16px;
	position: relative;
}
#start .card.open {
	height: 540px;
}
#start .card .cover {
	width: 100%;
	height: 200px;
	background-position: bottom center;
	background-size: cover;
	cursor: pointer;
}
#start .card .label {
	display: flex;
	width: 100%;
	padding: 18px 10px 20px;
	box-sizing: border-box;
	flex-direction: row;
	justify-content: space-between;
}
#start .card .label .title {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.75px;
}
#start .card .label .size {
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.5px;
	text-align: right;
}
#start .card .detail {
	display: flex;
	width: 100%;
	padding: 10px;
	box-sizing: border-box;
	flex-direction: row;
	justify-content: space-between;
	align-items: start;
}
#start .card .detail img {
	width: 20px;
}
#start .card .detail .text {
	padding: 0px 20px 5px;
	width: 100%;
	max-width: 340px;
	font-size: 16px;
	color: #FFFFFF;
	letter-spacing: -0.5px;
}
#start .card .button {
	bottom: 0;
	background: #FFFFFF;
	margin: 10px;
	padding: 15px;
	box-sizing: border-box;
	border-radius: 4px;
	font-weight: 700;
	font-size: 18px;
	color: #000000;
	letter-spacing: -0.5px;
	text-align: center;
}

#start .card .plan-button {
	border-radius: 4px;
	background: #FFFFFF;
	font-weight: 600;
	font-size: 12px;
	color:#000000;
	letter-spacing: -0.25px;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	width: 100px;
	padding: 10px;
	box-sizing: border-box;
	position: absolute;
	right: 12px;
	margin-top: -48px;
	cursor: pointer;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	user-select: none;
}
#start .card .features {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
}
#start .card .features .tile {
	background: #F0F0F0;
	border-radius: 4px;
	margin: 4px;
	width: 78px;
	height: 80px;
	text-align: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
#start .card .features .tile.wide {
	flex-grow: 2;
	min-width: 100px;
}
#start .card .features .tile .icon {
	width: 32px;
	height: 32px;
	margin: 0 auto;
}
#start .card .features .tile .title {
	font-weight: 900;
	font-size: 15px;
	color: #000000;
	letter-spacing: -0.5px;
	margin-bottom: 3px;
	text-align: center;
}
#start .card .features .tile .subtitle {
	font-weight: 500;
	font-size: 9px;
	color: #000000;
	text-align: center;
}
#start .card .summary{
	font-weight: 600;
	font-size: 12px;
	letter-spacing: -0.25px;
	text-align: center;
	line-height: 26px;
	padding-top: 5px;
}
#start .card .button.type {
	bottom: 0;
	background: #000000;
	margin: 10px;
	padding: 15px;
	box-sizing: border-box;
	border-radius: 4px;
	font-weight: 700;
	font-size: 18px;
	color: #FFFFFF;
	letter-spacing: -0.5px;
	text-align: center;
}
#start .back-button {
	margin: 0 auto;
	width: 114px;
	padding: 14px 0;
	background: #B3B4B7;
	border-radius: 25px;
	font-weight: bold;
	font-size: 18px;
	color: #FFFFFF;
	letter-spacing: -0.5px;
	text-align: center;
	box-sizing: border-box;
}


#plan-features {
	position: fixed; width: 100vw; height: 100vh; background: white; z-index: 10; top: 0; left: 0; right: 0; bottom: 0;
	display: none;
	opacity: 0;
}
.plan-close-button {
	position: fixed;
	width: 30px; height: 30px;
	padding: 10px;
	background: #EEE;
	border-radius: 30px;
	cursor: pointer;
	right: 20px; top: 20px;
	z-index: 20;
}
.plan-close-button.small {
	right: 15px; top: 10px;
	width: 24px; height: 24px;
	position: absolute;
}
.plan-close-button:hover {
	background: rgb(255, 169, 29);
}
.plan-container {
	width: 100vw; height: 100vh;
	line-height: 24px;
	max-width: 720px;
	left: 0; right: 0; margin: 0 auto;
	background: white;
	padding: 0 0 20px;
	box-sizing: border-box;
	font-size: 15px;
	overflow-y: scroll;
}
#plan-image {
	width: 100%;
}
.plan-section {
	padding: 20px;
}
#plan-name {
	font-size: 20px;
	font-weight: 600;
	margin: 20px 0;
}
.plan-label {
	font-size: 18px;
	font-weight: 600;
	margin: 20px 0 -5px;
}
.plan-section ul {
	padding: 0;
	padding-bottom: 20px;
	list-style: none;
}
.plan-section li {
	margin-bottom: 10px;
}



#options {
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	background: white;
	display: none;
	padding-bottom: env(safe-area-inset-bottom);
}
#options #visualizer {
	max-width: 1440px;
	position: absolute;
	z-index: 0;
}
#options #visualizer #visual-hint-containter {
	position: relative;
	width: 100%;
	height: auto;
	z-index: 20;
}
#options #visualizer .scenes-container {
	position: absolute;
	width: 100%;
	height: auto;
	z-index: 1;
}
#options #visualizer .scene {
	position: absolute;
	left: 0; top: 0;
	width: 100%;
	z-index: 2;
	display: none;
}
#options #visualizer .scene.base {
	z-index: 0;
}
#options #visualizer .placeholder {
	width: 100%;
	z-index: 0;
}
#options .progress {
	padding: 40px 20px;
	display: flex;
	flex-direction: row;
	align-content: center;
	background: white;
	width: 100vw;
	height: 75px;
	position: absolute;
	right: 0; top: 0;
	z-index: 2;
	font-weight: 700;
	font-size: 20px;
	color: #212B3D;
	letter-spacing: -0.5px;
	box-sizing: border-box;
	overflow-x: scroll;
	overflow-y: hidden;
	cursor: pointer;
	scrollbar-width: none;
}
#options .progress::-webkit-scrollbar {
  display: none;
}
#options .progress .item {
	padding-right: 25px;
}
#options .progress .item.inactive {
	color: #BDBFC4;
}
#options .progress .item.hidden {
	display: none;
}
#options .tab {
	display: none;
	opacity: 0;
	background: white;
	padding: 0 20px 30px;
	position: absolute;
	right: 0; top: 75px;
	height: calc(100vh - 75px - 75px);
	overflow-y: scroll;
	z-index: 1;
}
#options .tab .tab-image {
	width: 100%;
	margin-bottom: 15px;
}
#options .body {
	font-size: 14px;
	color: #000000;
	line-height: 24px;
	margin-bottom: 15px;
}
#options .comment {
	font-size: 12px;
	color: #000000;
	display: flex;
	justify-content: left;
	margin-bottom: 20px;
}
#options .tab .title {
	font-weight: bold;
	font-size: 20px;
	color: #000000;
	line-height: 24px;
	padding: 10px 0;
}
#options .tab .title.section {
	padding-top: 30px;
}
#options .circles {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: left;
	align-content: start;
}
#options .tab .circle {
	cursor: pointer;
	border: 2px solid white;
	width: 74px;
	height: 74px;
	border-radius: 50%;
	margin: 2px 4px 2px 0px;
	position: relative;
	box-sizing: border-box;
	background-size: cover;
	overflow: hidden;
}
#options .tab .circle img {
	position: absolute;
	right: 10px;
	top: 30px;
}
#options .tab .box {
	cursor: pointer;
	border: 2px solid black;
	background: white;
	width: 100%;
	height: 60px;
	position: relative;
	box-sizing: border-box;
	padding: 20px 15px;
	margin-bottom: 10px;
	overflow: hidden;
}
#options .tab .square {
	cursor: pointer;
	display: flex;
	border: 2px solid #C0C0C0;
	background: white;
	width: 105px;
	height: 100px;
	position: relative;
	box-sizing: border-box;
	justify-content: center;
	align-content: center;
	margin-right: 5px;
}
#options .tab .square:last-child {
	margin: 0px;
}
#options .tab .square img {
	width: auto;
	height: 57px;
	align-self: center;
}
#options .tab .square:first-child img {
	width: 66px;
	height: auto;
}
#options .tab .square.small {
	height: 60px;
}
#options .tab .square.small img {
	width: auto;
	height: 28px !important;
	align-self: center;
}
#options .tab .label {
	font-weight: 600;
	font-size: 14px;
	padding: 20px 0;
	display: flex;
	text-align: left;
	flex-direction: row;
	justify-content: space-between;
	align-content: center;
}
#options .tab .label #price {
	font-weight: normal;
	text-align: right;
}
#options .tab .box .label {
	padding: 0;
	padding-bottom: 5px;
}
#options .tab .box .details {
	font-size: 14px;
	line-height: 20px;
}
#options .tab .box .details.low {
	padding-top: 20px;
}
#options .conflict-box {
	font-size: 16px;
	background: #A74F4F;
	border: 1px solid #820000;
	padding: 20px 15px;
	box-sizing: border-box;
	color: white !important;
	overflow: hidden;
}
#options .conflict-box .caption {
	font-weight: bold;
	padding-bottom: 15px;
}
#options .conflict-box .button {
	font-size: 14px;
	font-weight: bold;
	display: inline-block;
	color: #A74F4F;
	background: #FFFFFF;
	border: 2px solid #FFFFFF;
	border-radius: 15px;
	box-sizing: border-box;
	height: 30px;
	padding: 4px 15px 0;
	margin: 20px 0 5px;
}
#options .conflict-box .button:hover {
	opacity: 0.5;
}

.tax-credit {
	background: #E5E8D2;
	padding: 10px 15px;
	margin: 10px 0 20px;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-content: center;
	color: #1C5800;
	box-sizing: border-box;
	font-size: 14px;
	font-weight: 700;
}
.tax-credit img {
	height: 24px;
	margin-right: 10px;
}
.tax-credit span {
	flex-grow: 1;
}
.tax-credit span,div {
	align-self: center;
}


.summary-title {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	padding: 10px 0;
	border-bottom: 1px solid black;
	margin: 20px 0 10px;
	font-weight: bold;
	font-size: 18px;
}
.summary-title .edit {
	font-size: 12px;
	border-radius: 30px;
	background: black;
	color: white;
	padding: 1px 15px;
	box-sizing: border-box;
	cursor: pointer;
}
.summary-item {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	font-size: 14px;
	padding: 5px 0;
}
.summary-item .summary-label {
	font-weight: 600;
}
.summary-item .summary-value {
	text-align: right;
}


#payment-element, #payment-wallet {
	padding: 20px 0;
	box-sizing: border-box;
}
#location .caption {
	padding-top: 10px;
	font-size: 14px;
	color: #666;
	line-height: 24px;
}
#payment-card-switch {
	display: inline-block;
	margin: 10px 0;
	padding: 10px 0;
	box-sizing: border-box;
	font-size: 16px;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
	color: #888;
}
#payment-card-switch:hover {
	color: #000;
}
#payment-message {
	padding-bottom: 7px;
}


.delivery-estimate {
	padding: 5px 0 20px;
	opacity: 0.5;
	font-weight: bold;
}
.delivery-estimate img {
	width: 20px;
	height: 20px;
	margin-right: 10px;
}
.delivery-estimate #delivery-estimate {
	padding-top: 10px;
	font-size: 26px;
}


a {
	font-weight: 500;
}
a:active, a:link {
	color: #666;
	text-decoration: underline;
}
a:hover {
	color: #333;
	text-decoration: none;
}

#completed {
	width: 100vw;
	height: 100vh;
	position: absolute;
	left: 0; right: 0;
	top: 0; bottom: 0;
	background: #258e56;
	z-index: 30;
	color: white;
	display: none;
}
#completed .container {
	position: relative;
	left: 0; right: 0;
	margin: 0px auto;
	width: 100%;
	min-height: 100%;
	max-width: 540px;
	padding: 25px;
	box-sizing: border-box;
	text-align: center;
}
#completed #c-emoji {
	margin: 30px 0 20px;
	height: 96px;
}
#completed #c-1 {
	font-weight: bold;
	font-size: 16px;
	letter-spacing: 2px;
}
#completed #c-2 {
	margin-top: 20px;
	font-weight: 600;
	font-size: 38px;
	letter-spacing: -1px;
}
#completed #c-3 {
	margin-top: 20px;
	line-height: 23px;
}
#completed #c-footer {
	position: absolute;
	left: 0; right: 0;
	bottom: 30px;
	padding: 20px;
	padding-bottom: env(safe-area-inset-bottom);
	box-sizing: border-box;
	width: 100%;
}
#completed .c-earlybirds {
	width: 50%;
}
#completed .c-button {
	background: white;
	font-size: 22px;
	font-weight: 600;
	color: #1c7a48;
	text-align: center;
	box-sizing: border-box;
	padding: 12px 0;
	margin-top: 20px;
	border-radius: 30px;
	cursor: pointer;
}
#completed .c-button:hover {
	background: rgba(0, 0, 0, 0.5);
	color: white;
}


@media only screen and (max-width: 480px) {
	.screen-width {
		width: 100vw;
		max-width: unset;
	}
	
	#logo {
		left: 15px;
		top: 15px;
		width: 160px;
	}
	
	#start {
		margin: 0px !important;
		padding-bottom: 50px;
	}
	#start .overhead {
		min-height: 21vh;
		margin-bottom: 20px;
		box-sizing: border-box;
	}
	#start .overhead .caption {
		font-size: 14px;
		font-weight: 900;
		letter-spacing: 5px;
		bottom: 40px;
	}
	#start .overhead .h3 {
		font-size: 26px;
		letter-spacing: -1.5px;
		bottom: 0;
	}
	#start .card {
		width: 100%;
		min-width: 300px;
		max-width: 380px;
		height: 290px;
	}
	#start .card.open {
		height: 585px;
	}
	#start .card .cover {
		height: 240px;
	}
	
	#options {
		padding-bottom: env(safe-area-inset-bottom);
	}
	#options #visualizer {
		width: 100vw;
		position: relative;
		z-index: 0;
	}
	#options .progress {
		position: relative;
		padding: 15px;
		border-bottom: 1px solid #CCC;
		height: 55px;
	}
	#options .tab {
		padding: 15 20px 30px;
		right: unset; top: unset;
		height: unset;
		z-index: 1;
	}
	#options #totals {
		border-top: 1px solid #C7D6C4;
		position: fixed;
		bottom: 0;
	}
}

@media only screen and (max-width: 800px) {
	.screen-width {
		width: 100vw;
		max-width: 480px;
		left: 0px; right: 0px;
		margin: 0 auto;
	}
	
	#logo {
		left: 15px;
		top: 15px;
		width: 160px;
	}
	
	#options #visualizer {
		max-width: unset;
		width: 100vw;
		position: relative;
		z-index: 0;
	}
	#options .progress {
		position: relative;
		padding: 15px;
		border-bottom: 1px solid #CCC;
		height: 55px;
		width: 100vw;
	}
	#options .tab {
		padding: 15 20px 30px;
		top: unset;
		left: 0px; right: 0px;
		height: unset;
		z-index: 1;
	}
	#options #totals {
		border-top: 1px solid #C7D6C4;
		bottom: 0px;
	}
}