@import url("https://fonts.googleapis.com/css2?family=Fraunces:wght@400;500;600;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap");

:root {
  --dark-purple: hsl(273, 85%, 13%);
  --davys-gray: hsl(271, 12%, 34%);
  --eucaplyptus: hsl(150, 100%, 63%);
  --ghost-white: hsl(274, 100%, 99%);
  --white: hsl(0, 0%, 100%);
}

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

* {
  margin: 0;
  padding: 0;
  font: inherit;
}

body {
  min-height: 100vh;
  font-size: 1.125rem;
  font-family: "Manrope", sans-serif;
  background-color: var(--white);
}

img,
picture,
svg,
video {
  display: block;
  max-width: 100%;
}

input,
textarea,
button,
select {
  font: inherit;
}

html {
  scroll-behavior: smooth;
}
a {
  text-decoration: none;
}

/* STYLESS  */
.heading {
  font-family: "Fraunces", serif;
  font-weight: 600;
}

.primary-btn {
  color: var(--dark-purple);
  padding: 1rem 1.5rem;
  background-color: var(--eucaplyptus);
  font-weight: 700;
}
.primary-btn:hover,
.primary-btn:focus {
  background-color: var(--dark-purple);
  color: var(--eucaplyptus);
  border: 2px solid var(--eucaplyptus);
}

.secondary-btn {
  line-height: 2rem;
  color: white;
  font-weight: 700;
  border-bottom: 3px solid var(--eucaplyptus);
}
.secondary-btn:hover {
  color: var(--eucaplyptus);
}

@media only screen and (min-width: 64.063em) {
  body {
    font-size: 1.125rem;
  }
}

/* HEADER && HERO */
.header {
  background-color: var(--dark-purple);
  color: var(--white);
  border-bottom-left-radius: 60% 10%;
  border-bottom-right-radius: 60% 10%;
  padding: 2rem 1rem 9.75rem;
}
.header nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 90rem;
  margin: 0 auto 4rem;
}
.hero {
  text-align: center;
}
.hero .heading {
  width: fit-content;
  font-size: 2.75rem;
  text-align: center;
  margin: 0 auto 2.5rem;
}
.hero .heading span {
  border-bottom: 2.5px solid var(--eucaplyptus);
}
.hero-img {
  position: absolute;
  width: 20rem;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 25rem auto 0 auto;
}
.bg-pattern-1 {
  display: none;
}
.bg-pattern-2 {
  display: none;
}

/* HEADER && HERO Tablet */
@media only screen and (min-width: 40.063em) {
  .header {
    padding: 2rem 2.5rem 12.5rem;
    background-image: url(/assets/images/bg-pattern-1.svg),
      url(/assets/images/bg-pattern-2.svg);
    background-position: -60% 50%, 120% 60%;
    background-repeat: no-repeat, no-repeat;
  }
  .hero {
    padding: 0 5.125rem;
  }
  .hero .heading {
    font-size: 3.75rem;
  }
  .hero-img {
    width: 32.125rem;
    margin: 28rem auto 0 auto;
  }
}
/* HEADER && HERO Desktop */
@media only screen and (min-width: 64.063em) {
  .header {
    padding: 3rem 10rem 20rem;
    background-image: url(/assets/images/bg-pattern-1.svg),
      url(/assets/images/bg-pattern-2.svg);
    background-position: -10rem 8rem, calc(100% + 4rem) 65%;
    background-repeat: no-repeat, no-repeat;
  }

  .hero .heading {
    font-size: 5rem;
  }
  .hero-img {
    width: 45rem;
    margin: 32rem auto 0 auto;
  }
}

/* MAIN */
.main {
  background-color: var(--ghost-white);
  padding: 9.5rem 1rem 7rem;
  border-bottom-left-radius: 60% 10%;
  border-bottom-right-radius: 60% 10%;
}

/* SERVICES */
.services {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.service {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  text-align: center;
}
.services .number {
  font-family: "Fraunces", serif;
  min-width: 3rem;
  aspect-ratio: 1;
  border: 1px solid var(--davys-gray);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.services .service-heading {
  font-size: 1.5rem;
  line-height: 36px;

  margin-bottom: 1rem;
}
.services .service-text {
  font-weight: 400;
  line-height: 28px;

  color: var(--davys-gray);
}

/*  Tablet*/
@media only screen and (min-width: 40.063em) {
  .main {
    padding: 9.5rem 6rem 7rem;
  }
  .services {
    margin-top: 5rem;
  }
  .service {
    flex-direction: row;
    text-align: left;
    gap: 3rem;
  }
}
/* Desktop*/
@media only screen and (min-width: 64.063em) {
  .services {
    display: flex;
    flex-direction: row;
    gap: 1.62rem;
    max-width: 69.625rem;
    margin-left: auto;
    margin-right: auto;
  }

  .service {
    text-align: center;
    flex-direction: column;
  }
}

/* FOOTER */
.footer {
  padding: 5rem 1rem 4rem;
}

.about {
  position: relative;
}
.founder-img {
  width: 16.5625rem;
  margin: 0 auto;
}

.about-text {
  position: relative;
  bottom: 3.25rem;
  background-color: var(--dark-purple);
  text-align: center;
  color: var(--white);
  padding: 2rem;
  max-width: 45.625rem;
}
.about-heading {
  font-size: 2rem;
  line-height: 3rem;
  margin-bottom: 1rem;
}
.about-content {
  line-height: 1.5rem;
  margin-bottom: 1.5rem;
}
.about-text .primary-btn {
  margin: 0 auto;
  display: inline-block;
}

.social-section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3.6rem;
  width: 7.25rem;
  margin: 0 auto;
}
.social-section .social-icons {
  display: flex;
  list-style: none;
  justify-content: space-between;
}

/* Tablet */
@media only screen and (min-width: 40.063em) {
  .footer {
    padding: 5rem 2.5rem 4rem;
  }
  .founder-img {
    width: 16.5625rem;
    margin: 0;
  }
  .about-text {
    position: relative;
    bottom: 8.25rem;
    text-align: left;
    margin-left: 10rem;
    padding: 3.5rem;
    background-image: url(/assets/images/bg-pattern-3.svg);
    background-repeat: no-repeat;
    background-position: 70% calc(100% + 6.5rem);
  }
  .about-text .primary-btn {
    margin: 0;
  }
  .about-heading {
    font-size: 3rem;
    line-height: 3.5rem;
  }
  .about-content {
    line-height: 1.75rem;
  }
  .social-section {
    margin: -5rem auto;
  }
}

/* Desktop */
@media only screen and (min-width: 64.063em) {
  .footer {
    padding: 5rem 10rem 4rem;
  }
  .about {
    margin: 0 auto;
  }
  .founder-img {
    width: 28.14294rem;
  }
  .about-heading {
    font-size: 3.5rem;
    line-height: 4rem;
    margin-bottom: 2rem;
  }
  .about-text {
    position: relative;
    bottom: 17.25rem;
    text-align: left;
    margin-left: 23rem;
    padding: 4rem;
    background-image: url(/assets/images/bg-pattern-3.svg);
    background-repeat: no-repeat;
    background-position: 70% calc(100% + 6.5rem);
  }
  .about-content {
    font-size: 1.125rem;
    line-height: 2rem;
    margin-bottom: 2rem;
  }
  .about .primary-btn {
    font-size: 1.125rem;
  }
  .social-section {
    margin: -12rem auto;
  }
}
