/*
Animations
========
*/

@keyframes slide-in-from-bottom {
  0% {
    transform: translateY(100px);
  }
  100% {
    transform: translateY(0); 
  }
}

@keyframes slide-down {
  0% { opacity: 0; transform: translateY(-100%); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes slide-up {
  0% { opacity: 0; transform: translateY(100%); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes slide-up-subtle {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes slide-left {
  0% { opacity: 0; transform: translateX(-100%); }
  100% { opacity: 1; transform: translateX(0); }
}

@keyframes slide-left-subtle {
  0% { opacity: 0; transform: translateX(-20px); }
  100% { opacity: 1; transform: translateX(0); }
}

@keyframes right {
  0% { opacity: 0; transform: translateX(100%); }
  100% { opacity: 1; transform: translateX(0); }
}

@keyframes moveBackground {
  0% {
      background-position: 0 0;
  }
  100% {
      background-position: 100% 0;
  }
}

@keyframes grow {
  from {
    width: var(--start-width, 0%);
  }
  to {
    width: var(--target-width, 0%); 
  }
}

/*
Classes
========
*/

.slide-up {
  animation: slide-up 0.2s ease-in-out;
}

.slide-up-subtle {
  animation: slide-up-subtle 0.2s ease-in-out;
}

.slide-left {
  animation: slide-left 0.2s ease-in-out;
}

.slide-left-subtle {
  animation: slide-left-subtle 0.2s ease-in-out;
}

.slide-in-from-bottom {
  transform: translateY(100px);
  animation: slide-in-from-bottom 0.5s ease-out forwards; 
  animation-timing-function: cubic-bezier(0.68, -0.6, 0.32, 1.6);
}

/*
Delays
========
*/

/*.slide-up-subtle:nth-child(1) {
  animation-delay: 0s; 
}

.slide-up-subtle:nth-child(2) {
  animation-delay: 0.5s; 
}

.slide-up-subtle:nth-child(3) {
  animation-delay: 1s; 
}

.slide-up-subtle:nth-child(4) {
  animation-delay: 1.5s; 
}*/

/*
App UI Animations
========
*/

@keyframes cells-slide-up {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}

.cells-slide-up {
  opacity: 0;
  transform: translateY(20px);
  animation: cells-slide-up 0.35s ease-out forwards;
  animation-timing-function: cubic-bezier(0.68, -0.6, 0.32, 1.6);
}

.cells-slide-up:nth-child(1) {
  animation-delay: 5s; 
}

.cells-slide-up:nth-child(2) {
  animation-delay: 5.25s; 
}

.cells-slide-up:nth-child(3) {
  animation-delay: 5.5s; 
}

.cells-slide-up:nth-child(4) {
  animation-delay: 5.75s; 
}
/* Baseline settings */

body {
	font-family: var(--font-family);
	font-display: auto;
	font-size: 1rem;
	font-weight: normal;
	line-height: 1.45;
	color: var(--black-500-color);
	-webkit-backface-visibility: hidden;
	text-shadow: 0 -1px 1px rgba(255, 255, 255, 0.01);
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5 {
	font-weight: 600;
	letter-spacing: -0.5px;
	margin: 0;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}
/*
Patterns
========
*/

.pattern {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 95px;
	background-image: url(/assets/svg/mountain-pattern-c511975ab0226ef938af98fc886a5530ea88f88d423659a63754a25771c3fbf0.svg);
	background-repeat: repeat-x;
	z-index: -1;
	animation: moveBackground 20s linear infinite;

	&.invert {
		top: auto;
		bottom: 0;
		transform: rotate(180deg);
	}
}

/*
Avatar
========
*/

.avatar {
	width: 80px;
	height: 80px;
	border-radius: 100px;
	display: flex;
	justify-content: center;
	align-items: center;

	&.green {
		background-color: var(--green-500-color);
	}

	svg {
		width: 70px;
		height: 70px;
	}
}

/*
Buttons
========
*/

.button {
	position: relative;
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 46px;
	padding: 0 16px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-weight: 700;
	font-size: var(--font-size-14);
	color: var(--white-color);
	border-radius: 0.75rem; /* 12/16 */
	transition: background-color 0.2s ease-in-out;
	border: 0;
	text-decoration: none;

	&:focus {
		border: 0;
	}

	&.primary {
		background-color: var(--green-500-color);
		box-shadow: 0 4px 0 0 var(--green-600-color);

		&:hover {
			background-color: var(--green-400-color);
		}
	}

	&.secondary {
		background-color: var(--pink-500-color);
		box-shadow: 0 4px 0 0 var(--pink-600-color);

		&:hover {
			background-color: var(--pink-500-color);
		}
	}

	&.tertiary {
		background-color: var(--grey-500-color);
		color: var(--grey-600-color);
	}

	&:disabled {
		background-color: var(--grey-500-color);
		box-shadow: none;
		color: var(--grey-600-color);
		cursor: auto;

		&:hover {
			background-color: var(--grey-500-color);
		}
	}

	&.outline-secondary {
		color: var(--pink-500-color);
		background-color: var(--pink-100-color);
		border: 2px solid var(--pink-300-color);
		box-shadow: 0 4px 0 0 var(--pink-300-color);

		&:hover {
			background-color: var(--pink-200-color);
		}
	}

	&.outline-warning {
		color: var(--yellow-500-color);
		background-color: var(--yellow-100-color);
		border: 2px solid var(--yellow-200-color);
		box-shadow: 0 4px 0 0 var(--yellow-200-color);

		&:hover {
			background-color: var(--yellow-150-color);
		}
	}

	&.outline-grey {
		color: var(--black-500-color);
		background-color: var(--white-color);
		border: 2px solid var(--grey-300-color);
		box-shadow: 0 4px 0 0 var(--grey-300-color);

		&:hover {
			background-color: var(--white-color);
		}
	}

}

.button-text {
	position: relative;
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	height: 46px;
	padding: 0 16px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-weight: 700;
	font-size: var(--font-size-14);
	text-decoration: none;
	border: none;

	&:hover {
		background-color: none !important;
	}

	&.non-interactive {
		cursor: initial;
	}

	&.primary {
		color: var(--green-500-color);
	}

	&.secondary {
		color: var(--black-500-color);
	}

	&.tertiary {
		color: var(--grey-600-color);
	}

	&.fit {
		padding: 0;
		height: auto;
	}
}

.button-circle {
	cursor: pointer;
	width: 40px;
	height: 40px;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	background-color: var(--white-color);
	border: 2px solid var(--grey-400-color);
	border-radius: 100%;
	transition: background-color  0.2s ease-in-out;

	&:hover {
		background-color: var(--grey-300-color);
	}

	&.green {
		background-color: var(--green-500-color);
		border: 2px solid var(--white-color);
		box-shadow: 0 0 0 2px var(--grey-400-color);

		&:hover {
			background-color: var(--green-400-color);
			box-shadow: 0 0 0 2px var(--green-400-color);
		}
	}

	&.transparent {
		background-color: transparent;
		border: 0;

		&:hover {
			background-color: transparent;
		}

	}
}

.button-square {
	cursor: pointer;
	width: 40px;
	height: 40px;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	background-color: var(--white-color);
	border: 2px solid var(--grey-400-color);
	border-radius: 0.75rem;
	transition: background-color  0.2s ease-in-out;

	&:hover {
		background-color: var(--grey-300-color);
	}

	&.transparent {
		background-color: transparent;
		border: 0;

		&:hover {
			background-color: var(--grey-300-color);;
		}

	}
}

/*
Inputs
========
*/

.hidden-input {
	visibility: hidden;
	position: absolute;
}

input, textarea {
	background-color: var(--white-color);
	border: 2px solid var(--grey-500-color);
	height: 58px;
	padding: 0 16px;
	border-radius: 12px;
	color: var(--black-500-color);
	transition: background-color border 0.2s ease-in-out;

	&:hover {
		background-color: var(--grey-300-color);
	}

	&:focus {
		background-color: var(--white-color);
		border-color: var(--black-500-color);
	}

	&:focus-visible {
		outline: none;
	}

	&.is-invalid {
	  border-color: var(--red-500-color);
	}

	&.is-invalid ~ label {
	  color: var(--red-500-color);
	}
}

.floating-input {

	.floating-input__container {
		position: relative;
	}

	.input-element {
		width: 100%;
	}

	.input-element:not(:placeholder-shown) ~ label {
		transform: translateY(-12px);
		font-size: var(--font-size-14);
	}

	.input-element:focus ~ label {
		transform: translateY(-12px);
		font-size: var(--font-size-14);
	}

	.input-element:not(:placeholder-shown) {
		padding-top: 16px;
	}

	.input-element:focus {
		padding-top: 16px;
	}

	label {
		pointer-events: none;
		position: absolute;
		top: 0;
		left: 0;
		height: 100%;
		display: flex;
		align-items: center;
		padding: 0 16px;
		color: var(--grey-600-color);
		transition: all  0.2s ease-in-out;
	}
}

.floating-input ~ .invalid-feedback {
	font-size: var(--font-size-14);
	color: var(--red-500-color);
	margin-top: 6px;
	padding: 0 14px;
}

.floating-input ~ .helper-text {
	font-size: var(--font-size-12);
	color: var(--grey-600-color);
	margin-top: 10px;
}

/*
Switch Input
========
*/

.input-toggle {
  position: relative;
  display: inline-block;
  width: 56px;
  height: 36px;
}

.input-toggle input { 
  opacity: 0;
  width: 0;
  height: 0;
}

.input-toggle__switch {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--grey-500-color);
  transition: .4s;
}

.input-toggle__switch:before {
  position: absolute;
  content: "";
  height: 24px;
  width: 24px;
  left: 6px;
  bottom: 6px;
  background-color: var(--white-color);
  transition: .4s;
}

input:checked + .input-toggle__switch {
  background-color: var(--green-500-color);
}

input:checked + .input-toggle__switch:before {
  transform: translateX(20px);
}

.input-toggle__switch.round {
  border-radius: 34px;
}

.input-toggle__switch.round:before {
  border-radius: 50%;
}

/*
Fake Inputs
========
*/

.fake-input {
	position: relative;
	cursor: pointer;
	background-color: var(--white-color);
	border: 2px solid var(--grey-500-color);
	height: 58px;
	padding: 16px 16px 0;
	border-radius: 12px;
	color: var(--black-500-color);

	&:hover {
		background-color: var(--grey-300-color);
	}

	.fake-input__label {
		position: absolute;
		top: 0;
		left: 0;
		height: 100%;
		display: flex;
		align-items: center;
		padding: 0 16px;
		color: var(--grey-600-color);
		transform: translateY(-12px);
		font-size: var(--font-size-14);
	}

	.fake-input__text {
		height: 100%;
		display: flex;
		align-items: center;
	}

	svg {
		position: absolute;
		right: 16px;
		top: 50%;	
		transform: translateY(-50%);
	}
}

/*
Cells
========
*/

.cell {
	background-color: var(--white-color);
	border: 2px solid var(--grey-400-color);
	padding: 14px 16px;
	border-radius: 0.75rem; /* 12/16 */
	display: flex;
	justify-content: space-between;
	cursor: pointer;
	transition: background-color  0.2s ease-in-out;
	text-decoration: none;

	&:hover {
		background-color: var(--grey-300-color);	
	}

	&.clickable {
		box-shadow: 0 3px 0 0 var(--grey-500-color);
	}

	&.empty {
		background-color: var(--grey-300-color);

		.cell__title {
			color: var(--grey-600-color);
		}

		&:hover {
			background-color: var(--grey-300-color);
			cursor: auto;
		}
	}

	&.non-interactive {
		cursor: initial;

		&:hover {
			background-color: var(--white-color);
		}
	}

	&.message {
		background-color: var(--pink-100-color);
		border-color: var(--pink-300-color);

		.cell__title {
			color: var(--pink-500-color);
		}

		&:hover {
			background-color: var(--pink-100-color);
			cursor: auto;
		}
	}

	.cell__avatar {
		width: 36px;
		height: 36px;
		display: flex;
		justify-content: center;
		align-items: center;

		&.text {
			background-color: var(--black-500-color);
			color: var(--white-color);
			font-weight: 600;
			border-radius: 100%;
		}

		&.green {
			background-color: var(--green-500-color);
		}

		&.green-200 {
			background-color: var(--green-200-color);
		}

		&.pink {
			background-color: var(--pink-500-color);
		}

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

		&.red {
			background-color: var(--red-500-color);
		}

	}

	.cell__left {
		display: flex;
		align-items: center;
		gap: 10px;
	}

	.cell__right {
		display: none;

		&.content {
			display: flex;
			width: 36px;
			height: 36px;
		}

		&.action {
			display: flex;
		}

		&.text {
			display: flex;
			align-items: center;
		}
	}

	.cell__text {
		display: flex;
		flex-direction: column;
		gap: 6px;
	}

	.cell__title {
		font-size: var(--font-size-16);
		color: var(--black-500-color);
		line-height: 1;
	}

	.cell__caption {
		font-size: var(--font-size-14);
		line-height: 1;
		color: var(--grey-600-color);
	}
}

.cell {
	&.green {
		background-color: var(--green-200-color);
		border: 2px solid var(--green-300-color);

		&.non-interactive {

			&:hover {
				background-color: var(--green-200-color);
			}
		}

		.cell__avatar {
			&.text {
				background-color: var(--green-500-color);
			}
		}

		.cell__caption {
			color: var(--green-500-color);
		}
	}
}

.cell {
	&.yellow {
		background-color: var(--yellow-100-color);
		border: 2px solid var(--yellow-200-color);

		&.non-interactive {

			&:hover {
				background-color: var(--yellow-100-color);
			}
		}

		.cell__avatar {
			&.text {
				background-color: var(--yellow-400-color);
			}
		}

		.cell__caption {
			color: var(--yellow-500-color);
		}
	}
}

.cell {
	&.pink {
		background-color: var(--pink-100-color);
		border: 2px solid var(--pink-300-color);

		&:hover {
			background-color: var(--pink-150-color);
		}

		&.non-interactive {
			&:hover {
				background-color: var(--pink-100-color);
			}
		}

		.cell__avatar {
			&.text {
				background-color: var(--pink-500-color);
			}
		}

		.cell__title {
			color: var(--pink-500-color);
		}

		.cell__caption {
			color: var(--pink-500-color);
		}
	}
}

.cell-list {
	.cell {
		border-radius: 0;
		border-bottom: 0;

		&:first-child {
			border-radius: 0.75rem 0.75rem 0 0;
		}

		&:last-child {
			border-radius: 0 0 0.75rem 0.75rem;
			border-bottom: 2px solid var(--grey-400-color);

			&:before {
				display: none;
			}
		}

		&.selected {
			position: relative;
			background-color: var(--green-200-color);
			border-color: var(--green-300-color);

			&:before {
				content: "";
				position: absolute;
				bottom: -2px;
				left: -2px;
				width: calc(100% + 4px);
				height: 2px;
				background-color: var(--green-300-color);
			}

			.cell__avatar.black {
				background-color: var(--green-500-color);
			}

			.cell__right {
				display: flex;
			}
		}

	}

	.cell-button {
		background-color: var(--white-color);
		border: 2px solid var(--grey-400-color);
		padding: 14px 16px;
		border-radius: 0.75rem 0.75rem 0 0; /* 12/16 */
		display: flex;
		justify-content: space-between;
		cursor: pointer;
		transition: background-color  0.2s ease-in-out;
		text-decoration: none;

		&:hover {
			background-color: var(--grey-300-color);	
		}

		&.top {
			margin-bottom: -2px;
		}

		.cell__left {
			display: flex;
			align-items: center;
			gap: 10px;
		}

		.cell__avatar {
			width: 36px;
			height: 36px;
			display: flex;
			justify-content: center;
			align-items: center;

			&.text {
				background-color: var(--black-500-color);
				color: var(--white-color);
				font-weight: 600;
				border-radius: 100%;
			}

			&.green {
				background-color: var(--green-500-color);
			}

			&.green-200 {
				background-color: var(--green-200-color);
			}

			&.pink {
				background-color: var(--pink-500-color);
			}

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

			&.red {
				background-color: var(--red-500-color);
			}

		}
	}
}

.cell-list.currency-max-height-onboard {
	height: calc(100vh - 278px);
  overflow-y: scroll;
  padding-bottom: 24px;
}

.cell-list.currency-max-height {
	height: calc(100vh - 216px);
  overflow-y: scroll;
  padding-bottom: 24px;
}

/*
Button List
========
*/

.action-cell-list {
	background-color: var(--white-color);
	border: 2px solid var(--grey-400-color);
	border-radius: 0.75rem;

	.action-cell {
		padding: 14px 16px;
		display: flex;
		justify-content: space-between;
		cursor: initial;
		transition: background-color  0.2s ease-in-out;
		text-decoration: none;
		border-top: 2px solid var(--grey-400-color);

		&:first-child {
			border-top: none;
		}

		.action-cell__avatar {
			width: 36px;
			height: 36px;
			display: flex;
			justify-content: center;
			align-items: center;
		}

		.action-cell__left {
			display: flex;
			align-items: center;
			gap: 10px;
		}

		.action-cell__right {
			display: flex;
		}

		.action-cell__text {
			display: flex;
			flex-direction: column;
			gap: 6px;
		}

		.action-cell__title {
			font-size: var(--font-size-16);
			color: var(--black-500-color);
			line-height: 1;
		}

		.action-cell__caption {
			font-size: var(--font-size-14);
			line-height: 1;
			color: var(--grey-600-color);
		}
	}
}

/*
Switch
========
*/

.switch {
	display: flex;

	.button-text {
		flex: 1;

		&.active {
			&:before {
				content: "";
				position: absolute;
				bottom: 0;
				left: 0;
				width: 100%;
				height: 2px;
				background-color: var(--green-500-color);
			}
		}
	}
}

/*
Highlight
========
*/

.highlight {
	width: 100%;
  min-width: 100%;
	background-color: var(--white-color);
	border: 2px solid var(--grey-400-color);
	border-radius: 0.75rem;
	height: 80px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	padding: 0 16px;

	&.green {
		background-color: var(--green-200-color);
		border: 2px solid var(--green-300-color);
	}

	&.yellow {
		background-color: var(--yellow-100-color);
		border: 2px solid var(--yellow-200-color);
	}

	&.percentage {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		text-decoration: none;
		transition: background-color  0.2s ease-in-out;

		&:hover {
			background-color: var(--grey-300-color);	
		}

		.highlight__left {
			display: flex;
			flex-direction: row;
			align-items: center;
			gap: 10px;

			.highlight__avatar {
				width: 36px;
				height: 36px;
				display: flex;
				justify-content: center;
	    	align-items: center;
			}
		}

		.highlight__value {
			display: inline-block;

			.caption {
				margin-right: 4px;
			}
		}

		.highlight__value__simple {
			display: none;
		}
	}

	&.positive {
		.circular-progress span {
			color: var(--green-500-color);
		}

		.highlight__value__simple {
			display: inline-block;
		}

		.highlight__value__complex {
			display: none;
		}

	}

	&.non-interactive {
		&:hover {
			background-color: var(--white-color);	
		}
	}

	.highlight__label {
		font-size: var(--font-size-14);
		color: var(--black-500-color);
		line-height: 1.2;
		white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
	}

	.highlight__value {
		display: inline-block;
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
		font-size: var(--font-size-24);
		font-weight: 600;
		line-height: 1.25;
		color: var(--black-500-color);
	}

	.highlight__avatar {
		width: 24px;
		height: 24px;
	}
}

/*
Icon
========
*/

.icon {
	width: 36px;
	height: 36px;

	&.small {
		width: 24px;
		height: 24px;
	}

	&.black {
		fill: var(--black-500-color);
	}

	&.white {
		fill: var(--white-color);
	}

	&.green {
		fill: var(--green-500-color);
	}

	&.red {
		fill: var(--red-500-color);
	}

	&.grey {
		fill: var(--grey-600-color);
	}

	&.pink {
		fill: var(--pink-500-color);
	}
}

/*
Navigation
========
*/

.navigation {
	width: 100%;
	height: 72px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 20px;

	&.absolute {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
	}

	.navigation__inner {
		display: flex;
		justify-content: space-between;
		width: 100%;
		max-width: 720px;
		margin: 0 auto;
	}
}

nav.landing {

	display: flex;
	justify-content: center;
	height: 88px;
	border-bottom: 1px solid var(--green-400-color);

	> div {
		max-width: 1164px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
	}

	.landing__logo {
		img {
			@media (max-width: 520px) {
				max-width: 200px;
			}

			@media (max-width: 420px) {
				max-width: 160px;
			}
		}
	}

	.landing__actions {
		display: flex;
		gap: 16px;

		@media (max-width: 720px) {
			display: none;
		}
	}

	.mobile__actions {
		display: none;
		align-items: center;

		@media (max-width: 720px) {
			display: flex;
		}

		.button-text {
			@media (max-width: 380px) {
				display: none;
			}
		}
	}
}

/*
Footer
========
*/

.sticky-footer {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 90px;
	background-color: var(--white-25-color);
	backdrop-filter: blur(100px);
	-webkit-backdrop-filter: blur(100px);
	border-top: 2px solid var(--grey-400-color);
	display: flex;
	align-items: center;

	&.stacked-actions {
		height: 152px;
	}
}

/*
Overlay
========
*/

.overlay {
	display: none;
	position: fixed;
	z-index: 1001;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--white-25-color);
	backdrop-filter: blur(100px);
	-webkit-backdrop-filter: blur(100px);
	overflow: auto;
}

/*
Calendar
========
*/

.calendar {
	background-color: var(--white-color);
	border: 2px solid var(--grey-400-color);
	border-radius: 0.75rem;
	overflow: hidden;

	.calendar__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		background-color: var(--grey-300-color);
		height: 68px;
		border-bottom: 2px solid var(--grey-400-color);
		padding: 0 16px;
	}

	.calendar__days {
		display: grid;
		grid-template-columns: repeat(7, 1fr) ;
		gap: 4px;
		padding: 8px 8px 4px 8px;

		> span {
			display: flex;
      justify-content: center;
      align-items: center;
      aspect-ratio: 1 / 1;
      font-weight: 600;
      font-size: var(--font-size-14);
		}
	}

	.calendar__body {
		display: grid;
		grid-template-columns: repeat(7, 1fr) ;
		gap: 4px;
		padding: 4px 8px 8px 8px;

		> div {
			display: flex;
      justify-content: center;
      align-items: center;
      aspect-ratio: 1 / 1;
      cursor: pointer;
      border-radius: 100%;
      font-size: var(--font-size-14);

      &:hover {
      	background-color: var(--grey-300-color);
      }

      &.current {
      	background-color: var(--grey-400-color);
      }

      &.active {
      	background-color: var(--green-500-color);
      	color: var(--white-color);
      }

		}
	}

}

.current-month .calendar {
	.calendar__header {
		a {
			visibility: hidden;
		}
	}
}

/*
Notification
========
*/

.notification-container {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  top: 16px;
  z-index: 9999; 
  text-align: center;
}

.notification {
	display: flex;
	align-items: center;
	gap: 4px;
	height: 40px;
  padding: 0 16px;
  border-radius: 100px;
  font-size: var(--font-size-12);
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  animation: slide-down 0.3s ease-in-out;
  white-space: nowrap;

  &.notification-notice {
  	background-color: var(--green-200-color);
	  color: var(--green-500-color);
	  border: 2px solid var(--green-300-color);
  }

  &.notification-alert {
  	background-color: var(--red-100-color);
	  color: var(--red-500-color);
	  border: 2px solid var(--red-300-color);
  }

  &.notification-pink-chip {
  	background-color: var(--pink-100-color);
	  color: var(--pink-500-color);
	  border: 2px solid var(--pink-300-color);
	  animation: none;
  }
}

/*
Forms
========
*/

.form-button {
	 form {
	 	display: flex;
	 	justify-content: center;
	 }

	 button {
	 	background: none;
	 }
}

/*
Progress
========
*/

.onboarding-progress {
	position: fixed;
	top: 0;
	left: 0;
	height: 4px;
	background-color: var(--green-500-color);
	border-radius: 0 100px 100px 0;
	animation: grow 0.5s forwards;

	&.third {
		width: 33.33%;
	}

	&.two-thirds {
		width: 66.66%;
	}
}

/*
Images
========
*/

.aspect-ratio-container {
  width: 100%;                
  position: relative;
  padding-top: 56.25%;       
  overflow: hidden;
  border-radius: 2rem; /* 32/16 */
}

.aspect-ratio-container img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;      
}

/*
Images
========
*/

.circular-progress {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: conic-gradient(
    #F06AB8 calc(0 * 1%), 
    #F6F6F7 0
  );
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.circular-progress::before {
  content: "";
  position: absolute;
  width: 44px; 
  height: 44px;
  background: #fff;
  border-radius: 50%;
  z-index: 0; 
}

.circular-progress span {
  position: absolute;
  font-size: var(--font-size-13);
  font-weight: 600;
  color: var(--pink-500-color);
  z-index: 0; 
}

/*
Cookie Banner
========
*/

div.cookie-banner {
	height: auto;
	padding-top: 22px;
	padding-bottom: 22px;
}

/*
Category chart
========
*/

.category-chart {
	padding: 20px 16px;
	background-color: var(--white-color);
	border: 2px solid var(--grey-400-color);
	border-radius: 0.75rem;

	.category-chart__row {
		display: flex;
		align-items: center;
		gap: 8px;
		height: 24px;
		padding: 4px 0;
		margin-top: 12px;

		&:first-child {
			margin-top: 0;
		}
	}

	.category-chart__total {
		width: 36px;
		text-align: right;
		font-size: var(--font-size-14);
	}

	.category-chart__bar {
		height: 16px;
		width: 100%;

		span {
			display: flex;
			background-color: var(--pink-500-color);
			border-radius: 0.25rem; 
			height: 100%;
		}
	}

	.category-chart__type {
		display: flex;
		align-items: center;
		gap: 8px;

		span {
			width: 120px;
			text-align: right;
			overflow: hidden;
			text-overflow: ellipsis;
			font-size: var(--font-size-14);
			white-space: nowrap;
		}
	}
}
@font-face {
    font-family: 'Montserrat';
    src: url(/fonts/Montserrat-SemiBold.woff2) format('woff2'),
        url(/fonts/Montserrat-SemiBold.woff) format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

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

@font-face {
    font-family: 'Montserrat';
    src: url(/fonts/Montserrat-Medium.woff2) format('woff2'),
        url(/fonts/Montserrat-Medium.woff) format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
/*
Marketing / Landing Page
========
*/

/*
Typography
========
*/

.marketing-xxl {
	font-size: 4.5rem; /* 56/16 */
	line-height: 1;
	letter-spacing: -1px;
}

.marketing-xl {
	font-size: 3.5rem; /* 56/16 */
	line-height: 1.125;

	@media (max-width: 720px) {
		font-size: var(--font-size-42);
		line-height: 1.125;
	}
}

.marketing-l {
	font-size: 3rem; /* 48/16 */
	line-height: 1.125;

	@media (max-width: 720px) {
		font-size: var(--font-size-42);
		line-height: 1.125;
	}

}

.marketing-caption {
	font-size: 1.3125rem; /* 21/16 */
	line-height: 1.5;

	@media (max-width: 720px) {
		font-size: var(--font-size-18);
	}
}

/*
Hero
========
*/

section.hero {
	height: 720px;
	display: flex;
	border-bottom: 1px solid var(--green-400-color);
	position: relative;
	overflow: hidden;

	@media (max-width: 1040px) {
		height: 1040px;
	}

	> div {
		display: flex;
		width: 100%;
		align-items: center; 
		gap: calc(40px);

		@media (max-width: 1040px) {
			align-items: flex-start; 
			padding-top: 56px;
			gap: calc(24px);
			flex-direction: column;
		}

		> div {
			flex: 1;
		}
	}

	h1 {
		font-size: 3.5rem; /* 72/16 */
		line-height: 1;
		letter-spacing: -1px;

		@media (max-width: 1040px) {
			text-align: center;
		}

		@media (max-width: 720px) {
			font-size: var(--font-size-42);
			line-height: 1.125;
		}
	}

	p {
		font-size: 1.3125rem; /* 21/16 */
		margin: 24px 0 32px;

		@media (max-width: 1040px) {
			text-align: center;
		}

		@media (max-width: 720px) {
			font-size: var(--font-size-18);
		}
	}

	.hero__left {

		@media (max-width: 1040px) {
			max-width: none;
			display: flex;
			flex-direction: column;
			justify-content: center;
			max-width: 720px;
			align-self: center;
		}

		.hero__actions {
			@media (max-width: 1040px) {
				display: flex;
				justify-content: center;
			}
		}
	}

	.hero__right {
  	height: 100%;
		display: flex;
		align-items: flex-end;
  	justify-content: flex-end;

		@media (max-width: 1040px) {
			position: relative;
			bottom: auto;
			right: auto;
			left: 50%;
			transform: translateX(-50%);
			margin-top: 42px;
		}

		@media (max-width: 480px) {
			left: 0;
			transform: none;
		}
	}
}

/*
App UI
========
*/

.app-ui-dashboard {
	width: 393px;
	height: 640px;
	padding: 30px 20px 0 20px;
	background-color: var(--white-color);
	border: 1px solid var(--green-400-color);
	border-bottom: none;
	border-radius: 1.875rem 1.875rem 0 0; 
	overflow: hidden;

	.app-ui-dashboard__header {
		padding: 0 10px;

		svg {
			height: 20px;
		}
	}
}

.app-ui-dashboard-shadow {
	width: 40px;
	height: 610px;
	background-color: var(--green-400-color);
	border-radius: 0 1.875rem 0 0; 
	opacity: 0.7;
}

.app-ui-months {
	width: 350px;
	position: absolute;
	top: 48px;
	left: 50%;
	transform: translateX(-50%);

	@media (max-width: 1040px) {
		width: 400px;
	}

	@media (max-width: 540px) {
		left: 30px;
		transform: none;
		width: 600px;
	}

	&:before {
		content: "";
		position: absolute;
		bottom: 0;
		z-index: 1;
		width: 100%;
		height: 90px;
		background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 100));
	}
}

.app-ui-categories {
	width: 400px;
	position: absolute;
	top: 48px;
	left: 48px;

	@media (max-width: 1040px) {
		left: 50%;
		transform: translateX(-50%);
	}

	@media (max-width: 540px) {
		left: 30px;
		transform: none;
		width: 600px;
	}

	&:before {
		content: "";
		position: absolute;
		bottom: 0;
		width: 100%;
		height: 90px;
		background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 100));
	}
}

.app-ui-insights {
	width: 720px;
	position: absolute;
	top: 48px;
	left: 50%;
	transform: translateX(-50%);
	margin-top: 90px;

	@media (max-width: 720px) {
		width: 400px;
		top: 48px;
		margin-top: 0;
	}

	@media (max-width: 540px) {
		left: 30px;
		transform: none;
		width: 600px;
	}

	&:before {
		content: "";
		position: absolute;
		left: 80px;
		bottom: 0;
		width: 100px;
		height: 170px;
		background: linear-gradient(to left, rgba(255, 255, 255, 0), rgba(255, 255, 255, 100));
		z-index: 1;

		@media (max-width: 720px) {
			display: none;
		}
	}

	&:after {
		content: "";
		position: absolute;
		right: 80px;
		bottom: 0;
		width: 100px;
		height: 170px;
		background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 100));
		z-index: 1;

		@media (max-width: 720px) {
			display: none;
		}
	}

	.grid {
		@media (max-width: 720px) {
			grid-template-columns: 1fr;
		}
	}

	.highlight.skeleton {
		position: relative;
		z-index: 0;

		@media (max-width: 720px) {
			display: none;
		}

		&:before {
			content: "";
			width: 60px;
			height: 10px;
			border-radius: 0.75rem; 
			background-color: var(--grey-400-color);
			position: absolute;
			left: 16px;
			top: 16px;
		}

		&:after {
			content: "";
			width: 32px;
			height: 10px;
			border-radius: 0.75rem; 
			background-color: var(--grey-400-color);
			position: absolute;
			left: 16px;
			top: 36px;
		}
	}
}

