/* Estilos não-críticos (modais) — carregado fora do <head> crítico para não bloquear o primeiro paint */

.modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(15,12,45,0.72);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.2s ease;
  z-index:100;
}
.modal-overlay.is-open{
  opacity:1;
  visibility:visible;
}
.modal{
  position:relative;
  background:#211c52;
  border-radius:20px;
  padding:2.25rem 1.75rem 1.75rem;
  width:100%;
  max-width:420px;
  box-shadow:0 24px 60px -12px rgba(0,0,0,0.5);
  transform:translateY(12px);
  transition:transform 0.2s ease;
}
.modal-overlay.is-open .modal{
  transform:translateY(0);
}
.modal--light{
  background:#fff;
  color:var(--bg-dark);
}
.modal--light .modal-close{
  color:var(--bg-dark);
}
.modal--light .modal-close:hover{
  background:rgba(36,31,92,0.08);
}
.modal--light .field input[type="text"],
.modal--light .field input[type="email"],
.modal--light .field input[type="tel"]{
  border:1px solid rgba(36,31,92,0.18);
  background:var(--bg-light);
  color:var(--bg-dark);
}
.modal--light .field input::placeholder{
  color:rgba(36,31,92,0.4);
}
.modal--light .field-error{
  color:#d92d20;
}
.modal--light .form-feedback{
  color:#d92d20;
}
.modal h2{
  font-size:1.4rem;
  font-weight:800;
  margin-bottom:1.25rem;
  text-align:center;
}
.modal-close{
  position:absolute;
  top:0.9rem;
  right:0.9rem;
  background:transparent;
  border:none;
  color:#fff;
  font-size:1.6rem;
  line-height:1;
  cursor:pointer;
  padding:0.25rem 0.5rem;
  border-radius:8px;
}
.modal-close:hover{background:rgba(255,255,255,0.1)}
.modal-close:focus-visible{outline:2px solid #2dd4e8;outline-offset:2px}

.field{
  margin-bottom:1rem;
  text-align:left;
}
.field label{
  display:block;
  font-size:0.85rem;
  font-weight:600;
  margin-bottom:0.35rem;
  opacity:0.9;
}
.field input[type="text"],
.field input[type="email"],
.field input[type="tel"]{
  width:100%;
  padding:0.75rem 0.9rem;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.2);
  background:rgba(255,255,255,0.08);
  color:#fff;
  font-size:1rem;
  font-family:inherit;
}
.field input::placeholder{color:rgba(255,255,255,0.45)}
.field input:focus-visible{
  outline:2px solid #2dd4e8;
  outline-offset:1px;
}
.field-error{
  display:block;
  min-height:1.1em;
  font-size:0.78rem;
  color:#ff8a8a;
  margin-top:0.3rem;
}
.field-checkbox{
  display:flex;
  align-items:flex-start;
  gap:0.55rem;
}
.field-checkbox input{
  margin-top:0.2rem;
  width:1.05rem;
  height:1.05rem;
  flex-shrink:0;
}
.field-checkbox label{
  margin-bottom:0;
  font-size:0.82rem;
  font-weight:400;
  opacity:0.85;
}

.btn-submit{
  width:100%;
  justify-content:center;
  margin-top:0.5rem;
}
.btn-submit:disabled{
  opacity:0.65;
  cursor:not-allowed;
  transform:none;
}
.form-feedback{
  min-height:1.2em;
  font-size:0.85rem;
  margin-top:0.75rem;
  text-align:center;
  color:#ff8a8a;
}

.modal-success{
  text-align:center;
  max-width:380px;
}
.modal-success.modal--light{
  border:2px solid var(--mint);
}
.success-icon svg{
  width:56px;
  height:56px;
  margin:0 auto 1rem;
}
.modal-success p{
  font-size:0.95rem;
  opacity:0.9;
  margin-bottom:1.25rem;
  line-height:1.5;
}
.modal-success.modal--light h2{
  color:var(--bg-dark);
}
.modal-success.modal--light p{
  color:rgba(36,31,92,0.78);
  opacity:1;
}
.progress-bar-track{
  width:100%;
  height:8px;
  border-radius:999px;
  background:rgba(255,255,255,0.15);
  overflow:hidden;
  margin-bottom:0.6rem;
}
.modal-success.modal--light .progress-bar-track{
  background:rgba(36,31,92,0.12);
}
.progress-bar-fill{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,#3ecf8e,#2dd4e8);
  border-radius:999px;
  transition:width 6s linear;
}
.redirect-note{
  font-size:0.78rem;
  opacity:0.7;
  margin-bottom:1.25rem;
}
.modal-success.modal--light .redirect-note{
  color:rgba(36,31,92,0.55);
  opacity:1;
}
.btn-go-now{
  width:100%;
  justify-content:center;
}

@media (max-width:420px){
  .modal{padding:2rem 1.25rem 1.5rem}
}

/* ===================================================== */
/* Seções da página (blocos 2 a 9 + fechamento) — abaixo da dobra */
/* ===================================================== */

