@keyframes spinner {
	0% {
		transform: rotate(0)
	}

	100% {
		transform: rotate(360deg)
	}
}

@keyframes blinker {
	50% {
		opacity: 0
	}
}

@keyframes blinker {
	50% {
		opacity: 0
	}
}

:root {
	--gray-offset: #00000008;
	--gray-smoke: #f0f0f0;
	--gray-border: #00000026;
	--gray-text: #c8c8c8;
	--gray-light: #d1d1d1;
	--gray-mid: #000000b2;
	--gray-dark: #333333;
	--orange-dark: #e27303;
	--orange-mid: #FC8905;
	--orange-light: #fdb768;
	--orange-very-light: #fef3e6;
	--body-color: var(--gray-mid);
	/*--alt-headline-color: var(--gray-smoke);*/
    --alt-headline-color: #C12D3A;
	--accent-color: var(--orange-light);
	--body-font-family: -apple-system, BlinkMacSystemFont, sans-serif;
	--teal: #2fd6e0;
	--teal-mid: #2fd6e0;
	--teal-submit: #bafff9;
	--teal-dark: #006993;
	--teal-very-light: #def9fb;
	--green-mid: #1aa944;
	--red-mid: #c12d3a;
    --white: #ffffff;
	--headline-color: var(--white);
	--invalid-red: #f44336;
	--radius: 6px;
    --progress-future: #a0a0a0;
    /*--title-accent: var(--teal-mid);*/
    /*--title-accent: var(--red-mid);*/
	--title-accent: var(--orange-light);
    --input-element-border: #1a1a1a1a;
    --trans-white-80: #ffffff80;
    --submit-button-back: #00766c;
	--progress-green: #0a431b;
}

html {
	box-sizing: border-box;
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
	-webkit-box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-weight: 400;
	color: var(--gray-mid)
}

* {
	box-sizing: inherit
}

body {
	/*background-image: linear-gradient(90deg, var(--orange-mid), var(--orange-dark));*/
	font-family: var(--body-font-family);
	font-size: 16px;
	color: var(--body-color);
	-webkit-font-smoothing: antialiased;
	margin: 0
}

h1 {
	color: var(----title-accent);
	margin-top: 2px;
	margin-bottom: 4px;
	font-size: 1.75em;
	margin: .2em 0
}

h2 {
	color: var(--gray-mid);
	margin-top: 10px;
	margin-bottom: 10px;
	font-size: 1.6em;
}

h3 {
	color: var(--gray-mid);
	margin-top: 8px;
	margin-bottom: 8px;
    margin-left: 8px;
    margin-right: 8px;
    font-weight:600;
	font-size: 1.0em;
}


ul {
	margin: 0px;
	padding-left: 15px;
}

ul li {
	margin-left: 0px;
	padding-left: 0px;
}

label {
	font-size: 13px;
	font-weight: 500;
	margin-bottom: 8px;
	display: inline-block
}

input[type=email],
input[type=number],
input[type=phone],
input[type=text],
input[type=date],
input[type=url] {
    border: 1px solid var(--gray-border);
    border-radius: var(--radius);
    padding-top: 5px;
	padding-bottom: 5px;
	padding-left: 8px;
	padding-right: 5px;
    height: 38px;
    transition: box-shadow .2s ease;
    background: var(--white);
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    color: #32325d
}

button:focus,
input[type=text]:focus {
    box-shadow: 0 0 0 1px #3297d34c, 0 1px 1px 0 #00000012, 0 0 0 4px #3297d34c;
    outline: 0;
    z-index: 9
}

input[type=number]::placeholder,
input[type=text]::placeholder {
    color: var(--gray-light);
}

button:focus {
	box-shadow: 0 0 0 1px #3297d34c, 0 1px 1px 0 #00000012, 0 0 0 4px #3297d34c;
	outline: 0;
	z-index: 9
}

input[type=text]:focus {
	box-shadow: 0 0 0 1px #3297d34c, 0 1px 1px 0 #00000012, 0 0 0 4px #3297d34c;
	outline: 0;
	z-index: 9
}

input[type=number]::placeholder {
	color: var(--gray-light)
}

input[type=text]::placeholder {
	color: var(--gray-light)
}

select::placeholder {
	color: var(--gray-light)
}