@media (max-width: 1040px) {
	.app-ui-insights {
		&:before {
			left: 0;
		}

		&:after {
			right: 0;
		}
	}
}

@media (max-width: 720px) {
	.app-ui-insights {
		&:before {
			bottom: 0;
			width: 100%;
			height: 90px;
			background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 100));
		}

		&:after {
			display: none;
		}
	}
}

.app-ui-expenses {
	width: 393px;
	height: 640px;
	padding: 4px 20px 0 20px;
	background-color: var(--white-color);
	border: 1px solid var(--green-400-color);
	border-bottom: none;
	border-radius: 1.875rem 1.875rem 0 0; 
	overflow: hidden;

	.overlay {
		display: block;
		position: relative;
		background-color: var(--white-color);

		a, button {
			cursor: initial;
		}

		.button-circle:hover {
			background-color: var(--white-color);
		}

		button.fake-input:hover {
				background-color: var(--white-color);
		}

		button.primary:hover {
			background-color: var(--green-500-color);
		}
	}
}

/*
Features
========
*/

section.features {
	margin-top: 96px;
}

.feature-card {
	display: flex;
	align-items: flex-end;
	height: 600px;
	background-color: var(--white-color);
	border: 1px solid var(--green-400-color);
	border-radius: 1.875rem; /* 30/16 */
	padding: 48px 0;
	position: relative;
	overflow: hidden;

	@media (max-width: 720px) {
		padding: 32px 0;
	}

	.feature-card__copy {
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
		width: 100%;
		position: relative;
		z-index: 1;
		background-color: var(--white-color);
		padding: 0 48px;

		@media (max-width: 720px) {
		padding: 0 32px;
	}

		&:before {
			content: "";
			top: -200px;
			left: 0;
			width: 100%;
			height: 200px;
			background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 100));
			position: absolute;
			z-index: -1;
		}

		> div {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
		}

		h3 {
			font-size: 2.625rem; 
			line-height: 1.125;
			letter-spacing: -1px;
			word-break: break-word;

			@media (max-width: 720px) {
				font-size: var(--font-size-36);
			}
		}

		h4 {
			color: var(--green-500-color);
			font-size: var(--font-size-24);
			font-weight: 600;
			line-height: 1;
			margin-bottom: 12px;
			letter-spacing: 0;

			@media (max-width: 720px) {
				font-size: var(--font-size-18);
			}

		}

		.button {
			white-space: nowrap;
			display: none;

			@media (max-width: 1040px) {
				display: none;
			}
		}
	}

}

