/* Captação — global: formulário (seção Contato e pop-up), estado de sucesso e pop-up (<dialog>). */

/* ---------- Formulário ---------- */
.ns-form__grid { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .ns-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ns-field { display: grid; gap: 0.4rem; margin: 0; }
.ns-field--full { grid-column: 1 / -1; }
.ns-field__label { font-size: 0.875rem; font-weight: 600; color: var(--ns-text); }
.ns-field__label em { font-style: normal; font-weight: 400; color: var(--ns-text-2); }
.ns-field .wpcf7-form-control-wrap { display: block; }

.ns-form input[type="text"], .ns-form input[type="tel"], .ns-form input[type="email"], .ns-form select, .ns-form textarea {
  inline-size: 100%; min-block-size: 3.25rem; padding: 0.75rem 1rem;
  font: inherit; font-size: 1rem; line-height: 1.4; color: var(--ns-text);
  background: var(--ns-white); border: 1px solid var(--ns-line); border-radius: var(--ns-r-sm);
  transition: border-color var(--ns-dur-micro) var(--ns-ease), box-shadow var(--ns-dur-micro) var(--ns-ease);
  appearance: none; -webkit-appearance: none;
}
.ns-form textarea { min-block-size: 6rem; resize: vertical; }
.ns-form select {
  padding-inline-end: 2.75rem; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230141a5' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1rem center; background-size: 0.75rem;
}
.ns-form ::placeholder { color: #6b7480; }
.ns-form input:focus, .ns-form select:focus, .ns-form textarea:focus { outline: none; border-color: var(--ns-blue); box-shadow: 0 0 0 3px rgba(1, 65, 165, 0.16); }
.ns-form .wpcf7-not-valid { border-color: var(--ns-error); }
.ns-form .wpcf7-not-valid-tip { display: block; margin-block-start: 0.35rem; font-size: 0.8125rem; color: var(--ns-error); }

.ns-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-block-start: 1.25rem; }
.ns-form__foot p { margin: 0; }
.ns-form .wpcf7-submit { min-inline-size: 13rem; }
.ns-form__note { font-size: 0.8125rem; color: var(--ns-text-2); max-inline-size: 30ch; }
.ns-form .wpcf7-spinner { margin: 0 0 0 0.5rem; }
@media (max-width: 639px) { .ns-form .wpcf7-submit { inline-size: 100%; } }

.ns-form .wpcf7-response-output {
  margin: 1.25rem 0 0 !important; padding: 0.875rem 1rem !important; border-radius: var(--ns-r-sm);
  border: 1px solid var(--ns-line) !important; font-size: 0.9375rem; background: var(--ns-white);
}
.ns-form.invalid .wpcf7-response-output, .ns-form.failed .wpcf7-response-output, .ns-form.spam .wpcf7-response-output { border-color: var(--ns-error) !important; color: var(--ns-error); }
.ns-form.sent .wpcf7-response-output { border-color: var(--ns-green) !important; color: var(--ns-success); }
.ns-form .screen-reader-response { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ns-form .hidden-fields-container { display: contents; border: 0; padding: 0; margin: 0; }

/* Campo-isca do anti-spam: fora da tela para pessoas (não usar display:none, alguns robôs ignoram). */
.ns-form .ns-hp-field { position: absolute !important; inset-inline-start: -10000px; inline-size: 1px; block-size: 1px; overflow: hidden; }

/* ---------- Sucesso ---------- */
.ns-lead-ok { display: grid; gap: var(--ns-s-4); justify-items: start; padding-block: var(--ns-s-4); }
.ns-lead-ok[hidden] { display: none; }
.ns-lead-ok:focus { outline: none; }
.ns-lead-ok__icon svg { inline-size: 3rem; block-size: 3rem; }
.ns-lead-ok__icon circle { fill: var(--ns-green); }
.ns-lead-ok__icon path { fill: none; stroke: var(--ns-night); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.ns-lead-ok__title { margin: 0; font-family: var(--ns-font-display); font-size: clamp(1.5rem, 1.3rem + 0.8vw, 2rem); font-weight: 500; letter-spacing: -0.02em; color: var(--ns-text); }
.ns-lead-ok__text { margin: 0; color: var(--ns-text-2); max-inline-size: 42ch; }

/* ---------- Pop-up ---------- */
html.ns-lm-open { overflow: hidden; }
.ns-lm {
  inline-size: min(100% - 2rem, 58rem); max-inline-size: none; max-block-size: calc(100dvh - 2rem);
  padding: 0; border: 0; border-radius: var(--ns-r-lg); background: transparent; color: var(--ns-text);
  overflow: visible;
}
.ns-lm::backdrop { background: rgba(10, 30, 61, 0.55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ns-lm[open] { animation: ns-lm-in 320ms var(--ns-ease-out); }
.ns-lm[open]::backdrop { animation: ns-lm-fade 320ms var(--ns-ease-out); }
@keyframes ns-lm-in { from { opacity: 0; transform: translateY(16px) scale(0.98); } }
@keyframes ns-lm-fade { from { opacity: 0; } }

.ns-lm__panel {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr);
  max-block-size: calc(100dvh - 2rem); overflow: auto; overscroll-behavior: contain;
  background: var(--ns-white); border-radius: var(--ns-r-lg); box-shadow: 0 40px 80px -30px rgba(10, 30, 61, 0.55);
}
@media (min-width: 860px) { .ns-lm__panel { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); } }

.ns-lm__close {
  position: absolute; inset-block-start: 0.75rem; inset-inline-end: 0.75rem; z-index: 2;
  display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border-radius: 50%;
  background: var(--ns-paper); border: 1px solid var(--ns-line); color: var(--ns-text); cursor: pointer;
}
.ns-lm__close svg { inline-size: 1.125rem; block-size: 1.125rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
@media (hover: hover) and (pointer: fine) { .ns-lm__close:hover { background: var(--ns-night); color: #fff; border-color: var(--ns-night); } }

.ns-lm__side { display: grid; gap: 1rem; align-content: start; padding: clamp(1.5rem, 3vw, 2.5rem); border-start-start-radius: var(--ns-r-lg); }
@media (min-width: 860px) { .ns-lm__side { border-end-start-radius: var(--ns-r-lg); } }
@media (max-width: 859px) { .ns-lm__side { border-start-end-radius: var(--ns-r-lg); padding-block-end: 1.5rem; } }
.ns-lm__logo { inline-size: 3.5rem; block-size: auto; margin-block-end: 0.5rem; }
.ns-lm__title { margin: 0; font-family: var(--ns-font-display); font-weight: 500; font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); line-height: 1.05; letter-spacing: -0.03em; color: var(--ns-text-on-dark); }
.ns-lm__text { margin: 0; color: var(--ns-text-on-dark-2); }
.ns-lm__list { display: grid; gap: 0.625rem; margin: 0.5rem 0 0; padding: 0; list-style: none; }
.ns-lm__list li { display: flex; align-items: center; gap: 0.625rem; font-size: 0.9688rem; color: var(--ns-text-on-dark); }
.ns-lm__list svg { inline-size: 1.25rem; block-size: 1.25rem; flex: none; }
.ns-lm__list circle { fill: var(--ns-green); }
.ns-lm__list path { fill: none; stroke: var(--ns-night); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 859px) { .ns-lm__text, .ns-lm__list { display: none; } }

.ns-lm__main { padding: clamp(1.5rem, 3vw, 2.5rem); padding-block-start: clamp(1.5rem, 3vw, 3rem); }