button {
	background: var(--accent-color);
	border-radius: var(--radius);
	color: var(--white);
	border: 0;
	padding: 12px 16px;
	margin-top: 3px;
	margin-bottom: 3px;
	font-weight: 600;
	cursor: pointer;
	transition: all .2s ease;
	display: block;
	width: 100%;
	text-transform: none;
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0
}

button:hover {
	filter: contrast(115%)
}

button:active {
	transform: translateY(0) scale(.98);
	filter: brightness(.9)
}

button:disabled {
	opacity: .5;
	cursor: none
}

a {
	/*color: black;*/
	text-decoration: none;
	transition: all .2s ease;
	background-color: transparent
}

a:hover {
	filter: brightness(.8)
}

a:active {
	filter: brightness(.5)
}

img {
	border-style: none
}

form {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0
}

input {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
	overflow: visible
}

button input {
	overflow: visible
}


[type=checkbox] {
	box-sizing: border-box;
	padding: 0;
	margin: 5px
}


[hidden] {
	display: none
}

.spinner-double-section-far:after {
	content: "";
	position: absolute;
	display: block;
	border-radius: 50%;
	border: 3.125px solid transparent;
	border-top-color: transparent;
	top: -9px;
	left: -9px;
	width: 62.5px;
	height: 62.5px;
	border-bottom-color: tomato
}

.spinner-double-section-far:before {
	content: "";
	position: absolute;
	display: block;
	border-radius: 50%;
	border: 3.125px solid transparent;
	border-top-color: tomato;
	top: -9px;
	left: -9px;
	width: 62.5px;
	height: 62.5px
}

.spinner-double-section-far {
	display: block;
	float: left;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	border: 3.125px solid #aaa;
	animation: spinner 1.2s linear infinite;
	position: relative
}

.spinner-section:after {
	display: none
}

.spinner-section-far:after {
	display: none
}

.spinner-text {
	margin: 10px;
	color: #f0f0f0;
	padding-top: 5px;
	padding-bottom: 5px;
	font-weight: 600;
	font-size: 18px;
	display: block;
	text-align: center
}

span:nth-child(4n+1):not(.step-pip):not(.step-label) {
	clear: both
}

.spinner-container {
	display: none;
	position: fixed;
	z-index: 20;
	background: #303030;
	width: 310px;
	height: 220px;
	padding-top: 10px;
	padding-left: 10px;
	padding-right: 10px;
	padding-bottom: 10px;
	margin-top: 10px;
	margin-bottom: 10px;
	margin-left: 10px;
	margin-right: 10px
}

#waitSpinner {
	-webkit-box-shadow: 0 0 0 9999px #00000080;
	box-shadow: 0 0 0 9999px #00000080
}

.spinner-innerContainer {
	position: relative;
	display: block;
	height: 72px;
	width: 72px;
	margin: auto
}

.blinking {
	animation: blinker 1s linear infinite
}

*,
:after,
:before {
	-webkit-box-sizing: inherit;
	box-sizing: inherit
}

button,
input,
select {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif
}

select {
	padding-left: 8px
}

option {
	color: black;
    line-height: 1.1;
    padding: 2px 4px;
}


.break {
	flex-basis: 100%;
	height: 0;
	margin: 0;
	padding: 0;
}

.discount-Strike {
  text-decoration: line-through;
  color: var(--gray-light);
  font-weight: 500;
}

.container {
	margin: 0 auto;
	max-width: 1280px;
	width: 90%
}

select:focus {
	outline: 1px solid #c9f3ef
}

::-ms-input-placeholder {
	color: var(--gray-light)
}

::placeholder {
	color: var(--gray-light)
}

