.zcqf-wrap {
    width: 100%;
    max-width: 900px;
    box-sizing: border-box;
}
.zcqf-wrap *, .zcqf-wrap *::before, .zcqf-wrap *::after { box-sizing: border-box; }
.zcqf-form { margin: 0; }
.zcqf-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 32px;
    row-gap: 34px;
}
.zcqf-field { min-width: 0; }
.zcqf-full { grid-column: 1 / -1; }
.zcqf-field > label {
    display: block;
    margin: 0 0 7px;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 400;
}
.zcqf-field > label span[aria-hidden="true"] { color: #c62828; margin-left: 2px; }
.zcqf-field input[type="text"],
.zcqf-field input[type="email"],
.zcqf-field input[type="tel"],
.zcqf-field input[type="number"],
.zcqf-field input[type="date"],
.zcqf-field input[type="file"],
.zcqf-field select,
.zcqf-field textarea {
    width: 100%;
    max-width: 100%;
    margin: 0;
    font: inherit;
    line-height: 1.5;
    background: transparent;
    box-shadow: none;
    outline: none;
}
.zcqf-field textarea { resize: vertical; min-height: 120px; }
.zcqf-field small {
    display: block;
    margin-top: 5px;
    font-size: 13px;
    line-height: 1.4;
    opacity: .8;
}
.zcqf-submit { margin-top: 30px; }
.zcqf-submit button {
    appearance: none;
    border: 0;
    border-radius: 2px;
    padding: 13px 22px;
    min-height: 48px;
    font: inherit;
    font-size: 17px;
    line-height: 1.2;
    cursor: pointer;
    background: var(--zcqf-button, #fbbf24);
    color: var(--zcqf-button-text, #111827);
    transition: filter .15s ease, transform .15s ease;
}
.zcqf-submit button:hover { filter: brightness(.96); }
.zcqf-submit button:active { transform: translateY(1px); }
.zcqf-submit button:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.zcqf-notice {
    margin: 0 0 24px;
    padding: 12px 14px;
    border-left: 4px solid;
    background: rgba(0,0,0,.04);
}
.zcqf-success { border-left-color: #16803a; }
.zcqf-error { border-left-color: #b42318; }
.zcqf-hp { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.zcqf-choices { display: grid; gap: 8px; }
.zcqf-choice, .zcqf-consent label { display: flex; align-items: flex-start; gap: 8px; }
.zcqf-choice input, .zcqf-consent input { margin-top: .25em; }

/* Underline preset */
.zcqf-style-underline .zcqf-field input[type="text"],
.zcqf-style-underline .zcqf-field input[type="email"],
.zcqf-style-underline .zcqf-field input[type="tel"],
.zcqf-style-underline .zcqf-field input[type="number"],
.zcqf-style-underline .zcqf-field input[type="date"],
.zcqf-style-underline .zcqf-field input[type="file"],
.zcqf-style-underline .zcqf-field select,
.zcqf-style-underline .zcqf-field textarea {
    border: 0;
    border-bottom: 2px solid var(--zcqf-field-color, #8b8f9b);
    border-radius: 0;
    padding: 7px 7px 8px;
}
.zcqf-style-underline .zcqf-field input:focus,
.zcqf-style-underline .zcqf-field select:focus,
.zcqf-style-underline .zcqf-field textarea:focus {
    border-bottom-color: currentColor;
}
.zcqf-style-underline .zcqf-field input[type="file"] { padding-left: 7px; }

/* Boxed preset */
.zcqf-style-boxed .zcqf-field input[type="text"],
.zcqf-style-boxed .zcqf-field input[type="email"],
.zcqf-style-boxed .zcqf-field input[type="tel"],
.zcqf-style-boxed .zcqf-field input[type="number"],
.zcqf-style-boxed .zcqf-field input[type="date"],
.zcqf-style-boxed .zcqf-field input[type="file"],
.zcqf-style-boxed .zcqf-field select,
.zcqf-style-boxed .zcqf-field textarea {
    border: 1px solid var(--zcqf-field-color, #8b8f9b);
    border-radius: 4px;
    padding: 10px 12px;
}

/* Soft preset */
.zcqf-style-soft .zcqf-field input[type="text"],
.zcqf-style-soft .zcqf-field input[type="email"],
.zcqf-style-soft .zcqf-field input[type="tel"],
.zcqf-style-soft .zcqf-field input[type="number"],
.zcqf-style-soft .zcqf-field input[type="date"],
.zcqf-style-soft .zcqf-field input[type="file"],
.zcqf-style-soft .zcqf-field select,
.zcqf-style-soft .zcqf-field textarea {
    border: 1px solid var(--zcqf-field-color, #8b8f9b);
    border-radius: 8px;
    padding: 11px 12px;
    background: rgba(0,0,0,.025);
}

@media (max-width: 640px) {
    .zcqf-grid { grid-template-columns: 1fr; gap: 24px; }
    .zcqf-half, .zcqf-full { grid-column: 1; }
    .zcqf-submit { margin-top: 24px; }
}
