/* =============================================================================
   simulator.css — Simulador de Financiamento page styles
   Sections: #banner, #sim-form, #sim-faq
   ============================================================================= */

/* ── BANNER ─────────────────────────────────────────────────────────────────── */
#banner {
  position: relative;
  height: 800px; overflow: hidden;
  background: var(--g01);
}
.banner-bg {
  position: absolute; inset: 0;
  will-change: transform;
}
.banner-bg picture,
.banner-bg img,
.banner-bg video,
.banner-youtube {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 30%;
}
.banner-bg video,
.banner-youtube {
  position: absolute; inset: 0;
  border: 0; pointer-events: none;
}
.banner-youtube {
  width: 100vw; height: 56.25vw;
  min-width: 177.78vh; min-height: 100vh;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
}
.banner-poster { position: absolute; inset: 0; }
.banner-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.3);
  z-index: 1;
}
.banner-content {
  position: absolute; bottom: 80px; left: var(--pp);
  max-width: 845px;
  z-index: 2;
}
.banner-eyebrow {
  font-size: 16px; font-weight: 700; color: white;
  letter-spacing: .08em; text-transform: uppercase;
  margin-bottom: 19px;
  opacity: 0; transform: translateY(20px);
  animation: simFu .7s .3s forwards;
}
.banner-title {
  font-size: 56px; font-weight: 900; color: white;
  line-height: 1.2;
  opacity: 0; transform: translateY(20px);
  animation: simFu .7s .5s forwards;
}
@keyframes simFu { to { opacity: 1; transform: translateY(0); } }

/* ── SIMULADOR FORM ──────────────────────────────────────────────────────────── */
#sim-form { background: #fff; padding: 72px 0; }

.sim-group { margin-bottom: 40px; }
.sim-group:last-of-type { margin-bottom: 0; }

.sim-group-title {
  font-size: 24px; font-weight: 500; color: var(--preto);
  padding-bottom: 24px; margin-bottom: 32px;
  border-bottom: 1px solid var(--g03);
}

/* Form rows */
.sim-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gap); margin-bottom: 32px;
}
.sim-row:last-of-type { margin-bottom: 0; }
.sim-field { display: flex; flex-direction: column; gap: 8px; }
.sim-group > .sim-field + .sim-field { margin-top: 24px; }
.sim-label,
#sim-form .wpcf7-form label {
  font-size: 14px; font-weight: 300; color: var(--g08); line-height: 1.4;
}
.sim-input,
.sim-select,
#sim-form .wpcf7-form :is(input:not([type="hidden"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="image"]):not([type="button"]):not([type="reset"]), select, textarea) {
  width: 100%; padding: 12px 16px;
  border: 1px solid var(--g02); border-radius: 4px;
  font-family: inherit; font-size: 18px; font-weight: 500;
  color: var(--preto); background: #fff; outline: none;
  transition: border-color var(--t), box-shadow var(--t);
  appearance: none; -webkit-appearance: none;
}
.sim-input:focus,
.sim-select:focus,
#sim-form .wpcf7-form :is(input, select, textarea):focus-visible {
  border-color: rgba(255,0,0,.4);
  box-shadow: 0 0 0 3px rgba(255,0,0,.12);
}
.sim-input::placeholder,
#sim-form .wpcf7-form input::placeholder,
#sim-form .wpcf7-form textarea::placeholder { color: var(--g03); }
.sim-select,
#sim-form .wpcf7-form select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23241f21' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
  padding-right: 44px; cursor: pointer;
}

/* FGTS radio */
.sim-radio-group {
  display: flex; gap: 16px; align-items: center;
}
.sim-radio-opt {
  display: flex; align-items: center; gap: 4px;
  font-size: 16px; font-weight: 500; color: var(--preto);
  cursor: pointer;
}
.sim-radio-opt input[type="radio"] {
  appearance: none; -webkit-appearance: none;
  width: 18px; height: 18px; border-radius: 50%;
  border: 1px solid var(--v); background: #fff;
  flex-shrink: 0; cursor: pointer;
  transition: background var(--t), border-color var(--t);
  position: relative;
}
.sim-radio-opt input[type="radio"]:checked {
  border-color: var(--v); background: var(--v);
}
.sim-radio-opt input[type="radio"]:checked::after {
  content: ''; position: absolute;
  inset: 3px; border-radius: 50%;
  background: white;
}