input.invalid:not([type]) {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid:not([type]):focus {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=email]:not(.browser-default) {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=email]:not(.browser-default):focus {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=number]:not(.browser-default) {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=number]:not(.browser-default):focus {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=tel]:not(.browser-default) {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=tel]:not(.browser-default):focus {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=text]:not(.browser-default) {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=text]:not(.browser-default):focus {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=url]:not(.browser-default) {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

input.invalid[type=url]:not(.browser-default):focus {
	border-bottom: 1px solid var(--invalid-red);
	-webkit-box-shadow: 0 1px 0 0 var(--invalid-red);
	box-shadow: 0 1px 0 0 #f44336
}

select:disabled {
	color: #0000006b
}


input[type=number]::placeholder,
input[type=text]::placeholder {
    color: var(--gray-light);
}


.financity-logo {
	
	height: auto;
	float: none;
	padding-bottom: 13px;
	padding-top: 0;
	padding-left: 9px;
	padding-right: 9px;
	max-width: 260px;
	margin-left: auto;
	margin-right: auto;
	height: auto;
}

.financity-logo-image {
	max-width: 100%;
	height: auto
}

.financity-mobile-header {
	display: block;
	z-index: 99;
	position: relative;
	box-shadow: 0 1px 2px #0000001a;
	-webkit-box-shadow: 0 1px 2px #0000001a;
	background-color: var(--gray-smoke);
    padding-bottom:1px;  /* fixes a tiny layout problem*/
}

.checkout-header-container {
	display: inline-block;
	text-transform: none;
	margin-bottom: 0;
	transition: color .2s;
	-moz-transition: color .2s;
	-o-transition: color .2s;
	-webkit-transition: color .2s;
	font-size: 40px;
	font-weight: 600;
	/*color: var(--title-accent);*/
	color: var(--gray-mid);
	background-color: #f5f5f5;
	width: 100%;
	height: 65px;
	line-height:65px;
	font-family: Montserrat, sans-serif;
	text-align: center
}


.SaveButton {
	position: relative;
	overflow: hidden;
	height: 44px;
	width: 100%;
	margin-top: 10px;
	padding: 0;
	color: var(--white);
	box-shadow: inset 0 0 0 1px #78785d1a, 0 2px 5px 0 #78785d1a, 0 1px 1px 0 #00000012;
	border: 0;
	outline: 0;
	border-radius: 6px;
	cursor: pointer;
	transition: all .2s ease, box-shadow .08s ease-in;
	backface-visibility: hidden;
	background-color: var(--orange-light);
	transform: translateZ(0);
    margin-bottom:10px;
}

.SaveButton:disabled {
	cursor: default
}

.SaveButton-Text {
	display: inline;
	top: 0;
	left: 0;
	width: 100%;
	text-align: center;
	transition: all .2s ease;
	vertical-align: middle;
	font-weight: 650;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	color: var(--orange-very-light)
}

.RegistrationInput {
	border: 1px solid var(--gray-border);
	border-radius: var(--radius);
	padding: 5px 12px;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	width: 100%;
	height: 36px;
	color: var(--gray-dark);
	font-size: 15px;
	line-height: 1.5;
	box-shadow: 0 0 0 1px #e0e0e0, 0 2px 4px 0 #00000012, 0 1px 1.5px 0 #0000000d;
	transition: box-shadow .08s ease-in, color .08s ease-in, filter 50000s;
	background: var(--white);
	font-weight: 500;
	margin-bottom: 5px;
	display: inline-block
}

.RegistrationInput::placeholder {
	color: var(--gray-light)
}

.RegistrationInput:focus {
	z-index: 2;
	outline: 0;
	box-shadow: 0 0 0 1px #3297d34c, 0 1px 1px 0 #00000012, 0 0 0 4px #3297d34c
}



/* ============================================================
   SELECTORS COMMON TO 2+ PAGE FILES
   Moved here from product.css, lease.css, and/or payment.css
   ============================================================ */

@keyframes shake {
	0%,
	800% {
		transform: translateX(0)
	}

	10%,
	30%,
	50%,
	70% {
		transform: translateX(-5px)
	}

	20%,
	40%,
	60% {
		transform: translateX(5px)
	}
}

.Link {
	text-decoration: none;
	cursor: pointer
}

.flex-container {
	box-sizing: border-box;
	display: flex;
	flex-wrap: nowrap
}

.direction-column {
	flex-direction: column
}

.spacing-12 {
	margin: -6px
}


.Text {
	margin: 0
}

.Button {
	border: 1px solid transparent;
	border-radius: 6px;
	transition: background-color .1s ease-in, transform .08s ease-in;
	cursor: pointer
}

.Button-Icon {
	flex-shrink: 0;
	order: 1;
	margin-right: 0;
	margin-left: 8px;
	height: 16px;
	width: 16px;
	fill: #808080
}

.Footer {
	display: flex;
	flex-direction: column;
	align-items: center
}
/*
.CheckoutFooter-links {
	box-sizing: border-box;
	display: flex;
	flex-wrap: nowrap;
	flex-direction: row;
	
}
	*/

.CheckoutFooter-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  width: 100%;
  max-width: 600px;
  align-items: center;
  text-align: center;
}
/*
.CheckoutFooter-links img {
  max-height: 80px;
  width: auto;
  margin: 0 auto;
}
  */
.CheckoutFooter-wide {
  width: 100%;
  max-width: 600px;
  text-align: center;
}

.CheckoutFooter-wide img {
  width: 100%;
  max-width:360px;
  height: auto;
  display: block;
}

.CheckoutFooter-link {
  text-decoration: none;
  color: var(--gray-dark);
  font-size: 12px;
}

/*
.CheckoutFooter-link {
	cursor: pointer;
	display: inline;
	margin-right: 4px;
	padding: 8px 16px;
	background-color: transparent;
	border: none;
	outline: 0;
	border-radius: 0;
	text-decoration-skip-ink: none;
	text-align: center;
	color: var(--gray-dark);
	font-size: 12;
	font-weight: 400;
	align-items: center;
	justify-content: center
}
*/
.SubmitButton {
	position: relative;
	overflow: hidden;
	height: 44px;
	width: 100%;
	margin-top: 10px;
	padding: 0;
	background-color: var(--submit-button-back);
	color: #1a1a1a80;
	box-shadow: inset 0 0 0 1px #32325d1a, 0 2px 5px 0 #32325d1a, 0 1px 1px 0 #00000012;
	border: 0;
	outline: 0;
	border-radius: 6px;
	cursor: pointer;
	transition: all .2s ease, box-shadow .08s ease-in;
	backface-visibility: hidden;
	transform: translateZ(0);
    margin-bottom: 20px;
    margin-top: 20px;
}

.SubmitButton-Text {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	text-align: center;
	line-height: 44px;
	transition: all .2s ease;
	font-weight: 700;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	color: var(--gray-smoke);
}

.SubmitButton:disabled {
	cursor: default
}


body:after {
	display: block;
	content: "";
	height: 0;
	width: 100%;
	background: 0 0;
	transition: height .4s ease
}

.FieldError {
	transition: all .3s ease;
	transform-origin: top left;
	pointer-events: none;
	font-size: 13px;
	display: none
}

.FieldError-FullWidth {
	width: 100%;
}

.FieldError:not(:empty) {
	margin-top: 0px;
	display: block;
	color: red;
	background-color: #fff8;
  	border-radius: 0;
  	padding: 0px;
}

.FormFieldGroup {
	box-sizing: border-box;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	justify-content: space-between;
	padding-bottom: 10px;
	transform-origin: 0;
	position: relative;
	width: 100%
}

.FormFieldGroup-Fieldset {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	box-sizing: border-box;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	transform-origin: 0;
	width: 100%;
	padding-bottom: 0
}

.FormFieldGroup-container {
	position: relative;
	display: flex;
	flex-wrap: wrap;
    margin-top:20px;
}

.FormFieldGroup-container h3 {
    flex-basis: 100%;
    width: 100%;
    text-align: center;
}
.FormFieldGroup-container--invalid {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	pointer-events: none;
	box-shadow: 0 0 0 1px #ef9896, 0 2px 4px 0 #00000012, 0 1px 1.5px 0 #0000000d;
	border-radius: 6px;

	border: none;
	position: relative;
	display: block;
	color: red;
	font-size: 16px;
	font-weight: 600
}

.FormFieldGroup-child {
	box-sizing: border-box;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	transform-origin: 0;
	position: relative;
	width: 100%;
	margin-bottom: 10px
}


.PaymentForm-confirmPaymentContainer {
	box-sizing: border-box;
	display: flex;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	width: 100%;
	margin-top: 6px;
	flex-wrap: nowrap;
	justify-content: center;
	flex-basis: 0;
	flex-grow: 1
}


.Header-businessLink {
	display: block;
	margin-left: -24px;
	padding-left: 24px;
	min-width: 60px;
	position: relative;
	/* color: var(--white); */
	color: var(--gray-mid);
	box-sizing: border-box;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: stretch;
	z-index: 12;
	min-height: 28px
}

.Header-businessLink-label {
	opacity: 0;
	position: absolute;
	left: 0;
	transform: translateX(4px);
	transition: opacity .1s ease 0s, transform .1s ease 0s;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap
}

.Header-businessLink-name {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	margin-bottom:10px;
}


.Header-Content {
	box-sizing: border-box;
	/*display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: stretch;
	z-index: 12;*/
	min-height: 28px;
	max-width: 380px;
	margin: auto
}

.ConfirmTerms {
	line-height: 17px;
	text-align: center;
	font-size: 13px;
	width: 100%;
	display: block;
	color: #1a1a1a99
}

.discountMessage {
	transition: all .3s ease;
	transform-origin: top left;
	pointer-events: none;
	font-weight: 600;
	font-size: 15px
}


.discountMessage:not(:empty) {
	margin-top: 4px;
	background-color: #fff8;
  	border-radius: 0;
  	padding: 3px;
}

.discountFailure {
	color: red
}

.discountSuccess {
	color: green
}

.PromotionCodeEntry {
	margin-bottom: 16px;
	font-size: 14px
}

.PromotionCodeEntry-label {
	font-size: 14px;
	font-weight: 500;
	padding: 0;
	white-space: nowrap;
	height: 0;
	visibility: hidden;
	transition-property: padding
}

.PromotionCodeEntry-input {
	font-size: 14px;
	font-weight: 500;
	padding: 0;
	white-space: nowrap;
	height: 44px !important;
	transition-property: padding;
	min-width: 0px;
}
.PromotionCodeEntry-applyButton {
	border: 1px solid var(--input-element-border);
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	padding: 0;
	height: 44px !important;
	margin: 0;
	color: var(--white);
	padding-left: 10px;
	padding-right: 10px;
}

.PromotionCodeEntry-applyButton.chosen {
	box-shadow: -3px -3px 5px var(--trans-white-80), 3px 3px 5px var(--trans-white-80), -3px 3px 5px var(--trans-white-80), 3px -3px 5px var(--trans-white-80);
	background: -moz-linear-gradient(top, var(--orange-mid), var(--orange-light))
}

.Incomplete-input {
	border: 2px solid red !important;
	color: red !important
}

.RegistrationLabel {
	font-size: 14px;
	font-weight: 500;
	color: var(--gray-dark);
	padding-bottom: 5px;
	padding-top: 10px;
}

.productPopup {
	display: none;
	position: fixed;
	width: 280px;
	height: 250px;
	background: var(--white);
	z-index: 20;
	padding: 20px;
	background-color: #f0f0f0
}

#productPopup1 {
	-webkit-box-shadow: 0 0 0 9999px var(--gray-mid);
	box-shadow: 0 0 0 9999px var(--gray-mid)
}

