/* Serif display type returns from the original site; controls retain Public Sans. */
@font-face {
  font-family: Cormorant;
  src: url('/assets/cormorant-garamond-medium.ttf') format('truetype');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
:root { --editorial: Cormorant, Georgia, serif; }
h1, h2 { font-family: var(--editorial); font-weight: 500; letter-spacing: -.025em; line-height: 1.08; }
h1, .page-heading h1 { font-size: clamp(48px, 5vw, 68px); }
h2 { font-size: clamp(38px, 3.8vw, 50px); }
.home-hero { gap: 44px; padding-block: 36px 46px; }
.hero-copy h1 { font-size: clamp(46px, 4.4vw, 64px); max-width: 16ch; margin-bottom: 26px; }
.hero-description { font-size: 23px; line-height: 1.55; }
.hero-copy .hero-address { line-height: 1.6; color: var(--ink); }
.hero-address span { color: var(--muted); font-size: 18px; }
.home-intro { gap: 12%; padding-block: 58px 66px; }
.home-intro h2 { max-width: 20ch; margin-bottom: 22px; }
.intro-lead { font-size: 24px; line-height: 1.5; }
.overview-details dl { margin-top: 2px; margin-bottom: 24px; }
.overview-details dl > div { align-items: baseline; padding-block: 12px; }
.overview-details dt { font-size: 18px; }
.overview-details dd { font-family: var(--editorial); font-size: 34px; font-weight: 500; line-height: 1.2; }
.overview-details > p { font-size: 18px; }
.home-materials { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 7%; align-items: start; padding-block: 32px 92px; }
.materials-copy h2 { max-width: 16ch; }
.materials-copy > p { max-width: 43ch; }
.materials-copy figure { margin-top: 30px; }
.materials-copy img { width: 100%; }
.materials-schedule h3 { font-family: var(--display); font-size: 24px; line-height: 1.3; margin: 4px 0 20px; font-weight: 400; letter-spacing: -.015em; }
.finish-list { margin: 0; }
.finish-list > div { padding: 14px 0 16px; border-bottom: 1px solid var(--rule); }
.finish-list > div:first-child { padding-top: 0; }
.finish-list dt { display: flex; align-items: center; gap: 16px; line-height: 1.4; font-size: 20px; }
.finish-list dd { padding-left: 46px; margin-top: 5px; font-size: 18px; color: var(--muted); line-height: 1.5; }
.material-swatch { width: 30px; height: 30px; flex: none; border: 1px solid rgb(48 46 39 / 18%); }
.swatch-brick { background: #9a5a3c; }
.swatch-clay { background: #d9c7ac; }
.swatch-steel { background: #2b2725; }
.swatch-rawhide { background: #8a4a2b; }
.swatch-bronze { background: #6b4f33; }
.swatch-deck { background: #35302e; }
.landscape-note { margin-top: 24px; max-width: 48ch; }
.home-location { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 40px 6%; align-items: center; padding-block: 24px 76px; }
.home-location h2 { max-width: 17ch; }
.home-location p { max-width: 43ch; }
.home-location .location-address { font-family: var(--display); font-size: 23px; line-height: 1.5; }
.home-location .text-link { font-size: 18px; gap: 14px; }
.home-site-plan { margin-top: 22px; font-size: 18px; }
.home-site-plan summary { min-height: 48px; padding-block: 10px; cursor: pointer; }
.home-site-plan .image-open { margin-top: 16px; }
.town-notes { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px; margin-top: 14px; }
.town-notes article { min-width: 0; }
.town-notes h3 { font-family: var(--display); font-size: 21px; letter-spacing: -.015em; margin: 0 0 12px; }
.town-notes .town-distance { font-family: var(--editorial); font-size: 31px; font-weight: 500; line-height: 1.15; color: var(--ink); margin-bottom: 15px; }
.town-notes p:not(.town-distance) { font-size: 18px; line-height: 1.65; color: var(--muted); margin-bottom: 12px; }
.town-notes a { display: inline-flex; align-items: center; min-height: 44px; font-size: 18px; }
.building-info h2 { font-size: 46px; }
.building-info .text-link { font-size: 18px; }
.building-drawings { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; padding-bottom: 64px; }
.building-drawings img { width: 100%; }
.amenity-list dt { font-family: var(--editorial); font-weight: 500; font-size: 30px; line-height: 1.15; }
.plan-summary h2 { font-size: 42px; }
.inquiry-layout h1 { font-family: var(--editorial); font-size: clamp(48px, 4.5vw, 64px); }
.agent h2 { font-family: var(--display); font-size: 25px; }
@media (max-width: 1100px) {
  .hero-copy h1 { font-size: 49px; }
  .home-hero { gap: 30px; }
  .home-intro { gap: 7%; }
  .overview-details dl > div { flex-direction: column; gap: 5px; }
  .town-notes { gap: 28px; }
}
@media (max-width: 800px) {
  h1, .page-heading h1 { font-size: 48px; }
  h2, .building-info h2 { font-size: 42px; }
  .home-hero { gap: 28px; padding-block: 16px 28px; }
  .hero-copy h1 { font-size: 49px; max-width: 19ch; }
  .hero-description { font-size: 22px; }
  .home-intro { padding-block: 38px 50px; }
  .home-materials { grid-template-columns: 1fr; gap: 34px; padding-block: 18px 58px; }
  .materials-copy h2 { max-width: 24ch; }
  .materials-copy > p { max-width: 60ch; }
  .materials-copy figure { max-width: 680px; }
  .home-location { grid-template-columns: 1fr; gap: 30px; padding-block: 14px 48px; }
  .home-location h2 { max-width: 23ch; }
  .home-location-map { max-width: 720px; }
  .town-notes { grid-template-columns: 1fr; gap: 28px; margin-top: 8px; }
  .town-notes p { max-width: 60ch; }
  .town-notes h3 { margin-bottom: 8px; }
  .town-notes .town-distance { font-size: 30px; margin-bottom: 10px; }
  .building-drawings { grid-template-columns: 1fr; gap: 30px; padding-bottom: 46px; }
}
@media (max-width: 560px) {
  h1, .page-heading h1 { font-size: 46px; }
  h2, .home-intro h2, .building-info h2 { font-size: 40px; }
  .hero-copy h1 { font-size: 46px; max-width: 16ch; }
  .hero-address span { font-size: 18px; }
  .intro-lead { font-size: 22px; }
  .overview-details dl > div { flex-direction: row; align-items: center; gap: 16px; }
  .overview-details dd { font-size: 31px; white-space: nowrap; }
  .overview-details dt { max-width: 13ch; }
  .finish-list dd { padding-left: 46px; }
  .materials-schedule h3 { font-size: 23px; }
  .inquiry-layout h1 { font-size: 48px; }
}

/* Compact reading rhythm and touch targets on phones. */
@media (max-width: 560px) {
  h1, .page-heading h1 { font-size: clamp(40px, 11.5vw, 46px); }
  .page-heading { padding-block: 28px 24px; }
  .page-heading h1 { margin-bottom: 20px; }
  figcaption, .landing-panorama figcaption { font-size: 16px; line-height: 1.45; padding-top: 8px; }
  .home-intro { gap: 28px; padding-bottom: 38px; }
  .home-intro > div:first-child > .text-link { margin-bottom: 4px; }
  .location-page-link { margin-top: 8px; }
  .home-materials { gap: 28px; padding-bottom: 40px; }
  .materials-copy figure { margin-top: 22px; }
  .finish-list > div { padding-block: 12px; }
  .finish-list dt { gap: 12px; font-size: 19px; }
  .finish-list dd { padding-left: 42px; font-size: 17px; }
  .building-info { gap: 26px; padding-block: 30px 36px; }
  .building-drawings { gap: 24px; padding-bottom: 36px; }
  .amenity-list { margin-block: 24px; }
  .closing-link { padding-block: 22px 30px; }
  .closing-link .text-link { gap: 14px; }
  .plan-controls { margin-bottom: 22px; padding-top: 16px; }
  .plan-controls select { min-width: 0; }
  .plan-summary { margin-bottom: 24px; }
  .plan-summary h2 { font-size: 36px; }
  .plan-figure figcaption { font-size: 15px; gap: 4px; }
  .plan-workspace > .note { font-size: 16px; margin-block: 12px 0; }
  .footer-top { gap: 20px; margin-bottom: 26px; }
  .footer-top > div:nth-child(2) { padding-top: 0; }
  .footer-name { margin-bottom: 8px; }
  .footer-top > .text-link { width: fit-content; }
  .dialog-head { gap: 12px; }
  .dialog-head p { font-size: 16px; }
  .dialog-actions { gap: 8px; }
}
