/* Aula de Toxina Botulínica — lp.facialacademy.com.br/toxina-botulinica
   Computador: conteúdo com 960px. Celular (até 800px): conteúdo com 360px. */

:root {
  --fundo: #130d1a;
  --fundo-rodape: #0a070e;
  --cartao: #1b1225;
  --sombra-cartao: #271842;
  --selo: #281e33;
  --selo-borda: #866ba2;
  --borda: #7156aa;
  --lilas: #caacff;
  --roxo-titulo: #a289d7;
  --creme: #ffe4a4;
  --branco: #fff;
  --verde-form: #25d167;
  --verde-form-hover: #1ebc5b;
  --texto-form-hover: #1f1f1f;
  --roxo-botao: #8041c6;
  --roxo-botao-hover: #63309d;
  --etiqueta: #fdd7b5;
  --etiqueta-borda: #ffca9b;
  --etiqueta-texto: #09060c;
  --raio: 16px;
  --fonte: "Poppins", Arial, Helvetica, sans-serif;
}

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

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  margin: 0;
  min-width: 320px;
  background: var(--fundo);
  color: var(--branco);
  font-family: var(--fonte);
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, p, ul { margin: 0; padding: 0; font-size: inherit; font-weight: inherit; }
ul { list-style: none; }
img { display: block; max-width: 100%; }
b { font-weight: 700; }