.popupDismissButton {
	border: 1px solid var(--input-element-border);
    border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	height: 44px;
	padding-left: 10px;
	padding-right: 10px;
	width: 60px;
	color: var(--white);
	display: block;           /* make explicit rather than relying on inheritance */
    margin-left: auto;   
	margin-right: auto;
}

.popupButtonWrapper {
	display: flex;
	justify-content: center
}

.App-Container {
	min-height: 100vh;
	box-sizing: border-box;
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	background-color: transparent;
	animation: enter-no-scale .6s;
	position: relative
}

.App {
	display: flex;
	flex-direction: column;
	width: 100%;
	align-items: center;
	margin-top: 0;
	/*padding-top: 26px;*/
}

.App-Overview,
.App-Payment>* {
	max-width: 380px;
	margin: 0 auto
}

.App-Overview,
.App-Payment {
	width: 100%;
	padding: 0 16px 16px
}

.App-Overview h2 {
	/*color: var(--gray-smoke);*/
	color: var(--gray-mid);
	margin-top: 10px;
	margin-bottom: 10px;
}

.App-Overview h3 {
	color: var(--gray-mid);
	margin-top: 6px;
	margin-bottom: 6px;
}
.App-Payment {
	padding-top: 24px;
	background-color: var(--white);
	box-shadow: 0 0 30px #0000000a
}
/*
.App-Footer {
	padding-top: 16px;
	padding-bottom: 32px;
	background-color: var(--white);
	width: 100%;
	flex: 1 1 auto;
	flex-direction: column;
}
*/
.App-Footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding-top: 20px;
  padding-bottom:50px;
}

