/* BProud contact page + Contact Form 7 styling (light & dark via terminal tokens) */
.bpc-contact { padding-bottom: 40px; }
.bpc-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: start; }
.bpc-topics { display: flex; flex-direction: column; gap: 12px; }
.bpc-topics .bpt-card { margin: 0; }
.bpt-page button.bpc-topic { height: auto !important; min-height: 0 !important; line-height: 1.4 !important; text-transform: none !important; letter-spacing: normal !important; white-space: normal !important; padding: 16px !important; background: var(--bpt-card) !important; border: 1px solid var(--bpt-line) !important; border-radius: var(--bpt-r) !important; font-weight: 400 !important; overflow: visible !important; }
.bpt-page button.bpc-topic:hover, .bpt-page button.bpc-topic.on { border-color: var(--bpt-main-l) !important; }
.bpc-topic { display: grid; grid-template-columns: 44px 1fr; gap: 14px; text-align: left; font: inherit; color: var(--bpt-text); cursor: pointer; transition: border-color .15s, transform .15s; width: 100%; }
.bpc-topic:hover, .bpc-topic.on { border-color: var(--bpt-main-l); }
.bpc-topic.on { box-shadow: 0 0 0 3px rgba(137, 0, 242, .15); }
.bpc-ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 22px; background: rgba(137, 0, 242, .1); }
.bpc-topic strong { display: block; font-size: 16px; color: var(--bpt-strong); margin-bottom: 4px; }
.bpc-tx { display: block; font-size: 13.5px; line-height: 1.55; color: var(--bpt-muted); }
.bpc-go { display: block; margin-top: 8px; font-size: 12.5px; font-weight: 600; color: var(--bpt-main-l); }
.bpc-direct p { margin: 8px 0 0; font-size: 14px; }
.bpc-direct a { color: var(--bpt-main-l) !important; font-weight: 600; }
.bpc-formcard { position: sticky; top: 90px; }
.bpc-formcard > .bpt-news-m { margin: 4px 0 16px; }

/* Contact Form 7 */
.bpc-formcard .wpcf7 form { margin: 0; }
.bpf { display: flex; flex-direction: column; gap: 14px; }
.bpf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bpf label { display: block; margin: 0; font-size: 12.5px; font-weight: 600; color: var(--bpt-muted); }
.bpf .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.bpf .bpf-req { color: var(--bpt-down); }
.bpf br { display: none; }
.bpf p { margin: 0; }
.bpf input[type=text], .bpf input[type=email], .bpf input[type=url], .bpf select, .bpf textarea {
  width: 100%; box-sizing: border-box; background: var(--bpt-card-2); border: 1px solid var(--bpt-line); border-radius: 9px;
  padding: 11px 12px; color: var(--bpt-strong); font: inherit; font-size: 15px; font-weight: 500; box-shadow: none; outline: 0; margin: 0; height: auto;
}
.bpf textarea { min-height: 150px; resize: vertical; }
.bpf select { cursor: pointer; }
.bpf select option { background: var(--bpt-card); color: var(--bpt-text); }
.bpf input:focus, .bpf select:focus, .bpf textarea:focus { border-color: var(--bpt-main); }
.bpf .bpf-budget[hidden] { display: none; }
.bpf-consent { font-size: 13px; color: var(--bpt-muted); }
.bpf-consent .wpcf7-list-item { margin: 0; }
.bpf-consent label { display: flex; flex-direction: row; align-items: flex-start; gap: 8px; font-weight: 400; font-size: 13px; }
.bpf-consent input { accent-color: var(--bpt-main); margin-top: 3px; }
.bpf .bpf-submit, .bpf input[type=submit] { align-self: flex-start; background: var(--bpt-main); color: #fff; border: 0; border-radius: 9px; padding: 12px 22px; font: inherit; font-weight: 600; font-size: 15px; cursor: pointer; }
.bpf .bpf-submit:hover { filter: brightness(1.1); }
.bpf .bpf-submit:disabled { opacity: .5; cursor: not-allowed; }
.bpc-formcard .wpcf7-not-valid-tip { font-size: 12px; font-weight: 500; color: var(--bpt-down); margin-top: 4px; }
.bpc-formcard .wpcf7-response-output { margin: 16px 0 0 !important; border-radius: 9px; padding: 12px 14px !important; font-size: 14px; color: var(--bpt-strong); border-width: 1px !important; }
.bpc-formcard .wpcf7 form.sent .wpcf7-response-output { border-color: var(--bpt-up) !important; background: rgba(22, 199, 132, .08); }
.bpc-formcard .wpcf7 form.invalid .wpcf7-response-output, .bpc-formcard .wpcf7 form.failed .wpcf7-response-output { border-color: var(--bpt-down) !important; background: rgba(240, 71, 90, .06); }
.bpc-formcard .wpcf7-spinner { margin-left: 12px; }

@media (max-width: 1080px) { .bpc-grid { grid-template-columns: 1fr; } .bpc-formcard { position: static; order: -1; } }
@media (max-width: 640px) { .bpf-row { grid-template-columns: 1fr; } }
