/* One type scale for the whole page. Display for titles, Text for reading and UI. */
:root {
  --font-text: 'Gi Sans Text', Arial, sans-serif;
  --font-display: 'Gi Sans Display', Arial, sans-serif;
  --type-label: 12px;
  --type-caption: 13px;
  --type-ui: 14px;
  --type-body: 16px;
  --type-accordion: 18px;
  --type-subheading: clamp(24px, 2vw, 28px);
  --type-section: clamp(30px, 2.8vw, 40px);
  --type-hero: clamp(32px, 3.2vw, 46px);
  --type-price: clamp(30px, 2.4vw, 34px);
  --type-stat: 24px;
  --type-icon: 22px;
  --type-input: 16px;
  --type-price-suffix: .65em;
}
body {
  font-family: var(--font-text);
  font-size: var(--type-body);
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0;
}
button, input, select, textarea { font: inherit; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 400; line-height: 1.2; letter-spacing: -.025em; }
h1 { font-size: var(--type-hero); }
h2 { font-size: var(--type-section); }
h3 { font-size: var(--type-subheading); }
h1 em, h2 em { font-family: var(--font-text); font-weight: 400; }
/* Every accordion uses the same title, weight and line spacing. */
.reasons summary, .location-item summary, .faq-item summary {
  font-family: var(--font-text);
  font-size: var(--type-accordion);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0;
  min-height: 68px;
  padding: 20px 0;
  align-items: center;
}
.reasons summary { gap: 16px; }
.r-num { font-family: var(--font-text); font-size: var(--type-ui); font-weight: 400; line-height: 1.5; flex: 0 0 24px; }
.level-plus, .location-item summary::after { font-family: var(--font-text); font-size: var(--type-icon); font-weight: 400; line-height: 1; flex-shrink: 0; }
.faq-chev { width: 20px; height: 20px; }
.reasons li p { padding-left: 40px; }
.section-lead, .hero-title>p:not(.eyebrow), .glance-intro, .glance-item dd,
.story-detail p, .reasons li p, .residence-features, .amen-lede, .am-close p,
.enquire-grid>div>p:not(.eyebrow), .enquire-form>p:not(.eyebrow),
.faq-item p, .modal>p, .reasons-card>p:not([class]) {
  font-family: var(--font-text);
  font-size: var(--type-body);
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0;
}
.glance-item dt, .am, .location-content li { font-size: var(--type-body); line-height: 1.65; }
.location-content li strong { font-size: inherit; font-weight: 500; }
.eyebrow, .label, .hero-topline, .hero-facts>span, .hero-price>span,
.residence-size span, .residence-price>span, .reasons-card-eyebrow,
.legacy-stats span, .hero-bottom b, .glance-footer>span {
  font-family: var(--font-text);
  font-size: var(--type-label);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .09em;
}
.hero-topline { letter-spacing: .04em; }
.hero-facts>span { letter-spacing: .04em; }
.hero-price strong, .residence-price strong, .reasons-card-price b {
  font-family: var(--font-display);
  font-size: var(--type-price);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -.025em;
}
.hero-price small { font-size: var(--type-price-suffix); font-weight: 400; }
.residence-price p>span, .reasons-card-price { font-size: var(--type-ui); line-height: 1.6; }
.hero-facts strong, .residence-size, .hero-bottom>span:first-child, .am-close b {
  font-family: var(--font-display);
  font-size: var(--type-stat);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -.02em;
}
.am-close b { font-size: var(--type-stat); }
.legacy-stats>div { font-family: var(--font-display); font-size: var(--type-section); line-height: 1.2; font-weight: 400; }
.legacy-stats span { letter-spacing: .06em; }
.btn, .nav-links a, .text-link, .residence-tabs button, .story-detail summary,
.price-comparison summary, .compare-table, .field>span:first-child, .phone-prefix,
.form-error, .lead-known-swap, .sticky-cta .btn {
  font-family: var(--font-text);
  font-size: var(--type-ui);
  line-height: 1.5;
  letter-spacing: 0;
}
.btn { font-weight: 600; }
.nav-links a, .text-link { font-weight: 400; }
.residence-tabs button { font-weight: 400; }
.residence-tabs button[aria-selected=true] { font-weight: 600; }
.btn span[aria-hidden], .hero-bottom a span, .gallery-controls button { font-size: var(--type-icon); line-height: 1; }
.field input { font-size: var(--type-input); line-height: 1.5; }
.hero-title>p.hero-inclusions, .hero-price p, .hero-image figcaption,
.hero-bottom>span:nth-child(2), .hero-bottom a, .image-disclaimer,
.residence-panel figcaption, .floorplan-overlay p, .compare-note,
.gallery-controls, .gallery-grid figcaption, .amenities-image figcaption,
.reasons-card-call, .consent, .footer-about, .footer-disclaimer,
.lead-prefill, .micro-trust, .form-req, .local-preview-note {
  font-family: var(--font-text);
  font-size: var(--type-caption);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0;
}
.floorplan-overlay .eyebrow { font-size: var(--type-label); letter-spacing: .09em; }
.residence-panel figcaption, .amenities-image figcaption { letter-spacing: .04em; }
.chapter-rail a { font-size: var(--type-label); line-height: 1; }
.modal h3 { font-size: var(--type-subheading); }
@media (max-width: 600px) {
  :root { --type-body: 15px; --type-accordion: 17px; --type-section: 30px; --type-hero: 32px; --type-subheading: 24px; --type-price: 30px; }
  .reasons summary, .location-item summary, .faq-item summary { min-height: 62px; padding: 18px 0; }
  .hero-facts strong, .residence-size { font-size: var(--type-stat); }
  .hero-bottom>span:first-child { font-size: var(--type-icon); }
  .hero-topline { letter-spacing: .02em; }
}
@media (max-width: 360px) {
  :root { --type-hero: 30px; --type-section: 28px; --type-stat: 22px; }
  .hero-facts strong { font-size: var(--type-stat); }
}
