/* ASAP 2D typography system
   Shared by the reference page and the production merge page. */

:root {
  --nav-secondary-text-size: 14px;
  --type-display: clamp(48px, 4.375vw, 84px);
  --type-section: clamp(32px, 2.916vw, 56px);
  --type-subsection: clamp(22px, 1.75vw, 28px);
  --type-card: clamp(20px, 1.5vw, 24px);
  --type-lead: clamp(18px, 1.25vw, 22px);
  --type-body: clamp(16px, 1.188vw, 19px);
  --type-small: clamp(14px, 0.95vw, 16px);
  --type-label: clamp(14px, 0.875vw, 15px);
  --type-stat: clamp(40px, 3vw, 48px);

  --line-display: 1.3;
  --line-section: 1.28;
  --line-subsection: 1.3;
  --line-card: 1.35;
  --line-lead: 1.75;
  --line-body: 1.75;
  --line-small: 1.65;
  --line-label: 1.4;
}

/* Display statements */
.hero-bottom h1,
.merge-3d-hero__title,
.asap-scaling-heading {
  font-family: var(--asap-font-heading) !important;
  font-size: var(--type-display) !important;
  line-height: var(--line-display) !important;
}

/* Primary section headings */
.main-wrap .section h2,
#bento-section h2,
#specialisms h2,
#entities .ents__h,
#entities .ents-steps__h,
.section-impact h2,
.section-milestones h2,
#contact h2,
#actueel h2 {
  font-family: var(--asap-font-heading) !important;
  font-size: var(--type-section) !important;
  line-height: var(--line-section) !important;
}

/* Subsection headings */
#specialisms h3,
.modal .modal-title,
.modal .modal-subhead {
  font-family: var(--asap-font-heading) !important;
  font-size: var(--type-subsection) !important;
  line-height: var(--line-subsection) !important;
}

/* Card and item titles */
.home-usp h3,
.home-usp .pillar-title,
.team-card h3,
#actueel h4,
.modal h4 {
  font-family: var(--asap-font-heading) !important;
  font-size: var(--type-card) !important;
  line-height: var(--line-card) !important;
}

/* Lead copy */
#bento-section .styled-content p,
#entities .ents__lead,
.section-impact .styled-content p,
#contact .styled-content p {
  font-family: var(--asap-font-body) !important;
  font-size: var(--type-lead) !important;
  font-weight: 400 !important;
  line-height: var(--line-lead) !important;
}

/* Standard body copy and service rows */
#specialisms .row-title p,
#specialisms .row-title p.big,
#specialisms .specialisms-list li span,
#specialisms .specialisms-list ul li a span,
#entities .ents-steps__p,
.asap-scaling-copy,
.modal p {
  font-family: var(--asap-font-body) !important;
  font-size: var(--type-body) !important;
  font-weight: 400 !important;
  line-height: var(--line-body) !important;
}

/* Compact supporting copy */
.home-usp .content p,
.team-card p,
.section-milestones .stats-grid p,
#actueel .single-actueel-item p,
#actueel .single-actueel-item span {
  font-family: var(--asap-font-body) !important;
  font-size: var(--type-small) !important;
  line-height: var(--line-small) !important;
}

/* Labels, tags and eyebrows */
.ents__lbl,
#entities .ents-steps__eyebrow,
.asap-scaling-eyebrow,
.asap-card__tag,
.single-tag span,
.modal [class*="label"] {
  font-family: var(--asap-font-body) !important;
  font-size: var(--type-label) !important;
  line-height: var(--line-label) !important;
}

/* Numeric display */
.section-milestones .stats-grid h3,
.section-milestones .stat-number {
  font-family: var(--asap-font-heading) !important;
  font-size: var(--type-stat) !important;
  line-height: 1.2 !important;
}

/* Milestones: one repeatable stat module with equal column geometry. */
.section-milestones .row-title {
  margin-bottom: clamp(2.75rem, 5vw, 4.5rem) !important;
}

.section-milestones .milestones-grid {
  width: 100%;
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: clamp(1.5rem, 3vw, 3.5rem) !important;
  align-items: start;
}

.section-milestones .milestones-grid > div {
  min-width: 0;
  min-height: 8.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(0.75rem, 1.2vw, 1rem);
  padding-top: 0;
  border-top: 0;
}

.section-milestones .milestones-grid h3 {
  margin: 0 !important;
  font-family: var(--asap-font-heading) !important;
  font-size: var(--type-stat) !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
  color: #2a2c8e !important;
}

.section-milestones .milestones-grid p {
  width: 100%;
  max-width: 18ch;
  margin: 0 !important;
  font-family: var(--asap-font-body) !important;
  font-size: var(--type-small) !important;
  line-height: var(--line-small) !important;
  color: rgba(42, 44, 142, 0.68) !important;
}

@media screen and (max-width: 1199px) {
  .section-milestones .milestones-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media screen and (max-width: 767px) {
  .section-milestones .milestones-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media screen and (max-width: 479px) {
  .section-milestones .milestones-grid {
    grid-template-columns: 1fr !important;
  }

  .section-milestones .milestones-grid > div {
    min-height: 0;
  }
}

/* Desktop minimum: no visible utility, label, or legal copy below 14px. */
.nav-secondary,
.nav-secondary *,
.nav-secondary .nav-secondary-click span,
.footer .footer-legal,
.footer .footer-legal *,
.footer .credits,
.footer .credits *,
.modal-block > div[style*="font-size: 0.85rem"],
[style*="font-size: 0.85rem"] {
  font-size: 14px !important;
}

/* Services use quiet neutral rules with a stronger group-heading divider. */
#specialisms .specialisms-list .title {
  padding-bottom: 1.3rem !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16) !important;
}

#specialisms .specialisms-list ul li:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

body .main-wrap .section-impact .content-block h2 {
  line-height: var(--line-section) !important;
}

/* Arabic glyph safety for dots and ascenders inside reveal wrappers. */
[data-split="heading"],
[data-split-reveal="lines"],
.mask-line,
.line,
.line-inner {
  overflow: visible;
}

@media screen and (max-width: 767px) {
  :root {
    --type-display: clamp(34px, 10.5vw, 48px);
    --type-section: clamp(28px, 8vw, 36px);
    --type-subsection: clamp(22px, 6.5vw, 28px);
    --type-card: clamp(19px, 5.5vw, 23px);
    --type-lead: clamp(17px, 4.6vw, 19px);
    --type-body: clamp(16px, 4.25vw, 18px);
    --type-small: clamp(14px, 3.8vw, 16px);
    --type-label: clamp(14px, 3.5vw, 15px);
    --type-stat: clamp(36px, 11vw, 46px);
  }
}
