/* d29-contact - page-scoped part of the 0929 design. GENERATED by tools/port.py. */
.d29 [hidden] {display: none !important;}
.d29 .d29-hp {position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden;}
.d29 .co-routes p {max-width: 30ch; margin-bottom: 1.25rem;}
.d29 .co-routes > li {display: flex; flex-direction: column;}
.d29 .co-routes .d29-tlink {margin-top: auto; align-self: flex-start;}
.d29 .co-grid {align-items: start; row-gap: var(--stack-l);}
.d29 .co-side {grid-column: 1 / span 5; grid-row: 1;}
.d29 .co-side .h2 {margin: var(--stack-s) 0 var(--stack-m);}
.d29 .co-note {margin-top: var(--stack-m); padding-top: 1.25rem; border-top: 1px solid var(--rule); font-size: var(--fs-small); line-height: 1.9; color: var(--muted);}
.d29 .co-note a {color: var(--ink); text-underline-offset: 3px;}
.d29 .co-card {grid-column: 7 / span 6; grid-row: 1 / span 2;}
.d29 .co-media {grid-column: 1 / span 5; grid-row: 2; margin: 0; align-self: end;}
.d29 .co-media .photo {aspect-ratio: 3 / 2; object-position: 45% 50%;}
.d29 .d29-fgrid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem var(--col-gap);}
.d29 .d29-fgrid .d29-full {grid-column: 1 / -1;}
.d29 .co-form .d29-req {color: var(--accent); margin-left: .15rem;}
.d29 .d29-of-msg {display: block; margin-top: .4rem; font-size: .875rem; font-weight: 600; color: #A12622;}
.d29 .d29-of-msg[hidden] {display: none;}
.d29 .d29-field.is-bad input, .d29 .d29-field.is-bad select, .d29 .d29-field.is-bad textarea {border-color: #A12622 !important;}
.d29 .d29-form-actions {display: flex; flex-wrap: wrap; gap: .75rem; margin-top: var(--stack-m);}
.d29 .d29-of-sum {margin-top: 1rem; font-weight: 600; color: var(--ink);}
.d29 .d29-of-sum[hidden] {display: none;}
.d29 .co-form .d29-fine {margin-top: 1.25rem; font-size: .875rem; color: var(--muted);}
.d29 .co-form .d29-fine a {color: var(--ink); text-underline-offset: 3px;}
@media (max-width: 960px){
.d29 .co-side, .d29 .co-card, .d29 .co-media {grid-column: 1 / -1; grid-row: auto;}
}
@media (max-width: 640px){
.d29 .d29-fgrid {grid-template-columns: 1fr;}
.d29 .d29-form-actions .d29-btn {width: 100%; justify-content: center;}
}
