/* Sema Form — výchozí styl. Vše přes proměnné --sf-*, přebarvit z custom.css webu. */
.sf-form {
    --sf-gap: 18px;
    --sf-label: inherit;
    --sf-input-bg: rgba(255, 255, 255, .08);
    --sf-input-fg: inherit;
    --sf-input-border: rgba(128, 128, 128, .4);
    --sf-input-focus: #888;
    --sf-radius: 4px;
    --sf-btn-bg: #444;
    --sf-btn-fg: #fff;
    --sf-btn-hover: #222;
    --sf-ok: #3c8a4b;
    --sf-error: #c0392b;
    --sf-req: #c0392b;
    max-width: 100%;
    font-size: 16px;
    line-height: 1.5;
}
.sf-grid            { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sf-gap); }
.sf-row--full,
.sf-row--textarea,
.sf-row--checkboxes { grid-column: 1 / -1; }
.sf-row             { margin: 0; min-width: 0; }
.sf-row--captcha,
.sf-row--consent,
.sf-row--submit     { margin-top: var(--sf-gap); }
.sf-label           { display: block; margin: 0 0 6px; color: var(--sf-label); }
.sf-req             { color: var(--sf-req); }
.sf-fieldset        { margin: 0; padding: 0; border: 0; min-width: 0; }
.sf-fieldset legend { padding: 0; }
.sf-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    font: inherit;
    color: var(--sf-input-fg);
    background: var(--sf-input-bg);
    border: 1px solid var(--sf-input-border);
    border-radius: var(--sf-radius);
}
.sf-input:focus     { outline: 2px solid var(--sf-input-focus); outline-offset: 1px; border-color: var(--sf-input-focus); }
.sf-input::placeholder { opacity: .6; }
.sf-textarea        { min-height: 130px; resize: vertical; }
.sf-checks          { display: grid; gap: 6px; }
.sf-check           { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; }
.sf-check input     { margin: .3em 0 0; flex: 0 0 auto; }
.sf-check span      { margin: 0; }
.sf-honeypot        { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sf-message         { margin: var(--sf-gap) 0 0; padding: 12px 14px; border-radius: var(--sf-radius); white-space: pre-line; }
.sf-message--ok     { background: var(--sf-ok); color: #fff; }
.sf-message--error  { background: var(--sf-error); color: #fff; }
.sf-btn {
    display: inline-block;
    padding: 12px 28px;
    font: inherit;
    font-weight: 500;
    color: var(--sf-btn-fg);
    background: var(--sf-btn-bg);
    border: 0;
    border-radius: var(--sf-radius);
    cursor: pointer;
    transition: background .2s;
}
.sf-btn:hover,
.sf-btn:focus       { background: var(--sf-btn-hover); }
.sf-btn:disabled    { opacity: .6; cursor: wait; }
@media (max-width: 575.98px) {
    .sf-grid        { grid-template-columns: minmax(0, 1fr); }
}
