/*
 * TBLC Forms
 * Shared presentation layer for Forminator forms.
 */

.forminator-custom-form {
--tblc-blue: #005b8f;
--tblc-blue-dark: #00466f;
--tblc-green: #9dbb3b;
--tblc-text: #25313a;
--tblc-muted: #66737d;
--tblc-border: #d6dee4;
--tblc-surface: #ffffff;
--tblc-soft: #f5f8fa;

max-width: 900px;
margin: 32px auto;
padding: clamp(24px, 4vw, 48px);
background: var(--tblc-surface);
border: 1px solid var(--tblc-border);
border-radius: 14px;
box-shadow: 0 10px 30px rgba(20, 45, 65, 0.08);
color: var(--tblc-text);
}

.forminator-custom-form h2 {
margin: 0 0 18px;
color: var(--tblc-blue);
font-size: clamp(28px, 4vw, 38px);
line-height: 1.15;
}

.forminator-custom-form h3 {
margin-top: 28px;
margin-bottom: 12px;
color: var(--tblc-blue-dark);
font-size: 20px;
}

.forminator-custom-form p,
.forminator-custom-form li {
line-height: 1.65;
}

.forminator-custom-form ul,
.forminator-custom-form ol {
margin-bottom: 22px;
padding-left: 24px;
}

.forminator-custom-form .forminator-row {
margin-bottom: 24px !important;
}

.forminator-custom-form .forminator-label {
display: block;
margin-bottom: 8px !important;
color: var(--tblc-text) !important;
font-size: 15px !important;
font-weight: 700 !important;
}

.forminator-custom-form .forminator-description {
color: var(--tblc-muted) !important;
font-size: 14px !important;
line-height: 1.5 !important;
}

