/* Contact palette. All overrides are scoped to this plugin's forms. */
.ciism-contact-page-form,
form.wpforms-form[data-ciism-contact-form] {
    --ciism-contact-primary: #3CB3E2;
    --ciism-contact-secondary: #A4D8C0;
    --ciism-contact-text: #182335;
    --ciism-contact-border: var(--ciism-contact-secondary);
    box-sizing: border-box;
}

/* Compatibility guard for any old contact markup still held in page caches. */
.ciism-contact-sticky,
.ciism-contact-modal { display: none !important; }

/* Shared form styles: also apply to the configured forms in native WPForms widgets. */
.ciism-contact-page-form { width: 100%; max-width: 1050px; margin: 0 auto; padding: 18px 0 28px; }
.ciism-contact-page-form .wpforms-container { margin: 0 !important; }
form.wpforms-form[data-ciism-contact-form] { width: 100%; margin: 0 !important; }
form.wpforms-form[data-ciism-contact-form] .wpforms-field-container { width: 100%; }
form.wpforms-form[data-ciism-contact-form] .wpforms-field {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    clear: both !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 0 18px !important;
}
form.wpforms-form[data-ciism-contact-form] .wpforms-field-label {
    display: block;
    margin: 0 0 7px !important;
    padding: 0 !important;
    color: var(--ciism-contact-text) !important;
    font-family: inherit !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}
form.wpforms-form[data-ciism-contact-form] .wpforms-required-label { color: var(--ciism-contact-primary) !important; }
form.wpforms-form[data-ciism-contact-form] :is(.wpforms-field-small, .wpforms-field-medium, .wpforms-field-large, .wpforms-field-row) {
    width: 100% !important;
    max-width: none !important;
}
form.wpforms-form[data-ciism-contact-form] :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], select, textarea) {
    box-sizing: border-box !important;
    display: block;
    width: 100% !important;
    max-width: none !important;
    min-height: 44px !important;
    height: auto;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid #3CB3E2 !important;
    border-radius: 0 !important;
    background-color: #fff !important;
    color: var(--ciism-contact-text) !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 16px !important;
    line-height: 1.4 !important;
}
form.wpforms-form[data-ciism-contact-form] textarea {
    min-height: 140px !important;
    height: 140px;
    resize: vertical;
}
form.wpforms-form[data-ciism-contact-form] :is(input, select, textarea):focus {
    border-color: var(--ciism-contact-primary) !important;
    outline: 2px solid rgba(60, 179, 226, .3) !important;
    outline-offset: 1px !important;
}
form.wpforms-form[data-ciism-contact-form] :is(input, textarea)::placeholder {
    color: #748091 !important;
    opacity: 1;
}
/* Preserve a simple name field. Split name fields remain supported without hiding sublabels. */
form.wpforms-form[data-ciism-contact-form] .wpforms-field-name .wpforms-field-row {
    display: flex;
    gap: 16px;
    margin: 0 !important;
}
form.wpforms-form[data-ciism-contact-form] .wpforms-field-name .wpforms-field-row-block {
    float: none !important;
    flex: 1 1 0;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}
form.wpforms-form[data-ciism-contact-form] :is(.wpforms-field-sublabel, .wpforms-field-description) {
    color: #596778;
    font-size: 13px !important;
    line-height: 1.4 !important;
}
form.wpforms-form[data-ciism-contact-form] :is(.wpforms-field-checkbox, .wpforms-field-gdpr-checkbox, .wpforms-field-radio) ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
form.wpforms-form[data-ciism-contact-form] :is(.wpforms-field-checkbox, .wpforms-field-gdpr-checkbox, .wpforms-field-radio) li {
    list-style: none !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
}
form.wpforms-form[data-ciism-contact-form] :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--ciism-contact-primary); }
form.wpforms-form[data-ciism-contact-form] .wpforms-field-label-inline {
    color: var(--ciism-contact-text) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}