.CheckoutFooter-Badge {
    max-height: 75px;
    max-width: 75px;
    justify-self:center;
}

.LineItem-imageContainer {
	width: 42px;
	height: 42px;
	justify-content: center;
	align-items: center;
	border-radius: 4px;
	
}


.PayToday-text {
	margin: 0;
	/* color: var(--white);*/
	color: var(--gray-mid);
	font-size: 14px;
	font-weight: 500
}

.PayToday-amount {
	margin: 0;
	/*color: var(--white);*/
	color: var(--gray-mid);
	font-size: 14px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	text-align: right
}

.PayToday-monthlyText {
	margin: 0;
	/*color: var(--white);*/
	color: var(--gray-mid);
	font-size: 14px;
	font-weight: 500
}
.PayToday-monthlyAmount {
	margin: 0;
	/*color: var(--white);*/
	color: var(--gray-mid);
	font-size: 14px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	text-align: right
}

.LineItem-productName {
	margin: 0;
	/*color: var(--white);*/
	color: var(--gray-mid);
	font-size: 16px;
	font-weight: 500;
	width: 100%;
}

/* ── Sticky collapsing header ── */
.sticky-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 12px;
  background-color: #f5f5f5;        /* matches checkout-header-container */
  border-bottom: 3px solid var(--title-accent); /* teal accent line at bottom */
  box-shadow: 0 1px 2px #0000001a;  /* matches financity-mobile-header */
  transition: opacity 0.3s ease;
    display: flex;
  align-items: center;        /* vertically centers all children */
  gap: 12px;
}

