/*
 * Header mark. Drawn live rather than served as a bitmap: the source monogram
 * is a square canvas whose artwork fills only 63% x 47%, so any raster use in
 * the nav needs a crop hack and still leaves the gold ridge below 1px.
 */
.rgc-brand-mark {
  align-items: center;
  color: #edf0ec;
  display: inline-flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 6px;
  text-decoration: none;
}

.rgc-ridge {
  color: #b79a6b;
  display: block;
  height: auto;
  width: 46px;
}

.rgc-letters {
  font-family: 'Cinzel', serif;
  font-size: 25px;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1;
  /* Offsets the trailing letter-space so RGC sits optically centred. */
  text-indent: 0.08em;
}

.rgc-nav {
  min-width: 0;
}

.rgc-footer-brand {
  display: block;
  flex: 0 0 auto;
  line-height: 0;
  text-decoration: none;
}

.rgc-footer-brand img {
  display: block;
  height: auto;
  width: 220px;
}

.rgc-profile-photo {
  position: relative;
}

.rgc-profile-lockup {
  background: #edede9;
  bottom: 22px;
  box-shadow: 0 14px 38px rgba(22, 33, 28, 0.16);
  display: block;
  height: auto;
  position: absolute !important;
  right: -28px;
  width: min(300px, 65%) !important;
}

.rgc-report-footer {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rgc-report-footer img {
  display: block;
  height: auto;
  width: 150px;
}

/*
 * The marketing pages are exported with desktop layout values inline. These
 * shared rules provide the responsive layer without changing the desktop
 * composition.
 */
#dc-root {
  display: block;
  max-width: 100%;
}

#dc-root img,
#dc-root video,
#dc-root svg {
  max-width: 100%;
}

#dc-root section,
#dc-root footer,
#dc-root section > div,
#dc-root footer > div {
  min-width: 0;
}

@media (max-width: 1220px) {
  .rgc-nav-header {
    padding-left: 28px !important;
    padding-right: 28px !important;
  }

  .rgc-nav {
    gap: 20px !important;
  }

  .rgc-nav a:not(:last-child) {
    display: none;
  }
}

