/* ============================================
   CONTACT FORM 7 — CF7 Section Styles
   ============================================ */

.cf7-section {
    background: var(--color-white);
    padding-bottom: 0;
}

.cf7-heading {
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-2xl);
    color: var(--color-gray-900);
    margin: 0 0 32px;
}

.cf7-wrapper {
    max-width: 720px;
}

/* ============================================
   FORM LAYOUT
   ============================================ */

.cf7-wrapper .form-content {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cf7-wrapper .form-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* ============================================
   LABELS
   ============================================ */

.cf7-wrapper label {
    font-family: var(--font-family-text);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-gray-700);
    line-height: var(--line-height-normal);
}

/* ============================================
   INPUTS, TEXTAREA, SELECT
   ============================================ */

.cf7-wrapper input[type="text"],
.cf7-wrapper input[type="email"],
.cf7-wrapper input[type="tel"],
.cf7-wrapper input[type="number"],
.cf7-wrapper select,
.cf7-wrapper textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--color-gray-200);
    border-radius: 0;
    background: var(--color-white);
    font-family: var(--font-family-text);
    font-size: var(--font-size-base);
    color: var(--color-gray-800);
    outline: none;
    transition: border-color 0.2s;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
}

.cf7-wrapper input[type="text"],
.cf7-wrapper input[type="email"],
.cf7-wrapper input[type="tel"],
.cf7-wrapper input[type="number"],
.cf7-wrapper select {
    height: 48px;
}

.cf7-wrapper textarea {
    height: 140px;
    resize: vertical;
    padding: 14px 16px;
}

.cf7-wrapper input::placeholder,
.cf7-wrapper textarea::placeholder {
    color: var(--color-gray-400);
    font-weight: var(--font-weight-regular);
}

.cf7-wrapper input:focus,
.cf7-wrapper select:focus,
.cf7-wrapper textarea:focus {
    border-color: var(--color-primary);
}

/* Select — custom arrow */
.cf7-wrapper select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 40px;
    cursor: pointer;
}

/* ============================================
   VALIDATION
   ============================================ */

.cf7-wrapper .wpcf7-not-valid {
    border-color: var(--color-error) !important;
}

.cf7-wrapper .wpcf7-not-valid-tip {
    font-family: var(--font-family-text);
    font-size: var(--font-size-xs);
    color: var(--color-error);
    margin-top: 4px;
    display: block;
}

.cf7-wrapper .wpcf7-response-output {
    display: flex!important;
    align-items: flex-start!important;
    gap: 12px!important;
    font-family: var(--font-family-text)!important;
    font-size: var(--font-size-sm)!important;
    line-height: var(--line-height-normal)!important;
    padding: 16px 20px!important;
    margin-top: 24px!important;
    border: 1px solid transparent!important;
    border-radius: var(--border-radius-md)!important;
    border-left: 4px solid transparent!important;
}

/* Ikona przed tekstem (pseudo-element) */
.cf7-wrapper .wpcf7-response-output::before {
    flex-shrink: 0!important;
    width: 18px!important;
    height: 18px!important;
    margin-top: 1px!important;
    background-repeat: no-repeat!important;
    background-size: contain!important;
    background-position: center!important;
    content: '';
}

/* Sukces */
.cf7-wrapper .wpcf7-mail-sent-ok {
    border-color: #bbf7d0!important;
    border-left-color: var(--color-success)!important;
    background: #f0fdf4!important;
    color: #166534!important;
}

.cf7-wrapper .wpcf7-mail-sent-ok::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}

/* Błąd */
.cf7-wrapper .wpcf7-mail-sent-ng,
.cf7-wrapper .wpcf7-spam-blocked,
.cf7-wrapper .wpcf7-acceptance-missing {
    border-color: #fecaca!important;
    border-left-color: var(--color-error)!important;
    background: #fef2f2!important;
    color: #991b1b!important;
}

.cf7-wrapper .wpcf7-mail-sent-ng::before,
.cf7-wrapper .wpcf7-spam-blocked::before,
.cf7-wrapper .wpcf7-acceptance-missing::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ef4444' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E")!important;
}

/* ============================================
   FORM INFO (gwiazdka)
   ============================================ */

.cf7-wrapper .form-info p {
    font-family: var(--font-family-text);
    font-size: var(--font-size-xs);
    color: var(--color-gray-500);
    margin: 0;
}

/* ============================================
   RECAPTCHA
   ============================================ */

.cf7-wrapper .form-captcha {
    margin-top: 4px;
}

/* ============================================
   SUBMIT BUTTON
   ============================================ */

.cf7-wrapper .form-submit {
    margin-top: 4px;
}

.cf7-wrapper input[type="submit"],
.cf7-wrapper .wpcf7-submit {
    display: inline-block;
    padding: 14px 40px;
    background: transparent;
    border: 1.5px solid var(--color-gray-800);
    border-radius: var(--border-radius-full);
    font-family: var(--font-family-text);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-gray-800);
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    letter-spacing: var(--letter-spacing-wide);
    text-transform: uppercase;
}

.cf7-wrapper input[type="submit"]:hover,
.cf7-wrapper .wpcf7-submit:hover {
    background: var(--color-gray-800);
    color: var(--color-white);
}

/* Loading state */
.cf7-wrapper .wpcf7-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 600px) {
    .cf7-wrapper {
        max-width: 100%;
    }

    .cf7-wrapper input[type="submit"],
    .cf7-wrapper .wpcf7-submit {
        width: 100%;
        text-align: center;
    }
}
