/* Contact follows the shared type, control and spacing scale. */
.contact-page .page-hero { min-height: 19rem; }
.contact-page .page-hero__content { padding-block: 3rem; }
.contact-page .page-hero__veil { background: linear-gradient(90deg, #102a24db, #102a2499 60%, #102a2433); }
.contact-page .page-hero__lead { max-width: 45ch; font-size: var(--text-base); line-height: 1.65; margin: 1rem 0 0; }
.contact-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; padding-block: 3rem; }
.contact-grid > * { min-width: 0; }
.contact-grid h2 { margin: 0 0 1rem; font-size: var(--section-title-size); line-height: 1.2; }
.contact-direct { padding-block: 1.5rem; }
.contact-direct > p:not(.eyebrow) { max-width: 37ch; line-height: 1.7; }
.contact-cards { margin-top: 1.5rem; gap: .75rem; }
.contact-cards > a { grid-template-columns: 24px minmax(0, 1fr); gap: 1rem; align-items: center; padding: 1rem; background: #edf0e6; border-color: #d9e1d1; transition: background .2s; }
.contact-cards > a:hover { background: #e1e8d8; }
.contact-cards > a > .dashicons { color: var(--forest); font-size: 24px; width: 24px; height: 24px; opacity: 1; }
.contact-cards > a > div { display: grid; gap: .375rem; min-width: 0; }
.contact-cards strong { font-size: var(--text-base); overflow-wrap: anywhere; }
.contact-cards div > span { color: #526259; opacity: 1; font-size: var(--text-xs); }
.contact-hours { margin-top: 1.25rem; font-size: var(--text-sm); }
.contact-hours > span { color: #526259; }
.contact-panel { padding: clamp(1.25rem, 3vw, 2rem); background: #fff; border: 1px solid #d9e1d1; border-radius: var(--radius-card); box-shadow: 0 8px 30px #173c3108; container-type: inline-size; }
.contact-panel__intro { padding-bottom: 1.25rem; margin-bottom: 1.25rem; border-bottom: 1px solid #dfe5d9; }
.contact-panel__intro .eyebrow { margin-bottom: .75rem; }
.contact-panel__intro > p:last-child { margin: 0; max-width: 52ch; color: #526259; font-size: var(--text-sm); line-height: 1.65; }
.contact-form { gap: 1rem; }
.contact-form__row { display: grid; grid-template-columns: minmax(0,1fr); gap: 1rem; }
.contact-form label { min-width: 0; gap: .5rem; }
.contact-form :is(input, select, textarea) { width: 100%; min-width: 0; border-color: #9bab9e; background-color: #fafbf8; }
.contact-form :is(input, select, textarea):focus { border-color: #477960; background-color: #fff; }
.contact-form :is(input, textarea)::placeholder { color: #647366; opacity: 1; }
.contact-form textarea { min-height: 10rem; }
.contact-form :is(.contact-form__required, .contact-form__hint, .contact-form__privacy) { margin: 0; color: #526259; font-size: var(--text-xs); line-height: 1.6; }
.contact-form .contact-form__hint { margin-top: -.5rem; }
.contact-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding-top: .5rem; }
.contact-form__actions .button { flex: 0 0 auto; }
.contact-form__actions small { flex: 1 1 12rem; font-size: var(--text-xs); line-height: 1.6; color: #526259; opacity: 1; }
.contact-form__privacy { padding-top: 1rem; border-top: 1px solid #dfe5d9; }
.contact-form__privacy a { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
.contact-page .support-links { grid-template-columns: repeat(3, minmax(0,1fr)); margin-bottom: 3rem; }
.contact-page .support-links a { padding: 1.25rem; border-right: 1px solid var(--line); border-bottom: 0; gap: .5rem; }
.contact-page .support-links a:last-child { border-right: 0; }
.contact-page .support-links strong { font-size: var(--text-base); }
@container (min-width: 29rem) { .contact-form__row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) {
  .contact-grid { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .contact-panel { grid-row: 1; }
  .contact-direct { padding: 0; }
  .contact-cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .contact-page .page-hero { min-height: 15rem; }
  .contact-page .page-hero__content { padding-block: 2rem; }
  .contact-grid { padding-block: 1.5rem 2rem; gap: 2rem; }
  .contact-form__actions .button { width: 100%; }
  .contact-cards, .contact-page .support-links { grid-template-columns: minmax(0,1fr); }
  .contact-page .support-links a { border-right: 0; border-bottom: 1px solid var(--line); }
  .contact-page .support-links a:last-child { border-bottom: 0; }
}
