:root {
  --neutral-50: #F8FAFC;
  --neutral-100: #F1F5F9;
  --neutral-200: #E2E8F0;
  --neutral-300: #CBD5E1;
  --neutral-400: #94A3B8;
  --neutral-500: #64748B;
  --neutral-600: #475569;
  --neutral-700: #334155;
  --neutral-800: #1E293B;
  --neutral-900: #0F172A;
  --neutral-950: #091020;
  --brand-50: #F2F7FD;
  --brand-100: #E5EEF9;
  --brand-200: #C4DBF3;
  --brand-300: #90BDE9;
  --brand-400: #559BDB;
  --brand-500: #3182CE;
  --brand-600: #2062A9;
  --brand-700: #1B4F89;
  --brand-800: #1A4472;
  --brand-900: #1B3A5F;
  --brand-950: #12253F;
  --page-padding: max(1rem, 4vw);
  --page-container: 1920px;
}

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  font-family: "Nunito", sans-serif !important;
  font-size: 1rem;
  color: var(--neutral-800);
}

span, strong, p {
  font-size: inherit;
  color: inherit;
}

body {
  background-color: #FFF;
}

main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

section {
  width: 100%;
}

header {
  position: fixed;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  width: 100%;
  height: 90px;
  padding: 0 var(--page-padding);
  background-color: transparent;
  z-index: 1;
  transition: all 0.3s ease-in;
}

header.active {
  background-color: #FFF;
  box-shadow: 0px 2px 4px -2px hsla(222, 52%, 19%, 0.05), 0px 4px 6px -1px hsla(222, 52%, 19%, 0.05);
  transition: all 0.3s ease-in;
}

.logo {
  width: min(34vw, 161px);
}

.cta-button {
  padding: 0.5rem 1rem;
  border-radius: 4px;
  background-color: var(--brand-600);
  color: #FFF;
  text-decoration: none;
}

.cta-button:hover,
#rd-button-joq3m2m5a:hover {
  background-color: var(--brand-700);
}

#hero {
  display: grid;
  grid-template-columns: min(65%, 980px) auto;
  grid-template-rows: auto 30% auto;
  align-content: flex-end;
  grid-template-areas:
  "title ."
  "description ."
  "business business"
  ;
  gap: 1rem 0;
  background: url("./assets/images/hero.png") no-repeat right -5vh/ cover;
  height: 100vh;
  max-height: 1400px;
  min-height: 780px;
}

#hero h1 {
  grid-area: title;
  padding: 0 var(--page-padding);
  font-size: clamp(1.8rem, 2.4vw + 1.5rem, 4rem);
  font-weight: 800;
  line-height: 115%;
  color: #FFF;
}

#hero .description {
  grid-area: description;
  padding: 0 var(--page-padding);
  color: var(--neutral-300);
  font-size: clamp(1.1rem, 2vw + 0.5rem, 1.8rem);
}

/* CONCURSOS E VESTIBULARES */

#hero .benefits {
  grid-area: business;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem 2rem;
  width: min(90%, 1040px);
  height: fit-content;
  min-height: 120px;
  margin-right: max(10vw, 2rem);
  padding: 1.5rem 4.5rem 1.5rem var(--page-padding);
  background-color: var(--brand-600);
  border-radius: 0 8px 8px 0;
}

#hero .benefit {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem 0.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  text-align: center;
  color: var(--brand-50);
}

/* ---------------------------------- */

/* CONCURSOS, TREINAMENTOS E EVENTOS */

.business-types {
  grid-area: business;
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1rem 3.5rem;
  width: min(90%, 1920px);
  height: fit-content;
  min-height: 120px;
  margin-right: max(10vw, 2rem);
  padding: 1.5rem 2.5rem 1.5rem var(--page-padding);
  background-color: var(--brand-600);
  border-radius: 0 8px 8px 0;
}

.business {
  flex: 1 1 280px;
  display: grid;
  grid-template-columns: 40px auto;
  align-content: flex-start;
  justify-content: flex-start;
  gap: 0.25rem;
  grid-template-areas:
  "title title"
  "image description"
  ;
  color: var(--neutral-200);
}

.business strong {
  grid-area: title;
  font-size: 1.1rem;
  color: #FFF;
}

.business img {
  grid-area: image;
}

.business p {
  grid-area: description;
  font-size: 1rem;
}

/* ---------------------------------- */

#details {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 2rem;
  padding: 4rem var(--page-padding);
  max-width: var(--page-container);
}

