/* ===========================================================
   Hero contact form (CF7 #154) - white card on the navy band.
   Kept out of the form post so the styling lives with the rest
   of the page instead of in the database.
   =========================================================== */
.vt-broker-page .vtb-form-col .wpcf7 { height: 100%; }
.vtb-cf7-wrap {
    background: #fff;
    border-radius: 6px;
    padding: 26px 28px;
    box-shadow: 0 16px 40px rgba(0,0,0,.2);
    height: 100%;
    box-sizing: border-box;
}
.vtb-cf7-wrap br { display: none; }
.vtb-cf7-wrap p:empty { display: none; }

.vtb-cf7-title { font-size: 18px; font-weight: 700; color: #1a1a1a; margin: 0 0 4px; line-height: 1.3; }
.vtb-cf7-sub   { font-size: 13.5px; color: #555; margin: 0 0 18px; line-height: 1.5; }

.vtb-cf7-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.vtb-cf7-row p, .vtb-cf7-row br { display: contents; }
.vtb-req { color: #c0392b; }

.vtb-cf7-wrap label {
    display: block;
    color: #555;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 13px;
}
.vtb-cf7-wrap input[type="text"],
.vtb-cf7-wrap input[type="email"],
.vtb-cf7-wrap input[type="tel"],
.vtb-cf7-wrap textarea {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid #d5d1c9;
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    font-weight: 400;
    letter-spacing: normal;
    text-transform: none;
    background: #fff;
    box-sizing: border-box;
    margin-top: 5px;
    transition: border-color .16s, box-shadow .16s;
}
/* vt-site.css paints every .wpcf7-text and textarea white; this card is white. */
.vtb-cf7-wrap input[type="text"],
.vtb-cf7-wrap input[type="email"],
.vtb-cf7-wrap input[type="tel"],
.vtb-cf7-wrap textarea,
.vt-broker-page .vtb-form textarea,
.vt-broker-page .vtb-form input[type="text"],
.vt-broker-page .vtb-form input[type="email"] { color: #1a1a1a !important; }

.vtb-cf7-wrap input::placeholder,
.vtb-cf7-wrap textarea::placeholder { color: #9a958c; }
.vtb-cf7-wrap input:focus,
.vtb-cf7-wrap textarea:focus {
    outline: none;
    border-color: #3f7ab0;
    box-shadow: 0 0 0 3px rgba(63,122,176,.14);
}
.vtb-cf7-wrap textarea { resize: vertical; min-height: 0; }

.vtb-cf7-consent { margin-bottom: 14px; }
/* CF7 autop wraps the row in a <p>, so that is the actual flex line. */
.vtb-cf7-consent > p { display: flex; gap: 9px; align-items: flex-start; margin: 0; }
/* CF7's control wrappers are full-width blocks; shrink them to the box. */
.vtb-cf7-consent .wpcf7-form-control-wrap,
.vtb-cf7-consent .wpcf7-acceptance,
.vtb-cf7-consent .wpcf7-list-item { display: block; width: auto; flex: 0 0 auto; margin: 0; }
.vtb-cf7-consent > p > span:last-of-type { flex: 1 1 auto; min-width: 0; }
.vtb-cf7-consent .wpcf7-list-item { margin: 0; }
.vtb-cf7-consent .wpcf7-list-item-label { display: none; }
.vtb-cf7-consent input[type="checkbox"] { margin: 3px 0 0; width: 15px; height: 15px; accent-color: #3f7ab0; }
.vtb-cf7-consent > span { font-size: 12px; color: #555; line-height: 1.45; }
.vtb-cf7-consent a { color: #3f7ab0; font-weight: 600; }

.vtb-cf7-wrap .wpcf7-submit {
    width: 100%;
    background: #3f7ab0;
    color: #fff;
    border: none;
    padding: 13px 22px;
    border-radius: 6px;
    font-size: 14.5px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: background .16s;
}
.vtb-cf7-wrap .wpcf7-submit:hover,
.vtb-cf7-wrap .wpcf7-submit:focus { background: #5b93c4; }

.vtb-cf7-wrap .wpcf7-not-valid-tip { color: #c0392b; font-size: 12px; margin-top: 4px; display: block; text-transform: none; letter-spacing: normal; font-weight: 400; }
.vtb-cf7-wrap .wpcf7-response-output {
    margin: 12px 0 0;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    border: none !important;
}
.vt-broker-page form.sent .wpcf7-response-output    { background: rgba(30,122,76,.12); color: #1e7a4c; }
.vt-broker-page form.invalid .wpcf7-response-output,
.vt-broker-page form.failed .wpcf7-response-output  { background: rgba(192,57,43,.12); color: #c0392b; }
.vtb-cf7-wrap .wpcf7-spinner { display: none; }
.vtb-cf7-wrap .submitting .wpcf7-spinner { display: inline-block; }

@media (max-width: 640px) {
    .vtb-cf7-wrap { padding: 22px 20px; }
    .vtb-cf7-row  { grid-template-columns: 1fr; }
}