.feature-card-400 {
	width: 400px;
}

.feature-card__artwork {
	width: 360px;
	position: absolute;
	margin-top: 126px;
	top: 0;
	left: 50%;
	transform: translateX(-50%);

	@media (max-width: 420px) {
		width: calc(100% - 60px);
	}
}

.feature-card__illustration {
	position: absolute;
	left: 24px;
	top: 24px;
	width: calc(100% - 48px);
	height: calc(100% - 234px);       
  overflow: hidden;
  border-radius: 1.5rem; 

  img {
	  position: absolute;
	  top: 0;
	  left: 0;
	  width: 100%;
	  height: 100%;
	  object-fit: cover;      
  }

}

.feature-card-100 {
	gap: 80px;
	align-items: center;
	padding-top: 72px;
	padding-left: 88px;
	padding-right: 88px;

	@media (max-width: 1040px) {
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		gap: 42px;
	}

	@media (max-width: 720px) {
		padding-left: 30px;
		padding-right: 30px;
	}

	.feature-card__app-ui {
		display: flex;
		align-self: flex-start;

		@media (max-width: 1040px) {
			order: 1;
			position: relative;
			left: 50%;
			transform: translateX(-50%);
		}

		@media (max-width: 520px) {
			left: 0;
			transform: none;
		}

		.app-ui-dashboard-shadow {
			margin-top: 40px;
		}
	}
}

