/* selfhosted-fonts:start */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/cormorant-garamond-italic-6522a48f.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/cormorant-garamond-normal-ac5feb95.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/cormorant-garamond-normal-ac5feb95.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/jost-normal-80724b1f.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/jost-normal-80724b1f.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* selfhosted-fonts:end */
/* Very Best Real Estate: Heritage Atelier */

:root {
  --ink: #121212;
  --ivory: #F7F3EA;
  --gold: #A8864B;
  --stone: #D9D2C3;
  --oxblood: #5E1F1F;
  --ink-2: #48443D;
  --paper: #FBF9F3;

  --serif: "Cormorant Garamond", "Cormorant", Garamond, "Hoefler Text", "Times New Roman", serif;
  --sans: "Jost", "Futura", "Avenir Next", "Helvetica Neue", Arial, sans-serif;

  --col: 680px;
  --mid: 900px;
  --wide: 1100px;
  --xwide: 1300px;
  --gut: 28px;
}

@media (max-width: 600px) {
  :root { --gut: 20px; }
}

*, *::before, *::after { box-sizing: border-box; }

html {
  background: var(--ivory);
  color: var(--ink);
  -webkit-text-size-adjust: 100%;
  hanging-punctuation: first allow-end last;
  scroll-padding-top: 24px;
}

body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 400;
  font-size: 1.0625rem;
  line-height: 1.74;
  font-kerning: normal;
  font-variant-numeric: lining-nums proportional-nums;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

@media (min-width: 960px) {
  body { font-size: 1.125rem; }
}

img { display: block; max-width: 100%; height: auto; }
picture { display: contents; }

a { color: inherit; }

::selection { background: var(--stone); color: var(--ink); }

:focus-visible {
  outline: 2px solid var(--oxblood);
  outline-offset: 3px;
}

.skip {
  position: absolute;
  left: 12px;
  top: -60px;
  z-index: 10;
  background: var(--ink);
  color: var(--ivory);
  padding: 10px 16px;
  font-size: .9375rem;
  text-decoration: none;
}
.skip:focus { top: 12px; }

.sc {
  font-variant-caps: all-small-caps;
  letter-spacing: .13em;
  font-weight: 500;
}

.num { font-variant-numeric: tabular-nums lining-nums; }

/* ---------- Measures ---------- */

.col   { width: min(var(--col),   100% - 2 * var(--gut)); margin-inline: auto; }
.mid   { width: min(var(--mid),   100% - 2 * var(--gut)); margin-inline: auto; }
.wide  { width: min(var(--wide),  100% - 2 * var(--gut)); margin-inline: auto; }
.xwide { width: min(var(--xwide), 100% - 2 * var(--gut)); margin-inline: auto; }

.pad-xs { padding-block: 28px; }
.pad-s  { padding-block: 44px; }
.pad-m  { padding-block: 72px; }
.pad-l  { padding-block: 108px; }
.pad-top-l { padding-top: 108px; }
@media (max-width: 700px) {
  .pad-s { padding-block: 32px; }
  .pad-m { padding-block: 52px; }
  .pad-l { padding-block: 72px; }
  .pad-top-l { padding-top: 72px; }
}

/* ---------- Masthead ---------- */

.masthead {
  width: min(var(--wide), 100% - 2 * var(--gut));
  margin: 0 auto;
  padding-top: 14px;
  text-align: center;
}

.topline {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding-bottom: 12px;
  font-size: .9375rem;
  color: var(--ink-2);
}
.topline span,
.topline a {
  font-variant-caps: all-small-caps;
  letter-spacing: .12em;
}
.topline a {
  text-decoration: none;
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--ink);
}
.topline a:hover { color: var(--oxblood); }

.dbl {
  height: 5px;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.wordmark {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  padding: 24px 12px 20px;
  color: var(--ink);
  text-decoration: none;
}
.wm-1 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(2.6rem, 1.9rem + 2.4vw, 3.9rem);
  line-height: .9;
  letter-spacing: .004em;
}
.wm-2 {
  margin-top: .62em;
  padding-left: .44em;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 1rem;
  line-height: 1;
  font-variant-caps: all-small-caps;
  letter-spacing: .44em;
}
.wordmark:hover .wm-1 { color: var(--oxblood); }

.menu-btn { display: none; }

.nav ul {
  list-style: none;
  margin: 0;
  padding: 15px 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 36px;
}
.nav a {
  display: inline-block;
  padding: 5px 0 4px;
  font-weight: 500;
  font-size: 1.0625rem;
  font-variant-caps: all-small-caps;
  letter-spacing: .15em;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .2s ease, border-color .2s ease;
}
.nav a:hover { color: var(--oxblood); }
.nav a[aria-current="page"] { border-bottom-color: var(--gold); }

@media (max-width: 1060px) and (min-width: 860px) {
  .nav ul { gap: 4px 24px; }
  .nav a { letter-spacing: .12em; }
}

