/* Fale com a gente -> WhatsApp (modal) */
html.cw-aberto, html.cw-aberto body { overflow: hidden; }

.cw-overlay {
  position: fixed; inset: 0; z-index: 99999;
  background: rgba(1, 25, 50, .72);
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  animation: cw-fade .2s ease;
}
.cw-overlay[hidden] { display: none; }

.cw-dialog {
  position: relative;
  width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto;
  background: #fff; color: var(--marca-1, #013162);
  padding: 20px 28px 28px;
  font-family: 'Barlow', sans-serif;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
  animation: cw-up .25s ease;
}

.cw-header { display: flex; justify-content: space-between; align-items: center; min-height: 32px; }
.cw-back, .cw-close {
  background: none; border: 0; cursor: pointer; color: var(--marca-1, #013162);
  font-family: inherit; padding: 4px 0;
}
.cw-back { font-size: 1rem; font-weight: 600; }
.cw-close { font-size: 2rem; line-height: 1; padding: 0 4px; }
.cw-back:hover, .cw-close:hover { opacity: .6; }

.cw-step {
  margin: 8px 0 0; font-size: .75rem; letter-spacing: 3px; text-transform: uppercase; color: #8a8a8a;
}
.cw-title {
  font-family: 'DM Serif Display', serif; font-weight: 500;
  font-size: 1.875rem; line-height: 1.15; margin: 4px 0 20px;
}

/* Passo 1 */
.cw-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cw-option {
  display: flex; align-items: flex-start; gap: 12px; text-align: left;
  background: #e8f3f8; border: 2px solid transparent; padding: 14px;
  cursor: pointer; font-family: inherit; color: inherit;
  transition: border-color .15s, transform .15s;
}
.cw-option:hover, .cw-option:focus-visible { border-color: var(--marca-1, #013162); transform: translateY(-2px); outline: none; }
.cw-icon { font-size: 1.5rem; line-height: 1; }
.cw-option-text strong { display: block; font-size: 1rem; font-weight: 700; margin-bottom: 2px; }
.cw-option-text small { display: block; font-size: .8125rem; color: #555; line-height: 1.3; }

/* Passo 2 */
.cw-list { display: flex; flex-direction: column; gap: 8px; }
.cw-sub {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  width: 100%; text-align: left; padding: 16px 18px;
  background: #fff; border: 1px solid #ddd; cursor: pointer;
  font-family: inherit; font-size: 1.0625rem; color: inherit;
  transition: background .15s, border-color .15s;
}
.cw-sub:hover, .cw-sub:focus-visible { background: #e8f3f8; border-color: var(--marca-1, #013162); outline: none; }
.cw-arrow { font-size: 1.5rem; line-height: 1; }

/* Passo 3 */
.cw-resumo { background: #e8f3f8; padding: 10px 14px; margin: 0 0 16px; font-size: .9375rem; }
.cw-field { margin-bottom: 12px; }
.cw-field label { display: block; font-weight: 600; font-size: .875rem; margin-bottom: 4px; }
.cw-field input, .cw-field textarea {
  width: 100%; box-sizing: border-box; padding: 11px 12px;
  border: 1px solid #ccc; font-family: inherit; font-size: 1rem; color: inherit; background: #fff;
}
.cw-field textarea { resize: vertical; }
.cw-field input:focus, .cw-field textarea:focus { outline: none; border-color: var(--marca-1, #013162); }
.cw-field input.cw-erro { border-color: #c0392b; background: #fdf2f1; }

.cw-submit {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; margin-top: 8px; padding: 15px;
  background: #25d366; color: #fff; border: 0; cursor: pointer;
  font-family: inherit; font-size: 1.0625rem; font-weight: 700;
  transition: background .15s;
}
.cw-submit:hover { background: #1ebe5b; }
.cw-wa {
  width: 22px; height: 22px; flex: none;
  background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.75-.86-2.02-.96-.27-.1-.47-.15-.67.15-.2.3-.77.96-.94 1.16-.17.2-.35.22-.64.07-.3-.15-1.25-.46-2.38-1.47-.88-.79-1.47-1.76-1.65-2.06-.17-.3-.02-.46.13-.6.13-.14.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.6-.92-2.2-.24-.58-.49-.5-.67-.5h-.57c-.2 0-.52.07-.8.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.08c.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.7.63.71.22 1.36.19 1.87.12.57-.09 1.75-.72 2-1.41.25-.7.25-1.29.17-1.41-.07-.13-.27-.2-.57-.35zM12.04 21.8h-.01a9.8 9.8 0 0 1-5-1.37l-.36-.21-3.72.98 1-3.63-.24-.37a9.8 9.8 0 0 1-1.5-5.22c0-5.42 4.41-9.83 9.84-9.83 2.63 0 5.1 1.03 6.95 2.88a9.77 9.77 0 0 1 2.88 6.96c0 5.42-4.41 9.83-9.84 9.83zm8.37-18.2A11.76 11.76 0 0 0 12.04.13C5.5.13.2 5.43.2 11.96c0 2.09.55 4.13 1.59 5.92L.1 24l6.27-1.64a11.8 11.8 0 0 0 5.66 1.44h.01c6.53 0 11.84-5.3 11.84-11.83 0-3.16-1.23-6.13-3.47-8.37z'/%3E%3C/svg%3E");
}
.cw-nota { margin: 10px 0 0; font-size: .8125rem; color: #777; text-align: center; }

/* Botão flutuante
   Para ajustar a altura em uma página: :root { --cw-fab-bottom: 120px; --cw-fab-bottom-mobile: 120px; } */
.cw-fab {
  position: fixed; right: 24px; bottom: var(--cw-fab-bottom, 24px); z-index: 99990;
  display: flex; align-items: center;
  background: none; border: 0; padding: 0; cursor: pointer;
  font-family: 'Barlow', sans-serif;
  opacity: 0;
  animation: cw-up .25s ease 1.5s forwards;
}
.cw-fab-icon {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  width: 60px; height: 60px; border-radius: 50%;
  background: #25d366;
  box-shadow: 0 8px 24px rgba(1, 25, 50, .35);
  transition: background .15s, transform .15s;
}
.cw-fab-icon .cw-wa { width: 30px; height: 30px; }
/* anel pulsante */
.cw-fab-icon::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  border: 2px solid #25d366;
  animation: cw-pulse 2.4s ease-out 2s infinite;
  pointer-events: none;
}
.cw-fab-label {
  margin-right: 10px; padding: 10px 16px;
  background: #e8f3f8; color: var(--marca-1, #013162);
  font-size: 1rem; font-weight: 600; white-space: nowrap;
  box-shadow: 0 8px 24px rgba(1, 25, 50, .2);
  opacity: 0; transform: translateX(8px); pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}
.cw-fab:hover .cw-fab-icon, .cw-fab:focus-visible .cw-fab-icon { background: #1ebe5b; transform: translateY(-2px); }
.cw-fab:hover .cw-fab-label, .cw-fab:focus-visible .cw-fab-label { opacity: 1; transform: none; }
.cw-fab:focus-visible { outline: none; }
.cw-fab:focus-visible .cw-fab-icon { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--marca-1, #013162); }
html.cw-aberto .cw-fab { visibility: hidden; }

@keyframes cw-pulse {
  0% { transform: scale(1); opacity: .7; }
  70%, 100% { transform: scale(1.5); opacity: 0; }
}

@keyframes cw-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes cw-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

@media (max-width: 575px) {
  .cw-overlay { align-items: flex-end; padding: 0; }
  .cw-dialog { max-height: 92vh; padding: 16px 18px 24px; }
  .cw-grid { grid-template-columns: 1fr; }
  .cw-title { font-size: 1.5rem; }
  .cw-fab { right: 16px; bottom: var(--cw-fab-bottom-mobile, 16px); }
  .cw-fab-icon { width: 56px; height: 56px; }
  .cw-fab-label { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .cw-overlay, .cw-dialog { animation: none; }
  .cw-fab { animation: none; opacity: 1; }
  .cw-fab-icon::after { animation: none; display: none; }
  .cw-option, .cw-sub { transition: none; }
}
.cw-produto { display: block; margin-top: 4px; font-size: .875rem; color: var(--marca-2, #047fa9); font-weight: 600; }
