/* One bounded type scale, loaded after Elementor and individual workspace styles.
 * Use rem so browser text enlargement remains available. Controls retain their
 * existing touch-target sizes; compact text does not mean smaller hit areas. */
:root {
 --egp-type-body: .875rem;
 --egp-type-detail: .8125rem;
 --egp-type-caption: .75rem;
 --egp-type-title: clamp(2rem, 1.65rem + 1vw, 2.75rem);
 --egp-type-section: clamp(1.625rem, 1.35rem + .7vw, 2rem);
}
body.egp-theme { font-size: var(--egp-type-body); line-height: 1.65; }
.egp-theme main p:not(.egp-eyebrow), .egp-theme main blockquote,
.egp-theme main figcaption, .egp-theme main dd { font-size: var(--egp-type-body); }
.egp-theme main h1,
.egp-theme .egp-home-hero__copy .egp-home-title .elementor-heading-title,
.egp-theme .egp-sell-hero .egp-sell-title .elementor-heading-title,
.egp-theme .egp-about-hero .egp-about-title .elementor-heading-title,
.egp-theme .egp-contact-hero .egp-contact-title .elementor-heading-title {
 font-size: var(--egp-type-title) !important; line-height: 1.15 !important;
 overflow-wrap: break-word;
}
.egp-theme main h2.elementor-heading-title,
.egp-theme :is(.egp-section-heading,.egp-property-detail__story,.egp-property-detail__identity,
 .egp-property-detail__description,.egp-property-location__copy,.egp-agent-profile__bio,
 .egp-agent-redesign__bio,.egp-agent-redesign__services,.egp-area-editorial,.egp-home-featured,.egp-home-areas,
 .egp-home-agents,.egp-home-insights,.egp-insights-featured,.egp-insights-section-heading,.egp-insights-cta) h2,
.egp-theme .egp-home-title h2.elementor-heading-title,
.egp-theme .egp-sell-title h2.elementor-heading-title,
.egp-theme .egp-contact-title h2.elementor-heading-title,
.egp-theme .egp-about-title h2.elementor-heading-title,
.egp-theme .egp-footer-redesign__signup h2,
.egp-theme .egp-footer-newsletter h2,
.egp-theme .egp-mega-menu h2,
.egp-theme .egp-search-overlay h2 {
 font-size: var(--egp-type-section) !important; line-height: 1.2 !important;
 overflow-wrap: break-word;
}
.egp-theme .egp-home-copy, .egp-theme .egp-home-copy p,
.egp-theme .egp-footer-redesign__signup > p:not(.egp-eyebrow) { font-size: var(--egp-type-body); }
.egp-theme .egp-eyebrow, .egp-theme .egp-home-eyebrow .elementor-heading-title {
 font-size: var(--egp-type-caption) !important; line-height: 1.5 !important;
}
.egp-theme .egp-primary-menu > li > a, .egp-theme .egp-header-cta { font-size: var(--egp-type-detail); }
.egp-theme .egp-home-property-card__body > p { font-size: var(--egp-type-caption); }
.egp-theme :is(.egp-property-card__title,.egp-area-card__title,.egp-agent-card__name) {
 font-size: clamp(1.125rem,1rem + .3vw,1.375rem) !important; line-height: 1.35;
}
.egp-theme .egp-home-search__tabs { display: flex; }
.egp-theme .egp-home-search__tabs > * { flex: 1 1 0; min-width: 0; white-space: nowrap; font-size: var(--egp-type-detail); padding-inline: 12px; }
.egp-theme .egp-global-header__brand { min-width: 0; }
.egp-theme .egp-global-header__brand img { max-width: 100%; object-fit: contain; }

/* Dense operations screens use a separate hierarchy from public marketing. */
.egp-agent-workspace-page .egp-workspace { font-size: var(--egp-type-body); line-height: 1.55; }
.egp-agent-workspace-page .egp-workspace :is(p, label, input, select, textarea, button, td, th, summary),
.egp-agent-workspace-page .egp-workspace :is(.egp-mandates,.egp-inspections,.egp-buyer-briefs) {
 font-size: var(--egp-type-body) !important; line-height: 1.55;
}
.egp-agent-workspace-page .egp-workspace :is(small, .egp-eyebrow, .egp-stage, .egp-mandates__status,
 .egp-inspections__status, .egp-buyer-brief-list__status, .egp-buyer-brief-list__ref) {
 font-size: var(--egp-type-caption) !important; line-height: 1.45;
}
.egp-agent-workspace-page .egp-workspace :is(.egp-workspace__sidebar nav > a, .egp-workspace__sidebar-foot > a,
 .egp-workspace__subnav > a, .egp-workspace__quick > a, .egp-workspace-card a, .egp-workspace-module__action,
 .egp-workspace__kpis a, .egp-btn) { font-size: var(--egp-type-detail) !important; line-height: 1.45; }
.egp-agent-workspace-page .egp-workspace h1 { font-size: clamp(1.25rem, 1rem + .6vw, 1.5rem) !important; line-height: 1.25 !important; }
.egp-agent-workspace-page .egp-workspace h2 { font-size: clamp(1.5rem, 1.2rem + .8vw, 1.875rem) !important; line-height: 1.25 !important; }
.egp-agent-workspace-page .egp-workspace h3 { font-size: 1.125rem !important; line-height: 1.35; }
.egp-agent-workspace-page .egp-workspace h4 { font-size: var(--egp-type-body) !important; line-height: 1.4; }
.egp-agent-workspace-page .egp-workspace__kpis strong { font-size: 1.75rem; }
.egp-agent-workspace-page .egp-workspace__sidebar { width: 240px; flex-basis: 240px; }
@media (min-width: 761px) {
 .egp-agent-workspace-page .egp-workspace { grid-template-columns: 240px minmax(0,1fr); }
}
@media (max-width: 600px) {
 .egp-theme .egp-global-header__bar { gap: 10px; }
 .egp-theme .egp-global-header__brand { max-width: min(44vw, 185px); }
 .egp-theme .egp-header-cta { padding-inline: 10px; }
 .egp-theme .egp-home-hero__search { padding-top: 28px; }
 .egp-theme .egp-home-search__tabs > * { padding-inline: 8px; }
}
/* Safari/iOS zooms focused inputs below 16px. Keep touch inputs at that size. */
@media (hover: none) and (pointer: coarse) {
 .egp-theme input:not([type=checkbox]):not([type=radio]), .egp-theme select, .egp-theme textarea,
 .egp-agent-workspace-page .egp-workspace :is(input,select,textarea) { font-size: 1rem !important; }
}
