.kw-cf7-form input[type="email"],
.kw-cf7-form input[type="number"],
.kw-cf7-form input[type="search"],
.kw-cf7-form input[type="tel"],
.kw-cf7-form input[type="text"],
.kw-cf7-form input[type="url"],
.kw-cf7-form input[type="date"],
.kw-cf7-form input[type="time"],
.kw-cf7-form textarea {
    border: 1px solid #E5E0DC;
    background-color: #FAF8F5;
    border-radius: 6px;
    margin-top: 8px;
    margin-bottom: 0;
    min-height: 44px;
    padding: 0 12px;
    width: 100%;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
}

.kw-cf7-form input[type="date"]::-webkit-calendar-picker-indicator,
.kw-cf7-form input[type="time"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 0.6;
}

.kw-cf7-form textarea {
    padding: 10px 12px;
}

.kw-cf7-form [type="checkbox"],
.kw-cf7-form [type="radio"] {
    -webkit-appearance: none;
            appearance: none;
    width: 16px;
    height: 16px;
    margin: 0 6px 0 0;
    border: 1px solid var(--fs-color-primary, #95B89A);
    background-color: transparent;
    cursor: pointer;
    vertical-align: -3px;
}

.kw-cf7-form [type="checkbox"] { border-radius: 4px; }
.kw-cf7-form [type="radio"]    { border-radius: 50%; }

.kw-cf7-form [type="checkbox"]:checked,
.kw-cf7-form [type="radio"]:checked {
    background-color: var(--fs-color-primary, #95B89A);
    border-color: var(--fs-color-primary, #95B89A);
}

.kw-cf7-form [type="checkbox"]:checked {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http%3A//www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8 7 12 13 4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
}

.kw-cf7-form .kw-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.kw-cf7-form .kw-col-half {
    flex: 1 1 calc(50% - 8px);
    min-width: 0;
}

.kw-cf7-form .kw-col-full {
    flex: 1 1 100%;
    min-width: 0;
}

@media (max-width: 549px) {
    .kw-cf7-form .kw-col-half {
        flex: 1 1 100%;
    }
}

/* Field labels with leading icon (mask-image — color follows currentColor / CSS var). */
.kw-cf7-form .kw-field {
    display: block;
}

.kw-cf7-form .kw-field::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    margin-right: 8px;
    vertical-align: -3px;
    background-color: var(--fs-color-primary, #000000);
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-size: contain;
            mask-size: contain;
}

.kw-cf7-form .kw-field--name::before     { -webkit-mask-image: url("../../images/cf7-icons/name.svg");     mask-image: url("../../images/cf7-icons/name.svg"); }
.kw-cf7-form .kw-field--company::before  { -webkit-mask-image: url("../../images/cf7-icons/company.svg");  mask-image: url("../../images/cf7-icons/company.svg"); }
.kw-cf7-form .kw-field--phone::before    { -webkit-mask-image: url("../../images/cf7-icons/phone.svg");    mask-image: url("../../images/cf7-icons/phone.svg"); }
.kw-cf7-form .kw-field--email::before    { -webkit-mask-image: url("../../images/cf7-icons/email.svg");    mask-image: url("../../images/cf7-icons/email.svg"); }
.kw-cf7-form .kw-field--textarea::before { -webkit-mask-image: url("../../images/cf7-icons/textarea.svg"); mask-image: url("../../images/cf7-icons/textarea.svg"); }
.kw-cf7-form .kw-field--date::before     { -webkit-mask-image: url("../../images/cf7-icons/date.svg");     mask-image: url("../../images/cf7-icons/date.svg"); }
.kw-cf7-form .kw-field--time::before     { -webkit-mask-image: url("../../images/cf7-icons/time.svg");     mask-image: url("../../images/cf7-icons/time.svg"); }

/* Consent box wrapping the acceptance checkboxes + descriptions. */
.kw-cf7-form .kw-consent {
    background-color: #FDF8F2;
    border-radius: 8px;
    padding: 16px 20px;
    margin: 16px 0;
}

.kw-cf7-form .kw-consent-item + .kw-consent-item {
    border-top: 1px solid #E5E0DC;
    margin-top: 12px;
    padding-top: 12px;
}

.kw-cf7-form .kw-consent-desc {
    margin: 4px 0 0 28px;
    font-size: 0.875em;
    color: #6B6660;
}

/* Time-slot picker — render CF7 [checkbox] options as pill buttons. */
.kw-cf7-form .kw-time-slots {
    margin-top: 8px;
}

.kw-cf7-form .kw-time-slots .wpcf7-checkbox {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.kw-cf7-form .kw-time-slots .wpcf7-list-item {
    margin: 0;
}

.kw-cf7-form .kw-time-slots .wpcf7-list-item label {
    display: inline-block;
    cursor: pointer;
    margin: 0;
}

/* Hide the native checkbox (visible to AT, click handled by the label). */
.kw-cf7-form .kw-time-slots [type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    pointer-events: none;
}

.kw-cf7-form .kw-time-slots .wpcf7-list-item-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    border: 1px solid #E5E0DC;
    background-color: #FAF8F5;
    border-radius: 6px;
    min-width: 70px;
    min-height: 44px;
    transition: border-color .15s, background-color .15s, color .15s;
}

.kw-cf7-form .kw-time-slots .wpcf7-list-item label:hover .wpcf7-list-item-label {
    border-color: var(--fs-color-primary, #95B89A);
}

.kw-cf7-form .kw-time-slots [type="checkbox"]:focus-visible + .wpcf7-list-item-label {
    outline: 2px solid var(--fs-color-primary, #95B89A);
    outline-offset: 2px;
}

.kw-cf7-form .kw-time-slots [type="checkbox"]:checked + .wpcf7-list-item-label {
    border-color: var(--fs-color-primary, #95B89A);
    background-color: var(--fs-color-primary, #95B89A);
    color: #fff;
}