/* ===========================================================
   SO Isenções PCD — site estático
   Convertido do design (Claude Design) para HTML/CSS/JS puro.
   Paleta: navy #0e2a6b / #091a3f · vermelho #d81f26 · texto #16203a
   =========================================================== */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'IBM Plex Sans',system-ui,sans-serif;
  color:#16203a;
  background:#fff;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;}
a{color:inherit;}

@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes riseIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
::selection{background:#0e2a6b;color:#fff;}
::-moz-selection{background:#0e2a6b;color:#fff;}

.wrap{max-width:1180px;margin:0 auto;}

/* ---------- Foco visível (acessibilidade — WCAG 2.4.7) ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
.faq-toggle:focus-visible,
.nav-toggle:focus-visible{
  outline:3px solid #0e2a6b;
  outline-offset:2px;
  border-radius:6px;
}
/* fundo escuro: foco em vermelho para contrastar */
#contato a:focus-visible,
header .btn-red:focus-visible{
  outline-color:#ff6b6f;
}
/* campos do formulário: além do outline, realça a borda */
input:focus-visible,
textarea:focus-visible{
  border-color:#0e2a6b !important;
}
input::placeholder,
textarea::placeholder{color:#6b7793;opacity:1;}

/* ---------- Skip link (pular para o conteúdo) ---------- */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:#0e2a6b;color:#fff;padding:12px 18px;border-radius:0 0 10px 0;
  font-family:Archivo,sans-serif;font-weight:700;font-size:14px;text-decoration:none;
}
.skip-link:focus{left:0;}

/* ---------- Botões (estados :hover reais) ---------- */
.btn-red{
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease;
}
.btn-red:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(216,31,38,.44);}

.btn-outline{
  transition:background .3s ease,color .3s ease,transform .35s cubic-bezier(.2,.7,.2,1);
}
.btn-outline:hover{background:#0e2a6b;color:#fff;transform:translateY(-3px);}

.btn-white{
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease;
}
.btn-white:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.28);}

/* ---------- Cards (hover) ---------- */
.card-bnf{
  transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,background .4s ease;
}
.card-bnf:hover{transform:translateY(-6px);background:rgba(255,255,255,.10);box-shadow:0 22px 50px rgba(0,0,0,.28);}

.card-lift{
  transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease;
}
.card-lift:hover{transform:translateY(-6px);box-shadow:0 24px 52px rgba(14,42,107,.15);}

.card-serv{
  transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease;
}
.card-serv:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(14,42,107,.16);}

/* ---------- Image slots (placeholder de foto) ---------- */
.img-slot{
  position:relative;
  display:block;
  width:100%;
  border-radius:24px;
  overflow:hidden;
  background:
    radial-gradient(120% 120% at 80% 0%, rgba(216,31,38,.18), transparent 55%),
    linear-gradient(160deg,#123176 0%,#0a2058 100%);
  color:#cdd7ee;
}
.img-slot img{width:100%;height:100%;object-fit:cover;}
.img-slot .img-ph{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;text-align:center;padding:24px;
}
.img-slot .img-ph svg{opacity:.85;}
.img-slot .img-ph span{
  font-size:13.5px;font-weight:600;letter-spacing:.02em;
  max-width:230px;line-height:1.4;color:#b9c4dd;
}

/* ---------- Acordeão FAQ ---------- */
.faq-item .faq-panel{
  max-height:0;overflow:hidden;
  transition:max-height .35s ease;
}
.faq-item.open .faq-panel{max-height:420px;}
.faq-toggle{
  width:100%;background:none;border:none;cursor:pointer;text-align:left;
  padding:20px 22px;display:flex;align-items:center;gap:16px;
  font-family:'IBM Plex Sans',sans-serif;
}

/* ---------- Menu mobile ---------- */
.nav-toggle{display:none;}

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width:980px){
  .grid-hero{grid-template-columns:1fr !important;gap:38px !important;}
  .grid-2{grid-template-columns:1fr !important;}
  .grid-3{grid-template-columns:1fr 1fr !important;}
  .grid-4{grid-template-columns:1fr 1fr !important;}
  .nc-grid{grid-template-columns:1fr !important;padding:38px 28px !important;}

  /* nav vira menu hambúrguer já a partir de 980px (cobre o vão de tablet 761–980) */
  .main-nav{
    display:none !important;
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column !important;
    gap:0 !important;align-items:stretch !important;
    background:#fff;border-bottom:1px solid #e6eaf3;
    padding:8px 0;
    box-shadow:0 18px 40px rgba(14,42,107,.12);
  }
  .main-nav.open{display:flex !important;}
  .main-nav a{padding:14px 24px;border-bottom:1px solid #f0f3fa;}
  .nav-toggle{
    display:inline-flex;align-items:center;justify-content:center;
    margin-left:auto;width:44px;height:44px;border-radius:10px;
    border:1px solid #e3e9f4;background:#fff;cursor:pointer;
  }
  .header-cta{display:none !important;}

  h1{font-size:46px !important;}
}

@media (max-width:760px){
  .grid-3{grid-template-columns:1fr !important;}
  .grid-4{grid-template-columns:1fr !important;}
  .topbar-right{display:none !important;}

  h1{font-size:38px !important;}
  h2{font-size:30px !important;}
  .nc-card-grid{grid-template-columns:1fr !important;}
}

@media (max-width:460px){
  .conquista-checks{grid-template-columns:1fr !important;}
}