.forminator-custom-form input[type="text"],
.forminator-custom-form input[type="email"],
.forminator-custom-form input[type="tel"],
.forminator-custom-form input[type="number"],
.forminator-custom-form select,
.forminator-custom-form textarea {
width: 100%;
border: 1px solid var(--tblc-border) !important;
border-radius: 8px !important;
background: #fff !important;
color: var(--tblc-text) !important;
font-size: 16px !important;
box-shadow: none !important;
transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.forminator-custom-form input[type="text"],
.forminator-custom-form input[type="email"],
.forminator-custom-form input[type="tel"],
.forminator-custom-form input[type="number"],
.forminator-custom-form select {
min-height: 48px;
padding: 10px 14px !important;
}

.forminator-custom-form textarea {
min-height: 170px;
padding: 14px !important;
resize: vertical;
}

.forminator-custom-form input:focus,
.forminator-custom-form select:focus,
.forminator-custom-form textarea:focus {
border-color: var(--tblc-green) !important;
box-shadow: 0 0 0 3px rgba(157, 187, 59, 0.18) !important;
outline: none !important;
}

.forminator-custom-form .forminator-radio {
margin-bottom: 10px !important;
}

.forminator-custom-form .forminator-radio-label {
font-size: 16px !important;
color: var(--tblc-text) !important;
}

.forminator-custom-form .forminator-required {
color: #b42318 !important;
}

.forminator-custom-form .forminator-error-message {
margin-top: 7px !important;
font-size: 14px !important;
}

.forminator-custom-form .forminator-button-submit {
min-height: 50px !important;
padding: 12px 28px !important;
border: 0 !important;
border-radius: 8px !important;
background: var(--tblc-blue) !important;
color: #fff !important;
font-size: 16px !important;
font-weight: 700 !important;
box-shadow: none !important;
transition: background 0.2s ease, transform 0.2s ease;
}

.forminator-custom-form .forminator-button-submit:hover,
.forminator-custom-form .forminator-button-submit:focus {
background: var(--tblc-blue-dark) !important;
transform: translateY(-1px);
}

.forminator-custom-form .forminator-response-message {
padding: 18px 20px !important;
border-radius: 8px !important;
font-size: 16px !important;
line-height: 1.6 !important;
}

.forminator-custom-form .forminator-response-message.forminator-success {
border-left: 5px solid var(--tblc-green) !important;
background: #f5f9e9 !important;
color: var(--tblc-text) !important;
}

@media (max-width: 767px) {
.forminator-custom-form {
margin: 18px auto;
padding: 22px 18px;
}

.forminator-ui.forminator-custom-form h2 {
font-size: 28px;
}
}

/* Hide Forminator's automatic label on HTML content fields. */
.forminator-custom-form .forminator-field-html .forminator-label {
display: none !important;
}

/* TBLC introductory HTML field: hide Forminator's automatic field label. */
.forminator-custom-form .tblc-html-intro > .forminator-label,
.forminator-custom-form .tblc-html-intro > label {
display: none !important;
}

/* TBLC form section heading */
.forminator-custom-form .tblc-form-section {
margin-top: 12px !important;
margin-bottom: 28px !important;
padding: 22px 24px !important;
border-left: 5px solid var(--tblc-green);
border-radius: 8px;
background: var(--tblc-soft);
}

.forminator-custom-form .tblc-form-section h2,
.forminator-custom-form .tblc-form-section h3,
.forminator-custom-form .tblc-form-section .forminator-title {
margin-top: 0 !important;
margin-bottom: 6px !important;
color: var(--tblc-blue) !important;
}

.forminator-custom-form .tblc-form-section p {
margin-bottom: 0 !important;
color: var(--tblc-muted) !important;
}

/* Keep TBLC Forminator forms centered regardless of Divi container behavior. */
.forminator-custom-form {
width: min(900px, 100%) !important;
margin-left: auto !important;
margin-right: auto !important;
float: none !important;
}

/* Make the centered TBLC form container visually distinct. */
.forminator-custom-form {
background: #ffffff !important;
border: 1px solid #d8e1e7 !important;
border-radius: 14px !important;
box-shadow: 0 12px 32px rgba(20, 45, 65, 0.10) !important;
padding: 42px !important;
}

/* TBLC Yes/No question groups */
.forminator-custom-form .tblc-choice-group {
margin-top: 8px !important;
padding: 22px 24px !important;
background: #f7f9fa;
border: 1px solid #d8e1e7;
border-radius: 10px;
}

.forminator-custom-form .tblc-choice-group .forminator-label {
margin-bottom: 8px !important;
font-size: 16px !important;
}

.forminator-custom-form .tblc-choice-group .forminator-description {
margin-bottom: 14px !important;
}

.forminator-custom-form .tblc-choice-group .forminator-radio {
margin-bottom: 10px !important;
}

/* Conditional delegate approval question */
.forminator-custom-form .tblc-conditional-group {
border-left: 5px solid var(--tblc-green);
background: #f8faef;
}

/* TBLC primary submit button */
.forminator-custom-form .forminator-button-submit {
min-width: 190px !important;
margin-top: 8px !important;
padding: 14px 26px !important;
border-radius: 8px !important;
background: var(--tblc-blue) !important;
color: #ffffff !important;
font-size: 16px !important;
font-weight: 700 !important;
}

.forminator-custom-form .forminator-button-submit:hover,
.forminator-custom-form .forminator-button-submit:focus {
background: var(--tblc-blue-dark) !important;
}

/* Strong TBLC styling for Forminator radio-question containers. */
.forminator-custom-form .forminator-field-radio.tblc-choice-group {
margin-top: 10px !important;
margin-bottom: 24px !important;
padding: 22px 24px !important;
background: #f7f9fa !important;
border: 1px solid #d8e1e7 !important;
border-radius: 10px !important;
}

.forminator-custom-form .forminator-field-radio.tblc-choice-group > .forminator-field {
margin: 0 !important;
padding: 0 !important;
}

.forminator-custom-form .forminator-field-radio.tblc-choice-group .forminator-label {
margin-bottom: 8px !important;
font-size: 16px !important;
font-weight: 700 !important;
}

.forminator-custom-form .forminator-field-radio.tblc-choice-group .forminator-description {
display: block !important;
margin-bottom: 14px !important;
}

.forminator-custom-form .forminator-field-radio.tblc-choice-group .forminator-radio {
margin-bottom: 10px !important;
}

/* Conditional delegate-approval question. */
.forminator-custom-form .forminator-field-radio.tblc-conditional-group {
background: #f8faef !important;
border-left: 5px solid var(--tblc-green) !important;
}

/* High-specificity reusable TBLC choice panels. */
.forminator-ui.forminator-custom-form .tblc-choice-group {
display: block !important;
margin: 12px 0 24px !important;
padding: 22px 24px !important;
background: #f7f9fa !important;
border: 1px solid #d8e1e7 !important;
border-radius: 10px !important;
box-sizing: border-box !important;
}

.forminator-ui.forminator-custom-form .tblc-conditional-group {
background: #f8faef !important;
border-left: 5px solid #9dbb3b !important;
}

.forminator-ui.forminator-custom-form .tblc-choice-group > .forminator-field {
margin: 0 !important;
padding: 22px 24px !important;
background: #f7f9fa !important;
border: 1px solid #d8e1e7 !important;
border-radius: 10px !important;
box-sizing: border-box !important;
}

.forminator-ui.forminator-custom-form .tblc-conditional-group > .forminator-field {
background: #f8faef !important;
border-left: 5px solid #9dbb3b !important;
}


/* TBLC Forminator page presentation. */
body:has(.forminator-custom-form) .et-l--header .et_pb_post_title {
    display: none !important;
}

body:has(.forminator-custom-form) .et-l--header .et_pb_fullwidth_section:has(.et_pb_post_title) {
    display: none !important;
}

body:has(.forminator-custom-form) .forminator-ui.forminator-custom-form {
    width: min(980px, 100%) !important;
    max-width: 980px !important;
    margin-top: 28px !important;
    margin-bottom: 40px !important;
    padding: 16px 0 48px !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.forminator-custom-form .tblc-form-heading {
    margin: 0 0 28px !important;
    padding: 0 0 22px !important;
    border-bottom: 3px solid var(--tblc-green);
}

.forminator-custom-form .tblc-form-kicker {
    margin: 0 0 6px !important;
    padding: 0 !important;
    color: var(--tblc-muted) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    line-height: 1.35 !important;
    text-transform: uppercase;
}

.forminator-custom-form .tblc-form-heading h1 {
    margin: 0 !important;
    padding: 0 !important;
    color: var(--tblc-blue) !important;
    font-size: clamp(32px, 4vw, 44px) !important;
    font-weight: 700 !important;
    line-height: 1.12 !important;
}

.forminator-custom-form .tblc-form-year {
    margin: 8px 0 0 !important;
    padding: 0 !important;
    color: var(--tblc-blue-dark) !important;
    font-size: 21px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

.forminator-custom-form .tblc-form-info {
    margin: 0 0 34px !important;
    padding: 28px 30px !important;
    background: #fbfcfd !important;
    border: 1px solid var(--tblc-border) !important;
    border-radius: 10px !important;
}

.forminator-custom-form .tblc-form-info > :first-child {
    margin-top: 0 !important;
}

.forminator-custom-form .tblc-form-info > :last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.forminator-custom-form .tblc-form-info h3 {
    margin-top: 26px !important;
}

/* Use one card boundary for TBLC radio question groups, not a nested double border. */
.forminator-ui.forminator-custom-form .forminator-field-radio.tblc-choice-group {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.forminator-ui.forminator-custom-form .forminator-field-radio.tblc-choice-group > .forminator-field {
    margin: 0 !important;
    padding: 22px 24px !important;
    background: #f7f9fa !important;
    border: 1px solid var(--tblc-border) !important;
    border-radius: 10px !important;
    box-sizing: border-box !important;
}

.forminator-ui.forminator-custom-form .forminator-field-radio.tblc-conditional-group > .forminator-field {
    background: #f8faef !important;
    border-left: 5px solid var(--tblc-green) !important;
}

@media (max-width: 767px) {
    body:has(.forminator-custom-form) .forminator-ui.forminator-custom-form {
        margin-top: 16px !important;
        padding: 10px 0 32px !important;
    }

    .forminator-custom-form .tblc-form-heading h1 {
        font-size: 30px !important;
    }

    .forminator-custom-form .tblc-form-info {
        padding: 20px !important;
    }
}