#sticky-step-indicator {
  margin-left:auto;
  justify-content: center;    /* centers the pips within that space */
  display: flex;
  align-items: center;
}

.sticky-header--hidden {
  opacity: 0;
  pointer-events: none;
}

.sticky-header--visible {
  opacity: 1;
}

.sticky-header__logo {
  height: 32px;
  width: auto;
}

.sticky-header__word {
  font-family: Montserrat, sans-serif;  /* matches checkout-header-container */
  font-size: 22px;
  font-weight: 600;
  color: var(--title-accent);               /* matches checkout-header-container */
  line-height: 1;
}
/* ── Step-indicator shine animation ── */
@keyframes pip-shine {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* ── Step indicator ── */
.step-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;              /* give the 16px ::after connectors room to breathe */
  line-height: 1;         /* reset — parent checkout-header has line-height:65px */
  margin-bottom: 4px;
  padding: 4px 0;          /* breathing room so overflow:hidden doesn't clip pip edges */
  width: fit-content;      /* shrink to just the pips — constrains the shine */
  margin-left: auto;
  margin-right: auto;
  background-color: #f5f5f5;
  position: relative;
  overflow: hidden;        /* clip the shine as it slides through */
}

/* Shine sweep across the whole pip row */
.step-indicator::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;             /* above pips (z-auto) and connectors */
  pointer-events: none;   /* don't block clicks */
  transform: translateX(-100%);
  animation: pip-shine 2.1s ease-in-out infinite;
  background: linear-gradient(
    to right,
    rgba(245,245,245,0) 0%,
    rgba(245,245,245,0.7) 50%,
    rgba(245,245,245,0) 100%
  );
}

.step-pip {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background-color: var(--progress-future);
  border: 2px solid var(--progress-future);
  transition: background-color 0.3s ease, border-color 0.3s ease;
  display: block;
  position: relative;
  flex-shrink: 0;
  overflow: visible;    /* add this — ensures ::after isn't clipped */
}

/* Connector: extends rightward from each pip except the last */
.step-pip:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 110%;
  transform: translateY(-50%);
  width: 18px;
  height: 6px;
  background-color: var(--progress-future);
  transition: background-color 0.3s ease;
}

.step-pip.active {

  /*background-color: var(--title-accent);
  border-color: var(--title-accent);*/
  background-color: var(--progress-green);
  border-color:var(--progress-green);
}

.step-pip.complete {
  /*background-color: var(--title-accent);
  border-color: var(--title-accent);*/
  background-color: var(--progress-green);
  border-color:var(--progress-green);
}

.step-pip.complete:not(:last-child)::after {
  /*background-color: var(--title-accent);*/
  background-color: var(--progress-green);
}

.sticky-header .step-pip {
  width: 12px;
  height: 12px;
}

.sticky-header .step-pip:not(:last-child)::after {
  width: 16px;    /* shorter connector to match smaller pips */
}

