/* A compact contractor portrait, using the shared site's palette and type. */
.contractor-intro {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 64px;
  padding-block: 52px 64px;
  align-items: start;
}
.contractor-intro h1 {
  margin: 10px 0 14px;
  font-family: var(--display);
  font-size: clamp(2.4rem, 5vw, 4.25rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.35;
}
.contractor-intro__location { margin: 0; color: var(--ink-soft); font-size: 0.88rem; }
.contractor-intro__copy p { margin: 0 0 14px; color: var(--ink-soft); }
.contractor-intro__copy .button { margin-top: 14px; }
.contractor-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 28px;
}
.contractor-page h2 {
  margin: 8px 0 0;
  font-family: var(--display);
  font-size: clamp(1.7rem, 3vw, 2.65rem);
  font-weight: 600;
  line-height: 1.55;
}
.contractor-section-heading > a,
.contractor-section-heading > p { margin: 0; color: var(--ink-soft); font-size: 0.85rem; }
.contractor-photo-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 22px; }
.contractor-photo-grid figure { margin: 0; }
.contractor-photo-grid figure > a { display: block; }
.contractor-photo-grid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.contractor-photo-grid figure:first-child img { object-position: center; }
.contractor-photo-grid figcaption { display: flex; justify-content: space-between; gap: 12px; padding-block: 14px; border-bottom: 1px solid var(--line); }
.contractor-photo-grid figcaption span { font-weight: 700; }
.contractor-photo-grid figcaption small { color: var(--ink-soft); font-size: 0.75rem; }
.contractor-caption { margin: 16px 0 0; font-size: 0.75rem; color: var(--ink-soft); }
.contractor-details { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 72px; padding-block: 88px; }
.contractor-facts { margin: 30px 0 0; }
.contractor-facts > div { display: grid; grid-template-columns: 96px 1fr; gap: 18px; padding-block: 18px; border-bottom: 1px solid var(--line); font-size: 0.88rem; }
.contractor-facts dt { color: var(--holly); font-weight: 700; }
.contractor-facts dd { margin: 0; }
.contractor-external { font-size: .75rem; }
.contractor-roles { padding: 32px; background: #fff; border-top: 4px solid var(--holly); }
.contractor-roles h3 { font-family: var(--display); margin: 10px 0 20px; font-size: 1.45rem; line-height: 1.6; }
.contractor-roles > div { padding-block: 22px; border-top: 1px solid var(--line); }
.contractor-roles > div span { display: block; font-size: 0.8rem; color: var(--ink-soft); }
.contractor-roles > div strong { display: block; font-size: 1.25rem; margin: 5px 0 8px; color: var(--holly-dark); }
.contractor-roles > div p { font-size: 0.88rem; margin: 0; }
.contractor-roles__note { margin: 0; color: var(--ink-soft); font-size: 0.8rem; }
.contractor-community { background: var(--holly-dark); color: white; padding-block: 68px; }
.contractor-community .section-kicker { color: #efd281; }
.contractor-community .contractor-section-heading > p { color: #d9e6e0; }
.contractor-support-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.contractor-support-grid article { border-top: 1px solid #557970; padding-top: 28px; }
.contractor-support-label { color: #efd281; font-family: var(--utility); font-size: 0.76rem; letter-spacing: 0.1em; margin: 0 0 18px; }
.contractor-support-grid h3 { margin: 0; font-family: var(--display); font-size: 1.8rem; line-height: 1.6; }
.contractor-support-grid h3 span { display: block; font-family: var(--body); font-size: 0.83rem; font-weight: 400; }
.contractor-support-grid article > p:not(.contractor-support-label) { color: #d9e6e0; font-size: 0.9rem; margin: 16px 0; }
.contractor-support-grid article > a { display: inline-block; padding-block: 8px; font-size: 0.84rem; }
.contractor-contact { display: grid; grid-template-columns: 1fr 0.8fr; gap: 72px; align-items: center; padding-block: 78px 42px; }
.contractor-contact p:not(.section-kicker) { margin: 18px 0 0; color: var(--ink-soft); font-size: 0.92rem; }
.contractor-contact__actions { display: flex; flex-direction: column; align-items: start; gap: 18px; }
.contractor-contact__actions > a:not(.button) { font-size: 0.88rem; }
.contractor-contact__actions small { display: block; font-size: 0.75rem; }
.contractor-disclosure { margin-bottom: 68px; font-size: 0.78rem; color: var(--ink-soft); }
.contractor-disclosure details { max-width: 780px; border-top: 1px solid var(--line); padding-top: 16px; }
.contractor-disclosure summary { cursor: pointer; padding-block: 6px; }
.contractor-disclosure p { margin: 10px 0 0; }
@media (max-width: 1000px) {
  .contractor-intro { gap: 32px; }
  .contractor-details { gap: 32px; }
  .contractor-roles { padding: 24px; }
  .contractor-contact { gap: 36px; }
  .contractor-contact .button { white-space: normal; text-align: center; }
}
@media (max-width: 700px) {
  .contractor-intro { grid-template-columns: 1fr; gap: 26px; padding-block: 24px 42px; }
  .contractor-intro h1 { font-size: clamp(2.4rem, 10vw, 3.5rem); }
  .contractor-intro__copy { font-size: 0.94rem; }
  .contractor-intro__copy .button { width: 100%; font-size: 0.85rem; padding-inline: 14px; }
  .contractor-section-heading { display: block; }
  .contractor-section-heading > a,
  .contractor-section-heading > p { display: inline-block; margin-top: 14px; }
  .contractor-photo-grid { grid-template-columns: 1fr 1fr; gap: 22px 14px; }
  .contractor-photo-grid figure:first-child { grid-column: 1 / -1; }
  .contractor-photo-grid figure:first-child img { aspect-ratio: 2 / 1; }
  .contractor-photo-grid figcaption { display: block; padding-block: 10px; }
  .contractor-photo-grid figcaption span { display: block; font-size: 0.9rem; }
  .contractor-photo-grid figcaption small { font-size: .75rem; }
  .contractor-details { grid-template-columns: 1fr; gap: 38px; padding-block: 54px; }
  .contractor-facts > div { grid-template-columns: 78px 1fr; gap: 12px; }
  .contractor-roles { padding: 24px; }
  .contractor-community { padding-block: 46px; }
  .contractor-support-grid { grid-template-columns: 1fr; gap: 34px; }
  .contractor-contact { grid-template-columns: 1fr; gap: 26px; padding-block: 50px 34px; }
  .contractor-contact__actions { align-items: stretch; }
  .contractor-disclosure { margin-bottom: 48px; }
}