#details h2 {
  width: min(100%, 900px);
  text-align: center;
  font-size: clamp(1.8rem, 4vw + 1rem, 3rem);
  margin-bottom: 2rem;
}

#details .steps-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4rem;
  counter-reset: step;
}

#details .steps-list .step {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 2rem 3rem;
  width: min(100%, 780px);
  padding: 1rem 0;
}

#details .steps-list .step img {
  width: min(25%, 208px);
  min-width: 140px;
  filter: drop-shadow(0 2px 3px rgba(22, 36, 58, 0.2));
}

.steps-list .step a {
  font-weight: 600;
  color: var(--brand-600);
}

.steps-list .step .step-details-container {
  flex: 1 1 55%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.25rem;
}

.steps-list .step .step-details-container::before {
  padding: 0.25rem 1.25rem;
  margin-bottom: 0.5rem;
  counter-increment: step;
  content: counter(step);
  font-weight: 700;
  border-radius: 8px 0 8px 0;
  background-color: var(--brand-500);
  color: var(--brand-50);
}

#details .steps-list .step:nth-child(odd) {
  flex-direction: row-reverse;
}

#benefits {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: min(95%, 1280px);
  background-color: var(--brand-100);
  border-radius: 8px;
  overflow: hidden;
}

#benefits h2 {
  padding: 0.5rem 1rem;
  font-size: clamp(1.2rem, 2vw + 1rem, 1.8rem);
  text-align: center;
  background-color: var(--brand-600);
  color: var(--brand-50);
  border-radius: 8px;
}

.benefits-list {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 2rem 2.5rem;
  padding: 1rem 2rem 2.5rem;
}

.benefits-list .benefit {
  flex: 1 1 320px;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.benefits-list .benefit h3 {
  font-size: 1.125rem;
}

.benefits-list .benefit img {
  width: clamp(1.8rem, 2vw + 1rem, 40px);
  height: auto;
}

.benefits-list .benefit p {
  color: var(--neutral-700);
}

#faq {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 3rem var(--page-padding) 4rem;
  max-width: var(--page-container);
}

#faq h2 {
  width: min(100%, 900px);
  text-align: center;
  font-size: clamp(1.8rem, 4vw + 1rem, 3rem);
  margin-bottom: 2rem;
}

details {
  width: min(100%, 980px);
  overflow: hidden;
  font-size: clamp(1rem, 2vw + 0.2rem, 1.2rem);
  background-color: var(--neutral-100);
}

summary {
  position: relative;
  padding: 1rem 2.5rem 1rem 0.5rem;
  width: calc(100% + 1rem);
  font-weight: 700;
  font-size: clamp(1rem, 2vw + 0.2rem, 1.2rem);
  border-bottom: 1px solid var(--neutral-200);
  background-color: #FFF;
}

summary:hover {
  cursor: pointer;
}

summary::marker,
summary::-webkit-details-marker {
  content: none;
  color: transparent;
}

details > summary::after {
  position: absolute;
  right: 16px;
  top: calc(50% - 12px);
  content: "";
  width: 18px;
  height: 18px;
  background: url("./assets/icons/chevron-down.svg");
}

details[open] > summary::after {
  background: url("./assets/icons/chevron-up.svg");
}

details p {
  margin: 1rem 1.25rem;
  color: var(--neutral-700);
}

#contact {
  display: grid;
  grid-template-columns: min(45%, 720px) 480px;
	grid-template-rows: auto auto auto 180px;
  justify-content: center;
  justify-items: center;
  align-items: center;
  grid-template-areas:
  ". form"
  "title form"
  "description form"
  ". form"
  ;
  gap: 2rem min(5%, 4rem);
  width: 100%;
  height: 580px;
  padding: 3rem var(--page-padding) 0;
  background-color: var(--brand-100);
}

#contact h2 {
  grid-area: title;
  color: var(--brand-950);
  font-size: clamp(1.8rem, 3.3vw + 0.2rem, 3rem);
  line-height: 112%;
}

#contact ul {
  grid-area: description;
  width: min(100%, 560px);
}

#contact li {
  font-size: clamp(1.125rem, 2vw + 0.2rem, 1.5rem);
  color: var(--neutral-700);
}

#contact li + li {
  margin-top: 1rem;
}

#contact-form,
#formulario-site-idsync-contato-geral-f23865a05876a321f131 {
  grid-area: form;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: min(100%, 480px);
  padding: 1rem;
  background-color: #FFF;
  border-radius: 8px;
  border: 1px solid var(--neutral-100);
  box-shadow: 0px 8px 10px -6px hsla(222, 52%, 19%, 0.1), 0px 20px 25px -5px hsla(222, 52%, 19%, 0.1);
}

