/* Contact page specific styles */
.contact-hero { padding: var(--space-16) 0 var(--space-10); background: var(--gray-50); }
.contact-hero .hero-cta { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-4); }

.contact-grid { display: grid; gap: var(--space-6); padding: var(--space-10) 0; grid-template-columns: 1fr; }
@media (min-width: 900px) { .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.hours-list { list-style: none; padding: 0; margin: 0 0 var(--space-3) 0; display: grid; gap: var(--space-2); }

.social-links { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--space-3); }
.social-links a { font-weight: 600; }

.map-wrapper { position: relative; border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; margin-top: var(--space-4); }
.map-wrapper::before { content: ""; display: block; padding-top: 56.25%; }
.map-wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Form */
.form-row { display: grid; gap: var(--space-5); grid-template-columns: 1fr; }
@media (min-width: 800px) { .form-row { grid-template-columns: 1fr 1fr; } }
.form-field { margin-bottom: var(--space-5); }
.req { color: var(--color-danger); margin-left: 2px; }
.form-actions { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
.form-status { margin-top: var(--space-4); }

/* FAQ */
.faq-list { display: grid; gap: var(--space-3); margin-top: var(--space-4); }
.faq-list details { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); background: var(--color-surface); }
.faq-list summary { cursor: pointer; font-weight: 600; }
.faq-list summary:focus-visible { outline: 3px solid rgb(var(--color-primary-rgb) / 0.6); outline-offset: 2px; }
.faq-list details[open] { box-shadow: var(--shadow-sm); }

/* Chat widget */
.chat-widget { position: fixed; right: 20px; bottom: 20px; width: min(360px, 92vw); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); display: flex; flex-direction: column; max-height: 70vh; }
.chat-header { padding: var(--space-3) var(--space-4); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--color-border); }
.chat-close { background: transparent; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-1) var(--space-2); cursor: pointer; }
.chat-body { padding: var(--space-4); overflow: auto; display: grid; gap: var(--space-3); }
.chat-message { padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); max-width: 85%; }
.chat-message--agent { background: color-mix(in srgb, var(--color-primary) 12%, #fff); }
.chat-message--user { background: var(--gray-100); justify-self: end; }
.chat-input { display: flex; gap: var(--space-2); padding: var(--space-3) var(--space-4); border-top: 1px solid var(--color-border); }
.chat-input input[type="text"] { flex: 1; }

/* Section spacing */
section.container > h2 { margin-top: var(--space-2); }