form.wpforms-form[data-ciism-contact-form] a { color: var(--ciism-contact-text); text-decoration: underline; text-decoration-color: var(--ciism-contact-primary); }
form.wpforms-form[data-ciism-contact-form] :is(em.wpforms-error, label.wpforms-error, .wpforms-error-container) {
    color: #b42318 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
}
form.wpforms-form[data-ciism-contact-form] :is(input.wpforms-error, textarea.wpforms-error, select.wpforms-error) { border-color: #b42318 !important; }
form.wpforms-form[data-ciism-contact-form] .wpforms-submit-container { padding-top: 4px !important; text-align: center !important; }
form.wpforms-form[data-ciism-contact-form] :is(button[type="submit"], input[type="submit"]) {
    box-sizing: border-box;
    min-width: 140px !important;
    min-height: 44px !important;
    max-width: 100%;
    height: auto !important;
    margin: 0 !important;
    padding: 12px 26px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--ciism-contact-primary) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    cursor: pointer;
}
form.wpforms-form[data-ciism-contact-form] :is(button[type="submit"], input[type="submit"]):hover {
    background: var(--ciism-contact-secondary) !important;
    color: #ffffff !important;
}
form.wpforms-form[data-ciism-contact-form] :is(button[type="submit"], input[type="submit"]):focus-visible {
    outline: 3px solid var(--ciism-contact-primary) !important;
    outline-offset: 3px;
}
form.wpforms-form[data-ciism-contact-form] :is(button[type="submit"], input[type="submit"]):disabled { opacity: .65; cursor: wait; }
.ciism-contact-page-form :is(.wpforms-confirmation-container, .wpforms-confirmation-container-full) {
    box-sizing: border-box;
    margin: 0 !important;
    padding: 18px !important;
    border: 1px solid var(--ciism-contact-primary) !important;
    border-radius: 0 !important;
    background: var(--ciism-contact-secondary) !important;
    color: var(--ciism-contact-text) !important;
    line-height: 1.5;
}
.ciism-contact-message { margin: 0; color: #182335; font-size: 15px; line-height: 1.5; }

@media (max-width: 650px) {
    form.wpforms-form[data-ciism-contact-form] .wpforms-field-name .wpforms-field-row { flex-direction: column; gap: 10px; }
    form.wpforms-form[data-ciism-contact-form] .wpforms-field-name .wpforms-field-row-block { width: 100% !important; }
}

/* Square corners everywhere within a contact form, including validation,
   confirmation, hover/focus states, pseudo-elements and WPForms theme tokens.
   ID-specific native-widget overrides are enqueued by the PHP class. */
html body :is(.ciism-contact-page-form, form.wpforms-form[data-ciism-contact-form]),
html body :is(.ciism-contact-page-form, form.wpforms-form[data-ciism-contact-form]) *,
html body :is(.ciism-contact-page-form, form.wpforms-form[data-ciism-contact-form])::before,
html body :is(.ciism-contact-page-form, form.wpforms-form[data-ciism-contact-form])::after,
html body :is(.ciism-contact-page-form, form.wpforms-form[data-ciism-contact-form]) *::before,
html body :is(.ciism-contact-page-form, form.wpforms-form[data-ciism-contact-form]) *::after {
    --wpforms-field-border-radius: 0px !important;
    --wpforms-button-border-radius: 0px !important;
    --wpforms-container-border-radius: 0px !important;
    border-radius: 0 !important;
}

/* Avoid iOS/macOS native rounded rendering for text controls and buttons. */
form.wpforms-form[data-ciism-contact-form] :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], textarea, button, input[type="submit"]) {
    -webkit-appearance: none;
    appearance: none;
}

/* Checkbox and radio controls stay native HTML inputs with keyboard support,
   but their visible outer shape and selected marker are both rectangular. */
form.wpforms-form[data-ciism-contact-form] :is(input[type="checkbox"], input[type="radio"]) {
    -webkit-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
    display: inline-block !important;
    position: relative;
    width: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;
    height: 18px !important;
    min-height: 18px !important;
    padding: 0 !important;
    margin: 0 6px 0 0 !important;
    border: 1px solid var(--ciism-contact-secondary) !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    vertical-align: middle;
    cursor: pointer;
}
form.wpforms-form[data-ciism-contact-form] :is(input[type="checkbox"], input[type="radio"])::before {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    inset: 3px !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--ciism-contact-primary) !important;
    box-shadow: none !important;
    transform: none !important;
    opacity: 0 !important;
}
form.wpforms-form[data-ciism-contact-form] :is(input[type="checkbox"], input[type="radio"]):checked::before {
    opacity: 1 !important;
}
form.wpforms-form[data-ciism-contact-form] :is(input[type="checkbox"], input[type="radio"])::after {
    content: none !important;
}
form.wpforms-form[data-ciism-contact-form] :is(input[type="checkbox"], input[type="radio"]):disabled {
    opacity: .55;
    cursor: not-allowed;
}
@media (forced-colors: active) {
    form.wpforms-form[data-ciism-contact-form] :is(input[type="checkbox"], input[type="radio"]) {
        border-color: CanvasText !important;
        background: Canvas !important;
    }
    form.wpforms-form[data-ciism-contact-form] :is(input[type="checkbox"], input[type="radio"]):checked::before {
        background: Highlight !important;
        forced-color-adjust: none;
    }
}
