/* Public-page type scale. All sizes follow the visitor's default font size. */
:root {
  --font-hero: clamp(2.25rem, 2rem + 2vw, 3.5rem);
  --font-section: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem);
  --font-card: 1.25rem;
  --font-intro: 1.125rem;
  --font-body: 1rem;
  --font-label: .875rem;
  --font-caption: .875rem;
  --font-number: clamp(2.5rem, 2rem + 2vw, 3.5rem);
  --leading-heading: 1.5;
  --leading-body: 1.85;
}

body { font-size: var(--font-body); line-height: var(--leading-body); }

#main h1 {
  font-size: var(--font-hero);
  line-height: var(--leading-heading);
  font-weight: 700;
}
#main .section-title {
  font-size: var(--font-section);
  line-height: var(--leading-heading);
  font-weight: 700;
}
#main .eyebrow, #main .gallery-label {
  font-size: var(--font-label);
  line-height: var(--leading-heading);
  font-weight: 600;
  letter-spacing: .04em;
}
#main .lead, #main .section-sub {
  font-size: var(--font-intro);
  line-height: var(--leading-body);
  font-weight: 400;
}
#main .gallery-heading {
  font-size: var(--font-section);
  line-height: var(--leading-heading);
  font-weight: 500;
}
#main :is(.gallery-story, .svc, .step, .success-card) h3 {
  font-size: var(--font-card);
  line-height: var(--leading-heading);
  font-weight: 600;
  overflow-wrap: anywhere;
}
#main :is(.gallery-story, .svc, .step, .success-card) p,
#main .svc li, #main .info-item .val,
#main :is(.field input, .field select, .field textarea) {
  font-size: var(--font-body);
  line-height: var(--leading-body);
  font-weight: 400;
  overflow-wrap: anywhere;
}
.btn, .link-cta, .gallery-link {
  font-size: var(--font-body);
  line-height: var(--leading-heading);
  font-weight: 600;
}
#main .hero-chips li, #main .statistic h3,
#main .field label, #main .info-item .lbl {
  font-size: var(--font-label);
  line-height: var(--leading-body);
}
#main .statistic-value {
  font-size: var(--font-number);
  line-height: var(--leading-heading);
}
#main .fineprint, #main .field .err, #main .counter,
.site-footer :is(p, li), .footer-bottom {
  font-size: var(--font-caption);
  line-height: var(--leading-body);
}
.site-footer h4 { font-size: var(--font-body); line-height: var(--leading-heading); }
[lang="ar"] #main :is(.eyebrow, .gallery-label) { letter-spacing: normal; }

/* Wrapped English actions keep matching touch targets in the stacked layout. */
@media (max-width: 860px) {
  [lang="en"] .hero-centered .hero-cta .btn { min-height: 78px; column-gap: 16px; }
}