.feature-card-illustration {
	background-image: url(/assets/artwork/moneypeas-money-artwork-24fab737605778c7886cbd69e256bb079936588737d9141b403581eab1c468ad.svg);
	background-size: cover;

	&:before {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 200px;
		background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.5) 100%);
	}

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

	h4 {
		color: var(--white-25-color) !important;
	}
}

/*
Blog
========
*/

section.articles {

	.articles__container {
		display: flex;
		justify-content: flex-start;
		overflow-x: scroll;
		gap: 48px;
		scrollbar-width: thin; 
		scroll-snap-type: x mandatory; 
  	scroll-behavior: smooth;
  	padding-left: 30px;
		padding-right: 30px;
	}

	.articles__grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 32px;

		&.col-2 {
			grid-template-columns: repeat(2, 1fr);

			@media (max-width: 720px) {
				grid-template-columns: repeat(1, 1fr);
			}
		}

		@media (max-width: 1040px) {
			grid-template-columns: repeat(2, 1fr);
		}

		@media (max-width: 720px) {
			grid-template-columns: repeat(1, 1fr);
		}
	}

	.article-card {
		display: flex;
		flex: 0 0 360px;
		flex-direction: column;
		background-color: var(--white-color);
		border: 1px solid var(--green-400-color);
		border-radius: 1.875rem;
		position: relative;
		overflow: hidden;
		text-decoration: none;
		color: var(--black-500-color);
		padding: 16px;
		transition: transform .3s;
		box-shadow: 0 0 0 0 var(--green-400-color);

		&:hover {
			transform: translateX(-10px) translateY(-10px);
			box-shadow: 20px 20px 0 0 var(--green-400-color);
		}

		@media (max-width: 720px) {
			flex: none;
			width: 100%;
			min-width: 100%;
			scroll-snap-align: center;
		}

		.aspect-ratio-container {
			border-radius: 1.25rem; 
		}

		.article-card__copy {
			display: flex;
		  flex-direction: column;
		  align-items: flex-start;
		  height: 100%;
		  justify-content: space-between;
			padding: 24px 16px 8px;

			h3 {
				font-size: 1.5rem; 
			}

			.button-text {
				padding: 0;
			}
		}
	}
}