@media (max-width: 859px) {
  .topline { justify-content: center; }
  .topline span { display: none; }
  .wordmark { padding: 20px 8px 16px; }
  .wm-2 { font-size: .9375rem; }

  .menu-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 14px auto 0;
    padding: 9px 20px 10px;
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--ink);
    border-radius: 0;
    font-family: var(--sans);
    font-weight: 500;
    font-size: 1rem;
    font-variant-caps: all-small-caps;
    letter-spacing: .16em;
    cursor: pointer;
  }
  .menu-btn .bars {
    width: 16px;
    height: 7px;
    border-top: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transition: transform .2s ease;
  }
  .menu-btn[aria-expanded="true"] .bars { transform: scaleY(.15); }

  html.js .nav { display: none; }
  html.js .nav.is-open { display: block; }
  .nav ul {
    flex-direction: column;
    gap: 0;
    padding: 18px 0 4px;
    text-align: left;
  }
  .nav li { border-bottom: 1px solid var(--stone); }
  .nav li:first-child { border-top: 1px solid var(--stone); }
  .nav a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 2px;
    border: 0;
    font-size: 1.125rem;
  }
  .nav a[aria-current="page"] { color: var(--oxblood); }
  .nav a[aria-current="page"]::after {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--gold);
  }
}

/* ---------- Type ---------- */

h1, h2, h3 {
  font-family: var(--serif);
  font-weight: 500;
  color: var(--ink);
  text-wrap: balance;
  font-variant-numeric: lining-nums;
}
h1 {
  margin: 0;
  font-size: clamp(2.55rem, 1.35rem + 3.9vw, 4.6rem);
  line-height: 1.03;
  letter-spacing: -.012em;
}
h2 {
  margin: 0 0 .5em;
  font-size: clamp(1.95rem, 1.5rem + 1.45vw, 2.75rem);
  line-height: 1.08;
  letter-spacing: -.004em;
}
h3 {
  margin: 1.7em 0 .3em;
  font-size: clamp(1.38rem, 1.22rem + .5vw, 1.625rem);
  font-weight: 600;
  line-height: 1.2;
}

p { margin: 0 0 1.12em; }
.prose > :last-child { margin-bottom: 0; }
.prose h2 { margin-top: 1.75em; }
.prose h2:first-child { margin-top: 0; }
.prose h2 + h3 { margin-top: .6em; }

.prose a:not(.textlink):not(.btn),
.inline-link {
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
  transition: color .2s ease, text-decoration-color .2s ease;
}
.prose a:not(.textlink):not(.btn):hover,
.inline-link:hover {
  color: var(--oxblood);
  text-decoration-color: var(--oxblood);
}

.prose ul.plain {
  margin: 0 0 1.3em;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--stone);
}
.prose ul.plain li {
  padding: .7em 0 .7em 1.6em;
  border-bottom: 1px solid var(--stone);
  position: relative;
}
.prose ul.plain li::before {
  content: "";
  position: absolute;
  left: .15em;
  top: 1.45em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
}

.deck {
  max-width: 32em;
  margin: 24px auto 0;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.3rem, 1.12rem + .65vw, 1.62rem);
  line-height: 1.4;
  color: var(--ink-2);
  text-wrap: pretty;
}

.dropcap::first-letter {
  float: left;
  margin: .07em .12em 0 -.03em;
  font-family: var(--serif);
  font-weight: 500;
  font-size: 5.6em;
  line-height: .78;
  color: var(--gold);
}

.lede {
  font-size: 1.1875rem;
  line-height: 1.7;
}
@media (min-width: 960px) { .lede { font-size: 1.25rem; } }

/* ---------- Ornament ---------- */

hr.orn {
  display: block;
  position: relative;
  width: 60px;
  height: 6px;
  margin: 0 auto;
  border: 0;
  overflow: visible;
}
hr.orn::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: 5px;
  height: 5px;
  margin-left: -2.5px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: -20px 0 0 var(--gold), 20px 0 0 var(--gold);
}

/* ---------- Links and buttons ---------- */

.btn {
  display: inline-block;
  padding: 12px 28px 13px;
  border: 1px solid var(--ink);
  color: var(--ink);
  background: transparent;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 1.0625rem;
  line-height: 1.2;
  font-variant-caps: all-small-caps;
  letter-spacing: .15em;
  text-decoration: none;
  cursor: pointer;
  border-radius: 0;
  transition: background-color .2s ease, color .2s ease;
}
.btn:hover { background: var(--ink); color: var(--ivory); }

.textlink {
  font-weight: 500;
  font-size: 1.0625rem;
  font-variant-caps: all-small-caps;
  letter-spacing: .13em;
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-decoration-thickness: 1px;
  text-underline-offset: .42em;
  transition: color .2s ease, text-decoration-color .2s ease;
}
.textlink:hover { color: var(--oxblood); text-decoration-color: var(--oxblood); }

.actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 18px 34px;
  margin: 34px 0 0;
}

/* ---------- Figures ---------- */

.frame { margin: 0; }
.frame.col, .frame.mid, .frame.wide, .frame.xwide, .portrait-lg { margin-inline: auto; }
.frame img {
  width: 100%;
  background: var(--paper);
  border: 1px solid var(--stone);
  padding: clamp(7px, 1vw, 13px);
  outline: 1px solid var(--stone);
  outline-offset: calc(-1 * clamp(4px, .55vw, 7px));
  object-fit: cover;
}
.frame figcaption,
.cap {
  margin-top: 12px;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.0625rem;
  line-height: 1.4;
  color: var(--ink-2);
  text-align: center;
}

.frame--hero img { aspect-ratio: 2 / 1; object-position: 50% 58%; }
@media (max-width: 700px) {
  .frame--hero img { aspect-ratio: 5 / 4.4; object-position: 55% 50%; }
}

.frame--street img { aspect-ratio: 16 / 8.6; object-position: 50% 62%; }
.frame--library img { aspect-ratio: 16 / 9; object-position: 50% 45%; }
.frame--lake img { aspect-ratio: 2258 / 968; object-position: 50% 50%; }
@media (max-width: 700px) {
  .frame--street img { aspect-ratio: 4 / 3; object-position: 60% 50%; }
  .frame--library img { aspect-ratio: 4 / 3.3; object-position: 62% 50%; }
  .frame--lake img { aspect-ratio: 4 / 2.6; object-position: 52% 50%; }
}

.diptych {
  display: grid;
  grid-template-columns: 5fr 6.2fr;
  align-items: end;
  gap: clamp(16px, 2.6vw, 36px);
  margin-inline: auto;
}
.diptych .frame img { aspect-ratio: 4 / 5; }
.diptych .frame:first-child img { object-position: 62% 40%; }
.diptych .frame:last-child img { object-position: 50% 60%; }
@media (max-width: 600px) {
  .diptych { grid-template-columns: 1fr; }
  .diptych .frame:first-child { width: 78%; }
  .diptych .frame:last-child { width: 88%; margin-left: auto; }
}

/* Figure that sits in the margin beside a text column */
.aside-fig { margin: .4em 0 1.6em; }
.aside-fig img { aspect-ratio: 4 / 5; }
@media (min-width: 700px) {
  .aside-fig { float: right; width: 44%; margin: .45em 0 1.2em 32px; }
}
@media (min-width: 1340px) {
  .aside-fig { width: 270px; margin-right: -318px; margin-left: 40px; margin-top: .4em; }
}
.aside-fig--left { }
@media (min-width: 700px) {
  .aside-fig--left { float: left; margin: .45em 32px 1.2em 0; }
}
@media (min-width: 1340px) {
  .aside-fig--left { margin-left: -318px; margin-right: 40px; }
}
.clear { clear: both; }
@media (min-width: 1340px) { .clear { clear: none; } }

/* ---------- Page heads ---------- */

.pagehead {
  padding: 76px 0 60px;
  text-align: center;
}
.pagehead h1 { max-width: 15em; margin-inline: auto; }
@media (max-width: 700px) {
  .pagehead { padding: 48px 0 40px; }
}

/* ---------- Home ---------- */

.hero { padding-top: 40px; }
@media (max-width: 700px) { .hero { padding-top: 26px; } }
.hero-text {
  padding: 50px 0 20px;
  text-align: center;
}
.hero-text h1 { max-width: 16.5em; margin-inline: auto; }
@media (max-width: 700px) { .hero-text { padding-top: 34px; } }

@media (prefers-reduced-motion: no-preference) {
  .hero .frame, .pagehead { animation: settle 1.1s ease-out both; }
  @keyframes settle {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
  }
}

.ledger {
  margin: 30px 0 0;
  border-top: 1px solid var(--ink);
}
.ledger > div {
  display: grid;
  grid-template-columns: 15rem minmax(0, 1fr);
  gap: 8px 40px;
  padding: 22px 0 20px;
  border-bottom: 1px solid var(--stone);
}
.ledger dt {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.22;
}
.ledger dd { margin: 0; }
@media (max-width: 700px) {
  .ledger > div { grid-template-columns: 1fr; }
}

.seq {
  list-style: none;
  counter-reset: s;
  margin: 30px 0 28px;
  padding: 0;
}
.seq > li {
  counter-increment: s;
  position: relative;
  margin: 0 0 28px;
}
.seq > li::before {
  content: counter(s, lower-roman) ".";
  position: absolute;
  left: -4.2rem;
  top: -.05em;
  width: 3.2rem;
  text-align: right;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.625rem;
  line-height: 1.2;
  color: var(--gold);
}
.seq h3 { margin: 0 0 .3em; }
.seq p { margin: 0; }
@media (max-width: 860px) {
  .seq > li { padding-left: 2.9rem; }
  .seq > li::before { left: 0; width: auto; text-align: left; }
}