main{
  background:linear-gradient(180deg,
    var(--grad-0) 0%,
    var(--grad-0) 8%,
    var(--grad-deep) 15%,
    var(--grad-deep) 19%,
    var(--grad-1) 26%,
    var(--grad-1) 30%,
    var(--grad-3) 37%,
    var(--grad-3) 41%,
    var(--grad-deep) 48%,
    var(--grad-deep) 52%,
    var(--grad-1) 59%,
    var(--grad-1) 63%,
    var(--grad-0) 70%,
    var(--grad-0) 74%,
    var(--grad-3) 81%,
    var(--grad-3) 85%,
    var(--grad-0) 92%,
    var(--grad-0) 100%
  );
}
.section{
  padding:clamp(3rem,6vw,5rem) 6vw;
  color:#fff;
  text-shadow:0 1px 6px rgba(20,15,58,0.4);
}
.section-inner{
  max-width:760px;
  margin:0 auto;
  text-align:center;
}
.section-inner--narrow{
  max-width:620px;
}
.section-inner--wide{
  max-width:1080px;
}
.section--closing{
  text-align:center;
}
.section-title{
  font-family:'HeadingNow',sans-serif;
  font-size:clamp(1.5rem,1.1rem + 2vw,2.15rem);
  font-weight:800;
  line-height:1.24;
  margin-bottom:1.1rem;
  text-transform:uppercase;
  text-wrap:balance;
}
.section-text{
  font-size:clamp(0.95rem,0.85rem + 0.5vw,1.05rem);
  line-height:1.6;
  margin-bottom:1.1rem;
  opacity:0.94;
}
.closing-quote{
  font-size:clamp(1.3rem,1rem + 1.6vw,1.9rem);
  font-weight:800;
  line-height:1.38;
  margin-bottom:1.75rem;
  text-wrap:balance;
}
.check-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:0.65rem;
  margin:0 auto 1.35rem;
  max-width:420px;
  text-align:left;
}
.check-list li{
  position:relative;
  padding-left:2.15rem;
  font-size:1rem;
  line-height:1.4;
}
.check-list li::before{
  content:"\2713";
  position:absolute;
  left:0;
  top:0.05em;
  width:1.5em;
  height:1.5em;
  border-radius:50%;
  background:var(--mint);
  color:#fff;
  font-size:0.85em;
  font-weight:800;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  text-shadow:none;
}
.btn-cta.btn-center{
  display:flex;
  width:max-content;
  margin-left:auto;
  margin-right:auto;
}

.highlight-box{
  background:rgba(255,255,255,0.08);
  border-left:4px solid var(--mint);
  border-radius:12px;
  padding:1.25rem 1.5rem;
  margin:0 auto 1.35rem;
  max-width:34rem;
}
.highlight-box__text{
  font-size:clamp(1.05rem,0.9rem + 0.6vw,1.3rem);
  font-weight:700;
  line-height:1.5;
  text-wrap:balance;
}

.stat-callout{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:0.4rem;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.16);
  border-radius:20px;
  padding:1.75rem 1.5rem;
  margin:1.5rem 0;
}
.stat-callout__number{
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  font-size:clamp(2.4rem,1.8rem + 3vw,3.6rem);
  font-weight:800;
  line-height:1;
  color:var(--mint);
}
.stat-callout__label{
  font-size:clamp(0.95rem,0.85rem + 0.5vw,1.05rem);
  line-height:1.5;
  max-width:34ch;
  text-wrap:balance;
}
.stat-callout__note{
  font-size:0.85rem;
  font-style:italic;
  opacity:0.75;
  margin-top:0.2rem;
}

.speaker-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1.5rem;
  margin:2.25rem 0 2.5rem;
}
.speaker-card{
  text-align:center;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.16);
  border-radius:20px;
  padding:1.75rem;
}
.speaker-avatar{
  width:112px;
  height:112px;
  margin:0 auto 1rem;
  border-radius:50%;
  overflow:hidden;
  border:2px solid rgba(255,255,255,0.35);
}
.speaker-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.speaker-card h3{
  font-size:1.1rem;
  font-weight:800;
  margin-bottom:0.5rem;
}
.speaker-bio{
  font-size:0.92rem;
  line-height:1.55;
  opacity:0.85;
  margin-bottom:1.1rem;
}
.speaker-card .check-list{
  max-width:100%;
}
.speaker-card .check-list li{
  font-size:0.9rem;
}

.faq-list{
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  margin:1.75rem 0 2.25rem;
  text-align:center;
}
.faq-item{
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.16);
  border-radius:14px;
  padding:1rem 1.25rem;
}
.faq-item summary{
  cursor:pointer;
  font-weight:700;
  font-size:1rem;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.6rem;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+";
  flex-shrink:0;
  font-size:1.3rem;
  font-weight:700;
  transition:transform 0.2s ease;
}
.faq-item[open] summary::after{
  transform:rotate(45deg);
}
.faq-item p{
  margin-top:0.75rem;
  font-size:0.92rem;
  line-height:1.55;
  opacity:0.88;
}

.testimonial-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:2rem 2.25rem;
  margin:2.25rem 0 2.5rem;
}
.testimonial-card{
  text-align:left;
}
.testimonial-img{
  width:100%;
  height:auto;
  border-radius:16px;
  box-shadow:0 14px 34px -18px rgba(0,0,0,0.6);
}

@media (max-width:900px){
  .btn-cta{
    display:flex;
    width:max-content;
    max-width:100%;
    white-space:normal;
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }
}
@media (max-width:640px){
  .section{padding:2.5rem 6vw}
  .speaker-grid,.testimonial-grid{grid-template-columns:1fr}
}