/* Privacy consent */
.sim-consent {
  display: flex; align-items: flex-start; gap: 10px;
  margin-top: 28px;
}
.sim-consent input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 18px; height: 18px; border: 1px solid var(--v);
  border-radius: 3px; background: #fff;
  flex: 0 0 18px; margin-top: 2px; cursor: pointer;
  transition: background var(--t), box-shadow var(--t), border-color var(--t);
}
.sim-consent input[type="checkbox"]:checked {
  background: var(--v);
  box-shadow: inset 0 0 0 3px #fff;
}
.sim-consent__label {
  font-size: 14px; color: var(--g08); line-height: 1.5;
}
.sim-consent__label a {
  color: var(--preto); font-weight: 600; text-decoration: underline;
  text-underline-offset: 3px;
}
.sim-consent__label a:hover { color: var(--v); }
.sim-consent.field--error { flex-wrap: wrap; }
.sim-consent.field--error .sim-consent__label { color: var(--v); }
.sim-consent.field--error input[type="checkbox"] {
  border-color: var(--v);
  box-shadow: 0 0 0 2px rgba(255,0,0,.12);
}
.sim-consent.field--error .error-msg {
  flex: 0 0 100%; margin-left: 28px; margin-top: 0;
}

/* Submit row */
.sim-submit-row {
  display: flex; align-items: center;
  justify-content: flex-end; gap: 40px;
  margin-top: 40px;
}
.btn-simular,
#sim-form .wpcf7-form :is(input[type="submit"], button[type="submit"], button:not([type])) {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 40px; height: 52px;
  background: var(--ve); color: white; border-radius: var(--r);
  font-size: 14px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  white-space: nowrap; font-family: inherit; cursor: pointer; border: none;
  transition: background var(--t), transform var(--t), box-shadow var(--t);
}
.btn-simular:hover,
#sim-form .wpcf7-form :is(input[type="submit"], button[type="submit"], button:not([type])):hover {
  background: #700000;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(153,0,0,.3);
}

/* Validation */
.sim-input.field--error,
.sim-select.field--error { border-color: var(--v) !important; box-shadow: 0 0 0 2px rgba(255,0,0,.12) !important; }
.error-msg { display: block; font-size: 12px; color: var(--v); font-weight: 500; margin-top: 4px; }

/* ── FAQ ─────────────────────────────────────────────────────────────────────── */
#sim-faq { background: var(--g01); padding: 72px 0; }

.faq-head { margin-bottom: 48px; }
.faq-tag {
  font-size: 16px; font-weight: 700; color: var(--ve);
  text-transform: uppercase; letter-spacing: .08em; margin-bottom: 12px;
}
.faq-ttl {
  font-size: 40px; font-weight: 700; color: var(--preto); line-height: 1.2;
}

/* Accordion */
.faq-list { display: flex; flex-direction: column; gap: 16px; margin-bottom: 48px; }
.faq-item {
  background: #fff; border: 1px solid var(--g02);
  border-radius: 12px; overflow: hidden;
}
.faq-btn {
  width: 100%; display: flex; align-items: center;
  justify-content: space-between; gap: 24px;
  padding: 24px; background: none; border: none;
  font-family: inherit; font-size: 16px; font-weight: 600;
  color: var(--preto); text-align: left; cursor: pointer;
  transition: color var(--t);
}
.faq-btn:hover { color: var(--ve); }
.faq-icon {
  width: 24px; height: 24px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: transform .3s ease;
}
.faq-icon svg { width: 12px; height: 12px; stroke: var(--preto); }
.faq-item.open .faq-icon { transform: rotate(180deg); }
.faq-body {
  max-height: 0; overflow: hidden;
  transition: max-height .35s ease, padding .35s ease;
  padding: 0 24px;
}
.faq-item.open .faq-body { max-height: 1200px; padding: 0 24px 24px; }
.faq-body p,
.faq-body li { font-size: 15px; color: var(--g08); line-height: 1.7; }
.faq-body p + p,
.faq-body ul + p,
.faq-body ol + p { margin-top: 12px; }
.faq-body ul,
.faq-body ol {
  margin: 12px 0 0 20px; color: var(--g08);
}
.faq-body li + li { margin-top: 6px; }
.faq-body strong { color: var(--preto); font-weight: 700; }
.faq-body a {
  color: var(--ve); font-weight: 600; text-decoration: underline;
  text-underline-offset: 3px;
}

