/* ================= FOOTER BASE ================= */
.site-footer{
  width:100%;
  background:#ffffff;
  color:#092D69;
}

/* ================= TOP ================= */
.footer-top{
  padding:80px 0; /* padronizado */
}

.footer-inner{
  width:100%;
  max-width:90%;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:100px;
}

/* ================= FAQ ================= */
.footer-faq h2{
  font-size:48px;        /* PADRÃO ABOUT */
  font-weight:900;
  line-height:1.2;
  margin-bottom:24px;
}

.faq-intro{
  font-size:18px;        /* PADRÃO ABOUT */
  line-height:1.7;
  max-width:720px;
  margin-bottom:40px;
  opacity:.85;
}

.faq-list{
  display:grid;
  gap:14px;
}

.faq-item{
  border-bottom:1px solid #dce9f5;
  padding-bottom:14px;
}

.faq-question{
  width:100%;
  background:none;
  border:none;
  padding:14px 0;
  font-size:16px;
  font-weight:700;
  color:#092D69;
  display:flex;
  justify-content:space-between;
  align-items:center;
  cursor:pointer;
}

.faq-question span{
  font-size:22px;
  color:#48C5F3;
  transition:transform .3s ease;
}

.faq-answer{
  max-height:0;
  overflow:hidden;
  font-size:15px;
  line-height:1.7;
  opacity:.85;
  transition:max-height .4s ease;
}

.faq-item.active .faq-answer{
  max-height:220px;
  margin-top:10px;
}

.faq-item.active .faq-question span{
  transform:rotate(45deg);
}

/* ================= FORM ================= */
.footer-form{
  background:#f6fbff;
  padding:52px;
  border-radius:26px;
}

.footer-form h3{
  font-size:26px;
  font-weight:800;
  margin-bottom:30px;
}

.footer-form form{
  display:grid;
  gap:22px;
}

.footer-form input,
.footer-form textarea{
  border:none;
  border-bottom:1px solid #dce9f5;
  padding:14px 6px;
  font-size:15px;
  background:transparent;
  outline:none;
}

.footer-form textarea{
  resize:none;
  min-height:120px;
}

.footer-form button{
  margin-top:18px;
  background:#48C5F3;
  color:#092D69;
  padding:14px 38px;
  border-radius:30px;
  border:none;
  font-weight:700;
  cursor:pointer;
  transition:transform .3s ease, box-shadow .3s ease;
}

.footer-form button:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 30px rgba(72,197,243,.35);
}

/* ================= MAP ================= */
.footer-map iframe{
  width:100%;
  height:380px;
  border:0;
  display:block;
}

/* ================= LINKS ================= */
.footer-links-section{
  padding:80px 0 40px;
}

.footer-links-inner{
  width:100%;
  max-width:90%;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:60px;
}

.footer-col h4{
  font-size:16px;
  font-weight:800;
  margin-bottom:18px;
}

.footer-col a{
  display:block;
  font-size:14px;
  color:#092D69;
  text-decoration:none;
  margin-bottom:12px;
  opacity:.75;
  transition:opacity .25s ease, color .25s ease;
}

.footer-col a:hover{
  opacity:1;
  color:#48C5F3;
}

.footer-col p{
  font-size:14px;
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
  opacity:.8;
}

.footer-col i{
  color:#48C5F3;
}

/* ================= BRAND / LOGO EFFECT ================= */
.footer-brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.footer-logo-effect{
  position:relative;
  width:180px;
  height:180px;
  margin-bottom:20px;
}

.footer-logo-effect img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
}

.logo-rotate{
  animation:logo-rotate 40s linear infinite;
  opacity:.25;
}

.logo-pulse{
  animation:logo-pulse 3.5s ease-in-out infinite;
}

@keyframes logo-rotate{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}

@keyframes logo-pulse{
  0%{ transform:scale(1); }
  50%{ transform:scale(1.04); }
  100%{ transform:scale(1); }
}

/* ================= SOCIAL ICONS ================= */
.footer-social{
  display:flex;
  gap:16px;
}

.footer-social a{
  width:40px;
  height:40px;
  border-radius:50%;
  background:#f6fbff;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#092D69;
  text-decoration:none;
  transition:background .3s ease, transform .3s ease;
}

.footer-social a:hover{
  background:#48C5F3;
  transform:translateY(-2px);
}

/* ================= COPYRIGHT + DEV ================= */
.footer-copy{
  margin:60px auto 0;
  width:100%;
  max-width:90%;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  font-size:13px;
  opacity:.65;
  text-align:center;
}

