:root {
	--step--2: clamp(0.69rem, calc(0.66rem + 0.16vw), 0.80rem);
  	--step--1: clamp(0.83rem, calc(0.77rem + 0.25vw), 1.00rem);
  	--step-0: clamp(1.00rem, calc(0.91rem + 0.38vw), 1.25rem);
  	--step-1: clamp(1.20rem, calc(1.07rem + 0.54vw), 1.56rem);
  	--step-2: clamp(1.44rem, calc(1.26rem + 0.77vw), 1.95rem);
  	--step-3: clamp(1.73rem, calc(1.48rem + 1.07vw), 2.44rem);
  	--step-4: clamp(2.07rem, calc(1.73rem + 1.47vw), 3.05rem);
  	--step-5: clamp(2.49rem, calc(2.02rem + 1.99vw), 3.82rem);

	--clr-primary-very-dark-blue: hsl(243, 87%, 12%);
	--clr-primary-desaturated-blue: hsl(238, 22%, 44%);
	--clr-accent-bright-blue: hsl(224, 93%, 58%);
	--clr-accent-moderate-cyan: hsl(170, 45%, 43%);
	--clr-neutral-light-grayish-blue: hsl(240, 75%, 58%);
	--clr-neutral-light-gray: hsl(0, 0%, 75%);

	--font-heading: 'Raleway', sans-serif;;
	--font-body: 'Open Sans', sans-serif;;

	--fw-400: 400;
	--fw-700: 700;
}

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

.header,
.section,
.section-intro,
.section-bottom-wrap,
.footer-content {
	margin: 0 auto;
	width: 90%;
}

.img-wrap__section img {
	max-width: 100%;
}

a,
button {
	text-decoration: none;
	font: inherit;
	border: none;
	cursor: pointer;
}

/* ===========
	Header
============*/
.header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: clamp(2.25rem, calc(2.16rem + 0.38vw), 2.50rem);
	padding: 2rem 0;
	font-family: var(--font-heading);
}

.logo-wrap img {
	width: clamp(5.81rem, calc(4.73rem + 4.57vw), 8.85rem);
}

.nav-list {
	list-style: none;
	display: flex;
	gap: clamp(1.13rem, calc(0.54rem + 2.49vw), 2.38rem);
}

.nav-list a {
	color: var(--clr-primary-very-dark-blue);
	font-size: clamp(0.70rem, calc(0.70rem + 0.25vw), 2.00rem);
}

.nav-list a:hover,
.nav-list a:focus {
	text-decoration: underline;
}

/* ===========
	Main
============*/
.main {
	font-family: var(--font-body);
}

.section {
	display: flex;
	flex-direction: column-reverse;
}

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

h1,
h2,
p {
	margin-bottom: 1.5rem;
	color: var(--clr-primary-very-dark-blue);
}

h1 {
	font-size: var(--step-2);
}

h2 {
	font-size: var(--step-2);
}

p {
	font-size: var(--step-0);
}

/* Section Intro */
.text-content__section-intro {
	margin-bottom: 8rem;
}

.text-content__section-intro p {
	line-height: 1.6;
	font-size: clamp(0.83rem, calc(0.77rem + 0.25vw), 1.00rem);
}

.img-wrap__section img {
	margin-bottom: 2rem;
}

.input-box {
	position: relative;
}

.sign-up-email {
	width: 100%;
	padding: .7rem 1.2rem;
	margin-bottom: 1rem;
	border: 2px solid var(--clr-neutral-light-gray);
	border-radius: .2rem;
	font-size: var(--step--1);
}

.placeholder {
	position: absolute;
	top: 0;
	padding: .7rem 1.2rem;
	color: var(--clr-neutral-light-gray);
	pointer-events: none;
	font-size: var(--step--1);
	transition: .3s;
}

.sign-up-email:valid ~ .placeholder,
.sign-up-email:focus ~ .placeholder {
  transform: translateX(10px) translateY(-10px);
  background-color: #fff;
  padding: 0 .5rem;
  font-weight: 700;
  font-size: var(--step--2);
  letter-spacing: .1rem;
}

.section-bottom .sign-up-email:valid ~ .placeholder,
.section-bottom .sign-up-email:focus ~ .placeholder {
	border-top: .1rem solid black;
	border-radius: .3rem;
	background-color: #fff;
}

.btn-sign-up { 
	background-color: var(--clr-accent-bright-blue);
	color: #fff;
	width: 100%;
	padding: .7rem;
	border-radius: .2rem;
	font-size: var(--step--1);
}

.btn-sign-up:hover,
.btn-sign-up:focus {
	background-color: hsl(224, 91%, 68%);
}

@media (min-width: 632px) {
	.input-box {
		display: grid;
		grid-template-columns: 2fr 1fr;
		align-items: center;
		grid-gap: .5rem;
	}

	.sign-up-email {
		margin: 0;
	}
}

.curve-desktop {
	display: block;
	width: 100%;
}

/* Section Testimonial */
.section-testimonial {
	background-color: #F8F8FE;
}

.text-content__section-testimonial {
	margin-top: 3rem;
}

.text-content__section-testimonial p {
	text-align: left;
	font-size: var(--step--1);
}

.link-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: row;
	gap: .3rem;
}

.link {
	line-height: 2;
	color: var(--clr-accent-moderate-cyan);
	font-size: var(--step--1);
}

.link:hover,
.link:focus {
	color: hsl(170, 45%, 70%);
}

.line {
	border: 1px solid var(--clr-accent-moderate-cyan);
	margin: 0 auto;
	max-width: calc(148rem / 16);
	margin-bottom: 2rem;	
}