/*
Testimonials
========
*/

section.testimonials {
	border: 1px solid var(--green-400-color);
	border-left: none;
	border-right: none;
	padding-top: 120px;
	padding-bottom: 120px;
	margin-top: 120px;

	.testimonials__container {
		display: flex;
		justify-content: flex-start;
		overflow-x: scroll;
		gap: 72px;
		scrollbar-width: thin; 
		scroll-snap-type: x mandatory; 
  	scroll-behavior: smooth;
  	padding-left: 30px;
		padding-right: 30px;

		@media (max-width: 720px) {
			gap: 24px;
		}
	}

	.testimonials__grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 32px;

		@media (max-width: 1040px) {
			grid-template-columns: repeat(2, 1fr);
		}

		@media (max-width: 720px) {
			grid-template-columns: repeat(1, 1fr);
		}
	}

	.testimonial-card {
		display: flex;
		flex-direction: column;
		justify-content: center;
		flex: 0 0 360px; 
		height: 360px;
		border: 1px solid var(--pink-500-color);
		border-radius: var(--border-radius-30);
		background-color: var(--white-color);
		padding: 48px;

		@media (max-width: 720px) {
			flex: none;
			width: 95%;
			min-width: 95%;
			scroll-snap-align: center;
		}

		p {
			text-align: center;
			font-size: 1.125rem; 
		}

		.testimonial-card__author {
			display: flex;
			align-items: center;
			width: 100%;
			justify-content: center;
			gap: 12px;

			.testimonial-card__face {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 40px;
				height: 40px;
				border-radius: 100%;
				background-color: var(--pink-500-color);
			}

			.testimonial-card__owner {
				font-size: var(--font-size-14);
				font-weight: 700;
				text-transform: uppercase;
				letter-spacing: 0.5px;
				color: var(--pink-500-color);
			}
		}

	}

}