#contact-form label,
#rdstation-bricks-embeddable-form-bricks-component-01H8eVqSZ0l8OdDSNnQsXw .bricks-form__label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-weight: 700 !important;
  color: var(--neutral-700) !important;
}

#contact-form input,
#rd-form-joq3m2m5i .bricks-form__input {
  padding: 0.75rem 0.5rem;
  background-color: var(--neutral-50) !important;
  color: var(--neutral-700) !important;
  border: 1px solid var(--neutral-200) !important;
  border-radius: 4px !important;
}

#contact-form input:focus {
  outline: 2px solid var(--neutral-300);
}

#contact-form button {
  margin-top: 1rem;
  padding: 0.75rem 1.5rem;
  border-radius: 30px;
  background-color: var(--brand-600);
  border: 0;
  color: #FFF;
}

#contact-form button:hover {
  cursor: pointer;
  background-color: var(--brand-700);
}

#rd-text-k1td3sed {
  display: none !important;
}

footer {
  padding: 1.5rem var(--page-padding);
  background-color: var(--brand-950);
  color: var(--neutral-50);
}

.footer-logos-container {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 1rem;
  width: fit-content;
  gap: 1.5rem;
}

.footer-logos-container img + img {
  padding-left: 1.5rem;
  border-left: 2px solid var(--neutral-700);
}

@media screen and (min-width: 1440px) and (max-width: 1720px) {
  #hero {
    background: url("./assets/images/hero.png") no-repeat 68% -5vh/ cover;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1440px) {
  #hero {
    background: url("./assets/images/hero.png") no-repeat 68% -5vh/ cover;
    max-height: 800px;
  }
}

@media screen and (min-width: 899px) and (max-width: 1280px) {
  #hero {
    background: url("./assets/images/hero.png") no-repeat 68% -5vh/ cover;
    max-height: 720px;
  }
}

@media screen and (max-width: 1280px) {
  .business-types {
    gap: 2rem;
    width: 95%;
    padding: 1.5rem 1rem 1.5rem var(--page-padding);
  }

  .business strong,
  .business p {
    font-size: 0.95rem;
  }

  #contact ul {
    padding-left: 2rem;
  }
}

@media screen and (max-width: 1030px) {
  #hero {
    grid-template-columns: 100%;
    grid-template-rows: 20px auto 58% 10%;
    grid-template-areas:
    "."
    "title"
    "description"
    "business"
    ;
    gap: 0.5rem;
    justify-items: center;
    background:
      url("./assets/images/hero-trim.png") no-repeat center bottom/ max(55%, 520px),
      linear-gradient(99.78deg, #2F312F 3.39%, #303130 3.4%, #353535 22.63%, #343333 45.49%, #2A2A2A 64.6%, #242524 77.66%, #212121 91.56%)
    ;
    height: 90vh;
    max-height: 800px;
    /* max-height: none; */
    /* margin-bottom: 200px; */
  }

  #hero h1,
  #hero .description {
    text-align: center;
    width: min(100%, 800px);
  }

  /* CONCURSOS E VESTIBULARES */

  #hero {
    margin-bottom: 60px;
  }

  #hero .benefits {
    grid-area: business;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem 2rem;
    width: min(95%, 1040px);
    margin: 0 auto;
    padding: 1.5rem;
    border-radius: 8px;
  }

  #hero .benefit {
    font-size: 1rem;
  }

/* ---------------------------------- */

/* CONCURSOS, TREINAMENTOS E EVENTOS */

  .business-types {
    flex-direction: column;
    gap: 1.5rem;
    width: fit-content;
    max-width: 95%;
    align-items: center;
    margin: 0 auto;
    padding: 1.5rem 2rem;
    border-radius: 8px;
  }

  .business {
    flex: 1 1 60px;
    width: min(100%, 660px);
  }

  .business img {
    width: 32px;
    height: auto;
  }

  .business strong,
  .business p {
    font-size: 1rem;
  }
/* ---------------------------------- */
}

