/* Contact page specific styles (lean, reusing base.css components) */

.h3 { font-size: clamp(1.25rem, 1vw + 0.75rem, 1.5rem); }

/* Bulleted lists where the base reset removed default styles */
.bulleted { padding-left: 1.125rem; }
.bulleted li { list-style: disc; margin: 0.4rem 0; }

/* Definition list with keylines for hours */
.keyline-list { display: grid; gap: 8px; }
.keyline-list > div { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--gray-200); }
.keyline-list dt { color: var(--gray-700); }
.keyline-list dd { margin: 0; font-weight: var(--weight-medium); }

/* FAQ */
.faq details { border: 1px solid var(--gray-200); border-radius: var(--radius-md); padding: 14px 16px; background: var(--color-surface); transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.faq details + details { margin-top: 12px; }
.faq details[open] { box-shadow: var(--shadow-sm); border-color: var(--gray-300); }
.faq summary { cursor: pointer; font-weight: var(--weight-semibold); outline: none; }
.faq summary:focus-visible { box-shadow: var(--focus-ring); border-radius: var(--radius-sm); }
.faq .answer { margin-top: 10px; color: var(--gray-700); }

/* Jobs list */
.job-list { display: grid; gap: 12px; }
.job-list li { padding: 8px 0; border-bottom: 1px solid var(--gray-200); }
.job-list li:last-child { border-bottom: 0; }

/* Minor helpers */
.small { font-size: var(--text-sm); }

/* Responsive refinements */
@media (max-width: 767px) {
  .keyline-list > div { grid-template-columns: 1fr; }
}
