/* ============================================
   ITI RESIDENCE — aviso de cookies (LGPD)
   Direção A: cartão azul-marinho flutuante
   Usa as variáveis de style.css (--navy, --blue...)
   ============================================ */

.cc{
  position:fixed; left:20px; bottom:20px; z-index:1100;
  width:min(400px, calc(100vw - 40px));
  background:var(--navy, #102f48); color:#fff;
  border:1px solid rgba(255,255,255,.08); border-radius:16px;
  padding:22px 22px 18px;
  box-shadow:0 24px 50px -20px rgba(0,0,0,.65);
  font-family:var(--font-body, "Poppins", sans-serif);
  opacity:0; transform:translateY(16px);
  transition:opacity .35s ease, transform .35s ease;
}
.cc.is-visible{ opacity:1; transform:none; }
.cc[hidden]{ display:none; }

.cc .cc-title{
  margin:0 0 6px; color:#fff;
  font-family:var(--font-display, "Dela Gothic One", sans-serif);
  font-size:1.05rem; line-height:1.2; font-weight:400;
}
.cc p{ margin:0; color:#c3d3e0; font-size:.84rem; line-height:1.55; }
.cc a{ color:#fff; font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.cc a:hover{ color:#9fc4e6; }

.cc-acts{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px; }
.cc-btn{
  font:600 .85rem/1 var(--font-body, "Poppins", sans-serif);
  border-radius:999px; padding:12px 20px; border:2px solid transparent;
  cursor:pointer; white-space:nowrap;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.cc-btn:hover{ transform:translateY(-1px); }
.cc-ok{ background:var(--blue, #1f71b8); color:#fff; box-shadow:0 10px 24px -10px rgba(31,113,184,.8); }
.cc-ok:hover{ background:#2f8fe0; }
.cc-no{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.cc-no:hover{ background:#fff; color:var(--navy, #102f48); border-color:#fff; }
.cc-lnk{
  background:none; border:0; padding:8px 4px; cursor:pointer;
  font:600 .82rem var(--font-body, "Poppins", sans-serif); color:#9fc4e6;
  text-decoration:underline; text-underline-offset:3px;
}
.cc-lnk:hover{ color:#fff; }
.cc button:focus-visible, .cc a:focus-visible, .cc input:focus-visible + .cc-switch{
  outline:2px solid #9fc4e6; outline-offset:3px;
}

/* ---------- Painel "Personalizar" ---------- */
.cc-prefs{ width:min(440px, calc(100vw - 40px)); max-height:calc(100vh - 40px); overflow-y:auto; }
.cc-prefs > p:not(.cc-title){ margin-bottom:10px; }
.cc-close{
  position:absolute; top:12px; right:12px; width:32px; height:32px;
  border:0; border-radius:50%; background:transparent; color:#c3d3e0;
  font-size:1.3rem; line-height:1; cursor:pointer;
}
.cc-close:hover{ background:rgba(255,255,255,.1); color:#fff; }
.cc-cat{
  display:flex; gap:14px; align-items:flex-start;
  padding:12px 0; border-top:1px solid rgba(255,255,255,.12);
}
.cc-cat-txt{ flex:1; }
.cc-cat strong{ display:block; font-size:.9rem; margin-bottom:2px; color:#fff; }
.cc-cat span{ display:block; font-size:.79rem; color:#c3d3e0; line-height:1.45; }
.cc-toggle{ position:relative; flex:0 0 44px; margin-top:2px; cursor:pointer; }
.cc-toggle input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.cc-switch{
  display:block; width:44px; height:24px; border-radius:999px;
  background:rgba(255,255,255,.25); position:relative; transition:background .2s ease;
}
.cc-switch::after{
  content:""; position:absolute; top:3px; left:3px; width:18px; height:18px;
  border-radius:50%; background:#fff; transition:left .2s ease;
}
.cc-toggle input:checked + .cc-switch{ background:var(--blue, #1f71b8); }
.cc-toggle input:checked + .cc-switch::after{ left:23px; }
.cc-toggle input:disabled{ cursor:not-allowed; }
.cc-toggle input:disabled + .cc-switch{ background:rgba(31,113,184,.55); }
.cc-prefs .cc-acts .cc-btn{ flex:1 1 0; }

/* ---------- Celular ---------- */
@media (max-width:640px){
  .cc{ left:10px; right:10px; bottom:10px; width:auto; padding:18px 16px 14px; }
  .cc-acts .cc-ok, .cc-acts .cc-no{ flex:1 1 0; }
  /* o WhatsApp flutuante some enquanto o aviso está aberto e volta depois da escolha */
  body.cc-open .whatsapp-float{ opacity:0; visibility:hidden; pointer-events:none; }
}

@media (prefers-reduced-motion:reduce){
  .cc{ transition:none; transform:none; }
}

/* ---------- Links legais no rodapé ---------- */
.footer-legal{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:4px 10px;
  margin:0 0 10px !important; font-size:.8rem;
}
.footer-legal a, .footer-legal button{
  color:#9aa6b1; font:inherit; background:none; border:0; padding:0; cursor:pointer;
  text-decoration:underline; text-underline-offset:3px;
}
.footer-legal a:hover, .footer-legal button:hover{ color:#fff; }
.footer-legal .sep{ color:#5b6672; }
