* {
        font-family: 'Epilogue', sans;
        line-height: 1.5em;
        font-weight: 400;
}

h1, h2, h3, h4, strong {
        font-weight: 500;
}

a {
        color: #3874F4;
}

body {
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        background: #F6F6F6;
}

@media only screen and (min-width: 1921px) {
        body {
          font-size: 20px;
        }      
}       

body#forms {
        background: linear-gradient(103deg, rgba(93, 92, 255, 0.21) 10.43%, rgba(195, 221, 244, 0.25) 87.43%);
}

.spinner::after {
  content: '';
  box-sizing: border-box;
  width: 40px;
  height: 40px;
  position: absolute;
  top: calc(60%);
  left: calc(50% - 20px);
  border-radius: 50%;
  z-index: -1;
}

.spinner.material::after {
  border-top: 4px solid rgba(255, 255, 255, 1.0);
  border-left: 4px solid rgba(255, 255, 255, 1.0);
  border-bottom: 4px solid rgba(255, 255, 255, 1.0);
  border-right: 4px solid rgba(255, 255, 255, 0.0);
  animation: spinner .6s linear infinite;
}

@keyframes spinner {
  to {transform: rotate(360deg);}
}

.logo-hardcap, .logo-hardcap a {
        font-size: 1.25em;
        font-weight: 500;
        text-decoration: none;
        color: black;
}

.button-a {
        display: flex;
        padding: 10px 20px;
        justify-content: center;
        align-items: center;
        gap: 10px;

        color: white;
        text-decoration: none;
        text-align: center;

        border-radius: 5px;
        background: linear-gradient(180deg, #3874F4 0%, #5D5CFF 100%);
}

.main-nav {
        display: flex;
        gap: 25px;
}

#header {
        display: flex;
        align-items: stretch;
        box-shadow: 0px 4px 10px 0px rgba(2, 12, 63, 0.10);
        width: 80%;
        padding: 20px 10%;
        background: white;
}

#header > .container {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
}

@media only screen and (min-width: 320px) and (max-width: 690px) {
        #header > .container {
                flex-direction: column;
                gap: 20px;
        }

        .main-nav .button-a {
                width: 50%;
        }
}

#hero strong {
  position: relative;
}

#hero strong::after {
    content: '';
    position: absolute;
    bottom: -0.3em;
    left: -0.25em;
    right: -0.25em;
    height: .3em;

    background-image: url("underline.svg");
    background-position: center;
    background-repeat: no-repeat;
}


#hero {
        display: flex;
        padding: 90px 10%;
        width: 80%;
        min-height: calc(100vh - 100px - 180px);
        flex-direction: column;
        justify-content: center;
        align-items: center;
/*        background: linear-gradient(103deg, rgba(93, 92, 255, 0.21) 10.43%, rgba(195, 221, 244, 0.25) 87.43%);*/
        background: linear-gradient(90deg, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0.50) 100%), url("bg-hero.jpg");
        background-size: cover;
        text-align: center;
        margin-bottom: 50px;
}

#hero p {
        margin-top: 0;
        margin-bottom: 0.5em;
        max-width: 55em;
}

@media only screen and (min-width: 1281px) {
        #hero p {
                max-width: initial;
        }
}

#hero h1 {
        margin-bottom: 1.5em;
        line-height: 1.45em;
}

#hero .button-a {
        margin-top: 3em;
}

#how-it-works,
#target-profiles,
#faq {
        display: flex;
        align-items: center;
        flex-direction: column;
        width: 80%;
        margin-bottom: 100px;
        gap: 40px;
}

#how-it-works {
        gap: 0;
}

#how-it-works h2 {
        margin-bottom: 0;
        text-align: center;
}

#how-it-works > h3 {
        margin-top: 0;
}

#how-it-works .button-a {
        margin-top: 50px;
}

#target-profiles {
       width: 100%;
       margin-bottom: 50px;
       margin-top: 100px;
}

#how-it-works,
#target-profiles .columns > div {
        padding: 50px 50px;
        border-radius: 10px;
        border: 1px solid #DCDFF9;
        background: white;
}

#how-it-works {
        width: calc(80% - 100px);
}



#how-it-works .columns,
#target-profiles .columns {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-around;
        gap: 50px;
}


#target-profiles .columns {
        align-items: stretch;
}

#how-it-works .columns > div,
#target-profiles .columns > div {
        width: 30%;
        text-align: center;
}

#how-it-works h3 {
        min-height: 3em;
        letter-spacing: -0.025em;
}

#how-it-works .other h3 {
        min-height: auto;
}


@media only screen and (min-width: 320px) and (max-width: 1000px) {
        
        #how-it-works .columns,
        #target-profiles .columns {
                flex-direction: column;
        }
        
        #how-it-works .columns > div {
                width: 100%;
        }

        #how-it-works h3 {
                min-height: auto;
        }

        #target-profiles .columns > div {
                border: none;
                padding: 0;
                width: 100%;
        }

}

#form {
        width: 80%;
        margin: 50px auto;
        display: flex;
        flex-direction: column;
        gap: 30px;
        text-align: center;
}

@media only screen and (min-width: 320px) and (max-width: 1440px) {
        #header {
                padding: 20px 5%;
        }

        #header,
        #target-profiles,
        #form,
        #faq {
                width: 90%;
        }

        #how-it-works {
                width: calc(90% - 3em);
                padding: 50px 1.5em;
        }


}

@media only screen and (min-width: 320px) and (max-width: 550px) {
        #form {
                width: 100%;
                margin-bottom: 0;
        }
}

#form h1, #form p {
        margin: 0;
}

#form p {
        margin-bottom: 2em;
}

#footer {
        display: flex;
        padding: 90px 10%;
        width: 80%;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        background: linear-gradient(103deg, rgba(93, 92, 255, 0.21) 10.43%, rgba(195, 221, 244, 0.25) 87.43%);
        text-align: center;
}



/* Core styles/functionality */
.tab input {
  position: absolute;
  opacity: 0;
  z-index: -1;
}
.tab__content {
  max-height: 0;
  overflow: hidden;
  transition: all 0.35s;
}
.tab input:checked ~ .tab__content {
  max-height: initial;
}

/* Visual styles */
.accordion {
  overflow: hidden;
}

.tab__label,
.tab__close {
  display: flex;
  cursor: pointer;
  border: 1px solid #DCDFF9;
  border-radius: 10px;
  background: white;  
}

.tab input:checked ~ .tab__label {
  background: #DCDFF9;
}

.tab__label {
  align-items: center;
  justify-content: space-between;
  padding: 2em;
}

.tab__label::after {
  content: '';
  width: 20px;
  height: 13px;
  background-image: url("arrow.svg");
  background-repeat: no-repeat;
  transform: rotate(180deg);
  transition: all 0.35s;
}

.tab input:checked + .tab__label::after {
  transform: rotate(0deg);
}

.tab__content p,
.tab__content h3 {
  margin-bottom: 1em;
  padding: 0 2rem;
}

.tab__content h3 {
        text-decoration: underline;
}

.tab__content li {
        margin-left: 1.5rem;
}