.sticky-header .step-indicator {
  gap: 10px;      /* match the 10px connector width */
}

/* ── Step label ("Step X of 5") ── */
.step-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--gray-mid);
  white-space: nowrap;
  line-height: 1;
}

/* Main header: sits below the pips, centered */
.checkout-header-container .step-label {
  display: block;
  text-align: center;
  font-size: 14px;
  margin-top: 2px;
  margin-bottom: 4px;
  font-family: Montserrat, sans-serif;
  font-weight: 600;
  /*color: var(--title-accent);*/
  color: var(--gray-mid);
}

/* Sticky header: sits inline after the pips */
.sticky-header .step-label {
  font-size: 12px;
  flex-shrink: 0;
  font-family: Montserrat, sans-serif;
  font-weight: 600;
  /*color: var(--title-accent);*/
  color: var(--gray-mid);
}

@media only screen and (min-width:992px) {
	.checkout-header-container {
		height: 115.4px;
        line-height: 1;          /* was 115.4px — kills the flex fix */
        font-size: 60px;
        font-weight: 600;
	}

	h1 {
		font-size: 2.2em;
    	font-weight: 600;
	}

	h2 {
		font-size: 1.9em;
		font-weight: 500;
	}
	.container {
		width: 70%
	}
	.App-Container:not(.App-Container--setupMode) .RegistrationInput {
		height: 36px;
		font-size: 14px;
		transform: rotateY(0)
	}

	.Footer {
		height: 16px;
		line-height: 16px;
		flex-direction: row
	}

	.CheckoutFooter-link {
		color: var(--gray-text)
	}

	.App {
		align-items: flex-start;
		transform: translateY(max(48px, calc(50vh - 55%)));
		/*padding-top: 76px*/
	}

	.App-Container:before {
		box-shadow: 15px 0 30px 0 #0000002e;
		height: 100%;
		width: 50%;
		background: var(--white);
		position: fixed;
		content: " ";
		top: 0;
		right: 0;
		animation-fill-mode: both;
		transform-origin: right
	}

	.App-Payment {
		padding-top: 0;
		height: 100%;
		box-shadow: none;
		width: 380px;
		margin-bottom: 0;
		padding: 0;
		margin: 0;
	}

	.App-Container {
		min-height: 0;
		box-sizing: border-box;
		display: flex;
		flex-wrap: nowrap;
		justify-content: center
	}

	.App-Footer {
		width: auto;
		height: auto;
		background-color: inherit;
		padding: 0;
		position: absolute;
		left: 0;
		bottom: 0;
		margin: 12px 0;
	}

	.App-Container .App {
		animation-delay: .2s;
		animation-fill-mode: backwards;
		flex-direction: row;
		justify-content: space-between;
		max-width: 920px;
		background-image: none
	}

	.App-Overview {
		height: 800px;
		padding: 0;
		margin: 0;
		padding-bottom: 40px;
		width: 380px;
		margin-bottom: 0
	}
	

	.Header-businessLink-name {
		transition: opacity .25s ease .1s, transform .25s ease .1s
	}

	.Header-businessLink:focus .Header-businessLink-name,
	.Header-businessLink:hover .Header-businessLink-name {
		opacity: 0;
		transition: opacity .1s ease 0s, transform .1s ease 0s;
		transform: translateX(-2px);
		margin-bottom:30px;
	}

	.PaymentForm-confirmPaymentContainer {
		margin-top: 16px;
	}
	

	.SaveButton {
		margin-top: 30px;
	}
	
	.SubmitButton {
		margin-top: 30px;
	}

    .step-indicator {
        margin-top:10px;
    }
    
    .CheckoutFooter-Badge {
        max-height: 96px;
        max-width: 96px;
    }

}


/* ── Narrow phones: tighten the sticky header ── */
@media only screen and (max-width: 374px) {
  .sticky-header {
    gap: 6px;
    padding: 4px 6px;
  }
/*
  .sticky-header__logo {
    height: 24px;
  }
*/
  .sticky-header__word {
    font-size: 22px;
  }
/*
  .sticky-header .step-pip {
    width: 12px;
    height: 12px;
  }
*/
  .sticky-header .step-pip:not(:last-child)::after {
    width: 8px;
  }

  .sticky-header .step-indicator {
    gap: 6px;
  }

  .sticky-header .step-label {
    font-size: 12px;
  }
}