/* ExpertPulse — built-in contact form. Uses the site's tokens so it fits every demo and dark mode. */
.ep-cf {
    --cf-line: var(--border, rgba(127,127,127,.25));
    --cf-soft: var(--bg-section-alt, rgba(127,127,127,.06));
    --cf-r: var(--sk-field-radius, min(var(--radius, 10px), 12px));
    display: grid; gap: 16px; position: relative; font-family: var(--font-body, inherit); color: var(--text-main, inherit);
}
.ep-cf *, .ep-cf *::before, .ep-cf *::after { box-sizing: border-box; }
.ep-cf__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ep-cf__field { display: grid; gap: 7px; min-width: 0; align-content: start; }
.ep-cf .ep-cf__field > label { margin: 0; font-size: 13px; font-weight: 700; color: var(--text-main, inherit); }
.ep-cf__req { color: var(--accent-text, var(--accent)); }
.ep-cf__opt { font-weight: 500; color: var(--text-muted, #6b7280); }
.ep-cf input[type="text"], .ep-cf input[type="email"], .ep-cf input[type="tel"], .ep-cf select, .ep-cf textarea {
    width: 100%; margin: 0; padding: 12px 14px; border: 1.5px solid var(--cf-line); border-radius: var(--cf-r);
    background: var(--cf-soft); color: var(--text-main, inherit); font: inherit; font-size: 15px; line-height: 1.45; box-shadow: none;
    transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.ep-cf select { appearance: none; padding-right: 38px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
.ep-cf textarea { min-height: 150px; resize: vertical; }
.ep-cf input:focus, .ep-cf select:focus, .ep-cf textarea:focus, .ep-premium-form .ep-cf input:focus, .ep-premium-form .ep-cf textarea:focus { outline: none; border-color: var(--accent); background-color: var(--bg-body, #fff); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 15%, transparent); }
.ep-cf .is-invalid input, .ep-cf .is-invalid textarea { border-color: #e11d48; }
.ep-cf__err { min-height: 0; font-size: 12.5px; font-weight: 600; color: #e11d48; }
.ep-cf__err:empty { display: none; }
.ep-cf__consent label { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; font-weight: 500; color: var(--text-muted, inherit); cursor: pointer; }
.ep-cf__consent input { width: 18px; height: 18px; margin: 2px 0 0; flex: 0 0 18px; accent-color: var(--accent); }
.ep-cf__consent a { color: var(--accent-text, var(--accent)); }
.ep-cf__foot { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ep-cf button.ep-cf__btn {
    text-transform: none; box-shadow: none;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 26px;
    border: 0; border-radius: var(--cf-r); background: var(--accent-fill, var(--accent)); color: var(--on-accent, #fff);
    font: 700 14px/1 var(--sk-label-font, var(--font-body, inherit)); letter-spacing: .3px; cursor: pointer;
    transition: transform .15s, opacity .15s, filter .15s;
}
.ep-cf button.ep-cf__btn:hover { background: var(--accent-fill, var(--accent)); color: var(--on-accent, #fff); box-shadow: none; filter: brightness(.94); transform: translateY(-1px); }
.ep-cf__btn:focus-visible { outline: none; box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent); }
.ep-cf__btn[disabled] { opacity: .65; cursor: progress; transform: none; }
.ep-cf.is-sending .ep-cf__btn i { animation: ep-cf-fly .9s ease-in-out infinite; }
@keyframes ep-cf-fly { 50% { transform: translate(3px, -3px); } }
.ep-cf__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ep-cf__status:empty { display: none; }
.ep-cf__note { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; border-radius: var(--cf-r); font-size: 14.5px; font-weight: 600; line-height: 1.45; }
.ep-cf__note i { font-size: 18px; line-height: 1.2; }
.ep-cf__note--ok { background: color-mix(in srgb, #10b981 12%, var(--bg-body, #fff)); color: #047857; }
.ep-cf__note--err { background: color-mix(in srgb, #ef4444 11%, var(--bg-body, #fff)); color: #b91c1c; }
html[data-theme="dark"] .ep-cf__note--ok { color: #6ee7b7; }
html[data-theme="dark"] .ep-cf__note--err { color: #fca5a5; }
.ep-cf.is-done > :not(.ep-cf__status) { display: none; }
.ep-cf__again { margin-top: 12px; padding: 0; border: 0; background: none; color: var(--accent-text, var(--accent)); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) { .ep-cf__row { grid-template-columns: minmax(0, 1fr); } .ep-cf button.ep-cf__btn { width: 100%; } }