/* Testimonial */
.testimonial {
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
	padding: 2rem;
	padding-right: 1rem;
	text-align: left;
	margin-bottom: 8rem; 
}

.testimonial p {
	font-size: .8rem;
	line-height: 1.4;
	margin-bottom: 1rem;
}

.icon-quotes {
	min-width: 6%;
	margin-bottom: .5rem;
}

/* Avatar */
.avatar-box {
	display: flex;
	align-items: center;
	gap: .5rem;
}

.img__avatar {
	display: block;
	max-width: 12%;
	border-radius: 50%;
}

.info-box__avatar {
	flex-direction: column;
	display: flex;
}

.name {
	font-weight: var(--fw-700);
	font-size: .8rem;
}

.job {
	font-size: .6rem;
	color: var(--clr-primary-desaturated-blue);
}

/* Section Bottom */
.section-bottom {
	display: block;
	background-color: var(--clr-primary-desaturated-blue);
	padding: 3rem 1rem;
	width: 100%;
}

.section-bottom p,
.section-bottom h2 {
	color: #fff;
}

.section-bottom .input-box {
	display: block;
	margin: 0 auto;
	width: 100%;
}

.section-bottom .sign-up-email {
	margin-bottom: .5rem;
}

.section-bottom .btn-sign-up {
	margin-bottom: 3rem;
	font-size: var(--step--1); 
}

@media (min-width: 768px) {
	.section {
		flex-direction: row;
		align-items: center;
		gap: clamp(1rem, 1.25rem + 2vw, 10rem);
	}

	.text-content {
		text-align: left;
	}

	.section-intro .img-wrap__section img {
		width: 100rem;
	}

	.section-testimonial .img-wrap__section img {
		width: 65rem;
	}

	.text-content__section-testimonial p {
		margin-inline-end: 4rem;	
	}

	.section .img-wrap__section img,
	.section .text-content__section-intro {
		margin-bottom: 0;
	}

	.img-wrap__section img {
		width: 30rem;
	}

	.section-intro .input-box {
		display: block;
	}

	.section-intro .btn-sign-up {
		margin-top: 1rem;
	}

	.curve-desktop {
		margin-top: 10rem;
	}

	.link-wrap {
		justify-content: flex-start;
	}

	.line {
		margin: 0;
		margin-bottom: 2rem;
	}

	.testimonial {
		width: calc(350rem / 16);
		padding-inline-end: 0;
	}

	.testimonial p {
		margin-inline-end: 2rem;
	}

}

@media (min-width: 1024px) {
	.section-intro .input-box {
		display: grid;
		align-items: center;
    grid-template-columns: 3fr 2fr;
	}

	.section-intro .btn-sign-up {
		margin: 0;
	} 

	.section-bottom-wrap {
		display: flex;
		flex-direction: row;
		align-items: center;
		gap: 5rem;
		padding: 3rem 0;
	}

	.section-bottom .btn-sign-up {
		width: 60%;
	}
}

@media (min-width: 768px) and (max-width: 845px) {
	h1 {
		margin-inline-end: -5rem;
	}

	.text-content__section-testimonial h2 {
		margin-inline-end: -10rem;
	}

	.text-content__section-testimonial p {
		margin-inline-end: 0;	
	}

	.testimonial {
		width: 100%;
	}

	.testimonial p {
		margin-inline-end: 3rem;
	}
}

@media (min-width: 1391px) {
	.section-intro .btn-sign-up {
		margin: 0;
/*		margin-inline-start: .5rem;*/
		width: 60%;
	}
}

/* ===========
	Footer
============*/
.footer {
	background-color: var(--clr-primary-very-dark-blue);
	font-family: var(--font-body);
}

.footer-content {
	padding: 3rem 0;
	width: 90%;
}

.footer a {
	color: #fff;
}

.footer a:hover,
.footer a:focus {
	color: var(--clr-primary-desaturated-blue);
}

.logo-footer path {
	fill: #fff;
}

.columns {
	color: #fff;
	font-size: var(--step--1);
}

.footer-list {
	list-style: none;
}

/* Column one */
.col-one {
	padding: 2rem 0;
}

.footer-list li {
	margin-bottom: 1rem;
}

.col-one img {
	padding-inline-end: 1rem;
}

/* Column two */
.col-two li:nth-of-type(4) {
	margin-bottom: 2rem;
}

/* Column Three */
.icons-box {
  display: flex;
  justify-content: center;
  gap: .5rem;
  padding-top: 2rem;
}

.icons-box li {
  border: 1px solid #fff;
  border-radius: 50%;
}

.icons-box a {
  display: grid;
  place-items: center;
  padding: .3rem;
}

.icons-box a svg {
	aspect-ratio: 1 / 1;
}

.icons-box a:focus,
.icons-box a:hover {
	color: var(--clr-accent-bright-blue);
}

.icons-box li:hover,
.icons-box li:focus {
	border: 1px solid var(--clr-accent-bright-blue);
	border-radius: 50%;
}

@media (min-width: 768px) {
	.footer-content {
		padding-top: 5rem;
	}

	.columns {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		align-items: baseline;
	}

	.col-one {
		padding: 0;
	}

	.col-two {
		columns: 2;
	}

	.icons-box {
		padding: 0;
	}
}

.attribution {
	font-size: 1rem;
	text-align: center;
	background-color: #fff;
	margin-bottom: 0;
}

.attribution a {
	color: hsl(228, 75%, 44%);
}