.oculto {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* As fotos da colagem passam da borda da tela, como na página original */
.pagina { overflow: hidden; }

.conteudo { width: 960px; margin: 0 auto; }

/* ---------- Parte principal ---------- */

.principal {
  background: var(--fundo);
  padding: 50px 0 185px;
}

.topo {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.topo__logo {
  width: 228px;
  height: 39px;
}

.topo__frase {
  width: 415px;
  margin: 14px -1px 0 0;
  color: var(--lilas);
  font-size: 14px;
  line-height: 1.4;
}

/* Etiquetas arredondadas (AULA GRATUITA, PROFESSORES, O QUE OS ALUNOS DIZEM) */
.selo {
  display: flex;
  align-items: center;
  height: 44px;
  padding: 0 23px;
  border: 1px solid var(--selo-borda);
  border-radius: 100px;
  background: var(--selo);
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 1px;
}
.selo--aula { width: 182px; }
.selo--professores { width: 182px; justify-content: center; }
.selo--depoimentos { width: 281px; justify-content: center; }

/* Topo: texto à esquerda, cadastro à direita */
.heroi {
  display: grid;
  grid-template-columns: 544px 411px;
  grid-template-areas:
    "selo    cartao"
    "titulo  cartao"
    "texto   cartao"
    "colagem cartao";
  column-gap: 60px;
  align-items: start;
  margin: 72px -55px 0 0;
}
.heroi > .selo { grid-area: selo; margin-top: 0; }

.heroi__titulo {
  grid-area: titulo;
  margin-top: 10px;
  font-size: 42px;
  font-weight: 500;
  line-height: 1.1;
}
.roxo { color: var(--roxo-titulo); }

.heroi__texto {
  grid-area: texto;
  max-width: 436px;
  margin-top: 27.6px;
  color: var(--lilas);
  font-size: 18px;
  line-height: 1.4;
}

/* Cartão do cadastro */
.cartao {
  grid-area: cartao;
  padding: 40px 29px 40.2px 27px; /* + 1px de borda */
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  background: var(--cartao);
  box-shadow: 0 20px 19px var(--sombra-cartao);
}

.cartao__chamada {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}
.cartao__icone { flex: none; width: 25px; height: 25px; }
.cartao__chamada p {
  max-width: 267px;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 1px;
}

.cartao__linha {
  width: 109px;
  height: 0;
  margin: 34.9px 0 0;
  border: 0;
  border-top: 1px solid var(--branco);
  opacity: .3;
}

.formulario { margin-top: 35.5px; }

.campo { position: relative; }
.campo + .campo { margin-top: 16px; }

.campo input {
  display: block;
  width: 100%;
  height: 50px;
  margin: 0;
  padding: 0 8px;
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  background: var(--fundo);
  /* na página original o texto digitado também fica em branco com 50% de opacidade */
  color: rgba(255, 255, 255, .5);
  -webkit-text-fill-color: rgba(255, 255, 255, .5);
  font: 400 16px/16px var(--fonte);
  outline: 0;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .25s ease-out;
}
.campo input::placeholder { color: rgba(255, 255, 255, .5); opacity: 1; }

/* O campo de WhatsApp é envolvido pela biblioteca de telefone */
.campo .iti { display: block; width: 100%; }

/* Erro de preenchimento: borda vermelha e o ícone vermelho com a mensagem ao passar o mouse */
.campo--erro input { border-color: red; padding-right: 44px; }
.campo__erro {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 16px;
  width: 28px;
  height: 28px;
  margin: auto;
  font-size: 0;
  opacity: 0;
  pointer-events: none;
  cursor: pointer;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='18' height='18' fill='%23e53923'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E") center no-repeat;
  transition: opacity 100ms ease-out 75ms;
}
.campo--erro .campo__erro { opacity: 1; pointer-events: auto; }
.campo__erro::after {
  content: attr(data-mensagem);
  position: absolute;
  top: 50%;
  right: calc(100% - 2px);
  transform: translateY(-50%);
  width: max-content;
  max-width: 184px;
  padding: 4px 7px;
  border-radius: 4px;
  background: #323232;
  color: #fff;
  font: 400 12px/12px Roboto, Arial, sans-serif;
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.campo__erro::before {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(100% - 12px);
  margin-top: -5px;
  border: 5px solid transparent;
  border-left-color: #323232;
  opacity: 0;
  visibility: hidden;
}
.campo__erro:hover::after,
.campo__erro:hover::before { opacity: .92; visibility: visible; }

.formulario__botao {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 54px;
  margin-top: 38px;
  padding: 0 8px;
  border: 0;
  border-radius: 100px;
  background: var(--verde-form);
  color: var(--branco);
  font: 400 16px/1.3 var(--fonte);
  cursor: pointer;
}
.formulario__botao:hover { background: var(--verde-form-hover); color: var(--texto-form-hover); }
.formulario__botao[aria-disabled="true"] { pointer-events: none; }

.cartao__aviso {
  margin: 36.6px -1px 0 0;
  color: var(--lilas);
  font-size: 12px;
  line-height: 1.4;
}

/* Colagem de fotos da aula: as posições são proporções do quadro, que acompanha a largura */
.colagem {
  grid-area: colagem;
  position: relative;
  width: 154.4118%;            /* 840px quando a coluna tem 544px */
  margin: 42.6px 0 0 -50.1838%; /* -273px */
  aspect-ratio: 840 / 526;
}
.colagem__foto {
  position: absolute;
  margin: 0;
  border-radius: var(--raio);
  overflow: hidden;
}
img.colagem__foto,
.colagem__foto img {
  object-fit: cover;
  object-position: 50% 50%;
}
.colagem__foto img { width: 100%; height: 100%; }
.colagem__foto--topo     { left: 12.9762%; top: 0;        width: 36.5476%; height: 32.8897%; }
.colagem__foto--baixo    { left: 41.7857%; top: 63.3080%; width: 40.2381%; height: 36.6920%; }
.colagem__foto--centro   { left: 38.2143%; top: 7.9848%;  width: 61.7857%; height: 52.0913%; box-shadow: 0 21px 21px #000; }
.colagem__foto--esquerda { left: 0;        top: 36.3118%; width: 47.6190%; height: 42.7757%; box-shadow: 0 18px 18px #000; }

.colagem__etiqueta {
  position: absolute;
  top: 11px;
  right: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 102px;
  height: 33px;
  border: 1px solid var(--etiqueta-borda);
  border-radius: 100px;
  background: var(--etiqueta);
  color: var(--etiqueta-texto);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 1px;
}

/* ---------- O que a aula ensina ---------- */

.divisor {
  width: 109px;
  height: 0;
  margin: 74px 0 0;
  border: 0;
  border-top: 1px solid var(--lilas);
  opacity: .5;
}

.conteudo-aula__titulo {
  margin-top: 36px;
  font-size: 16px;
  line-height: 1.4;
}

.topicos {
  display: grid;
  grid-template-columns: 445px 471px;
  column-gap: 62px;
  row-gap: 38.8px;
  align-items: start;
  margin-top: 38.6px;
}
/* o 5º tópico fica 5px mais abaixo, como na página original */
.topicos__item:nth-child(5) { margin-top: 5px; }

.topicos__item {
  display: grid;
  grid-template-columns: 34px 1fr;
  column-gap: 10px;
  font-size: 16px;
  line-height: 1.4;
}
.topicos__item span { max-width: 401px; }
.topicos__item:nth-child(2) span { max-width: 427px; }
.topicos__item:nth-child(4) span { max-width: 391px; }
.topicos__item::before {
  content: "";
  width: 34px;
  height: 34px;
  background: var(--roxo-titulo);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2M12 20C7.6 20 4 16.4 4 12C4 7.6 7.6 4 12 4C16.4 4 20 7.6 20 12C20 16.4 16.4 20 12 20M16.6 7.6L10 14.2L7.4 11.6L6 13L10 17L18 9'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2M12 20C7.6 20 4 16.4 4 12C4 7.6 7.6 4 12 4C16.4 4 20 7.6 20 12C20 16.4 16.4 20 12 20M16.6 7.6L10 14.2L7.4 11.6L6 13L10 17L18 9'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Professores ---------- */

.professores { margin-top: 171.4px; }

.professores__grade {
  display: grid;
  grid-template-columns: 445px 416px;
  column-gap: 36px;
  margin-top: 50px;
}

.professores__foto {
  width: 445px;
  height: 427px;
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  background: var(--fundo-rodape);
  object-fit: cover;
  object-position: 51.5152% 57.0707%;
}

.professores__info { display: flex; flex-direction: column; }

.professores__nome {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
}
.professores__nome--segundo { margin-top: 5.2px; font-weight: 500; }

.professores__cargo {
  margin-top: 8.8px;
  color: var(--lilas);
  font-size: 16px;
  line-height: 1.4;
}
.professores__cargo--primeiro { max-width: 371px; }
.professores__cargo--primeiro span { font-size: 18px; }
.professores__cargo--segundo { margin-top: 7.8px; max-width: 384px; }

.professores__bio {
  width: 400px;
  margin: 32.2px 0 0;
  color: var(--lilas);
  font-size: 18px;
  line-height: 1.4;
}

.numeros {
  display: grid;
  grid-template-columns: 182px 182px;
  column-gap: 20px;
  margin-top: auto;
}

.numeros__caixa {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 129px;
  padding-top: 29px;
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  background: var(--fundo-rodape);
  letter-spacing: 1px;
  line-height: 1.4;
  text-align: center;
}
.numeros__caixa b { color: var(--creme); font-size: 30px; }
.numeros__caixa span { font-size: 18px; }

/* ---------- Depoimentos ---------- */

.depoimentos { margin-top: 160px; }

.depoimentos__lista {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 39px -59.2px 0 -69px;
}
.depoimentos__lista picture { flex: none; }
.depoimentos__lista img { height: auto; }
.depoimentos__lista picture:nth-child(1) img { width: 344px; }
.depoimentos__lista picture:nth-child(2) img { width: 345px; height: 304px; margin-top: -1px; object-fit: cover; }
.depoimentos__lista picture:nth-child(3) img { width: 379.2px; }

.botao-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 357px;
  height: 59px;
  margin: 64.7px 0 0 302px;
  padding: 0 8px;
  border-radius: 100px;
  background: var(--roxo-botao);
  color: var(--branco);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  transition: background-color .25s ease-out, color .25s ease-out;
}
.botao-cta:hover { background: var(--roxo-botao-hover); }

/* ---------- Rodapé ---------- */

.rodape {
  background: var(--fundo-rodape);
  padding: 65px 0 66.4px;
  font-size: 14px;
  line-height: 1.4;
}

.rodape__logo { width: 228px; height: 39px; }

.rodape__colunas {
  display: flex;
  align-items: flex-start;
  gap: 69px;
  margin-top: 42px;
}

.rodape__aviso { width: 590px; flex: none; }
.rodape__titulo { font-size: 14px; line-height: 1.4; }
.rodape__aviso p { margin-top: 20.4px; }

.rodape__equipe {
  width: 301px;
  margin-top: 40px;
}
.rodape__equipe p + p { margin-top: 1.4em; }

/* ---------- Aviso depois de clicar em "Assistir à Aula" ---------- */

.aviso-envio {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(0, 0, 0, .84);
  color: #fff;
  font: 700 50px/2 sans-serif;
  text-align: center;
}
.aviso-envio[hidden] { display: none; }
.aviso-envio__texto:empty { display: none; }
.aviso-envio__carregando {
  width: 60px;
  aspect-ratio: 2;
  --bolinha: no-repeat radial-gradient(circle closest-side, #f9f9f9 84%, #0000);
  background: var(--bolinha) 0% 50%, var(--bolinha) 50% 50%, var(--bolinha) 100% 50%;
  background-size: calc(100% / 3) 50%;
  animation: carregando 1s infinite linear;
}
.aviso-envio__carregando[hidden] { display: none; }
@keyframes carregando {
  20% { background-position: 0% 0%, 50% 50%, 100% 50%; }
  40% { background-position: 0% 100%, 50% 0%, 100% 50%; }
  60% { background-position: 0% 50%, 50% 100%, 100% 0%; }
  80% { background-position: 0% 50%, 50% 50%, 100% 100%; }
}

/* ---------- Telas entre 801px e 1100px: o mesmo desenho, sem passar da borda ---------- */

@media (min-width: 801px) and (max-width: 1100px) {
  .conteudo { width: calc(100% - 48px); }
  .heroi { grid-template-columns: minmax(0, 1fr) 411px; column-gap: 40px; margin-right: 0; }
  .heroi__titulo { font-size: 36px; }
  .topicos { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .topicos__item:nth-child(n) span { max-width: none; }
  .professores__grade { grid-template-columns: minmax(0, 445px) minmax(0, 412px); }
  .professores__foto { width: 100%; }
  .professores__bio { width: auto; }
  .numeros { grid-template-columns: repeat(2, minmax(0, 182px)); }
  .depoimentos__lista { margin-left: 0; margin-right: 0; }
  .depoimentos__lista picture { flex: 1 1 0; min-width: 0; }
  .depoimentos__lista picture img { width: 100% !important; height: auto !important; margin-top: 0 !important; }
  .botao-cta { margin-left: auto; margin-right: auto; }
  .rodape__aviso { width: auto; flex: 0 1 590px; }
}

/* ---------- Celular ---------- */

@media (max-width: 800px) {
  .conteudo { width: min(360px, 100% - 30px); }

  .principal { padding: 25px 0 98px; }

  .topo__logo { width: 168px; height: 29px; margin: 14.2px 0 0 -.2px; }
  .topo__frase {
    width: auto;
    max-width: 156px;
    margin: 0;
    font-size: 12px;
    line-height: 1.2;
    text-align: right;
  }

  .selo { height: 38.3px; font-size: 13px; }
  .selo--aula { width: 158.6px; padding: 0 0 0 20px; }
  .selo--professores { width: 158.5px; margin-left: 1px; padding: 0; }
  .selo--depoimentos { width: 241.5px; height: 37.8px; margin-left: 1px; padding: 0; }

  .heroi {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "selo" "titulo" "texto" "cartao" "colagem";
    margin: 59.5px 0 0;
  }
  .heroi > .selo { margin-top: 0; }
  .heroi__titulo { margin-top: 10.3px; font-size: 32px; }
  .heroi__texto { margin: 50.4px 0 0 -.2px; }

  .cartao { margin-top: 20.1px; padding: 42.4px 27.5px 42.5px 24.5px; }
  .cartao__chamada { gap: 7.5px; }
  .cartao__icone { width: 25.5px; height: 25.5px; }
  .cartao__chamada p { max-width: 273px; font-size: 14px; }
  .cartao__linha { margin-top: 25px; }
  .formulario { margin-top: 25px; }
  .formulario__botao { margin-top: 41px; }
  .cartao__aviso { max-width: 298px; margin: 28.7px 0 0; line-height: 1.2; }

  .colagem {
    width: 100%;
    margin: 27.2px 0 0;
    aspect-ratio: 360 / 564.7;
  }
  .colagem__foto--topo     { left: .4089%;  top: 0;        width: 61.4442%; height: 22.0806%; }
  .colagem__foto--centro   { left: 15.8456%; top: 16.9364%; width: 84.0722%; height: 34.9672%; }
  .colagem__foto--esquerda { left: .4167%;  top: 49.6582%; width: 80.0731%; height: 28.7161%; }
  .colagem__foto--baixo    { left: 32.3944%; top: 75.3675%; width: 67.6647%; height: 24.6343%; }
  .colagem__etiqueta { top: 10.8px; right: 14.2px; }

  .divisor { margin-top: 25.3px; }
  .conteudo-aula__titulo { max-width: 281px; margin: 25.3px 0 0 1px; }

  .topicos {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 25.7px;
    margin: 20.3px 0 0 -3px;
  }
  .topicos__item { grid-template-columns: 32px 1fr; column-gap: 12px; font-size: 15px; }
  .topicos__item:nth-child(n) span { max-width: none; }
  .topicos__item::before { width: 2.1em; height: 2.1em; justify-self: center; }
  .topicos__item--maior { font-size: 16px; }
  .topicos__item:nth-child(4) { margin-top: -3.5px; }
  .topicos__item:nth-child(5) { margin-top: 1.5px; }

  .professores { margin-top: 83.4px; }
  .professores__grade { grid-template-columns: minmax(0, 1fr); margin-top: 29.7px; }
  .professores__foto {
    width: 100%;
    height: auto;
    margin-left: 1px;
    aspect-ratio: 360 / 309;
    object-position: 52.2727% 45.4545%;
  }
  .professores__nome { margin: 50px 0 0 1px; }
  .professores__nome--segundo { margin: 10.6px 0 0; }
  .professores__cargo { margin: 9.8px 0 0 1px; font-size: 18px; }
  .professores__cargo--primeiro { max-width: none; }
  .professores__cargo--segundo { margin: 9.8px 0 0; max-width: none; }
  .professores__bio { width: auto; margin: 36.6px 0 0; }
  .numeros {
    grid-template-columns: 182fr 153fr;
    column-gap: 25px;
    margin: 34.4px 0 0 1px;
  }

  .depoimentos { margin-top: 60.2px; }
  .depoimentos__lista {
    flex-direction: column;
    gap: 30.3px;
    margin: 39.7px 0 0;
  }
  .depoimentos__lista picture { flex: none; }
  .depoimentos__lista picture:nth-child(n) img { width: 360px; max-width: 100%; height: auto; margin: 0; }

  .botao-cta { width: 357px; max-width: 100%; margin: 60.1px 0 0 .5px; }

  .rodape { padding: 70.5px 0 69.5px; text-align: center; }
  .rodape__logo { width: 238px; height: 40px; margin: 0 auto; }
  .rodape__colunas { flex-direction: column; align-items: center; gap: 0; margin-top: 40px; }
  .rodape__aviso { width: 100%; }
  .rodape__titulo { font-size: 16px; }
  .rodape__aviso p { margin-top: 10px; }
  .rodape__equipe { width: 100%; margin-top: 30px; }

  .aviso-envio { font-size: 35px; }
}
