.ve-contact { background: var(--bg-cream, #f3efe9); color: var(--text-dark, #252525); padding-top: 145px; }
.ve-contact .container { max-width: 1280px; }
.ve-contact-intro { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: clamp(2rem, 5vw, 5rem); padding-top: 3rem; padding-bottom: 5rem; }
.ve-contact-eyebrow { margin: 0 0 1.3rem; font: 500 .7rem/1.6 var(--font-body); letter-spacing: .19em; color: #8d6b2e; }
.site .ve-contact .ve-contact-title { margin: 0 0 1.7rem; font: 400 clamp(3.5rem, 6.8vw, 6.5rem)/1.05 var(--font-heading); letter-spacing: -.045em; }
.ve-contact-title > span { color: var(--gold-primary); }
.site .ve-contact .ve-contact-intro h2 { max-width: 560px; font-size: clamp(1.4rem, 2.3vw, 2rem); line-height: 1.5; margin: 0 0 1rem; font-weight: 400; }
.ve-contact-lead { max-width: 540px; font-size: 1rem; line-height: 1.9; color: #6b675f; }
.ve-contact-jump { display: inline-flex; align-items: center; gap: 2rem; padding: .9rem 0; margin-top: 1.4rem; border-bottom: 1px solid var(--gold-primary); font-size: .85rem; color: #30302c; }
.ve-contact-jump span { font-size: 1.4rem; color: #8d6b2e; }
.ve-contact-visual { min-height: 420px; position: relative; overflow: hidden; background: #242620; border-radius: 3px; isolation: isolate; }
.ve-contact-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ve-contact-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,20,17,.12), rgba(17,20,17,.88)); z-index: -1; }
.ve-contact-visual img { z-index: -2; }
.ve-contact-visual-copy { min-height: 420px; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(1.5rem, 3vw, 3rem); color: #fff; }
.ve-contact-visual-copy > span { font-size: .65rem; letter-spacing: .15em; color: #dfc592; line-height: 1.8; }
.ve-contact-visual-copy p { font-family: var(--font-heading); font-size: clamp(1.6rem, 2.8vw, 2.6rem); line-height: 1.5; margin: .9rem 0 2rem; }
.ve-contact-visual-foot { border-top: 1px solid #ffffff40; padding-top: 1rem; }
.ve-contact-body { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr); gap: clamp(2rem, 6vw, 6rem); padding-top: 4rem; padding-bottom: 5rem; border-top: 1px solid #dcd5c9; align-items: start; }
.site .ve-contact .ve-contact-details h2 { font-size: clamp(1.5rem, 2.5vw, 2.3rem); line-height: 1.5; margin: 0 0 1rem; font-weight: 400; }
.ve-contact-details > p:not(.ve-contact-eyebrow) { color: #6b675f; line-height: 1.9; margin-bottom: 2rem; }
.ve-contact-detail { border-bottom: 1px solid #dcd5c9; padding: 1.25rem 0; }
.ve-contact-detail > span { display: block; font-size: .65rem; letter-spacing: .16em; color: #8d6b2e; margin-bottom: .65rem; }
.ve-contact-detail a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: #30302c; overflow-wrap: anywhere; }
.ve-contact-detail a:hover { color: #8d6b2e; }
.ve-contact-detail p { line-height: 1.8; margin: 0; }
.ve-contact-map-link { font-size: .8rem; margin-top: .7rem; }
.ve-contact-reach { display: flex; gap: 1rem; margin-top: 2.5rem; }
.ve-contact-reach svg { flex-shrink: 0; width: 22px; color: #8d6b2e; }
.ve-contact-reach strong { font-size: .8rem; font-weight: 500; }
.ve-contact-reach p { font-size: .8rem; line-height: 1.8; color: #6b675f; margin: .4rem 0 0; }
.ve-contact-form-panel { padding: clamp(1.5rem, 3.5vw, 3.5rem); background: #fff; border: 1px solid #e9e3d9; box-shadow: 0 20px 55px #24262008; border-radius: 3px; min-width: 0; }
.ve-contact-form-heading { display: flex; justify-content: space-between; gap: 1rem; }
.ve-contact-form-heading .ve-contact-eyebrow { margin-bottom: .6rem; }
.site .ve-contact .ve-contact-form-heading h2 { font: 400 clamp(1.5rem, 2.5vw, 2.2rem)/1.4 var(--font-heading); margin: 0; }
.ve-contact-form-heading > span { color: #b79758; font-size: 2.5rem; line-height: 1; }
.ve-contact-form-intro { color: #6b675f; font-size: .9rem; line-height: 1.8; margin: 1rem 0 2rem; }
.ve-contact .wpcf7 { margin: 0; }
.ve-contact .wpcf7-form { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1.4rem; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.ve-contact .wpcf7-form > p { grid-column: 1 / -1; margin: 0; }
.ve-contact .wpcf7-form > p:first-of-type { grid-column: 1; }
.ve-contact .wpcf7-form > p:nth-of-type(2) { grid-column: 2; }
.ve-contact .wpcf7-form label { display: block; color: #49453f; font-size: .8rem; line-height: 1.8; font-weight: 500; margin-bottom: 0; }
.ve-contact .wpcf7-form-control-wrap { display: block; margin-top: .5rem; }
.ve-contact .wpcf7-form input:not([type=submit]):not([type=hidden]):not([type=checkbox]):not([type=radio]),
.ve-contact .wpcf7-form textarea,
.ve-contact .wpcf7-form select { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #ded8cd; background: #fcfaf7; border-radius: 2px; padding: .9rem 1rem; color: #252525; font: 400 .95rem/1.6 var(--font-body); transition: border-color .2s, box-shadow .2s; }
.ve-contact .wpcf7-form textarea { height: 155px; resize: vertical; }
.ve-contact .wpcf7-form :is(input,textarea,select):focus { outline: 2px solid #b7975860; outline-offset: 2px; border-color: #a17a38; background: #fff; }
/* Override the legacy theme's global !important submit styles on this page only. */
.ve-contact .wpcf7-form input[type=submit] { width: 100%; background: #262923 !important; border: 1px solid #262923 !important; color: #fff; border-radius: 2px !important; padding: 1.05rem 1.5rem !important; font: 500 .8rem/1.6 var(--font-body) !important; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: background .2s; box-shadow: none; }
.ve-contact .wpcf7-form input[type=submit]:hover { background: #786038 !important; border-color: #786038 !important; transform: none; box-shadow: none; }
.ve-contact .wpcf7-response-output { grid-column: 1 / -1; margin: 0; padding: 1rem; font-size: .9rem; line-height: 1.7; }
.ve-contact .wpcf7-not-valid-tip { font-size: .75rem; margin-top: .4rem; }
.ve-contact .wpcf7-spinner { display: block; margin: .5rem auto 0; }
.ve-contact-closing { display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-top: 1px solid #dcd5c9; padding-top: 2rem; padding-bottom: 3rem; }
.ve-contact-closing p { font-size: 1rem; line-height: 1.8; margin: 0; color: #6b675f; }
.ve-contact-closing a { flex-shrink: 0; color: #30302c; font-size: .85rem; border-bottom: 1px solid #b79758; padding: .6rem 0; }
.ve-contact-closing a span { margin-left: 1rem; }
#project-enquiry { scroll-margin-top: 130px; }
@media (max-width: 900px) {
 .ve-contact { padding-top: 110px; }
 .ve-contact-intro { grid-template-columns: 1fr; padding-top: 2rem; padding-bottom: 3rem; gap: 2.5rem; }
 .ve-contact-visual, .ve-contact-visual-copy { min-height: 320px; }
 .ve-contact-body { grid-template-columns: 1fr; padding-top: 3rem; padding-bottom: 3rem; gap: 2.5rem; }
 .ve-contact-closing { align-items: flex-start; flex-direction: column; gap: 1rem; }
}
@media (max-width: 480px) {
 .ve-contact .wpcf7-form { grid-template-columns: minmax(0,1fr); }
 .ve-contact .wpcf7-form > p:first-of-type, .ve-contact .wpcf7-form > p:nth-of-type(2) { grid-column: 1 / -1; }
 .ve-contact-visual, .ve-contact-visual-copy { min-height: 280px; }
}
@media (prefers-reduced-motion: reduce) { .ve-contact .wpcf7-form :is(input,textarea,select) { transition: none; } }