@media (max-width: 900px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
  }

  .rgc-nav-header {
    padding: 16px 18px !important;
  }

  .rgc-ridge {
    width: 38px;
  }

  .rgc-letters {
    font-size: 21px;
  }

  .rgc-nav a:last-child {
    font-size: 10px !important;
    letter-spacing: 0.14em !important;
    padding: 11px 15px !important;
  }

  /* Hero */
  #dc-root #top {
    height: auto !important;
    min-height: max(660px, 100svh) !important;
    padding: 112px 18px 56px !important;
  }

  #dc-root #top > div[style*="position: relative"] {
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 620px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100%;
  }

  #dc-root #top h1 {
    font-size: clamp(42px, 11vw, 54px) !important;
    line-height: 1.02 !important;
    overflow-wrap: normal;
    text-wrap: balance;
  }

  #dc-root #top h1 + div {
    font-size: 10px !important;
    letter-spacing: 0.2em !important;
    line-height: 1.7 !important;
    margin-top: 17px !important;
    padding-left: 0.2em !important;
  }

  #dc-root #top > div[style*="position: relative"] > div:first-child {
    font-size: 10px !important;
    letter-spacing: 0.26em !important;
    line-height: 1.6 !important;
    margin-bottom: 20px !important;
    padding-left: 0.26em !important;
  }

  #dc-root #top p {
    font-size: 15px !important;
    line-height: 1.7 !important;
    margin: 22px auto 28px !important;
    max-width: 500px !important;
  }

  #dc-root #top > div[style*="position: relative"] > div[style*="display: flex"] {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin-left: auto;
    margin-right: auto;
    max-width: 360px;
    width: 100%;
  }

  #dc-root #top > div[style*="position: relative"] > div[style*="display: flex"] a {
    padding: 15px 20px !important;
    text-align: center;
  }

  /* Section rhythm and type */
  #dc-root section:not(#top) {
    height: auto !important;
    padding: 74px 20px !important;
  }

  #dc-root section h2 {
    font-size: clamp(37px, 10vw, 46px) !important;
    line-height: 1.05 !important;
    text-wrap: balance;
  }

  #dc-root section h3 {
    text-wrap: balance;
  }

  #dc-root section > div > div[style*="text-align: center"][style*="margin-bottom"] {
    margin-bottom: 42px !important;
  }

  #dc-root section > div > div[style*="align-items: flex-end"] {
    align-items: flex-start !important;
    flex-direction: column !important;
    margin-bottom: 38px !important;
  }

  #dc-root section[style*="text-align: center"] p {
    font-size: 28px !important;
    line-height: 1.38 !important;
  }

  /* Every desktop card and content grid becomes a single readable column. */
  #dc-root #focus > div > div:last-child,
  #dc-root #listings > div:last-child,
  #dc-root #businesses > div:last-child,
  #dc-root #process > div > div:last-child,
  #dc-root #financing > div > div:last-child,
  #dc-root #selling > div > div:last-child,
  #dc-root #journal > div:last-child,
  #dc-root #about > div,
  #dc-root #diligence > div {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #dc-root #focus > div > div:last-child,
  #dc-root #listings > div:last-child,
  #dc-root #businesses > div:last-child,
  #dc-root #financing > div > div:last-child,
  #dc-root #journal > div:last-child {
    gap: 20px !important;
  }

  #dc-root #focus > div > div:last-child > div {
    padding: 32px 24px !important;
  }

  #dc-root #focus > div > div:last-child > div h3 {
    font-size: 30px !important;
  }

  #dc-root #listings [style*="height: 300px"] {
    height: 220px !important;
  }

  #dc-root #listings [style*="padding: 30px 30px 34px"],
  #dc-root #businesses [style*="padding: 30px 30px 34px"] {
    padding: 26px 22px 28px !important;
  }

  #dc-root #listings [style*="padding-bottom: 20px"],
  #dc-root #businesses [style*="padding-bottom: 20px"] {
    flex-wrap: wrap !important;
    gap: 8px 12px !important;
  }

  #dc-root #listings [style*="align-items: baseline"],
  #dc-root #businesses [style*="align-items: baseline"] {
    align-items: flex-start !important;
    gap: 14px !important;
  }

  /* About, region, and contact */
  #dc-root #about > div {
    gap: 42px !important;
  }

  #dc-root #about > div > div:last-child > div:last-child {
    gap: 24px 20px !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  #dc-root #region {
    min-height: 520px;
  }

  #dc-root #region h2 {
    font-size: 34px !important;
  }

  #dc-root #contact > div > div[style*="border: 1px"] {
    align-items: stretch;
    flex-direction: column;
  }

  #dc-root #contact > div > div[style*="border: 1px"] > div {
    border-bottom: 1px solid #d5d8d2;
    border-right: 0 !important;
    min-width: 0 !important;
    padding: 28px 18px !important;
    width: 100%;
  }

  #dc-root #contact > div > div[style*="border: 1px"] > div:last-child {
    border-bottom: 0;
  }

  #dc-root #contact a[href^="mailto:"]:not([style*="display: inline-block"]) {
    overflow-wrap: anywhere;
  }

  /* Footer */
  #dc-root footer {
    padding: 50px 20px 34px !important;
  }

  #dc-root footer > div:first-child {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 34px !important;
  }

  #dc-root footer > div:first-child > div {
    display: grid !important;
    gap: 20px 30px !important;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }

  #dc-root footer > div:last-child {
    flex-direction: column !important;
    line-height: 1.7;
    margin-top: 36px !important;
  }

  .rgc-footer-brand img {
    width: 180px;
  }

  /* Business guide page */
  #dc-root #process > div > div:last-child,
  #dc-root #selling > div > div:last-child {
    background: transparent !important;
    border: 0 !important;
    gap: 1px !important;
  }

  #dc-root #diligence > div {
    gap: 46px !important;
  }

  .rgc-profile-lockup {
    bottom: 16px;
    right: 16px;
    width: min(250px, 70%) !important;
  }
}

@media (max-width: 420px) {
  #dc-root #top {
    min-height: max(640px, 100svh) !important;
  }

  #dc-root #top h1 {
    font-size: clamp(39px, 11vw, 46px) !important;
  }

  #dc-root section:not(#top) {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  #dc-root section h2 {
    font-size: 36px !important;
  }

  #dc-root section[style*="text-align: center"] p {
    font-size: 26px !important;
  }

  #dc-root #about > div > div:last-child > div:last-child {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #dc-root #contact > div > a[style*="display: inline-block"] {
    max-width: 100%;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