@media screen and (max-width: 900px) {
  /* CONCURSOS E VESTIBULARES */
  #hero {
    margin-bottom: 70px;
  }

  #hero .benefits {
    padding: 1.5rem 2rem;
  }
  /* --------------------------------- */

  /* CONCURSOS, TREINAMENTOS E EVENTOS */
  /* #hero {
    margin-bottom: 220px;
  } */
  /* --------------------------------- */

  #details .steps-list .step:nth-child(even) {
    flex-direction: row-reverse;
  }

  #contact {
    grid-template-columns: auto;
    grid-template-rows: auto auto 540px;
    align-items: flex-start;
    grid-template-areas:
    "title"
    "description"
    "form"
    ;
    width: 100%;
    height: fit-content;
  }

  #contact h2 {
    width: min(100%, 600px);
    font-size: max(1.8rem, 5vw + 0.2rem);
    text-align: center;
  }

  footer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 5.5rem var(--page-padding) 1.5rem;

  }
}

@media screen and (max-width: 540px) {
  .cta-button {
    padding: 0.5rem 0.75rem;
    font-size: 0.9rem;
  }

  /* CONCURSOS E VESTIBULARES */
  #hero .benefits img {
    width: 32px;
    height: auto;
  }
  /* ---------------------------------- */

  #details h2 {
    margin-bottom: 0;
  }

  #details .steps-list .step:nth-child(even),
  #details .steps-list .step:nth-child(odd) {
    flex-direction: column-reverse;
  }

  #details .steps-list {
    gap: 2rem;
  }

  #contact {
    grid-template-rows: auto auto 540px;
  }
}

@media screen and (max-width: 440px) {
  /* CONCURSOS E VESTIBULARES */
  #hero {
    margin-bottom: 100px;
  }

  #hero .benefits {
    flex-direction: column;
  }

  #hero .benefit {
    justify-content: flex-start;
    gap: 1rem;
    width: 100%;
    font-size: 1.1rem;
  }
  /* --------------------------------- */

  /* CONCURSOS, TREINAMENTOS E EVENTOS */
  /* #hero {
    margin-bottom: 300px;
  } */
  /* --------------------------------- */

  #contact {
    grid-template-rows: auto auto 590px;
  }
}

/* ANIMAÇÕES */
/* ----------------------------------------------
 * Generated by Animista on 2024-2-26
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info.
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */
 .animate .scale-down-top {
	-webkit-animation: scale-down-top 0.6s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
  animation: scale-down-top 0.6s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}

@-webkit-keyframes scale-down-top {
  0% {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
  }
}
@keyframes scale-down-top {
  0% {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
  }
}

.animate .text-focus-in {
	-webkit-animation: text-focus-in 0.5s cubic-bezier(0.550, 0.085, 0.680, 0.530) 0.1s both;
  animation: text-focus-in 0.5s cubic-bezier(0.550, 0.085, 0.680, 0.530) 0.1s both;
}

@-webkit-keyframes text-focus-in {
  0% {
    -webkit-filter: blur(12px);
    filter: blur(12px);
    opacity: 0;
  }
  100% {
    -webkit-filter: blur(0px);
    filter: blur(0px);
    opacity: 1;
  }
}
@keyframes text-focus-in {
  0% {
    -webkit-filter: blur(12px);
    filter: blur(12px);
    opacity: 0;
  }
  100% {
    -webkit-filter: blur(0px);
    filter: blur(0px);
    opacity: 1;
  }
}

.animate .slide-top {
	-webkit-animation: slide-top 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
  animation: slide-top 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}

@-webkit-keyframes slide-top {
  0% {
    -webkit-transform: translateY(100px);
    transform: translateY(100px);
  }
  100% {
    -webkit-transform: translateY(0px);
    transform: translateY(0px);
  }
}
@keyframes slide-top {
  0% {
    -webkit-transform: translateY(100px);
    transform: translateY(100px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

.animate .fade-in-left,
.animate.fade-in-left {
  --delay: 0.1s;
	-webkit-animation: fade-in-left 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) var(--delay) both;
	animation: fade-in-left 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) var(--delay) both;
}

.benefits-list .benefit:nth-child(2) {
  --delay: 0.2s
}
.benefits-list .benefit:nth-child(3) {
  --delay: 0.3s
}

@-webkit-keyframes fade-in-left {
  0% {
    -webkit-transform: translateX(-50px);
    transform: translateX(-50px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes fade-in-left {
  0% {
    -webkit-transform: translateX(-50px);
    transform: translateX(-50px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
}

.animate .fade-in-right,
.animate.fade-in-right {
	-webkit-animation: fade-in-right 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
  animation: fade-in-right 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

@-webkit-keyframes fade-in-right {
  0% {
    -webkit-transform: translateX(50px);
    transform: translateX(50px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes fade-in-right {
  0% {
    -webkit-transform: translateX(50px);
    transform: translateX(50px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
}