.letter {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 52px;
  padding: 56px 0 52px;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.portrait img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 20%;
  background: #fff;
}
.letter h2 { font-style: italic; }
.sig {
  margin: 1.4em 0 0;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: 2rem;
  line-height: 1;
}
.sig-title {
  margin: .5em 0 0;
  font-size: .9375rem;
  color: var(--ink-2);
}
@media (max-width: 760px) {
  .letter { grid-template-columns: 1fr; gap: 28px; padding: 40px 0; }
  .letter .portrait { width: min(240px, 70%); }
}

.closing {
  padding: 100px 0 116px;
  text-align: center;
}
.closing p { max-width: 30em; margin-inline: auto; }
.phone-xl {
  display: inline-block;
  margin: 16px 0 30px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--gold);
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(3rem, 1.9rem + 5.2vw, 6rem);
  line-height: 1;
  letter-spacing: .01em;
  font-variant-numeric: lining-nums tabular-nums;
  color: var(--ink);
  text-decoration: none;
  transition: color .2s ease;
}
.phone-xl:hover { color: var(--oxblood); }
@media (max-width: 700px) { .closing { padding: 72px 0 84px; } }

.band { border-top: 1px solid var(--stone); }

/* ---------- Markets ---------- */

.toc {
  margin: 36px auto 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 0;
}
.toc li { display: flex; align-items: center; }
.toc li + li::before {
  content: "";
  width: 4px;
  height: 4px;
  margin: 0 16px;
  border-radius: 50%;
  background: var(--gold);
}
.toc a {
  font-weight: 500;
  font-variant-caps: all-small-caps;
  letter-spacing: .13em;
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.toc a:hover { color: var(--oxblood); border-bottom-color: var(--oxblood); }
@media (max-width: 600px) {
  .toc { flex-direction: column; align-items: center; gap: 2px; }
  .toc li + li::before { display: none; }
}

.region {
  display: grid;
  grid-template-columns: 220px minmax(0, var(--col));
  gap: 0 64px;
  width: min(964px, 100% - 2 * var(--gut));
  margin-inline: auto;
}
.region-side {
  align-self: start;
  position: sticky;
  top: 28px;
  padding-top: 14px;
  border-top: 1px solid var(--ink);
}
.region-side .label {
  margin: 0 0 8px;
  font-size: .9375rem;
  color: var(--ink-2);
}
.region-side ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1.45;
}
.prose hr.orn { margin: 72px auto 64px; }
@media (max-width: 700px) { .prose hr.orn { margin: 52px auto 46px; } }

@media (max-width: 900px) {
  .region { grid-template-columns: 1fr; width: min(var(--col), 100% - 2 * var(--gut)); }
  .region-side { position: static; margin-bottom: 30px; padding-bottom: 14px; border-bottom: 1px solid var(--stone); }
  .region-side ul { display: flex; flex-wrap: wrap; gap: 0 .2em; }
  .region-side li:not(:last-child)::after { content: ","; }
}
.region h2 { margin-top: 0; }

.pull {
  width: min(840px, 100% - 2 * var(--gut));
  margin: 0 auto;
  padding: 44px 0;
  border-top: 1px solid var(--stone);
  border-bottom: 1px solid var(--stone);
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.75rem, 1.2rem + 1.9vw, 2.6rem);
  line-height: 1.24;
  text-align: center;
  text-wrap: balance;
}

/* ---------- FAQ ---------- */

.qindex {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--ink);
  counter-reset: q;
}
.qindex li {
  counter-increment: q;
  display: grid;
  grid-template-columns: 2.2rem 1fr;
  padding: 10px 0;
  border-bottom: 1px solid var(--stone);
}
.qindex li::before {
  content: counter(q);
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.2rem;
  color: var(--gold);
  font-variant-numeric: lining-nums tabular-nums;
}
.prose .qindex a:not(.textlink):not(.btn) { text-decoration: none; }
.prose .qindex a:not(.textlink):not(.btn):hover { color: var(--oxblood); text-decoration: underline; text-decoration-color: var(--oxblood); }

.qa { padding-top: 12px; }
.qa + .qa { border-top: 1px solid var(--stone); padding-top: 40px; margin-top: 40px; }
.qa h2 {
  font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem);
  line-height: 1.15;
}
.qa p:last-child { margin-bottom: 0; }

/* ---------- About ---------- */

.portrait-lg {
  width: min(430px, 100% - 2 * var(--gut));
  margin: 0 auto;
}
.portrait-lg img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 20%;
  background: #fff;
}

