/* Contact page only: native editable sections on the established content grid. */
.c-contact-page { gap: 104px; padding-block: 32px 0; color: var(--color-brand-ink); font-family: var(--font-sans); }
.c-contact-page .wp-block-columns { gap: 48px; margin: 0; align-items: center; }
.c-contact-page > .c-container { width: 100%; margin-inline: auto; }
.c-contact-page .wp-block-column { min-width: 0; }
.c-contact-page h1 { font-size: clamp(36px,4vw,56px); line-height: 1.08; letter-spacing: -.035em; margin: 0 0 24px; }
.c-contact-page h2 { font-size: clamp(28px,2.5vw,38px); line-height: 1.14; letter-spacing: -.025em; margin: 0 0 20px; }
.c-contact-page p { line-height: 1.65; margin-top: 0; }
.c-contact-page .c-contact-eyebrow { color: var(--color-brand-primary,#6290b3); font-size: 12px; font-weight: 600; letter-spacing: .12em; line-height: 1.5; margin-bottom: 20px; text-transform: uppercase; }
.c-contact-page figure { margin: 0; }
.c-contact-page figure img { display: block; width: 100%; height: auto; object-fit: cover; }
.c-contact-page .c-contact-hero > .wp-block-column:first-child { flex-basis: 44%; }
.c-contact-page .c-contact-hero > .wp-block-column:last-child { flex-basis: 56%; }
.c-contact-page .c-contact-hero figure img { aspect-ratio: 1.25; }
.c-contact-page :is(.c-contact-hero-details,.c-contact-detail,.c-contact-aside-details,.c-contact-project-cta) > .wp-block-group__inner-container { display: contents; }
.c-contact-page .c-contact-hero-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 48px; }
.c-contact-page .c-contact-detail { display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 16px; align-items: start; }
.c-contact-page .c-contact-detail p { font-size: 13px; margin-bottom: 8px; }
.c-contact-page .c-contact-detail a { color: inherit; font-size: 18px; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.c-contact-page .c-contact-detail a:hover { text-decoration: underline; text-underline-offset: .2em; }
.c-contact-page .c-contact-icon { display: grid; place-items: center; width: 44px; height: 44px; margin: 0; border-radius: 50%; background: #f2ede5; color: var(--color-brand-ink); }
.c-contact-page .c-contact-icon svg { width: 23px; height: 23px; }
.c-contact-page .c-contact-main { align-items: start; }
.c-contact-page .c-contact-main > .wp-block-column:first-child { flex-basis: 58%; align-self: start; }
.c-contact-page .c-contact-main > .wp-block-column:last-child { flex-basis: 42%; align-self: start; }
.c-contact-page .c-contact-form-panel { background: #f5f6f7; padding: 36px; }
.c-contact-page .c-contact-form-panel > .wpcf7 { margin-top: 24px; }
.c-contact-page .c-contact-aside { padding: 74px 0 24px 16px; }
.c-contact-page .c-contact-aside-details { display: grid; gap: 36px; margin-top: 40px; }
.c-contact-page .c-contact-fields { display: grid; gap: 20px; }
.c-contact-page .c-contact-fields p { margin: 0; font-size: 14px; }
.c-contact-page .c-contact-fields label { display: block; font-weight: 600; line-height: 1.5; }
.c-contact-page .c-contact-required { color: #566776; }
.c-contact-page .c-contact-fields .wpcf7-form-control-wrap { position: relative; display: block; }
.c-contact-page .c-contact-fields input:not([type=checkbox]):not([type=submit]),
.c-contact-page .c-contact-fields textarea { display: block; width: 100%; box-sizing: border-box; padding: 12px; margin-top: 8px; border: 1px solid #aebbc4; border-radius: 2px; background: white; color: inherit; font: inherit; font-weight: 400; }
.c-contact-page .c-contact-fields .wpcf7-form-control-wrap:has(> .c-contact-input-icon) input { padding-left: 40px; }
.c-contact-page .c-contact-input-icon { position: absolute; left: 12px; top: 24px; transform: translateY(-50%); width: 18px; height: 18px; color: #667885; pointer-events: none; }
.c-contact-page .c-contact-fields textarea { height: 112px; min-height: 112px; max-height: 320px; resize: none; line-height: 1.5; }
.c-contact-page .c-contact-fields input:focus-visible,
.c-contact-page .c-contact-fields textarea:focus-visible { outline: 2px solid var(--color-brand-primary); outline-offset: 3px; }
.c-contact-page .c-contact-fields input[type=submit] { width: auto; max-width: 100%; padding: 16px 24px; border-radius: 2px; font-size: 14px; }
.c-contact-page .c-contact-fields .c-contact-privacy { font-size: 12px; font-weight: 400; line-height: 1.6; }
.c-contact-page .c-contact-fields .wpcf7-list-item { margin-left: 0; }
.c-contact-page .c-contact-location { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,3fr); gap: 40px; align-items: center; }
.c-contact-page .c-contact-location > .wp-block-column { align-self: center; }
.c-contact-page .c-contact-location h2 { font-size: clamp(27px,2.4vw,36px); }
.c-contact-page .c-contact-location-illustration { height: 100%; display: flex; align-items: center; }
.c-contact-page .c-contact-location .c-contact-service-map,
.c-contact-page .c-contact-location .c-contact-service-map img { width: 100%; height: auto; min-height: 0; max-height: none; object-fit: contain; }
.c-contact-page .c-contact-project-cta { display: grid; grid-template-columns: 68px 1.25fr 1fr auto; gap: 28px; align-items: center; border: 1px solid #c4cdd3; padding: 32px; }
.c-contact-page .c-contact-project-cta h2 { font-size: clamp(26px,2.4vw,34px); margin-bottom: 0; }
.c-contact-page .c-contact-project-cta .c-contact-eyebrow { margin-bottom: 10px; }
.c-contact-page .c-contact-project-cta p { margin-bottom: 0; }
.c-contact-page .c-contact-house-icon { color: #b78335; margin: 0; }
.c-contact-page .c-contact-house-icon svg { width: 64px; height: 64px; }
.c-contact-page .c-contact-project-cta .wp-block-buttons { margin: 0; }
@media (max-width: 1023px) {
 .c-contact-page { gap: 80px; padding-top: 24px; }
 .c-contact-page .wp-block-columns { gap: 28px; }
 .c-contact-page .c-contact-hero-details { grid-template-columns: 1fr; }
 .c-contact-page .c-contact-form-panel { padding: 24px; }
 .c-contact-page .c-contact-aside { padding: 62px 0 24px; }
 .c-contact-page .c-contact-project-cta { grid-template-columns: 64px 1fr; }
 .c-contact-page .c-contact-project-cta > :nth-child(n+3) { grid-column: 2; }
 .c-contact-page .c-contact-location { grid-template-columns: minmax(0,2fr) minmax(0,3fr); gap: 28px; }
 .c-contact-page .c-contact-main > .wp-block-column:last-child { padding-top: 0; }
}
@media (max-width: 767px) {
 .c-contact-page { gap: 60px; padding-top: 16px; }
 .c-contact-page .c-contact-hero-details { gap: 24px; }
 .c-contact-page .c-contact-aside { padding-block: 0; }
 .c-contact-page .c-contact-project-cta { grid-template-columns: 1fr; gap: 24px; padding: 24px; }
 .c-contact-page .c-contact-project-cta > :nth-child(n+3) { grid-column: auto; }
 .c-contact-page .c-contact-location { grid-template-columns: minmax(0,1fr); }
}

@media (max-width: 767px) {
 .c-contact-page .c-contact-location .c-contact-service-map,
 .c-contact-page .c-contact-location .c-contact-service-map img { min-height: 0; max-height: none; height: auto; }
 .c-contact-page .c-contact-hero-details { margin-top: 40px; }
}
