/* Catalogue v8: semantic typography from Home v17.
   Load after style.css, contact.css and typography-v1.css, before the shared
   header, footer and form-feedback components. Requires .catalogue-page.
   Client wordmarks, large result/metric numerals, chart geometry, ornaments,
   client colours and the complete catalogue's final full-width card stay in
   the original stylesheet. Layout adjustments below only allow text to wrap. */

html { scroll-padding-top: var(--header-offset, 112px); }
.catalogue-page { --ink: #101820; --muted: #464C52; font-family: var(--font-family); font-weight: var(--weight-text); }
.catalogue-page .skip-link { z-index: 100; }

/* The shared header loads later; preserve the catalogue's current-page cue. */
.catalogue-page .unified-header a[aria-current="page"] { color: var(--blue); }

.catalogue-page .hero h1 {
  font-size: var(--type-display);
  font-weight: var(--weight-heading);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
}
.catalogue-page .hero-bottom p {
  font-size: var(--type-body);
  line-height: var(--leading-lead);
}
.catalogue-page .eyebrow,
.catalogue-page .breadcrumb,
.catalogue-page .hero-note,
.catalogue-page .section-aside {
  font-size: var(--type-caption);
  line-height: var(--leading-caption);
}
.catalogue-page .eyebrow { letter-spacing: 1.2px; }

/* A compact heading for catalogue controls, not a narrative section H2. */
.catalogue-page .section-label h2 {
  font-size: var(--type-lead);
  font-weight: var(--weight-heading);
  line-height: var(--leading-ui);
}
.catalogue-page .total-count,
.catalogue-page .service-tab span,
.catalogue-page .filter-label,
.catalogue-page .results-line {
  font-size: var(--type-caption);
  line-height: var(--leading-caption);
}
.catalogue-page .hero-scroll,
.catalogue-page .service-tab,
.catalogue-page .industry-chip,
.catalogue-page .b2b-filter,
.catalogue-page #reset-filters,
.catalogue-page .projects-end > a,
.catalogue-page .button {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}
.catalogue-page .search input {
  min-width: 0;
  font-size: var(--type-body);
  line-height: var(--leading-ui);
}
.catalogue-page .service-tabs,
.catalogue-page .search,
.catalogue-page .industry-filters { min-width: 0; }
.catalogue-page .service-tab { min-width: 0; white-space: normal; }
.catalogue-page .service-tab span { flex-shrink: 0; }
.catalogue-page .results-line { flex-wrap: wrap; column-gap: 16px; row-gap: 8px; }

/* One card-heading role replaces the former 24/23/22/25/23 px sequence. */
.catalogue-page .card-body h3,
.catalogue-page .empty-state h3 {
  font-size: var(--type-card);
  font-weight: var(--weight-heading);
  line-height: var(--leading-card);
  letter-spacing: -.65px;
}
.catalogue-page .card-desc,
.catalogue-page .empty-state p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}
.catalogue-page .tag,
.catalogue-page .visual-number,
.catalogue-page .visual-caption,
.catalogue-page .compare-bar span,
.catalogue-page .metric-label,
.catalogue-page .metric-period,
.catalogue-page .card-footer-note,
.catalogue-page .projects-end p {
  font-size: var(--type-caption);
  line-height: var(--leading-caption);
}
.catalogue-page .case-open {
  font-size: var(--type-ui);
  font-weight: var(--weight-heading);
  line-height: var(--leading-ui);
}
.catalogue-page .visual-number { flex-shrink: 0; white-space: nowrap; }
/* At narrow widths each bar is about 45 px wide. Unit labels may use two
   lines; the original bar widths, heights and colours are preserved. */
.catalogue-page .compare-bar span { white-space: normal; }
.catalogue-page .card-metrics > div,
.catalogue-page .dialog-metrics > div,
.catalogue-page .card-footer-note { min-width: 0; }
.catalogue-page .metric-value,
.catalogue-page .metric-label,
.catalogue-page .metric-period,
.catalogue-page .card-footer-note { overflow-wrap: anywhere; }
.catalogue-page .card-body h3,
.catalogue-page .card-desc { overflow-wrap: break-word; }
.catalogue-page .card-link { flex-wrap: wrap; column-gap: 12px; row-gap: 8px; }