.card-lines {
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--ink);
}
.card-lines li {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid var(--stone);
}
.card-lines .k {
  font-size: .9375rem;
  color: var(--ink-2);
  font-variant-caps: all-small-caps;
  letter-spacing: .13em;
  font-weight: 500;
  padding-top: .1em;
}
.card-lines a { font-variant-numeric: tabular-nums lining-nums; }
@media (max-width: 480px) {
  .card-lines li { grid-template-columns: 1fr; gap: 2px; }
}

/* ---------- Contact ---------- */

.contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 80px;
  align-items: start;
}
@media (max-width: 960px) {
  .contact-grid { grid-template-columns: 1fr; gap: 56px; }
}
.contact-side .frame img { aspect-ratio: 4 / 4.6; object-position: 50% 55%; }
@media (max-width: 960px) {
  .contact-side { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: start; }
}
@media (max-width: 640px) {
  .contact-side { grid-template-columns: 1fr; }
}

.form { margin-top: 36px; }
.form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px 32px;
}
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 620px) {
  .form-grid { grid-template-columns: 1fr; }
}
.field label,
.form legend {
  display: block;
  margin-bottom: 4px;
  font-weight: 500;
  font-size: 1rem;
  font-variant-caps: all-small-caps;
  letter-spacing: .13em;
  color: var(--ink);
}
.field .hint {
  font-weight: 400;
  letter-spacing: .04em;
  color: var(--ink-2);
}
.form input[type="text"],
.form input[type="email"],
.form input[type="tel"],
.form select,
.form textarea {
  display: block;
  width: 100%;
  padding: 10px 2px 9px;
  border: 0;
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 1.0625rem;
  line-height: 1.5;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .2s ease, background-color .2s ease;
}
.form select {
  padding-right: 28px;
  background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%);
  background-position: calc(100% - 12px) 55%, calc(100% - 7px) 55%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.form textarea { min-height: 128px; resize: vertical; border: 1px solid var(--stone); border-bottom-color: var(--ink); padding: 10px 12px; background: var(--paper); }
.form input:focus,
.form select:focus,
.form textarea:focus {
  outline: none;
  border-bottom-color: var(--gold);
  background-color: var(--paper);
  box-shadow: 0 1px 0 0 var(--gold);
}
.field.invalid input,
.field.invalid select { border-bottom-color: var(--oxblood); box-shadow: 0 1px 0 0 var(--oxblood); }

.choices {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
}
.choice { position: relative; }
.choice input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.choice span {
  display: inline-block;
  padding: 8px 16px 9px;
  border: 1px solid var(--stone);
  font-size: 1rem;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease;
}
.choice span:hover { border-color: var(--ink); }
.choice input:checked + span { border-color: var(--ink); background: var(--paper); box-shadow: inset 0 -2px 0 var(--gold); }
.choice input:focus-visible + span { outline: 2px solid var(--oxblood); outline-offset: 2px; }

.form-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  margin-top: 34px;
}
.form-note { margin: 0; font-size: .9375rem; color: var(--ink-2); max-width: 26em; }
.form-error { margin: 18px 0 0; color: var(--oxblood); font-weight: 500; min-height: 1px; }
.form-error:empty { display: none; }

.thanks {
  padding: 44px 0 40px;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.thanks h2 { font-style: italic; }
.thanks:focus { outline: none; }

/* ---------- Footer ---------- */

.site-footer {
  padding: 0 0 40px;
  background: var(--ivory);
}
.foot-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1.25fr 1fr;
  gap: 40px;
  padding: 56px 0 48px;
}
.foot-brand .wordmark {
  align-items: flex-start;
  padding: 0;
}
.foot-brand .wm-1 { font-size: 2.2rem; }
.foot-brand .wm-2 { font-size: .8125rem; padding-left: 0; margin-top: .6em; }
.foot-brand p {
  margin: 18px 0 0;
  max-width: 21em;
  font-size: .9375rem;
  line-height: 1.6;
  color: var(--ink-2);
}
.foot-h {
  margin: 0 0 12px;
  font-weight: 500;
  font-size: .9375rem;
  font-variant-caps: all-small-caps;
  letter-spacing: .15em;
  color: var(--ink);
}
.site-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: .9375rem;
  line-height: 1.95;
}
.site-footer ul a {
  text-decoration: none;
  color: var(--ink-2);
  transition: color .2s ease;
}
.site-footer ul a:hover { color: var(--oxblood); }
.site-footer ul a[aria-current="page"] { color: var(--ink); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: .25em; }
.site-footer address { font-style: normal; font-size: .9375rem; line-height: 1.7; color: var(--ink-2); }
.site-footer .num { color: var(--ink); }
.legal {
  padding-top: 22px;
  border-top: 1px solid var(--stone);
  font-size: .8125rem;
  line-height: 1.65;
  color: var(--ink-2);
}
.legal p { margin: 0 0 .5em; max-width: 72em; }
.legal a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: .2em; }
.legal a:hover { color: var(--oxblood); }
.legal .num { color: inherit; }

