.bp-hub-contact { padding: 24px 0 76px; background: linear-gradient(180deg, var(--hub-bg) 0%, var(--hub-navy) 100%); }
.bp-hub-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 562px); gap: 60px; align-items: start; }
.bp-hub-contact-info .bp-hub-title { font-size: 3rem; }
.bp-hub-contact-info p { margin: 18px 0 48px; font-size: 1.5rem; font-weight: 300; line-height: 1.35; }
.bp-hub-contact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.bp-hub-contact-list a { display: inline-flex; align-items: center; gap: 18px; color: #fff; text-decoration: none; font-size: 1.5rem; font-weight: 500; }
.bp-hub-contact-list img { width: 52px; height: 52px; }
.bp-hub-form, .bp-hub-form-done:not(:empty) {
    position: relative; padding: 30px 30px 32px; border-radius: 26px; border: 1px solid rgba(255,255,255,.2);
    background: linear-gradient(160deg, rgba(40,40,40,.75) 0%, rgba(10,10,10,.9) 100%); backdrop-filter: blur(12px);
}
.bp-hub-form h3 { margin: 0 0 14px; font-size: 1.9rem; font-weight: 700; }
.bp-hub-field { display: block; margin-bottom: 4px; }
.bp-hub-field > span { display: block; margin-bottom: 8px; font-weight: 600; }
.bp-hub-field em { color: #FF3B3B; font-style: normal; }
.bp-hub-field input, .bp-hub-field textarea {
    width: 100%; box-sizing: border-box; padding: 10px 16px; border: 0; border-radius: 8px;
    font: inherit; font-size: 1rem; color: #0D0D0D; background: #fff;
}
.bp-hub-field textarea { resize: vertical; min-height: 72px; }
.bp-hub-field small { display: block; min-height: 1em; margin-top: 4px; font-size: .625rem; color: #FF4D4D; }
.bp-hub-hp { display: none; }
.bp-hub-form-msg { min-height: 1.2em; margin: 4px 0 12px; font-size: .9rem; }
.bp-hub-form-msg.is-error { color: #FF6B6B; }
.bp-hub-form-submit { margin-left: auto; display: flex; }
.bp-hub-form-submit[disabled] { opacity: .65; cursor: wait; }
.bp-hub-form[hidden] { display: none; }
.bp-hub-form-done:not(:empty) { text-align: center; padding: 60px 10px; font-size: 1.25rem; }
@media (min-width: 1024px) and (max-width: 1279px) {
    .bp-hub-contact-grid { gap: 40px; }
    .bp-hub-contact-list a { font-size: 1.2rem; }
    .bp-hub-contact-list img { width: 44px; height: 44px; }
}
/* Mobile order per design: title + copy, form, then contact list. */
@media (max-width: 1023px) {
    .bp-hub-contact-grid { display: flex; flex-direction: column; align-items: stretch; gap: 28px; }
    .bp-hub-contact-info { display: contents; }
    .bp-hub-contact-info .bp-hub-title, .bp-hub-contact-info p { order: 1; text-align: center; margin: 0; }
    .bp-hub-form-wrap { order: 2; }
    .bp-hub-contact-list { order: 3; padding-left: 32px; }
}
@media (max-width: 767px) {
    .bp-hub-contact { padding: 18px 0 40px; }
    .bp-hub-contact-grid { gap: 16px; }
    .bp-hub-contact-info .bp-hub-title { font-size: 1.5rem; }
    .bp-hub-contact-info p { font-size: .75rem; line-height: 1.3; margin-top: -4px; }
    .bp-hub-contact-list { padding-left: 28px; gap: 0; }
    .bp-hub-form { padding: 18px 15px 14px; border-radius: 18px; }
    .bp-hub-form h3 { font-size: 1.5rem; margin-bottom: 8px; }
    .bp-hub-field > span { font-size: .9375rem; margin-bottom: 6px; }
    .bp-hub-field input, .bp-hub-field textarea { font-size: .8125rem; padding: 9px 14px; }
    .bp-hub-field textarea { min-height: 66px; height: 66px; }
    .bp-hub-form-msg { min-height: 0; margin: 0 0 4px; }
    .bp-hub-form-submit { font-size: 1rem; font-weight: 600; padding: 7px 16px; }
    .bp-hub-form-done:not(:empty) { padding: 40px 10px; font-size: 1rem; }
    .bp-hub-contact-list a { font-size: 1rem; gap: 10px; }
    .bp-hub-contact-list img { width: 42px; height: 42px; margin: -2px 0; }
}
