/* R66 — structural divider rhythm.
   A line must describe a real boundary or reading axis. It must not collapse
   into a text underline, drift away from the shared content rail, or compete
   with headings as decoration. */

:root {
  --r66-rule-surface: #d9d3cf;
  --r66-rule-surface-soft: #e5e0dc;
  --r66-rule-on-dark: rgba(255, 255, 255, .34);
  --r66-rule-on-dark-soft: rgba(255, 255, 255, .16);
  --r66-rule-weight: 1px;
}

/* Footer orientation: the contact action and each information column now use
   the same full-column rule instead of a short line tied to the label width. */
.r60-surface .r53-footer-top {
  border-bottom-color: var(--r66-rule-on-dark-soft);
}

.r60-surface .r53-footer-top > .r66-footer-contact-rule {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  width: clamp(230px, 24vw, 310px);
  min-height: 48px;
  align-items: center;
  padding: 0 0 13px;
  border: 0;
  border-bottom: var(--r66-rule-weight) solid var(--r66-rule-on-dark);
  color: #fff;
}

.r60-surface .r53-footer-top > .r66-footer-contact-rule::after {
  width: 8px;
  height: 8px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  content: "";
  transform: rotate(45deg);
  transition: transform .2s ease;
}

.r60-surface .r53-footer-top > .r66-footer-contact-rule:is(:hover, :focus-visible)::after {
  transform: translateX(4px) rotate(45deg);
}

.r60-surface .r53-footer nav > .r66-footer-column-heading {
  padding-bottom: 12px;
  border-bottom: var(--r66-rule-weight) solid var(--r66-rule-on-dark);
}

.r60-surface .r53-footer nav > .r66-footer-column-heading + ul {
  margin-top: 0;
  padding-top: 8px;
}

.r60-surface .r53-footer-legal {
  border-top-color: var(--r66-rule-on-dark-soft);
}

/* Contact route: the office title, factual rows and form fields share one
   rail-aware boundary system. These are structural edges, not underlines. */
.r60-contact [data-r53-component="contact.coordinates"] .r53-office-record-copy > .r53-section-heading {
  padding-bottom: clamp(20px, 2.2vw, 28px) !important;
  border-bottom: var(--r66-rule-weight) solid var(--r66-rule-surface) !important;
}

.r60-contact [data-r53-component="contact.coordinates"] .r53-fact-grid {
  border-top-color: var(--r66-rule-surface) !important;
}

.r60-contact [data-r53-component="contact.coordinates"] .r53-fact-grid > div,
.r60-contact [data-r53-component="contact.coordinates"] .r62-office-fact {
  border-color: var(--r66-rule-surface-soft) !important;
}

.r60-surface [data-r53-component="contact.form-workflow"] :where(input, select, textarea),
.r60-surface .r54-inert-form :where(input, select, textarea) {
  border-bottom-color: var(--r66-rule-surface) !important;
}

/* Counsel/profile records use the same hierarchy: one stronger chapter edge,
   then softer row separators. */
.r60-counsel-detail .r65-profile-contact-line,
.r60-george .r65-profile-contact-line,
.r60-counsel-detail .r65-full-biography,
.r60-george .r65-full-biography {
  border-top-color: var(--r66-rule-surface) !important;
}

.r60-george .r54-counsel-fact-strip:has(> div:only-child) {
  grid-template-columns: minmax(0, 1fr) !important;
}

.r60-counsel-detail .r65-profile-stream .r54-counsel-chapter-body li,
.r60-george .r65-profile-stream .r54-counsel-chapter-body li {
  border-bottom-color: var(--r66-rule-surface-soft) !important;
}

@media (max-width: 820px) {
  .r60-surface .r53-footer-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  .r60-surface .r53-footer-top > .r66-footer-contact-rule {
    width: 100%;
  }

  .r60-contact [data-r53-component="contact.coordinates"] .r53-office-record-copy > .r53-section-heading {
    padding-bottom: 20px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .r60-surface .r53-footer-top > .r66-footer-contact-rule::after {
    transition: none;
  }
}