@media (max-width: 960px) {
  .foot-grid { grid-template-columns: 1fr 1fr; }
  .foot-brand { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .foot-grid { grid-template-columns: 1fr; gap: 30px; padding: 44px 0 36px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

.cap--left { text-align: left; margin-top: 16px; }
.card-lines a, .card-lines span { overflow-wrap: anywhere; }

.contact-side .card-lines li { grid-template-columns: 1fr; gap: 0; padding: 12px 0; }
.contact-side .card-lines a, .contact-side .card-lines span { overflow-wrap: normal; }
@media (max-width: 900px) {
  .toc { flex-direction: column; align-items: center; gap: 2px; }
  .toc li + li::before { display: none; }
}
.prose hr.orn + h2 { margin-top: 0; }
.nw { white-space: nowrap; }

/* ---------- Art direction pass 3 ---------- */

/* Home headline: two sentences, set as a deliberate break on wide screens */
@media (min-width: 1000px) {
  .hero-text h1 { max-width: none; width: min(920px, 100vw - 2 * var(--gut)); margin-left: 50%; transform: translateX(-50%); }
  .hero-text h1 .h1-a { display: block; }
  .hero-text h1 .h1-b { display: block; max-width: 13.5em; margin-inline: auto; }
}

/* Drop cap on a short lede must never push into the next paragraph */
.dropcap { display: flow-root; }

/* Wide photograph that breaks out of the reading column */
.prose .breakout {
  clear: both;
  width: min(var(--wide), 100vw - 2 * var(--gut));
  margin: clamp(56px, 7vw, 96px) 0 clamp(52px, 6vw, 84px) 50%;
  transform: translateX(-50%);
}
.prose .breakout + h2 { margin-top: 0; }

/* Margin figure placed before a heading lines up with the heading, not its top margin */
@media (min-width: 700px) {
  .prose .aside-fig:has(+ h2) { margin-top: calc(1.75 * clamp(1.95rem, 1.5rem + 1.45vw, 2.75rem) + .4em); }
}
@media (max-width: 699px) {
  .prose .aside-fig:has(+ h2) { margin: 2.2em 0 0; }
  .prose .aside-fig:has(+ h2) + h2 { margin-top: 1.1em; }
}

/* Region index on the markets page: one line on desktop, a tidy 2 x 3 grid on phones */
.pagehead .toc { width: min(900px, 100vw - 2 * var(--gut)); margin-left: 50%; transform: translateX(-50%); }
@media (max-width: 900px) {
  .pagehead .toc {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(420px, 100vw - 2 * var(--gut));
    gap: 0;
    border-top: 1px solid var(--stone);
  }
  .pagehead .toc li { justify-content: center; border-bottom: 1px solid var(--stone); }
  .pagehead .toc li:nth-child(odd) { border-right: 1px solid var(--stone); }
  .pagehead .toc a { display: block; padding: 11px 6px 12px; }
}

/* Blog */

/* Journal link is the current section on every article */
.nav a[aria-current="true"] { border-bottom-color: var(--gold); }
.site-footer ul a[aria-current="true"] { color: var(--ink); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: .25em; }
@media (max-width: 859px) {
  .nav a[aria-current="true"] { color: var(--oxblood); }
  .nav a[aria-current="true"]::after {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--gold);
  }
}
/* Seven items at tablet width stay on one line */
@media (max-width: 1060px) and (min-width: 860px) {
  .nav ul { gap: 4px 20px; }
  .nav a { letter-spacing: .1em; }
}

.dot {
  display: inline-block;
  width: 4px;
  height: 4px;
  margin: 0 12px;
  vertical-align: middle;
  border-radius: 50%;
  background: var(--gold);
}

/* Breadcrumb */
.crumbs ol {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
  font-size: .9375rem;
  line-height: 1.5;
  color: var(--ink-2);
}
.crumbs li { display: flex; align-items: center; }
.crumbs li + li::before {
  content: "";
  flex: none;
  width: 4px;
  height: 4px;
  margin: 0 12px;
  border-radius: 50%;
  background: var(--gold);
}
.crumbs a {
  font-weight: 500;
  font-variant-caps: all-small-caps;
  letter-spacing: .13em;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .2s ease, border-color .2s ease;
}
.crumbs a:hover { color: var(--oxblood); border-bottom-color: var(--oxblood); }
.crumbs [aria-current="page"] {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.0625rem;
}
@media (max-width: 600px) {
  /* Long article titles drop off on phones; short two-step trails stay whole. */
  .crumbs li:last-child:nth-child(n+3) { display: none; }
}

/* Article head */
.post-head { padding-bottom: 44px; }
.post-head h1 {
  max-width: 17em;
  font-size: clamp(2.3rem, 1.35rem + 2.9vw, 3.8rem);
  line-height: 1.06;
}
@media (max-width: 700px) { .post-head { padding-bottom: 32px; } }

.answer {
  margin: 0;
  padding-top: 30px;
  border-top: 1px solid var(--ink);
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(1.32rem, 1.14rem + .6vw, 1.6rem);
  line-height: 1.45;
  color: var(--ink);
  text-wrap: pretty;
}
.answer.dropcap::first-letter {
  font-size: 3.5em;
  margin: .06em .1em 0 -.02em;
  line-height: .8;
}

.byline {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 30px;
  padding: 14px 0;
  border-top: 1px solid var(--stone);
  border-bottom: 1px solid var(--stone);
}
.byline-photo {
  flex: none;
  width: 56px;
  height: 56px;
  object-fit: cover;
  object-position: 50% 20%;
  background: #fff;
  border: 1px solid var(--stone);
  padding: 3px;
}
.byline p { margin: 0; line-height: 1.45; }
.byline-name { display: block; font-size: .9375rem; font-weight: 500; }
.byline-name a { text-decoration: none; border-bottom: 1px solid var(--gold); transition: color .2s ease, border-color .2s ease; }
.byline-name a:hover { color: var(--oxblood); border-bottom-color: var(--oxblood); }
.byline-meta {
  display: block;
  margin-top: 2px;
  font-size: .9375rem;
  color: var(--ink-2);
  font-variant-caps: all-small-caps;
  letter-spacing: .1em;
}

.post-photo { margin-top: clamp(52px, 6vw, 80px); }
.post-photo img { aspect-ratio: 16 / 10; object-position: 50% 50%; }
@media (max-width: 700px) {
  .post-photo img { aspect-ratio: 4 / 3.2; }
}

/* Article body */
.post-body { padding-top: clamp(56px, 6vw, 84px); }
.post-body h3 { margin-top: 1.4em; }
.post-body ul,
.post-body ol {
  margin: 0 0 1.3em;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--stone);
}
.post-body li {
  position: relative;
  padding: .7em 0 .7em 1.6em;
  border-bottom: 1px solid var(--stone);
}
.post-body ul > li::before {
  content: "";
  position: absolute;
  left: .15em;
  top: 1.45em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
}
.post-body ol { counter-reset: step; }
.post-body ol > li { counter-increment: step; padding-left: 2.2em; }
.post-body ol > li::before {
  content: counter(step) ".";
  position: absolute;
  left: 0;
  top: .56em;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.3;
  color: var(--gold);
  font-variant-numeric: lining-nums tabular-nums;
}

.table-wrap {
  margin: 1.6em 0 1.8em;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.table-wrap table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  font-size: .9375rem;
  line-height: 1.55;
}
.table-wrap th,
.table-wrap td {
  padding: 12px 14px 12px 0;
  text-align: left;
  vertical-align: top;
}
.table-wrap th {
  font-weight: 500;
  font-variant-caps: all-small-caps;
  letter-spacing: .12em;
  border-bottom: 1px solid var(--ink);
}
.table-wrap tbody tr + tr td { border-top: 1px solid var(--stone); }
.table-wrap td:first-child {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.125rem;
  line-height: 1.35;
}

/* FAQ at the foot of an article */
.post-faq {
  margin-top: 72px;
  padding-top: 44px;
  border-top: 1px solid var(--ink);
}
.post-faq h2 { font-size: clamp(1.75rem, 1.4rem + 1.1vw, 2.3rem); }
.post-qa { padding: 20px 0 18px; border-bottom: 1px solid var(--stone); }
.post-qa h3 { margin: 0 0 .35em; font-size: clamp(1.25rem, 1.15rem + .35vw, 1.45rem); }
.post-qa p { margin: 0; }

/* Call to Austin */
.post-call {
  padding: 88px 0 20px;
  text-align: center;
}
.post-call hr.orn { margin-bottom: 52px; }
.post-call h2 { font-style: italic; }
.post-call p { max-width: 31em; margin-inline: auto; text-align: left; }
.post-call .phone-xl { margin: 26px 0 22px; }
.post-call .post-call-alt { text-align: center; }
@media (max-width: 700px) { .post-call { padding-top: 64px; } .post-call hr.orn { margin-bottom: 40px; } }

/* Related articles */
.related {
  margin-top: 84px;
  padding: 64px 0 104px;
  border-top: 1px solid var(--stone);
}
.related > h2 { text-align: center; margin-bottom: 40px; }
.related-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}
.rel-link { display: block; text-decoration: none; }
.rel .frame img { aspect-ratio: 3 / 2; }
.rel h3 { margin: 18px 0 .35em; transition: color .2s ease; }
.rel-link:hover h3 { color: var(--oxblood); }
.rel p { margin: 0 0 .5em; font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.rel .rel-meta,
.entry-meta,
.lead-meta {
  font-size: .9375rem;
  color: var(--ink-2);
  font-variant-caps: all-small-caps;
  letter-spacing: .1em;
}
.related-all { margin: 44px 0 0; text-align: center; }
@media (max-width: 700px) {
  .related { margin-top: 64px; padding: 52px 0 76px; }
  .related-grid { grid-template-columns: 1fr; gap: 44px; }
}

/* Journal index: the lead article */
.journal-lead .post-photo { margin-top: 0; }
.journal-lead .post-photo a { display: block; }
.lead-text { padding-top: 40px; text-align: center; }
.lead-meta { margin: 0 0 10px; }
.lead-text h2 {
  max-width: 16em;
  margin: 0 auto .5em;
  font-size: clamp(2.1rem, 1.4rem + 2.2vw, 3.2rem);
}
.lead-text h2 a { text-decoration: none; transition: color .2s ease; }
.lead-text h2 a:hover { color: var(--oxblood); }
.lead-answer {
  max-width: 34em;
  margin: 0 auto 1.4em;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.2rem, 1.08rem + .45vw, 1.42rem);
  line-height: 1.45;
  color: var(--ink-2);
  text-wrap: pretty;
}

