/* ==========================================================================
   page-contact.css — layout for contact.html only.
   ========================================================================== */

.page-hero__inner { max-width: 760px; text-align: center; margin-inline: auto; }

.contact-layout__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--space-40);
  align-items: start;
}

.contact-layout__main { display: grid; gap: var(--space-48); }

.contact-layout__heading {
  max-width: 18ch;
  margin-inline: auto;
  font-family: var(--font-display);
  font-size: var(--fs-page-title);
  font-weight: var(--fw-regular);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-display);
  color: var(--color-ink);
  text-align: center;
}

/* ---- New customers CTA (shared shape with About) -------------------------- */

/* Photo band on top, copy below — as on the original. */
.new-customers__panel {
  background-color: var(--color-ledger);
  border: var(--border-hairline);
  border-block-start: var(--rule-head);
  text-align: center;
  overflow: hidden;
}

.new-customers__photo {
  width: 100%;
  height: 220px;
  object-fit: cover;
  object-position: 50% 22%;
}

.new-customers__copy { padding: var(--space-40) var(--space-30) var(--space-48); }

.new-customers__title {
  margin-block: var(--space-20) var(--space-16);
  font-family: var(--font-display);
  font-size: var(--fs-subtitle);
  font-weight: var(--fw-regular);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-display);
  color: var(--color-ink);
}

.new-customers__note {
  max-width: 46ch;
  margin-inline: auto;
  margin-block-end: var(--space-30);
  font-size: var(--fs-small);
  color: var(--color-ink);
}

/* ---- Sidebar cards -------------------------------------------------------- */

.contact-sidebar { display: grid; gap: var(--space-30); }

.side-card { padding: var(--space-32); }

.side-card__title {
  font-family: var(--font-display);
  font-size: var(--fs-subtitle);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-display);
  margin-block-end: var(--space-16);
}

.side-card__title--split { color: var(--color-gold); }
.side-card__title--split span { color: var(--color-on-spruce); }

.side-card__body {
  font-size: var(--fs-small);
  line-height: var(--lh-body);
}

/* Dark "About Us" card */
.side-card--dark {
  background-color: var(--color-spruce);
  color: var(--color-on-spruce);
}

.side-card--dark .side-card__title { color: var(--color-on-spruce); }
.side-card--dark .side-card__body { color: var(--color-on-spruce-muted); }

.side-card__social { margin-block-start: var(--space-24); }

.social-list__link--round {
  width: var(--space-32);
  height: var(--space-32);
  border-radius: var(--radius-round);
  background-color: transparent;
  border: var(--border-width) solid var(--color-rule-invert);
  color: var(--color-on-spruce-muted);
}

.social-list__link--round:hover,
.social-list__link--round:focus-visible {
  background-color: var(--color-gold);
  border-color: var(--color-gold);
  color: var(--color-spruce-deep);
}

/* Light "All Services" card */
.side-card--light {
  background-color: var(--color-surface-panel);
  border: var(--border-hairline);
  border-block-start: var(--rule-head);
  color: var(--color-ink);
}

.side-card--light .side-card__title {
  color: var(--color-spruce);
  padding-block-end: var(--space-16);
  border-block-end: var(--border-hairline);
}

.side-card__list {
  display: grid;
  gap: var(--space-16);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--fs-small);
}

.side-card__list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-12);
  align-items: center;
}

.side-card__list li {
  padding-block: var(--space-12);
  border-block-end: var(--border-hairline);
}

.side-card__list li::before {
  content: "";
  width: var(--space-10);
  height: var(--border-width);
  background-color: var(--color-gold-dark);
}

/* Photo "Meet Our Team" card */
.side-card--photo {
  position: relative;
  background-color: var(--color-spruce-deep);
  background-image: url("../img/contact-office.webp");
  background-position: 50% 50%;
  background-size: cover;
  color: var(--color-white);
  overflow: hidden;
}

.side-card--photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(var(--color-spruce-rgb), 0.82);
}

.side-card--photo > * { position: relative; }

.side-card--photo .side-card__body {
  padding-block-start: var(--space-16);
  border-block-start: var(--border-width) solid var(--color-primary);
  margin-block-end: var(--space-24);
}

.side-card__button { width: 100%; }

/* ==========================================================================
   Responsive — values mirror --bp-* in tokens.css
   ========================================================================== */

@media (max-width: 1024px) {
  .contact-layout__inner { grid-template-columns: minmax(0, 1fr) 280px; }
}

@media (max-width: 767px) {

  .contact-layout__inner {
    grid-template-columns: 1fr;
    gap: var(--space-30);
  }

  .contact-layout__main { gap: var(--space-30); }

  .contact-layout__heading { max-width: none; }

  .new-customers__photo { height: 170px; }
  .new-customers__copy { padding: var(--space-30) var(--space-20) var(--space-40); }
}
