/* Self-hosted fonts and type hierarchy for the public site. */
@font-face {
  font-family: 'DM Sans'; font-style: normal; font-weight: 400 600;
  font-display: swap; src: url('/fonts/dm-sans-latin.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces'; font-style: normal; font-weight: 400 500;
  font-display: swap; src: url('/fonts/fraunces-latin.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces'; font-style: italic; font-weight: 400 500;
  font-display: swap; src: url('/fonts/fraunces-italic-latin.woff2') format('woff2');
}
body.warm {
  --heading: Georgia, 'Times New Roman', serif;
  --font-heading: var(--heading);
  --font-body: 'DM Sans', 'Segoe UI', Arial, sans-serif;
  font-family: var(--font-body);
  font-size: 1rem; line-height: 1.65; font-weight: 400;
  font-optical-sizing: auto;
  font-size-adjust: from-font;
}
.warm :is(h1,h2,h3,h4) {
  font-family: var(--heading); font-weight: 400;
  font-size-adjust: none;
}
body.warm h1 {
  font-size: clamp(2.5rem, 1.6rem + 3.35vw, 4.5rem);
  line-height: 1.04; letter-spacing: -.04em; font-weight: 500;
}
body.warm h2 {
  font-size: clamp(2.125rem, 1.4rem + 2.25vw, 3.5rem);
  line-height: 1.08; letter-spacing: -.035em; font-weight: 500;
}
body.warm h3 { font-size: 1.375rem; line-height: 1.3; }
body.warm h4 { font-size: 1.125rem; line-height: 1.4; }
.warm :is(strong,b,.eyebrow,.button,summary) { font-weight: 600; }
.warm .eyebrow { font-size: .75rem; letter-spacing: .11em; }
.warm .hero-intro { font-size: 1.0625rem; line-height: 1.7; }
.warm :is(.photo-card strong,.experience-stat-label,.credential-seal span) { font-family: var(--font-body); }
.warm .credential-seal { font-family: var(--heading); }
.warm #services .service-heading h4 { font-size: clamp(1.375rem, 1.1rem + .56vw, 1.55rem); line-height: 1.15; font-weight: 500; }
.warm #services .service-card :is(.service-description,.service-best-for,.service-limits) { font-size: .9375rem; line-height: 1.6; }
.warm #services .service-included-heading { font-family: var(--font-body); font-size: .875rem; font-weight: 600; }
.warm #services .service-price strong { font-weight: 400; font-size: 2rem; }
.warm .service-category > h3,
.warm .service-group-title h3 { font-size: clamp(1.625rem, 1.2rem + 1vw, 2rem); line-height: 1.15; font-weight: 500; }
.warm .meeting-bundle-section .service-group-title h3 { font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem); line-height: 1.08; font-weight: 500; }
.warm #services .meeting-bundle-section .service-card :is(.service-description,.service-best-for,.service-limits,.bundle-value-note) { font-size: 1.0625rem; line-height: 1.65; }
.warm #services .meeting-bundle-section .service-included-heading { font-size: 1rem; line-height: 1.5; }
.warm .advocate-bio > h3 { font-size: 1.5rem; line-height: 1.3; }
.warm :is(.advocate-areas-heading,.credential-details h3) { font-family: var(--font-body); font-size: 1rem; font-weight: 600; }
.warm #contact .consultation-panel h2 { font-size: clamp(2.5rem, 1.5rem + 3.5vw, 4rem); line-height: 1.05; }
.warm .process-grid h3 { font-size: clamp(1.375rem, 1.1rem + .5vw, 1.5rem); line-height: 1.25; font-weight: 500; }
.warm .faq-list summary { font-family: var(--heading); font-size: clamp(1rem, .95rem + .2vw, 1.125rem); line-height: 1.45; font-weight: 500; }
.warm .experience-stat { letter-spacing: -.055em; }
