/* /contact */
.contact-section { background: #fff; padding-block: 0 3rem; }
@media (min-width: 768px) { .contact-section { padding-block: 0 6rem; } }
.contact-grid { display: grid; gap: 1.5rem; }
@media (min-width: 1024px) { .contact-grid { grid-template-columns: 7fr 5fr; gap: 2.5rem; align-items: stretch; } }

.contact-form-card { padding: 1.5rem; border-radius: 1.5rem; }
@media (min-width: 768px) { .contact-form-card { padding: 2rem; } }
#contact-form { display: grid; gap: 1.25rem; }
.contact-row { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .contact-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
#contact-form .input, #contact-form .select { height: 2.5rem; }
#contact-form .select { height: 2.625rem; }
.contact-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.contact-success { display: flex; gap: .875rem; align-items: flex-start; }
.contact-success[hidden] { display: none; }
.contact-success strong { display: block; font-size: 1.0625rem; }
.contact-success p { margin-top: .25rem; }

.contact-info { background: var(--primary); color: #fff; border-radius: 1.5rem; padding: 2rem; }
@media (min-width: 768px) { .contact-info { padding: 2.25rem 2rem; } }
.contact-info h2 { font-size: 1.25rem; font-weight: 900; }
.contact-info-lead { margin-top: 1rem; font-size: .875rem; line-height: 1.9rem; color: rgb(255 255 255 / .8); }
.contact-info-list { margin-top: 2rem; display: grid; gap: 1.75rem; }
.contact-info-list li { display: flex; gap: 1rem; align-items: center; }
.contact-info-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: .75rem; background: rgb(255 255 255 / .1); color: var(--gold); flex-shrink: 0; }
.contact-info-label { display: block; font-size: .75rem; color: rgb(255 255 255 / .6); margin-bottom: .125rem; }
.contact-info-list strong { font-size: 1rem; font-weight: 800; }
.contact-info-list a:hover strong { color: var(--gold); }
.contact-hours { margin-top: 2.5rem; padding: 1.125rem 1.25rem; border: 1px solid rgb(255 255 255 / .15); border-radius: 1rem; background: rgb(255 255 255 / .06); font-size: .875rem; color: rgb(255 255 255 / .85); }