/*
End Hero
========
*/

section.end-hero {
	height: 600px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	position: relative;

	&.away-end {
		height: 480px;
		
		> div {
			h2 {
				line-height: 1.125;
			}
		}
	}

	> div {
		h2 {
			line-height: 1;
			letter-spacing: -1px;

			@media (max-width: 720px) {
				font-size: var(--font-size-42);
				line-height: 1.125;
			}
		}

		p {
			margin: 24px 0;
		}

		img {
			position: absolute;
			bottom: -56px;
			left: 50%;
			transform: translateX(-50%);
		}
	}
}

article {
	h1, h2, h3, h4, h5 {
		margin-top: 24px;
	}

	p {
		line-height: 1.6;
		margin: 0;
		margin-top: 20px;
	}

	ul, ol {
		padding-left: 1.5rem;

		li {
			margin-top: 12px;
			line-height: 1.6;

			&:first-child {
				margin-top: 0;
			}
		}
	}
}

/*
Footer
========
*/

footer.landing {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	height: 88px;
	border-top: 1px solid var(--green-400-color);

	@media (max-width: 720px) {
		height: auto;
	}

	> div {
		@media (max-width: 720px) {
			display: flex;
			flex-direction: column;
			padding-top: 24px;
			padding-bottom: 24px;
		}
	}
}

