.vsp-content-listing{--vsp-content-cols:3;position:relative}.vsp-content-cards__grid{display:grid;grid-template-columns:repeat(var(--vsp-content-cols),minmax(0,1fr));gap:var(--vsp-content-card-gap,24px)}.vsp-content-listing.is-loading .vsp-content-cards__grid{opacity:.5;pointer-events:none}.vsp-content-listing.is-loading{cursor:progress}.vsp-content-card{background:var(--vsp-content-card-bg,var(--vsp-bg));border-radius:var(--vsp-content-card-radius,var(--vsp-radius));border-color:var(--vsp-content-card-border,var(--vsp-border));transition-duration:var(--vsp-content-card-transition,.35s)}.vsp-content-card .vsp-card__media{aspect-ratio:var(--vsp-content-card-ratio,3/2)}.vsp-content-card .vsp-card__title{font-size:var(--vsp-content-card-title-size,19px);line-height:var(--vsp-content-card-title-line,1.3em)}.vsp-content-card .vsp-card__title a{color:var(--vsp-content-card-title,var(--vsp-text))}.vsp-content-card .vsp-card__title a:hover{color:var(--vsp-content-card-title-hover,var(--vsp-primary))}.vsp-content-card .vsp-card__excerpt{font-size:var(--vsp-content-card-excerpt-size,15px);line-height:var(--vsp-content-card-excerpt-line,1.6em);color:var(--vsp-content-card-excerpt,var(--vsp-muted))}.vsp-content-pager{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:32px}.vsp-content-pager button{min-width:42px;height:42px;padding:0 12px;border:1px solid var(--vsp-border);border-radius:10px;background:var(--vsp-surface);color:var(--vsp-text);font:inherit;font-weight:700;cursor:pointer;transition:background .35s,color .35s,border-color .35s,transform .35s}.vsp-content-pager button:hover:not(:disabled),.vsp-content-pager button:focus-visible{background:var(--vsp-primary);border-color:var(--vsp-primary);color:var(--vsp-on-primary);transform:translateY(-2px)}.vsp-content-pager button[aria-current="page"]{background:var(--vsp-primary);border-color:var(--vsp-primary);color:var(--vsp-on-primary)}.vsp-content-pager button:disabled{opacity:.4;cursor:not-allowed}.vsp-content-cards__empty{text-align:center;grid-column:1/-1;color:var(--vsp-muted)}
/* Base autônoma: mantém os shortcodes funcionais mesmo em HTML personalizado sem main.css. */
.vsp-content-card{display:flex;flex-direction:column;overflow:hidden;background:var(--vsp-content-card-bg,var(--vsp-bg,#fff));border:1px solid var(--vsp-content-card-border,var(--vsp-border,#dfe6ee));box-shadow:0 4px 18px rgba(0,0,0,.06)}.vsp-content-card .vsp-card__media{position:relative;display:block;overflow:hidden;background:var(--vsp-surface,#f4f7fa)}.vsp-content-card .vsp-card__img{width:100%;height:100%;object-fit:cover;transition:transform var(--vsp-content-card-transition,.35s) ease}.vsp-content-card:hover .vsp-card__img{transform:scale(1.05)}.vsp-content-card .vsp-card__body{display:flex;flex-direction:column;gap:10px;padding:18px 20px 20px;flex:1}.vsp-content-card .vsp-card__title{margin:0}.vsp-content-card .vsp-card__title a{text-decoration:none}.vsp-content-card .vsp-card__excerpt{margin:0;flex:1}.vsp-content-card .vsp-card__badge{position:absolute;top:12px;left:12px;padding:5px 12px;border-radius:999px;background:var(--vsp-card-badge-bg,#fff);color:var(--vsp-card-badge-tx,#1f4d66);font-size:12px;font-weight:700}.vsp-content-card .vsp-card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding-top:14px;border-top:1px solid var(--vsp-border,#dfe6ee)}.vsp-content-card .vsp-card__meta,.vsp-content-card .vsp-card__more{display:inline-flex;align-items:center;gap:5px}.vsp-content-card .vsp-card__more{color:var(--vsp-primary,#2f6f8f);font-weight:700;text-decoration:none}.vsp-contact-form-embed{width:100%}.vsp-contact-form{display:flex;flex-direction:column;gap:16px;margin-top:16px}.vsp-field{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}.vsp-field input,.vsp-field textarea{box-sizing:border-box;width:100%;padding:12px 14px;border:2px solid var(--vsp-border,#dfe6ee);border-radius:var(--vsp-radius,14px);background:var(--vsp-bg,#fff);color:var(--vsp-text,#1f2328);font:inherit}.vsp-field input:focus,.vsp-field textarea:focus{outline:none;border-color:var(--vsp-primary,#2f6f8f);box-shadow:0 0 0 4px color-mix(in srgb,var(--vsp-primary,#2f6f8f) 16%,transparent)}.vsp-field-row{display:flex;gap:16px}.vsp-field-row .vsp-field{flex:1}.vsp-contact-form__feedback{padding:12px 16px;border-radius:10px;font-weight:600}.vsp-contact-form__feedback.is-ok{background:color-mix(in srgb,var(--vsp-accent,#2d8a78) 16%,transparent);color:var(--vsp-accent,#2d8a78)}.vsp-contact-form__feedback.is-error{background:color-mix(in srgb,#e03131 18%,transparent);color:#e03131}@media(max-width:900px){.vsp-content-listing:not(.vsp-content-listing--cols-1) .vsp-content-cards__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.vsp-content-cards__grid{grid-template-columns:1fr!important}.vsp-field-row{flex-direction:column}}

/* ==========================================================================
   FORMULÁRIO DE CONTATO — clássico + moderno
   ========================================================================== */
.vsp-contact-form__heading{margin:0 0 22px}.vsp-contact-form__title{margin:0 0 10px;font-size:clamp(22px,2.4vw,30px);line-height:1.18}.vsp-contact-form__intro{margin:0;color:var(--vsp-muted);line-height:1.65}.vsp-contact-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--vsp-contact-form-gap,16px)}.vsp-contact-form__grid .vsp-field--message{grid-column:1/-1}.vsp-contact-form .vsp-field{gap:8px;min-width:0}.vsp-contact-form .vsp-field>span{color:var(--vsp-contact-label,var(--vsp-text));font-weight:750;line-height:1.35}.vsp-contact-form .vsp-field>span small{font-weight:500;color:var(--vsp-muted);font-size:.9em}.vsp-contact-form .vsp-field input,.vsp-contact-form .vsp-field select,.vsp-contact-form .vsp-field textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--vsp-contact-field-border,var(--vsp-border));border-radius:var(--vsp-contact-field-radius,var(--vsp-radius-sm));background:var(--vsp-contact-field-bg,var(--vsp-bg));color:var(--vsp-text);font:inherit;transition:border-color .2s var(--vsp-ease),box-shadow .2s var(--vsp-ease),background-color .2s var(--vsp-ease)}.vsp-contact-form .vsp-field input,.vsp-contact-form .vsp-field select{height:var(--vsp-contact-field-height,48px);padding:0 14px}.vsp-contact-form .vsp-field textarea{min-height:var(--vsp-contact-message-height,150px);padding:14px;resize:vertical}.vsp-contact-form .vsp-field input::placeholder,.vsp-contact-form .vsp-field textarea::placeholder{color:var(--vsp-contact-placeholder,var(--vsp-muted));opacity:.92}.vsp-contact-form .vsp-field input:focus,.vsp-contact-form .vsp-field select:focus,.vsp-contact-form .vsp-field textarea:focus{outline:none;border-color:var(--vsp-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--vsp-primary) 16%,transparent)}.vsp-contact-form .vsp-field select{appearance:auto}.vsp-contact-consent{display:flex;align-items:flex-start;gap:12px;color:var(--vsp-contact-helper,var(--vsp-muted));font-size:13px;line-height:1.55;cursor:pointer}.vsp-contact-consent input{width:16px;height:16px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--vsp-primary)}.vsp-contact-consent a{color:var(--vsp-primary);text-decoration:underline;text-underline-offset:2px}.vsp-contact-form__footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:18px;border-top:1px solid var(--vsp-contact-form-border,var(--vsp-border))}.vsp-contact-form__helper{margin:0;max-width:46ch;color:var(--vsp-contact-helper,var(--vsp-muted));font-size:13px;line-height:1.55}.vsp-contact-form__submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 20px;border:1px solid transparent;border-radius:999px;background:var(--vsp-contact-button-bg,var(--vsp-primary));color:var(--vsp-contact-button-text,var(--vsp-on-primary));font-weight:750;white-space:nowrap;cursor:pointer;transition:transform .2s var(--vsp-ease),box-shadow .2s var(--vsp-ease),background-color .2s var(--vsp-ease),color .2s var(--vsp-ease)}.vsp-contact-form__submit:hover,.vsp-contact-form__submit:focus-visible{background:var(--vsp-contact-button-bg-hover,var(--vsp-primary-dk));color:var(--vsp-contact-button-text-hover,var(--vsp-on-primary));transform:translateY(-2px);box-shadow:var(--vsp-shadow-md)}.vsp-contact-form__submit:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--vsp-primary) 18%,transparent),var(--vsp-shadow-md)}.vsp-contact-form.is-loading .vsp-contact-form__submit{opacity:.72;cursor:progress;transform:none}.vsp-contact-form__feedback{margin:0}.vsp-contact-form-wrap--modern{width:100%;padding:var(--vsp-contact-form-padding,30px);border:1px solid var(--vsp-contact-form-border,var(--vsp-border));border-radius:var(--vsp-contact-form-radius,var(--vsp-radius-lg));background:var(--vsp-contact-form-bg,var(--vsp-surface));background:linear-gradient(145deg,color-mix(in srgb,var(--vsp-contact-form-bg,var(--vsp-surface)) 92%,var(--vsp-bg)),var(--vsp-contact-form-bg,var(--vsp-bg)));box-shadow:0 18px 50px color-mix(in srgb,#000 8%,transparent)}.vsp-contact-form-wrap--modern .vsp-contact-form{gap:var(--vsp-contact-form-gap,16px);margin-top:0}.vsp-contact-form-wrap--modern .vsp-contact-form__heading+.vsp-contact-form{margin-top:0}.vsp-contact-form-wrap--classic{width:100%}.vsp-contact-form-wrap--classic .vsp-contact-form__grid{gap:16px}.vsp-contact-form-wrap--classic .vsp-contact-form__footer{padding-top:0;border-top:0}.vsp-contact-form-wrap--classic .vsp-contact-form__helper{display:none}.vsp-contact-form-wrap--classic .vsp-contact-form__submit{border-radius:var(--vsp-radius-sm);background:var(--vsp-primary);color:var(--vsp-on-primary)}
@media(max-width:680px){.vsp-contact-form__grid{grid-template-columns:1fr}.vsp-contact-form__grid .vsp-field--message{grid-column:auto}.vsp-contact-form__footer{align-items:stretch;flex-direction:column}.vsp-contact-form__helper{max-width:none}.vsp-contact-form__submit{width:100%}.vsp-contact-form-wrap--modern{padding:clamp(20px,5vw,28px)}}
@media(prefers-reduced-motion:reduce){.vsp-contact-form__submit,.vsp-contact-form .vsp-field input,.vsp-contact-form .vsp-field select,.vsp-contact-form .vsp-field textarea{transition-duration:.01ms}.vsp-contact-form__submit:hover{transform:none}}

/* Compatibilidade visual do preset clássico: assunto e mensagem ocupam a largura inteira. */
.vsp-contact-form-wrap--classic .vsp-field--subject,
.vsp-contact-form-wrap--classic .vsp-field--message {
  grid-column: 1 / -1;
}