/* CTA Banner */
.faq-cta {
  display: flex; align-items: center;
  justify-content: space-between; gap: 20px;
  padding: 32px; background: var(--ve);
  border-radius: 12px;
}
.faq-cta-txt { flex: 1; }
.faq-cta-title {
  font-size: 22px; font-weight: 700; color: white;
  line-height: 1.3; margin-bottom: 8px;
}
.faq-cta-sub { font-size: 16px; font-weight: 300; color: rgba(255,255,255,.85); }
.faq-cta-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 32px; background: var(--v);
  color: white; border-radius: var(--r);
  font-size: 14px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  white-space: nowrap; text-decoration: none;
  transition: background var(--t), transform var(--t);
  flex-shrink: 0;
}
.faq-cta-btn:hover { background: #cc0000; transform: translateY(-1px); }

/* ── RESULTADO MODAL ─────────────────────────────────────────────────────────── */
.sim-result-modal {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .3s;
}
.sim-result-modal.open { opacity: 1; pointer-events: all; }
.sim-result-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.55);
}
.sim-result-modal__box {
  position: relative; z-index: 1;
  background: #fff; border-radius: 16px;
  padding: 48px 40px; width: 480px; max-width: calc(100vw - 32px);
  display: flex; flex-direction: column; align-items: center;
  gap: 16px; text-align: center;
  box-shadow: 0 24px 64px rgba(0,0,0,.2);
}
.sim-result-modal__close {
  position: absolute; top: 16px; right: 16px;
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--g01); border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background var(--t);
}
.sim-result-modal__close:hover { background: var(--g02); }
.sim-result-modal__close svg { width: 16px; height: 16px; color: var(--preto); }
.sim-result-btn { margin-top: 8px; }

/* ── RESPONSIVE ──────────────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .banner-title  { font-size: 40px; }
  .sim-row  { grid-template-columns: 1fr; }
  .faq-ttl  { font-size: 32px; }
  .faq-cta  { flex-direction: column; align-items: flex-start; }
  .faq-cta-btn { width: 100%; justify-content: center; }
}
@media (max-width: 640px) {
  .banner-title    { font-size: 32px; }
  .banner-deco   { display: none; }
  #sim-form   { padding: 48px 0; }
  #sim-faq    { padding: 48px 0; }
  .faq-ttl    { font-size: 26px; }
}

/* CF7 adds wrappers and paragraphs around its controls. */
#sim-form .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
#sim-form .sim-field .wpcf7-form-control-wrap { margin-top: 0; }
#sim-form .wpcf7-form > p { margin-bottom: 24px; }
#sim-form .wpcf7-form .sim-field > p { margin: 0; }
#sim-form .wpcf7-form .sim-field > p > br { display: none; }
#sim-form .wpcf7-form .sim-field > p > .sim-label { display: block; }
#sim-form .wpcf7-form .sim-field > p > .sim-label + br + .wpcf7-form-control-wrap { margin-top: 8px; }
#sim-form .wpcf7-form .sim-submit-row > p {
  display: flex; align-items: center; gap: 12px; margin: 0;
}
#sim-form .wpcf7-list-item { margin: 0 16px 8px 0; }
#sim-form .wpcf7-list-item label {
  display: inline-flex; align-items: center; gap: 8px;
}
#sim-form .wpcf7-form input:is([type="radio"], [type="checkbox"]) {
  width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--v);
}
#sim-form .wpcf7-form .wpcf7-not-valid { border-color: var(--v); }
#sim-form .wpcf7-not-valid-tip { font-size: 12px; margin-top: 4px; }
#sim-form .wpcf7-form :is(input[type="submit"], button[type="submit"]):disabled {
  opacity: .6; cursor: not-allowed;
}
