/* Subversive CF7 Styles - Bootstrap 5.3 Inspired */

:root {
    /* Colors */
    --subversive-blue: var(--wp--preset--color--primary, #0d6efd);
    --subversive-indigo: var(--wp--preset--color--secondary, #6610f2);
    --subversive-purple: var(--wp--preset--color--tertiary, #6f42c1);
    --subversive-pink: var(--wp--preset--color--accent, #d63384);
    --subversive-red: var(--wp--preset--color--danger, #dc3545);
    --subversive-orange: var(--wp--preset--color--warning, #fd7e14);
    --subversive-yellow: var(--wp--preset--color--warning, #ffc107);
    --subversive-green: var(--wp--preset--color--success, #198754);
    --subversive-teal: var(--wp--preset--color--info, #20c997);
    --subversive-cyan: var(--wp--preset--color--info, #0dcaf0);
    --subversive-white: var(--wp--preset--color--background, #fff);
    --subversive-gray: var(--wp--preset--color--foreground, #6c757d);
    --subversive-gray-dark: var(--wp--preset--color--foreground, #343a40);
    --subversive-primary: var(--wp--preset--color--primary, #0d6efd);
    --subversive-secondary: var(--wp--preset--color--secondary, #6c757d);
    --subversive-success: var(--wp--preset--color--success, #198754);
    --subversive-info: var(--wp--preset--color--info, #0dcaf0);
    --subversive-warning: var(--wp--preset--color--warning, #ffc107);
    --subversive-danger: var(--wp--preset--color--danger, #dc3545);
    --subversive-light: var(--wp--preset--color--background, #f8f9fa);
    --subversive-dark: var(--wp--preset--color--foreground, #343a40);

    /* Body */
    --subversive-body-bg: var(--wp--preset--color--background, #fff);
    --subversive-body-color: var(--wp--preset--color--foreground, #212529);
    --subversive-text-muted: var(--wp--preset--color--foreground, #6c757d);

    /* Forms - Plugin Settings */
    --subversive-input-bg: var(--subversive-cf7-input-bg, var(--wp--preset--color--background, #fff));
    --subversive-input-disabled-bg: var(--subversive-cf7-disabled-bg, var(--wp--preset--color--secondary, #e9ecef));
    --subversive-input-border-color: var(--subversive-cf7-border-color, var(--wp--preset--color--primary, #ced4da));
    --subversive-input-border-width: var(--subversive-cf7-border-width, 1px);
    --subversive-input-border-radius: var(--subversive-cf7-border-radius, 0.375rem);
    --subversive-input-focus-border-color: var(--subversive-cf7-focus-border-color, var(--wp--preset--color--primary, #86b7fe));
    --subversive-input-focus-box-shadow: var(--subversive-cf7-focus-box-shadow, 0 0 0 0.25rem rgba(13, 110, 253, 0.25));
    --subversive-input-focus-color: var(--subversive-cf7-text-color, var(--wp--preset--color--foreground, #212529));
    --subversive-input-placeholder-color: var(--subversive-cf7-placeholder-color, var(--wp--preset--color--foreground, #6c757d));
    --subversive-input-plaintext-color: var(--subversive-cf7-text-color, var(--wp--preset--color--foreground, #212529));

    /* Form Labels - Plugin Settings */
    --subversive-form-label-margin-bottom: 0.5rem;
    --subversive-form-label-font-size: var(--subversive-cf7-label-font-size, var(--wp--preset--font-size--normal, 1rem));
    --subversive-form-label-font-style: normal;
    --subversive-form-label-font-weight: var(--subversive-cf7-label-font-weight, var(--wp--preset--font-weight--normal, 400));
    --subversive-form-label-color: var(--subversive-cf7-label-color, var(--wp--preset--color--foreground, #212529));

    /* Form Text */
    --subversive-form-text-margin-top: 0.25rem;
    --subversive-form-text-font-size: var(--wp--preset--font-size--small, 0.875rem);
    --subversive-form-text-font-style: normal;
    --subversive-form-text-font-weight: var(--wp--preset--font-weight--normal, 400);
    --subversive-form-text-color: var(--wp--preset--color--foreground, #6c757d);

    /* Form Check */
    --subversive-form-check-input-width: 1em;
    --subversive-form-check-min-height: 1.5rem;
    --subversive-form-check-padding-start: 1.5em;
    --subversive-form-check-margin-bottom: 0.125rem;
    --subversive-form-check-label-color: null;
    --subversive-form-check-label-cursor: pointer;
    --subversive-form-check-transition: var(--subversive-transition-base);
    --subversive-form-check-input-active-filter: brightness(90%);
    --subversive-form-check-input-bg: var(--subversive-input-bg);
    --subversive-form-check-input-border: var(--subversive-input-border-width) solid var(--subversive-input-border-color);
    --subversive-form-check-input-border-radius: 0.25em;
    --subversive-form-check-radio-border-radius: 50%;
    --subversive-form-check-input-focus-border: var(--subversive-input-focus-border-color);
    --subversive-form-check-input-focus-box-shadow: var(--subversive-input-focus-box-shadow);
    --subversive-form-check-input-checked-color: var(--subversive-white);
    --subversive-form-check-input-checked-bg-color: var(--subversive-primary);
    --subversive-form-check-input-checked-border-color: var(--subversive-primary);
    --subversive-form-check-input-disabled-opacity: var(--subversive-cf7-disabled-opacity, 0.5);
    --subversive-form-check-label-disabled-opacity: var(--subversive-form-check-input-disabled-opacity);
    --subversive-form-check-inline-margin-end: 1rem;

    /* Form validation */
    --subversive-form-valid-color: var(--subversive-success);
    --subversive-form-valid-border-color: var(--subversive-success);
    --subversive-form-invalid-color: var(--subversive-danger);
    --subversive-form-invalid-border-color: var(--subversive-danger);

    /* Spacing */
    --subversive-spacer: 1rem;
    --subversive-spacer-1: calc(var(--subversive-spacer) * 0.25);
    --subversive-spacer-2: calc(var(--subversive-spacer) * 0.5);
    --subversive-spacer-3: var(--subversive-spacer);
    --subversive-spacer-4: calc(var(--subversive-spacer) * 1.5);
    --subversive-spacer-5: calc(var(--subversive-spacer) * 3);

    /* Typography - Plugin Settings */
    --subversive-font-size-base: var(--subversive-cf7-text-font-size, var(--wp--preset--font-size--normal, 1rem));
    --subversive-font-size-sm: var(--wp--preset--font-size--small, 0.875rem);
    --subversive-font-size-lg: var(--wp--preset--font-size--large, 1.25rem);
    --subversive-font-family: var(--wp--preset--font-family--system, system-ui, sans-serif);
    --subversive-font-weight-normal: var(--wp--preset--font-weight--normal, 400);
    --subversive-font-weight-bold: var(--wp--preset--font-weight--bold, 700);
    --subversive-line-height-base: 1.5;

    /* Transitions */
    --subversive-transition-base: all 0.15s ease-in-out;
    --subversive-transition-fade: opacity 0.15s linear;
    --subversive-transition-collapse: height 0.35s ease;

    /* Buttons - Plugin Settings */
    --subversive-btn-padding-y: var(--subversive-cf7-btn-padding-y, 0.375rem);
    --subversive-btn-padding-x: var(--subversive-cf7-btn-padding-x, 0.75rem);
    --subversive-btn-font-family: var(--subversive-font-family);
    --subversive-btn-font-size: var(--subversive-cf7-btn-font-size, var(--subversive-font-size-base));
    --subversive-btn-font-weight: var(--subversive-cf7-btn-font-weight, var(--subversive-font-weight-normal));
    --subversive-btn-line-height: var(--subversive-line-height-base);
    --subversive-btn-color: var(--subversive-cf7-btn-color, var(--subversive-white));
    --subversive-btn-bg: var(--subversive-cf7-btn-bg, var(--subversive-primary));
    --subversive-btn-border-width: var(--subversive-cf7-btn-border-width, 1px);
    --subversive-btn-border-color: var(--subversive-cf7-btn-border-color, var(--subversive-cf7-btn-bg, var(--subversive-primary)));
    --subversive-btn-border-radius: var(--subversive-cf7-btn-border-radius, var(--subversive-input-border-radius));
    --subversive-btn-box-shadow: var(--subversive-cf7-btn-box-shadow, inset 0 1px 0 rgba(255, 255, 255, 0.15));
    --subversive-btn-disabled-opacity: var(--subversive-cf7-btn-disabled-opacity, 0.65);
    --subversive-btn-focus-box-shadow: var(--subversive-cf7-btn-focus-box-shadow, 0 0 0 0.25rem rgba(13, 110, 253, 0.25));
}

/* Ensure border-box for all elements in CF7 forms (Bootstrap-like) */
.wpcf7-form *,
.wpcf7-form *::before,
.wpcf7-form *::after {
    box-sizing: border-box;
}

/* --- Base Form Controls --- */
.wpcf7-form .form-control,
.wpcf7-form .form-select,
.wpcf7-form textarea {
    display: block;
    width: 100%;
    padding: var(--subversive-spacer-2) var(--subversive-spacer-3);
    font-size: var(--subversive-font-size-base);
    font-weight: var(--subversive-font-weight-normal);
    line-height: var(--subversive-line-height-base);
    color: var(--subversive-body-color);
    background-color: var(--subversive-input-bg);
    background-clip: padding-box;
    border: var(--subversive-input-border-width) solid var(--subversive-input-border-color);
    border-radius: var(--subversive-input-border-radius);
    transition: var(--subversive-transition-base);
}

.wpcf7-form .form-control:focus,
.wpcf7-form .form-select:focus,
.wpcf7-form textarea:focus {
    color: var(--subversive-input-focus-color);
    background-color: var(--subversive-input-bg);
    border-color: var(--subversive-input-focus-border-color);
    outline: 0;
    box-shadow: var(--subversive-input-focus-box-shadow);
}

.wpcf7-form .form-control:disabled,
.wpcf7-form .form-select:disabled,
.wpcf7-form textarea:disabled {
    background-color: var(--subversive-input-disabled-bg);
    color: var(--subversive-text-muted);
}

/* --- File Input --- */
.wpcf7-form .form-control[type='file'],
.wpcf7-form .wpcf7-file {
    display: block;
    width: 100%;
    color: var(--subversive-body-color);
    background-color: #fff;
    border: var(--subversive-input-border-width) solid var(--subversive-input-border-color);
    border-radius: var(--subversive-input-border-radius);
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
    overflow: hidden;
    padding: 0.375rem 0.75rem; /* fallback for browsers that show text */
}
.wpcf7-form .form-control[type='file']:not(:disabled):not([readonly]),
.wpcf7-form .wpcf7-file:not(:disabled):not([readonly]) {
    cursor: pointer;
}
.wpcf7-form .form-control[type='file']:focus,
.wpcf7-form .wpcf7-file:focus {
    border-color: #86b7fe;
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(13,110,253,.25);
}
.wpcf7-form .form-control[type='file']:disabled,
.wpcf7-form .wpcf7-file:disabled {
    background-color: #e9ecef;
    opacity: 1;
}
/* File upload button (browser native, Bootstrap-like) */
.wpcf7-form .form-control[type='file']::-webkit-file-upload-button,
.wpcf7-form .wpcf7-file::-webkit-file-upload-button,
.wpcf7-form .form-control[type='file']::file-selector-button,
.wpcf7-form .wpcf7-file::file-selector-button {
    padding: 0.375rem 0.75rem;
    margin: -0.375rem -0.75rem;
    margin-inline-end: 0.75rem;
    color: var(--subversive-body-color);
    background-color: var(--subversive-light);
    pointer-events: none;
    border: 0;
    border-radius: 0;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    font: inherit;
    -webkit-appearance: button;
    appearance: button;
}
.wpcf7-form .form-control[type='file']:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,
.wpcf7-form .wpcf7-file:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,
.wpcf7-form .form-control[type='file']:hover:not(:disabled):not([readonly])::file-selector-button,
.wpcf7-form .wpcf7-file:hover:not(:disabled):not([readonly])::file-selector-button {
    background-color: var(--subversive-input-disabled-bg);
}
.wpcf7-form .form-control[type='file']:focus::-webkit-file-upload-button,
.wpcf7-form .wpcf7-file:focus::-webkit-file-upload-button,
.wpcf7-form .form-control[type='file']:focus::file-selector-button,
.wpcf7-form .wpcf7-file:focus::file-selector-button {
    background-color: var(--subversive-input-disabled-bg);
    outline: 0;
}

/* --- Select Box --- */
.wpcf7-form .form-select {
    padding-top: var(--subversive-spacer-2);
    padding-bottom: var(--subversive-spacer-2);
    padding-left: var(--subversive-spacer-3);
    padding-right: calc(var(--subversive-spacer-3) * 3);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right var(--subversive-spacer-3) center;
    background-size: 16px 12px;
    appearance: none;
}

/* --- Range Input: Bootstrap 5 Parity --- */
.wpcf7-form .wpcf7-range.form-range {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 100%;
    height: 1.5rem;
    background: transparent;
}

/* WebKit browsers */
.wpcf7-form .wpcf7-range.form-range::-webkit-slider-runnable-track {
    background-color: var(--subversive-light, #e9ecef);
    border-radius: 1rem;
    height: 0.5rem;
    box-shadow: inset 0 .25rem .5rem rgba(0,0,0,.05);
    cursor: pointer;
}

/* Firefox */
.wpcf7-form .wpcf7-range.form-range::-moz-range-track {
    background-color: var(--subversive-light, #e9ecef);
    border-radius: 1rem;
    height: 0.5rem;
    box-shadow: inset 0 .25rem .5rem rgba(0,0,0,.05);
    cursor: pointer;
}

/* IE/Edge Legacy */
.wpcf7-form .wpcf7-range.form-range::-ms-fill-lower,
.wpcf7-form .wpcf7-range.form-range::-ms-fill-upper {
    background-color: var(--subversive-light, #e9ecef);
    border-radius: 1rem;
    height: 0.5rem;
    box-shadow: inset 0 .25rem .5rem rgba(0,0,0,.05);
    cursor: pointer;
}

/* Thumb styles */
.wpcf7-form .wpcf7-range.form-range::-webkit-slider-thumb {
    width: 1rem;
    height: 1rem;
    margin-top: -0.25rem;
    background-color: var(--subversive-primary);
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 .1rem .25rem rgba(0,0,0,.1);
    -webkit-appearance: none;
    appearance: none;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    cursor: pointer;
}
.wpcf7-form .wpcf7-range.form-range:focus::-webkit-slider-thumb {
    box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13,110,253,.25), 0 .1rem .25rem rgba(0,0,0,.1);
}
.wpcf7-form .wpcf7-range.form-range::-webkit-slider-thumb:active {
    background-color: #b6d4fe;
}
.wpcf7-form .wpcf7-range.form-range:disabled::-webkit-slider-thumb {
    background-color: var(--subversive-secondary);
}

.wpcf7-form .wpcf7-range.form-range::-moz-range-thumb {
    width: 1rem;
    height: 1rem;
    background-color: var(--subversive-primary);
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 .1rem .25rem rgba(0,0,0,.1);
    -moz-appearance: none;
    appearance: none;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    cursor: pointer;
}
.wpcf7-form .wpcf7-range.form-range:focus::-moz-range-thumb {
    box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13,110,253,.25), 0 .1rem .25rem rgba(0,0,0,.1);
}
.wpcf7-form .wpcf7-range.form-range::-moz-range-thumb:active {
    background-color: #b6d4fe;
}
.wpcf7-form .wpcf7-range.form-range:disabled::-moz-range-thumb {
    background-color: var(--subversive-secondary);
}

/* Remove outline for focus (handled on thumb) */
.wpcf7-form .wpcf7-range.form-range:focus {
    outline: none;
}

@media (prefers-reduced-motion: reduce) {
    .wpcf7-form .wpcf7-range.form-range::-webkit-slider-thumb,
    .wpcf7-form .wpcf7-range.form-range::-moz-range-thumb {
        transition: none;
    }
}

/* --- Checkboxes, Radios, Switches --- */
/* (Keep all .form-check, .form-check-input, .form-check-label, .form-switch, etc.) */
/* ... existing check/radio/switch rules ... */

/* --- Validation States --- */
/* (Keep .wpcf7-not-valid, .wpcf7-response-output, etc.) */
/* ... existing validation state rules ... */

/* --- Responsive --- */
@media (max-width: 576px) {
    .wpcf7-form .form-group {
        margin-bottom: var(--subversive-spacer-3);
    }
    .wpcf7-form label {
        font-size: var(--subversive-font-size-sm);
    }
    .wpcf7-form .form-control,
    .wpcf7-form .form-select,
    .wpcf7-form textarea {
        font-size: var(--subversive-font-size-sm);
        padding: var(--subversive-spacer-1) var(--subversive-spacer-2);
    }
}

/* --- Utility/Helper Classes --- */
/* ... existing utility classes ... */

/* --- End Subversive CF7 Styles --- */

/* Form Group Spacing */
.wpcf7-form .form-group {
    margin-bottom: var(--subversive-spacer);
}

/* Labels */
.wpcf7-form label {
    display: inline-block;
    margin-bottom: var(--subversive-spacer-2);
    font-weight: var(--subversive-font-weight-bold);
    color: var(--subversive-body-color);
}

/* Form Text */
.wpcf7-form .form-text {
    margin-top: var(--subversive-spacer-1);
    font-size: var(--subversive-font-size-sm);
    color: var(--subversive-text-muted);
}

/* Checkboxes and Radios */
.wpcf7-form .form-check {
    display: block;
    min-height: 1.5rem;
    padding-left: 1.5em;
    margin-bottom: var(--subversive-spacer-1);
}

.wpcf7-form .form-check-input {
    width: 1em;
    height: 1em;
    margin-top: 0.25em;
    margin-left: -1.5em;
    background-color: var(--subversive-input-bg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    border: var(--subversive-input-border-width) solid var(--subversive-input-border-color);
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    vertical-align: top;
    background-origin: border-box;
    user-select: none;
    flex-shrink: 0;
}

.wpcf7-form .form-check-input[type="checkbox"] {
    border-radius: 0.25em;
}

.wpcf7-form .form-check-input[type="radio"] {
    border-radius: 50%;
}

.wpcf7-form .form-check-input:checked {
    background-color: var(--subversive-primary);
    border-color: var(--subversive-primary);
}

.wpcf7-form .form-check-input:checked[type="checkbox"] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}

.wpcf7-form .form-check-input:checked[type="radio"] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
}

.wpcf7-form .form-check-input:focus {
    border-color: var(--subversive-input-focus-border-color);
    outline: 0;
    box-shadow: var(--subversive-input-focus-box-shadow);
}

.wpcf7-form .form-check-input:disabled {
    pointer-events: none;
    filter: none;
    opacity: 0.5;
}

.wpcf7-form .form-check-input[disabled] ~ .form-check-label,
.wpcf7-form .form-check-input:disabled ~ .form-check-label {
    opacity: 0.5;
}

.wpcf7-form .form-check-label {
    color: var(--subversive-body-color);
    cursor: pointer;
    margin-bottom: 0;
}

/* Inline Checkboxes and Radios */
.wpcf7-form .form-check-inline {
    display: inline-flex;
    margin-right: var(--subversive-spacer-3);
}

/* Switch */
.wpcf7-form .form-switch {
    padding-left: 2.5em;
}

.wpcf7-form .form-switch .form-check-input {
    width: 2em;
    margin-left: -2.5em;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
    background-position: left center;
    border-radius: 2em;
    transition: var(--subversive-transition-base);
}

.wpcf7-form .form-switch .form-check-input:checked {
    background-position: right center;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

/* Reverse Switch */
.wpcf7-form .form-switch.form-check-reverse {
    padding-right: 2.5em;
    padding-left: 0;
}

.wpcf7-form .form-switch.form-check-reverse .form-check-input {
    margin-right: -2.5em;
    margin-left: 0;
}

/* Fieldset */
.wpcf7-form fieldset {
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
}

.wpcf7-form legend {
    float: left;
    width: 100%;
    padding: 0;
    margin-bottom: var(--subversive-spacer-2);
    font-size: var(--subversive-font-size-lg);
    line-height: inherit;
}

.wpcf7-form legend + * {
    clear: left;
}

/* Validation States */
.wpcf7-form .wpcf7-not-valid-tip {
    color: var(--subversive-form-invalid-color);
    font-size: var(--subversive-font-size-sm);
    margin-top: var(--subversive-spacer-1);
}

.wpcf7-form .wpcf7-response-output {
    margin: var(--subversive-spacer-4) var(--subversive-spacer-2) var(--subversive-spacer-3);
    padding: var(--subversive-spacer-3) var(--subversive-spacer-4);
    border: var(--subversive-input-border-width) solid transparent;
    border-radius: var(--subversive-input-border-radius);
}

.wpcf7-form .wpcf7-response-output.wpcf7-validation-errors {
    color: var(--subversive-danger);
    background-color: #f8d7da;
    border-color: #f5c2c7;
}

.wpcf7-form .wpcf7-response-output.wpcf7-mail-sent-ok {
    color: var(--subversive-success);
    background-color: #d1e7dd;
    border-color: #badbcc;
}

/* Select Box Styling - Bootstrap 5 Conformant */
.wpcf7-form .form-select {
    display: block;
    width: 100%;
    padding-top: var(--subversive-spacer-2);
    padding-bottom: var(--subversive-spacer-2);
    padding-left: var(--subversive-spacer-3);
    padding-right: calc(var(--subversive-spacer-3) * 3);
    font-size: 1rem;
    line-height: 1.5;
    color: var(--subversive-body-color);
    background-color: #fff;
    border: var(--subversive-input-border-width) solid var(--subversive-input-border-color);
    border-radius: var(--subversive-input-border-radius);
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right var(--subversive-spacer-3) center;
    background-size: 16px 12px;
    appearance: none;
}

.wpcf7-form .form-select:focus {
    border-color: var(--subversive-input-focus-border-color);
    outline: 0;
    box-shadow: var(--subversive-input-focus-box-shadow);
}

.wpcf7-form .form-select:disabled {
    background-color: var(--subversive-input-disabled-bg);
    color: var(--subversive-text-muted);
}

.wpcf7-form textarea.form-control {
    display: block;
    width: 100%;
    min-height: 100px;
    padding: var(--subversive-spacer-2) var(--subversive-spacer-3);
    font-size: var(--subversive-font-size-base);
    font-weight: var(--subversive-font-weight-normal);
    line-height: var(--subversive-line-height-base);
    color: var(--subversive-body-color);
    background-color: var(--subversive-input-bg);
    background-clip: padding-box;
    border: var(--subversive-input-border-width) solid var(--subversive-input-border-color);
    border-radius: var(--subversive-input-border-radius);
    transition: var(--subversive-transition-base);
    resize: vertical;
}

.wpcf7-form textarea.form-control:focus {
    color: var(--subversive-input-focus-color);
    background-color: var(--subversive-input-bg);
    border-color: var(--subversive-input-focus-border-color);
    outline: 0;
    box-shadow: var(--subversive-input-focus-box-shadow);
}

.wpcf7-form textarea.form-control:disabled {
    background-color: var(--subversive-input-disabled-bg);
    color: var(--subversive-text-muted);
}

/* Contact Form 7 Checkbox Specific Styles */
.wpcf7-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.wpcf7-form .wpcf7-checkbox,
.wpcf7-form .wpcf7-radio {
    display: block;
    margin: 0;
    padding: 0;
}

.wpcf7-form .wpcf7-list-item {
    display: block;
    min-height: var(--subversive-form-check-min-height);
    padding-left: var(--subversive-form-check-padding-start);
    margin-bottom: var(--subversive-form-check-margin-bottom);
}

.wpcf7-form .wpcf7-list-item input[type="checkbox"],
.wpcf7-form .wpcf7-list-item input[type="radio"] {
    width: var(--subversive-form-check-input-width);
    height: var(--subversive-form-check-input-width);
    margin-top: 0.25em;
    margin-left: calc(-1 * var(--subversive-form-check-padding-start));
    background-color: var(--subversive-form-check-input-bg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    border: var(--subversive-form-check-input-border);
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    vertical-align: top;
    background-origin: border-box;
    user-select: none;
    flex-shrink: 0;
}

.wpcf7-form .wpcf7-list-item input[type="checkbox"] {
    border-radius: var(--subversive-form-check-input-border-radius);
}

.wpcf7-form .wpcf7-list-item input[type="radio"] {
    border-radius: var(--subversive-form-check-radio-border-radius);
}

.wpcf7-form .wpcf7-list-item input[type="checkbox"]:checked,
.wpcf7-form .wpcf7-list-item input[type="radio"]:checked {
    background-color: var(--subversive-form-check-input-checked-bg-color);
    border-color: var(--subversive-form-check-input-checked-border-color);
}

.wpcf7-form .wpcf7-list-item input[type="checkbox"]:checked {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}

.wpcf7-form .wpcf7-list-item input[type="radio"]:checked {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
}

.wpcf7-form .wpcf7-list-item input[type="checkbox"]:focus,
.wpcf7-form .wpcf7-list-item input[type="radio"]:focus {
    border-color: var(--subversive-form-check-input-focus-border);
    outline: 0;
    box-shadow: var(--subversive-form-check-input-focus-box-shadow);
}

.wpcf7-form .wpcf7-list-item input[type="checkbox"]:disabled,
.wpcf7-form .wpcf7-list-item input[type="radio"]:disabled {
    pointer-events: none;
    filter: none;
    opacity: var(--subversive-form-check-input-disabled-opacity);
}

.wpcf7-form .wpcf7-list-item-label {
    color: var(--subversive-form-check-label-color);
    cursor: var(--subversive-form-check-label-cursor);
    margin-bottom: 0;
    padding-left: 0.5em;
}

.wpcf7-form .wpcf7-list-item input[type="checkbox"]:disabled ~ .wpcf7-list-item-label,
.wpcf7-form .wpcf7-list-item input[type="radio"]:disabled ~ .wpcf7-list-item-label {
    opacity: var(--subversive-form-check-label-disabled-opacity);
}

/* Legend styling for checkbox and radio groups */
.wpcf7-form legend {
    display: block;
    width: 100%;
    padding: 0;
    margin-bottom: var(--subversive-spacer-2);
    font-size: var(--subversive-font-size-base);
    font-weight: var(--subversive-font-weight-bold);
    line-height: inherit;
    color: var(--subversive-body-color);
}

/* File Input Styling */
.wpcf7-form .wpcf7-form-control-wrap[data-name] {
    display: block;
    width: 100%;
}

.wpcf7-form .wpcf7-file {
    display: block;
    width: 100%;
    padding: var(--subversive-spacer-2) var(--subversive-spacer-3);
    font-size: var(--subversive-font-size-base);
    font-weight: var(--subversive-font-weight-normal);
    line-height: var(--subversive-line-height-base);
    color: var(--subversive-body-color);
    background-color: var(--subversive-input-bg);
    background-clip: padding-box;
    border: var(--subversive-input-border-width) solid var(--subversive-input-border-color);
    border-radius: var(--subversive-input-border-radius);
    transition: var(--subversive-transition-base);
}

.wpcf7-form .wpcf7-file:focus {
    color: var(--subversive-input-focus-color);
    background-color: var(--subversive-input-bg);
    border-color: var(--subversive-input-focus-border-color);
    outline: 0;
    box-shadow: var(--subversive-input-focus-box-shadow);
}

.wpcf7-form .wpcf7-file:disabled {
    background-color: var(--subversive-input-disabled-bg);
    opacity: 0.65;
    pointer-events: none;
}

/* File input validation states */
.wpcf7-form .wpcf7-file.wpcf7-not-valid {
    border-color: var(--subversive-form-invalid-border-color);
}

.wpcf7-form .wpcf7-file.wpcf7-not-valid:focus {
    border-color: var(--subversive-form-invalid-border-color);
    box-shadow: 0 0 0 0.25rem rgba(var(--subversive-danger-rgb), 0.25);
}

.wpcf7-form .form-control[type='file']::-webkit-file-upload-button,
.wpcf7-form .wpcf7-file::-webkit-file-upload-button {
    font: inherit;
    -webkit-appearance: button;
    appearance: button;
    padding: var(--subversive-spacer-2) var(--subversive-spacer-3);
    margin: calc(-1 * var(--subversive-spacer-2)) calc(-1 * var(--subversive-spacer-3));
    margin-inline-end: var(--subversive-spacer-3);
    color: var(--subversive-body-color);
    background-color: var(--subversive-light);
    pointer-events: none;
    border-color: inherit;
    border-style: solid;
    border-width: 0;
    border-inline-end-width: 1px;
    border-radius: 0;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.wpcf7-form .form-control[type='file']::file-selector-button,
.wpcf7-form .wpcf7-file::file-selector-button {
    font: inherit;
    -webkit-appearance: button;
    appearance: button;
    padding: var(--subversive-spacer-2) var(--subversive-spacer-3);
    margin: calc(-1 * var(--subversive-spacer-2)) calc(-1 * var(--subversive-spacer-3));
    margin-inline-end: var(--subversive-spacer-3);
    color: var(--subversive-body-color);
    background-color: var(--subversive-light);
    pointer-events: none;
    border-color: inherit;
    border-style: solid;
    border-width: 0;
    border-inline-end-width: 1px;
    border-radius: 0;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.wpcf7-form .form-control[type='file']:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,
.wpcf7-form .wpcf7-file:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,
.wpcf7-form .form-control[type='file']:hover:not(:disabled):not([readonly])::file-selector-button,
.wpcf7-form .wpcf7-file:hover:not(:disabled):not([readonly])::file-selector-button {
    background-color: var(--subversive-input-disabled-bg);
}

.wpcf7-form .form-control[type='file']:focus::-webkit-file-upload-button,
.wpcf7-form .wpcf7-file:focus::-webkit-file-upload-button,
.wpcf7-form .form-control[type='file']:focus::file-selector-button,
.wpcf7-form .wpcf7-file:focus::file-selector-button {
    background-color: var(--subversive-input-disabled-bg);
    outline: 0;
}

/* Remove form-control styles from range inputs */
.wpcf7-form input[type="range"],
.wpcf7-form .wpcf7-range.form-range {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Ensure custom track and thumb are visible */
.wpcf7-form .wpcf7-range.form-range::-webkit-slider-runnable-track {
    background-color: var(--subversive-light);
    border-radius: 1rem;
    height: 0.5rem;
}

.wpcf7-form .wpcf7-range.form-range::-moz-range-track {
    background-color: var(--subversive-light);
    border-radius: 1rem;
    height: 0.5rem;
}

.wpcf7-form .wpcf7-range.form-range::-ms-fill-lower,
.wpcf7-form .wpcf7-range.form-range::-ms-fill-upper {
    background-color: var(--subversive-light);
    border-radius: 1rem;
    height: 0.5rem;
}

/* --- Bootstrap 5 Button Styles --- */
.wpcf7-form .btn,
.wpcf7-form input[type="submit"],
.wpcf7-form .wpcf7-submit {
    display: inline-block;
    font-family: var(--subversive-btn-font-family);
    font-size: var(--subversive-btn-font-size);
    font-weight: var(--subversive-btn-font-weight);
    line-height: var(--subversive-btn-line-height);
    color: var(--subversive-btn-color);
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    border: var(--subversive-btn-border-width) solid var(--subversive-btn-border-color);
    border-radius: var(--subversive-btn-border-radius);
    background-color: var(--subversive-btn-bg);
    padding: var(--subversive-btn-padding-y) var(--subversive-btn-padding-x);
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    box-shadow: var(--subversive-btn-box-shadow);
}

.wpcf7-form .btn:hover,
.wpcf7-form input[type="submit"]:hover,
.wpcf7-form .wpcf7-submit:hover {
    color: var(--subversive-btn-color);
    background-color: var(--subversive-cf7-btn-hover-bg, var(--subversive-primary));
    border-color: var(--subversive-cf7-btn-hover-border-color, var(--subversive-primary));
    text-decoration: none;
}

.wpcf7-form .btn:focus,
.wpcf7-form input[type="submit"]:focus,
.wpcf7-form .wpcf7-submit:focus {
    color: var(--subversive-btn-color);
    background-color: var(--subversive-cf7-btn-focus-bg, var(--subversive-primary));
    border-color: var(--subversive-cf7-btn-focus-border-color, var(--subversive-primary));
    box-shadow: var(--subversive-btn-focus-box-shadow);
    outline: 0;
}

.wpcf7-form .btn:active,
.wpcf7-form input[type="submit"]:active,
.wpcf7-form .wpcf7-submit:active {
    color: var(--subversive-btn-color);
    background-color: var(--subversive-cf7-btn-active-bg, var(--subversive-primary));
    border-color: var(--subversive-cf7-btn-active-border-color, var(--subversive-primary));
    box-shadow: var(--subversive-cf7-btn-active-box-shadow, inset 0 3px 5px rgba(0, 0, 0, 0.125));
}

.wpcf7-form .btn:disabled,
.wpcf7-form input[type="submit"]:disabled,
.wpcf7-form .wpcf7-submit:disabled {
    pointer-events: none;
    opacity: var(--subversive-btn-disabled-opacity);
    box-shadow: none;
}

/* Button size variants */
.wpcf7-form .btn-sm,
.wpcf7-form input[type="submit"].btn-sm,
.wpcf7-form .wpcf7-submit.btn-sm {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    border-radius: 0.25rem;
}

.wpcf7-form .btn-lg,
.wpcf7-form input[type="submit"].btn-lg,
.wpcf7-form .wpcf7-submit.btn-lg {
    padding: 0.5rem 1rem;
    font-size: 1.25rem;
    border-radius: 0.5rem;
}

/* Button color variants */
.wpcf7-form .btn-secondary {
    color: var(--subversive-white);
    background-color: var(--subversive-secondary);
    border-color: var(--subversive-secondary);
}

.wpcf7-form .btn-secondary:hover {
    color: var(--subversive-white);
    background-color: var(--subversive-secondary);
    border-color: var(--subversive-secondary);
}

.wpcf7-form .btn-success {
    color: var(--subversive-white);
    background-color: var(--subversive-success);
    border-color: var(--subversive-success);
}

.wpcf7-form .btn-success:hover {
    color: var(--subversive-white);
    background-color: var(--subversive-success);
    border-color: var(--subversive-success);
}

.wpcf7-form .btn-danger {
    color: var(--subversive-white);
    background-color: var(--subversive-danger);
    border-color: var(--subversive-danger);
}

.wpcf7-form .btn-danger:hover {
    color: var(--subversive-white);
    background-color: var(--subversive-danger);
    border-color: var(--subversive-danger);
}

.wpcf7-form .btn-warning {
    color: var(--subversive-dark);
    background-color: var(--subversive-warning);
    border-color: var(--subversive-warning);
}

.wpcf7-form .btn-warning:hover {
    color: var(--subversive-dark);
    background-color: var(--subversive-warning);
    border-color: var(--subversive-warning);
}

.wpcf7-form .btn-info {
    color: var(--subversive-dark);
    background-color: var(--subversive-info);
    border-color: var(--subversive-info);
}

.wpcf7-form .btn-info:hover {
    color: var(--subversive-dark);
    background-color: var(--subversive-info);
    border-color: var(--subversive-info);
}

.wpcf7-form .btn-light {
    color: var(--subversive-dark);
    background-color: var(--subversive-light);
    border-color: var(--subversive-light);
}

.wpcf7-form .btn-light:hover {
    color: var(--subversive-dark);
    background-color: var(--subversive-light);
    border-color: var(--subversive-light);
}

.wpcf7-form .btn-dark {
    color: var(--subversive-white);
    background-color: var(--subversive-dark);
    border-color: var(--subversive-dark);
}

.wpcf7-form .btn-dark:hover {
    color: var(--subversive-white);
    background-color: var(--subversive-dark);
    border-color: var(--subversive-dark);
}

/* Outline button variants */
.wpcf7-form .btn-outline-primary {
    color: var(--subversive-primary);
    border-color: var(--subversive-primary);
    background-color: transparent;
}

.wpcf7-form .btn-outline-primary:hover {
    color: var(--subversive-white);
    background-color: var(--subversive-primary);
    border-color: var(--subversive-primary);
}

.wpcf7-form .btn-outline-secondary {
    color: var(--subversive-secondary);
    border-color: var(--subversive-secondary);
    background-color: transparent;
}

.wpcf7-form .btn-outline-secondary:hover {
    color: var(--subversive-white);
    background-color: var(--subversive-secondary);
    border-color: var(--subversive-secondary);
} 