/* ================================================
   FIRM PAGE — HOMEPAGE CONSISTENCY OVERRIDES
   All values in px to prevent WP rem inheritance
   ================================================ */

/* Reset WP body font inflation on firm page */
.ac-firm-page,
.ac-firm-page * {
  box-sizing: border-box;
}
.ac-firm-page {
  font-size: var(--body-4-size) !important;
}

/* ---- PILL / BADGE TAGS ---- */
.ac-firm-page .ac-badge,
.ac-firm-page .ac-section-label,
.ac-firm-page .ac-section-tag,
.ac-firm-hero .ac-badge,
.ac-firm-hero .ac-section-label {
  font-size: var(--body-5-size) !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  padding: 8px 20px !important;
  border-radius: 100px !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  display: inline-block !important;
  background: rgba(7, 169, 209, 0.08) !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border: 1px solid rgba(7, 169, 209, 0.25) !important;
}

/* ---- CTA BUTTONS ---- */
.ac-firm-page .ac-btn,
.ac-firm-hero .ac-btn,
.ac-firm-page a.ac-btn,
.ac-firm-hero a.ac-btn {
  font-size: var(--btn-medium-size) !important;
  font-weight: 600 !important;
  padding: 14px 32px !important;
  border-radius: 100px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  white-space: nowrap !important;
}

/* ---- BUTTON GROUP GAP ---- */
.ac-firm-hero .ac-firm-hero__ctas,
.ac-firm-hero .ac-hero__ctas,
.ac-firm-page .ac-hero__ctas {
  gap: 12px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Kill WP default flex gap on button containers */
.ac-firm-hero .is-layout-flex,
.ac-firm-hero .wp-block-group-is-layout-flex {
  gap: 12px !important;
}

/* ---- HEADLINE ---- */
.ac-firm-hero__title,
.ac-firm-hero h1,
.ac-firm-hero h2 {
  font-size: var(--h2-size) !important;
  font-weight: var(--h2-weight) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 20px !important;
}

/* ---- SUBTEXT ---- */
.ac-firm-hero__body,
.ac-firm-hero p {
  font-size: var(--hero-subtitle-size) !important;
  line-height: var(--hero-subtitle-line) !important;
  margin-bottom: 32px !important;
  font-weight: 400 !important;
}

/* ---- Approach quote typewriter — reserve space ---- */
.ac-approach__quote-text.ac-approach-typewriter {
  min-height: 4em;
}
.ac-approach__quote-accent.ac-approach-typewriter {
  min-height: 1.5em;
}

/* ================================================
   HEADLINE SIZES — HARD PX — FINAL FIX
   Matches homepage exactly. No rem. No clamp.
   ================================================ */

/* All firm page h1 */
.ac-firm-page h1,
.ac-firm-hero h1,
.ac-firm-hero__title,
.ac-firm-page .wp-block-heading.has-text-align-center,
.ac-firm-page h1.wp-block-heading {
  font-size: var(--h2-size) !important;
  font-weight: var(--h2-weight) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
}

/* All firm page h2 section headlines */
.ac-firm-page h2,
.ac-firm-page h2.wp-block-heading,
.ac-firm-page .ac-what-we-do__headline,
.ac-firm-page .ac-approach__headline,
.ac-firm-page .ac-values__headline {
  font-size: var(--h2-size) !important;
  font-weight: var(--h2-weight) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
}

/* EXCEPTIONS — card/component titles must stay small */
.ac-firm-page .ac-role-card__title {
  font-size: var(--body-4-size) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}
.ac-firm-page .ac-service-card__title,
.ac-firm-page .ac-value-card__title,
.ac-firm-page .ac-structure-card__title {
  font-size: var(--body-3-size) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}
.ac-firm-page .ac-step__label {
  font-size: var(--body-4-size) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}
.ac-firm-page .ac-roles__footer-title {
  font-size: var(--h5-size) !important;
  font-weight: 400 !important;
}
.ac-firm-page .ac-approach__quote-text {
  font-size: var(--h2-size) !important;
  font-weight: var(--h2-weight) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
}
.ac-firm-page .ac-approach__quote-accent {
  font-size: var(--h2-size) !important;
  font-weight: var(--h2-weight) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
}

/* WP block heading override */
.ac-firm-page .wp-block-heading {
  font-size: var(--h2-size) !important;
}

/* RESPONSIVE — now inherits from :root media queries via CSS variables */


/* ================================================
   INFINITY / MEET THE TEAM SECTION — LAYOUT FIX
   Fix clipping of cards and role labels
   ================================================ */

/* Section container — must NOT clip children */
.ac-firm-team,
.ac-firm-team .wp-block-group {
  overflow: visible !important;
}

/* WP constrained layout overflow fix */
.ac-firm-page .is-layout-constrained,
.ac-firm-page .wp-block-group-is-layout-constrained {
  overflow: visible !important;
}

/* Hotspots sit above infinity image */
.ac-infinity-hotspot {
  z-index: 10 !important;
  overflow: visible !important;
}

/* Member cards sit on top */
.ac-infinity-hotspot__members {
  z-index: 20 !important;
  overflow: visible !important;
}

/* Avatars never clip */
.ac-infinity-hotspot .ac-firm-role__avatar img {
  clip-path: none !important;
  overflow: visible !important;
}