.footer-dev a{
  font-weight:800;
  color:#092D69;
  text-decoration:none;
  transition:color .3s ease, text-shadow .3s ease;
}

.footer-dev a:hover{
  color:#48C5F3;
  text-shadow:
    0 0 6px rgba(72,197,243,.35),
    0 0 12px rgba(72,197,243,.25);
}

/* ================= RESPONSIVE ================= */
@media (max-width:1100px){
  .footer-inner{
    grid-template-columns:1fr;
    gap:60px;
  }

  .footer-links-inner{
    grid-template-columns:1fr 1fr;
  }

  .footer-brand{
    align-items:center;
  }

  .footer-faq h2{
    font-size:38px; /* mesmo ajuste dos outros */
  }
}

@media (max-width:600px){
  .footer-links-inner{
    grid-template-columns:1fr;
  }

  .footer-copy{
    flex-wrap:wrap;
    line-height:1.6;
  }
}


/* ================= FOOTER ENTRANCE (CSS ONLY) ================= */

/* FAQ – esquerda para direita */
.footer-faq{
  animation:footer-left-in .9s cubic-bezier(.22,.61,.36,1) both;
  animation-delay:.2s;
}

/* FORM – direita para esquerda */
.footer-form{
  animation:footer-right-in .9s cubic-bezier(.22,.61,.36,1) both;
  animation-delay:.45s;
}

/* MAP – sobe suave */
.footer-map{
  animation:footer-up-in .9s cubic-bezier(.22,.61,.36,1) both;
  animation-delay:.75s;
}

/* COLUNAS – uma por uma */
.footer-links-inner .footer-col:nth-child(1){
  animation:footer-up-in .7s ease both;
  animation-delay:1.05s;
}

.footer-links-inner .footer-col:nth-child(2){
  animation:footer-up-in .7s ease both;
  animation-delay:1.25s;
}

.footer-links-inner .footer-col:nth-child(3){
  animation:footer-up-in .7s ease both;
  animation-delay:1.45s;
}

.footer-links-inner .footer-brand{
  animation:footer-up-in .7s ease both;
  animation-delay:1.65s;
}

/* COPYRIGHT – último */
.footer-copy{
  animation:footer-fade-in .6s ease both;
  animation-delay:1.9s;
}

/* ================= KEYFRAMES ================= */

@keyframes footer-left-in{
  from{
    opacity:0;
    transform:translateX(-60px);
  }
  to{
    opacity:1;
    transform:translateX(0);
  }
}

@keyframes footer-right-in{
  from{
    opacity:0;
    transform:translateX(60px);
  }
  to{
    opacity:1;
    transform:translateX(0);
  }
}

@keyframes footer-up-in{
  from{
    opacity:0;
    transform:translateY(40px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes footer-fade-in{
  from{
    opacity:0;
  }
  to{
    opacity:.65;
  }
}


/* ================= FORM OVERLAY ================= */
.form-overlay{
  position:fixed;
  inset:0;
  background:rgba(9,45,105,.92);
  z-index:2000;

  display:flex;
  align-items:center;
  justify-content:center;

  opacity:0;
  pointer-events:none;
  transition:opacity .4s ease;
}

/* MOSTRAR OVERLAY */
.form-overlay.show{
  opacity:1;
  pointer-events:auto;
}

/* BOX */
.form-overlay-box{
  background:#ffffff;
  padding:48px 46px;
  border-radius:26px;
  text-align:center;
  max-width:420px;
  width:90%;

  box-shadow:0 30px 80px rgba(0,0,0,.35);
}

/* LOADING */
.form-loading{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
}

.form-loading p{
  font-size:16px;
  color:#092D69;
  font-weight:600;
}

/* SPINNER */
.spinner{
  width:46px;
  height:46px;
  border:4px solid rgba(72,197,243,.25);
  border-top-color:#48C5F3;
  border-radius:50%;
  animation:spin 1s linear infinite;
}

@keyframes spin{
  to{ transform:rotate(360deg); }
}

/* SUCCESS */
.form-success{
  display:none;
}

.form-success i{
  font-size:46px;
  color:#48C5F3;
  margin-bottom:16px;
}

.form-success h3{
  font-size:22px;
  font-weight:900;
  color:#092D69;
  margin-bottom:10px;
}

.form-success p{
  font-size:15px;
  opacity:.8;
}