/* Dialog reading hierarchy; existing large metric numerals are untouched. */
.catalogue-page .dialog-body h2 {
  font-size: var(--type-section);
  font-weight: var(--weight-heading);
  line-height: var(--leading-section);
}
.catalogue-page .dialog-body h3 {
  font-size: var(--type-body);
  font-weight: var(--weight-heading);
  line-height: var(--leading-ui);
}
.catalogue-page .dialog-client {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}
.catalogue-page .dialog-description,
.catalogue-page .dialog-body #dialog-content p,
.catalogue-page .dialog-body #dialog-content ul,
.catalogue-page .dialog-body #dialog-content li {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}
.catalogue-page .dialog-body { overflow-wrap: anywhere; }
.catalogue-page .dialog-header .eyebrow { min-width: 0; overflow-wrap: anywhere; }
.catalogue-page .dialog-close { flex-shrink: 0; }
.catalogue-page .dialog-body .button { max-width: 100%; }
.catalogue-page .dialog-body .button span { flex-shrink: 0; }

/* Contact typography mirrors Home v17, scoped to the catalogue. */
.catalogue-page .contact h2 {
  font-size: var(--type-contact);
  line-height: var(--leading-contact);
  letter-spacing: -.03em;
  font-weight: var(--weight-heading);
}
.catalogue-page .contact .eyebrow { font-size: var(--type-caption); line-height: var(--leading-caption); }
.catalogue-page .contact .project-form .form-intro { font-size: var(--type-lead); line-height: var(--leading-ui); }
.catalogue-page .contact .contact-label,
.catalogue-page .contact .messenger-links a,
.catalogue-page .contact .contact-channel legend,
.catalogue-page .contact .channel-option span,
.catalogue-page .contact .form-field > label,
.catalogue-page .contact .optional-site summary,
.catalogue-page .contact .project-form .form-status { font-size: var(--type-ui); line-height: var(--leading-ui); }
.catalogue-page .contact .direct-contacts a,
.catalogue-page .contact .form-field input { font-size: var(--type-body); line-height: var(--leading-ui); }
.catalogue-page .contact .project-form .form-submit { font-size: var(--type-body); font-weight: var(--weight-heading); line-height: 1.4; }
.catalogue-page .contact .field-optional,
.catalogue-page .contact .form-consent,
.catalogue-page .contact .contact-location,
.catalogue-page .contact .project-form .form-preview-note { font-size: var(--type-caption); line-height: var(--leading-caption); }

/* The shared footer-details component supplies its own caption role. */
.catalogue-page .footer-main { flex-wrap: wrap; }
.catalogue-page .footer-main > p,
.catalogue-page .footer-bottom,
.catalogue-page .footer-legal { font-size: var(--type-caption); line-height: var(--leading-caption); }
.catalogue-page .footer .back-top { flex-shrink: 0; font-size: var(--type-ui); line-height: var(--leading-ui); }
.catalogue-page .footer-bottom { flex-wrap: wrap; row-gap: 12px; }

@media (max-width: 380px) {
  .catalogue-page .footer-main { gap: 20px 16px; }
  .catalogue-page .footer .back-top { margin-left: 0; }
}

/* The original square brand mark replaces the text imitation. */
.catalogue-page .projects-end .small-mark { display: block; background: transparent; object-fit: contain; }

/* A nearly square top remains legible on proportionally small bars. */
.catalogue-page .compare-bar { border-radius: 1px 1px 0 0; }

/* Supplementary result multiplier; current BAIDS comparison. */
.case-card__growth { display:block; margin-bottom:6px; font-size:var(--type-card,24px); line-height:1.2; font-weight:600; letter-spacing:-.025em; }