/* Journal index: the rest, set as a catalogue */
.journal-list > h2 { text-align: center; margin-bottom: 36px; }
.entries {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--ink);
}
.entry {
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  gap: 44px;
  align-items: center;
  padding: 32px 0;
  border-bottom: 1px solid var(--stone);
}
.entry-fig { display: block; }
.entry .frame img { aspect-ratio: 4 / 3; }
.entry h3 { margin: 0 0 .4em; }
.entry h3 a { text-decoration: none; transition: color .2s ease; }
.entry h3 a:hover { color: var(--oxblood); }
.entry-text p { margin: 0 0 .6em; font-size: 1rem; line-height: 1.6; color: var(--ink-2); }
.entry-text .entry-meta { margin: 0; }
@media (max-width: 860px) and (min-width: 761px) {
  .entry { grid-template-columns: 260px minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 760px) {
  .lead-answer { text-align: left; }
  .entry { grid-template-columns: 1fr; gap: 20px; padding: 30px 0 28px; }
}
@media (max-width: 960px) and (min-width: 860px) {
  .nav ul { gap: 4px 16px; }
  .nav a { font-size: 1rem; letter-spacing: .08em; }
}

/* Tables on phones: each row becomes a small labeled entry, nothing hides off to the side */
@media (max-width: 560px) {
  .table-wrap { overflow: visible; }
  .table-wrap table { min-width: 0; }
  .table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .table-wrap table, .table-wrap tbody, .table-wrap tr, .table-wrap td { display: block; width: 100%; }
  .table-wrap tr { padding: 14px 0 12px; }
  .table-wrap tbody tr + tr { border-top: 1px solid var(--stone); }
  .table-wrap tbody tr + tr td { border-top: 0; }
  .table-wrap td { padding: 0 0 6px; }
  .table-wrap td:first-child { padding-bottom: 8px; }
  .table-wrap td + td::before {
    content: attr(data-label);
    display: block;
    font-weight: 500;
    font-variant-caps: all-small-caps;
    letter-spacing: .12em;
    color: var(--ink-2);
  }
  .table-wrap td:nth-child(2):last-child::before { content: none; }
}

/* Updated line */
.updated {
  margin: 18px 0 0;
  font-size: .9375rem;
  color: var(--ink-2);
  font-variant-caps: all-small-caps;
  letter-spacing: .1em;
}
.pagehead .updated { text-align: center; }

/* FAQ at the foot of a main page */
.page-faq { margin-top: 0; margin-bottom: 96px; }
@media (max-width: 700px) { .page-faq { margin-bottom: 68px; } }

/* Journal on the home page */
.home-journal { margin-top: 0; }
.home-journal .related-intro {
  max-width: 30em;
  margin: -18px auto 44px;
  text-align: center;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.15rem, 1.05rem + .4vw, 1.35rem);
  line-height: 1.45;
  color: var(--ink-2);
}
.related-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
@media (max-width: 860px) {
  .related-grid--3 { grid-template-columns: 1fr; gap: 44px; }
}

/* Author box at the end of an article */
.author-box {
  display: flex;
  align-items: flex-start;
  gap: 22px;
  margin-top: 56px;
  padding: 26px 0 22px;
  border-top: 1px solid var(--ink);
}
.author-photo {
  flex: none;
  width: 88px;
  height: 88px;
  object-fit: cover;
  object-position: 50% 20%;
  background: #fff;
  border: 1px solid var(--stone);
  padding: 3px;
}
.author-text p { margin: 0 0 .55em; font-size: 1rem; line-height: 1.6; }
.author-text .author-name {
  margin-bottom: .3em;
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.3rem;
  line-height: 1.3;
}
.author-text .updated { margin: .4em 0 0; }
@media (max-width: 480px) {
  .author-box { flex-direction: column; gap: 16px; }
}