/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */

/*
Document
========
*/

/**
Use a better box model (opinionated).
*/

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

html {
	/* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
	font-family:
		system-ui,
		'Segoe UI',
		Roboto,
		Helvetica,
		Arial,
		sans-serif,
		'Apple Color Emoji',
		'Segoe UI Emoji';
	line-height: 1.15; /* 1. Correct the line height in all browsers. */
	-webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
	-moz-tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
	tab-size: 4; /* 3 */
}

/*
Sections
========
*/

body {
	margin: 0; /* Remove the margin in all browsers. */
}

/*
Grouping content
================
*/

/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/

hr {
	height: 0; /* 1 */
	color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/

/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr[title] {
	text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/

b,
strong {
	font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
	font-family:
		ui-monospace,
		SFMono-Regular,
		Consolas,
		'Liberation Mono',
		Menlo,
		monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/

small {
	font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/*
Tabular data
============
*/

/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/

table {
	text-indent: 0; /* 1 */
	border-color: inherit; /* 2 */
}

/*
Forms
=====
*/

/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/

button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}

/**
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
	text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/

button,
[type='button'],
[type='reset'],
[type='submit'] {
	-webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/

::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/

:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/

:-moz-ui-invalid {
	box-shadow: none;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/

legend {
	padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
	vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
	-webkit-appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/

::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}

/*
Interactive
===========
*/

/*
Add the correct display in Chrome and Safari.
*/

summary {
	display: list-item;
}
/*
Widths
========
*/

.w-100 {
	width: 100%;
}

.w-100-tablet {
	@media (max-width: 1040px) {
		width: 100%;
	}
}

.mw-1164 {
	max-width: 1164px;
}

.mw-720 {
	max-width: 720px;
}

.mw-360 {
	max-width: 360px;

	@media (max-width: 400px) {
		max-width: 100%;
	}
}

/*
Heights
========
*/

.vh-100 {
	height: 100vh;
}

.h-420 {
	height: 420px;
}

.h-480 {
	height: 480px;
}

.h-24 {
	height: 24px;
}

/*
Padding
========
*/

.px-none {
	padding-left: 0;
	padding-right: 0;
}

.px-mw-1204 {
	@media (max-width: 1204px) {
		padding-left: 30px;
		padding-right: 30px;
	}
}

.px-mw-760 {
	@media (max-width: 760px) {
		padding-left: 20px;
		padding-right: 20px;
	}
}

.px-mw-400 {
	@media (max-width: 400px) {
		padding-left: 20px;
		padding-right: 20px;
	}
}

.pb-4 {
	padding-bottom: 4px;
}

.pb-90 {
	padding-bottom: 90px;
}

.pb-120 {
	padding-bottom: 120px;
}

.px-24 {
	padding-left: 24px;
	padding-right: 24px;
}

/*
Margins
========
*/

.m-auto {
	margin-left: auto;
	margin-right: auto;
}

.m-none {
	margin: 0;
}

.mt-80 {
	margin-top: 80px;
}

.mt-56 {
	margin-top: 56px;
}

.mt-56-tablet {
	@media (max-width: 1040px) {
		margin-top: 56px;
	}
}

.mt-48 {
	margin-top: 48px;
}

.mt-42 {
	margin-top: 42px;
}

.mt-32 {
	margin-top: 32px;
}

.mt-24 {
	margin-top: 24px;
}

.mt-20 {
	margin-top: 20px;
}

.mt-16 {
	margin-top: 16px;
}

.mt-12 {
	margin-top: 12px;
}

.mt-10 {
	margin-top: 10px;
}

.mt-8 {
	margin-top: 8px;
}

.mb-20 {
	margin-bottom: 20px;
}

.mb-32 {
	margin-bottom: 32px;
}

.mb-42 {
	margin-bottom: 42px;
}

.mb-120 {
	margin-bottom: 120px;
}

.mr-8 {
	margin-right: 8px;
}

.px-0-mobile {
	@media (max-width: 760px) {
		padding-left: 0;
		padding-right: 0;
	}
}

.my-96 {
	margin-top: 96px;
	margin-bottom: 96px;
}

/*
Typography
========
*/

.title {
	font-size: var(--font-size-26);
}

.subtitle {
	font-size: var(--font-size-20);
}

.body {
	font-size: var(--font-size-16);
	line-height: 1.5;
}

.caption {
	font-size: var(--font-size-14);
}

.font-14 {
	font-size: var(--font-size-14);
}

.font-12 {
	font-size: var(--font-size-12);
}

.lh-1 {
	line-height: 1;
}

.lh-1125 {
	line-height: 1.125;
}

.lh-125 {
	line-height: 1.25;
}

.lh-1-5 {
	line-height: 1.5 !important;
}

.lh-125-360 {
	@media (max-width: 360px) {
		line-height: 1.25 !important;
	}
}

.weight-500 {
	font-weight: normal;
}

.weight-600 {
	font-weight: 600;
}

.decoration-none {
	text-decoration: none;
}

.link {
	text-decoration: none;
	color: var(--black-500-color);

	&.active {
		color: var(--green-500-color);
	}
}

.text-center {
	text-align: center;
}

.text-center-tablet {
	@media (max-width: 1040px) {
		text-align: center;
	}
}

/*
Colors
========
*/

.black-500 {
	color: var(--black-500-color);
}

.green-500 {
	color: var(--green-500-color);
}

.grey-600 {
	color: var(--grey-600-color);
}

.yellow-600 {
	color: var(--yellow-500-color);
}

.pink-500 {
	color: var(--pink-500-color);
}

.bg-green-200 {
	background-color: var(--green-200-color);
}

.bg-transparent {
	background-color: transparent;
}

/*
Display
========
*/

.grid {
	display: grid;
}

.flex {
	display: flex;
}

.inline-flex {
	display: inline-flex;
}

.block {
	display: block;
}

.col-2 {
	grid-template-columns: repeat(2, 1fr);
}

.col-4 {
	grid-template-columns: repeat(4, 1fr);
}

.col-1-mobile {
	@media (max-width: 760px) {
		grid-template-columns: 1fr;
	}
}

.gap-4 {
	gap: 4px;
}

.gap-8 {
	gap: 8px;
}

.gap-10 {
	gap: 10px;
}

.gap-20 {
	gap: 20px;
}

.gap-40 {
	gap: 40px;
}

.align-items-center {
	align-items: center;
}

.column {
	flex-direction: column;
}

.space-between {
	justify-content: space-between;
}

.justify-center {
	justify-content: center;
}

.flex-1 {
	flex: 1;
}

.flex-none-tablet {
	@media (max-width: 1040px) {
		flex: none;
	}
}

.column-tablet {
	@media (max-width: 1040px) {
		flex-direction: column;
	}
}

/*
Show / Hide
========
*/

.show {
	display: block;
}

.hide {
	display: none;
}

.hide-360 {
	@media (max-width: 360px) {
		display: none;
	}
}

.hidden {
	visibility: hidden;
}

/*
Cursor
========
*/

.pointer {
	cursor: pointer;
}

.pointer--force {
	cursor: pointer !important;
}

/*
Position
========
*/

.is-sticky {
  position: fixed;
  top: 0;
  width: 100%; 
  z-index: 1000; 
  background: var(--white-25-color);
  backdrop-filter: blur(100px);
  -webkit-backdrop-filter: blur(100px);
  border-bottom: 2px solid var(--grey-400-color);
}

.relative {
	position: relative;
}

.index-1 {
	z-index: 1;
}

.index-0 {
	z-index: 0;
}

/*
Border
========
*/

.bt-green {
	border-top: 1px solid var(--green-500-color);
}

/*
Currency symbols in cells
========
*/

.currency-symbol[data-symbol="A$"],
.currency-symbol[data-symbol="C$"],
.currency-symbol[data-symbol="S$"],
.currency-symbol[data-symbol="R$"],
.currency-symbol[data-symbol="kr"] {
  font-size: var(--font-size-14);
}

.currency-symbol[data-symbol="NZ$"],
.currency-symbol[data-symbol="HK$"],
.currency-symbol[data-symbol="CHF"] {
  font-size: var(--font-size-12);
}
/* Define variables inside :root for global scope */
:root {
  --black-600-color: #060608;
  --black-500-color: #2B303B;
  --black-400-color: #343A47;

  --grey-600-color: #757575;
  --grey-500-color: #D3D3D4;
  --grey-400-color: #EAEAEB;
  --grey-300-color: #F6F6F7;

  --white-color: #ffffff;
  --white-25-color: rgba(255, 255, 255, 0.25) ;

  --green-600-color: #2CAD62; 
  --green-500-color: #32C771; 
  --green-400-color: #35D478; 
  --green-300-color: #C1EDD4; 
  --green-200-color: #EAF9F2; 

  --pink-600-color: #D45FA2;
  --pink-500-color: #F06AB8;
  --pink-300-color: #F8B5DC;
  --pink-200-color: #FEE2F2;
  --pink-150-color: #FEE2F2;
  --pink-100-color: #FEF0F8;

  --red-500-color: #C83432;
  --red-300-color: #EFC2C2;
  --red-100-color: #FAEBEB;

  --yellow-500-color: #E4A200;
  --yellow-400-color: #FDB400;
  --yellow-300-color: #FECB4D;
  --yellow-200-color: #FEE199;
  --yellow-150-color: #FFF1CC;
  --yellow-100-color: #FFF8E6;

  --font-family: 'Montserrat';

  --font-size-12: 0.75rem;
  --font-size-13: 0.8125rem; 
  --font-size-14: 0.875rem; 
  --font-size-16: 1rem; 
  --font-size-18: 1.125rem;
  --font-size-20: 1.25rem;
  --font-size-24: 1.5rem; 
  --font-size-26: 1.625rem; 
  --font-size-36: 2.25rem;
  --font-size-42: 2.625rem;

  --border-radius-30: 1.875rem;

  --breakpoint-tablet: 1040px;
  --breakpoint-mobile: 720px;
}
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */

@import 'fonts.css';
@import 'variables.css';
@import 'normalize.css';
@import 'base.css';
@import 'components.css';
@import 'marketing.css';
@import 'utility.css';
@import 'animations.css';

