/* Extracted from legacy styles.css; keep in sync with modular structure. */

/* Utilities                                                                   */
/* -------------------------------------------------------------------------- */

.hidden,
[hidden] {
  display: none !important;
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.w-full {
  width: 100%;
}

.space-y-xs > * + * {
  margin-top: var(--spacing-xs);  /* 0.5rem - 8px */
}

.space-y-sm > * + * {
  margin-top: var(--spacing-sm);  /* 1rem - 16px */
}

.space-y-md > * + * {
  margin-top: var(--spacing-md);  /* 1.5rem - 24px */
}

.space-y-lg > * + * {
  margin-top: var(--spacing-lg);  /* 2rem - 32px */
}

.space-y-xl > * + * {
  margin-top: var(--spacing-xl);  /* 3rem - 48px */
}

.space-y-2xl > * + * {
  margin-top: var(--spacing-2xl);  /* 4rem - 64px */
}

/* Margin Top Utilities */
.mt-xs { margin-top: var(--spacing-xs); }
.mt-sm { margin-top: var(--spacing-sm); }
.mt-md { margin-top: var(--spacing-md); }
.mt-lg { margin-top: var(--spacing-lg); }
.mt-xl { margin-top: var(--spacing-xl); }
.mt-2xl { margin-top: var(--spacing-2xl); }

/* Margin Bottom Utilities */
.mb-xs { margin-bottom: var(--spacing-xs); }
.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xl); }
.mb-2xl { margin-bottom: var(--spacing-2xl); }

/* Padding Utilities */
.p-xs { padding: var(--spacing-xs); }
.p-sm { padding: var(--spacing-sm); }
.p-md { padding: var(--spacing-md); }
.p-lg { padding: var(--spacing-lg); }
.p-xl { padding: var(--spacing-xl); }

/* Padding Top/Bottom Utilities */
.py-xs { padding-top: var(--spacing-xs); padding-bottom: var(--spacing-xs); }
.py-sm { padding-top: var(--spacing-sm); padding-bottom: var(--spacing-sm); }
.py-md { padding-top: var(--spacing-md); padding-bottom: var(--spacing-md); }
.py-lg { padding-top: var(--spacing-lg); padding-bottom: var(--spacing-lg); }
.py-xl { padding-top: var(--spacing-xl); padding-bottom: var(--spacing-xl); }

/* Gap Utilities */
.gap-xs { gap: var(--spacing-xs); }
.gap-sm { gap: var(--spacing-sm); }
.gap-md { gap: var(--spacing-md); }
.gap-lg { gap: var(--spacing-lg); }
.gap-xl { gap: var(--spacing-xl); }

/* ========================================================================
   TYPOGRAPHY UTILITIES
   ======================================================================== */

/* Font Size Utilities */
.text-3xs { font-size: var(--font-size-3xs); }  /* 10px */
.text-2xs { font-size: var(--font-size-2xs); }  /* 11px */
.text-xs { font-size: var(--font-size-xs); }    /* 12px */
.text-sm { font-size: var(--font-size-sm); }    /* 13px */
.text-base-sm { font-size: var(--font-size-base-sm); } /* 14px */
.text-base { font-size: var(--font-size-base); } /* 16px */
.text-md { font-size: var(--font-size-md); }    /* 17px */
.text-lg { font-size: var(--font-size-lg); }    /* 18px */
.text-xl { font-size: var(--font-size-xl); }    /* 20px */
.text-2xl { font-size: var(--font-size-2xl); }  /* 24px */
.text-3xl { font-size: var(--font-size-3xl); }  /* 28px */
.text-4xl { font-size: var(--font-size-4xl); }  /* 32px */
.text-5xl { font-size: var(--font-size-5xl); }  /* 40px */
.text-6xl { font-size: var(--font-size-6xl); }  /* 48px */

/* Responsive Heading Sizes */
.text-display { font-size: var(--font-size-display); }
.text-h1 { font-size: var(--font-size-h1); }
.text-h2 { font-size: var(--font-size-h2); }
.text-h3 { font-size: var(--font-size-h3); }
.text-h4 { font-size: var(--font-size-h4); }
.text-h5 { font-size: var(--font-size-h5); }
.text-h6 { font-size: var(--font-size-h6); }
.text-lead { font-size: var(--font-size-lead); }

/* Font Weight Utilities */
.font-normal { font-weight: var(--font-weight-normal); }
.font-medium { font-weight: var(--font-weight-medium); }
.font-semibold { font-weight: var(--font-weight-semibold); }
.font-bold { font-weight: var(--font-weight-bold); }

/* Line Height Utilities */
.leading-none { line-height: var(--line-height-none); }
.leading-tight { line-height: var(--line-height-tight); }
.leading-snug { line-height: var(--line-height-snug); }
.leading-normal { line-height: var(--line-height-normal); }
.leading-relaxed { line-height: var(--line-height-relaxed); }
.leading-loose { line-height: var(--line-height-loose); }

/* Letter Spacing Utilities */
.tracking-tight { letter-spacing: var(--letter-spacing-tight); }
.tracking-normal { letter-spacing: var(--letter-spacing-normal); }
.tracking-wide { letter-spacing: var(--letter-spacing-wide); }
.tracking-wider { letter-spacing: var(--letter-spacing-wider); }
.tracking-widest { letter-spacing: var(--letter-spacing-widest); }

/* Text Transform Utilities */
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }
.capitalize { text-transform: capitalize; }
.normal-case { text-transform: none; }

/* Hyphenation utility for targeted opt-in */
.hyphenate {
  overflow-wrap: normal;
  word-break: normal;
  -webkit-hyphens: none;
  hyphens: none;
}

/* -------------------------------------------------------------------------- */

.rich-text ul,
.rich-text ol {
  margin-top: 0.5rem;
}

/* Icon frame skeleton shared across the site (structure only; colors remain local) */
.card__icon,
.about-overview__icon,
.exec-overview__icon,
.contact-overview__icon,
.contact-feature-card__icon,
.feature-grid__icon,
.feature-block__icon,
.hiring-request-card__icon,
.job-highlight__icon,
.job-share__icon,
.quick-apply-hero__highlight-icon,
.job-apply-aside__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--icon-frame-size);
  height: var(--icon-frame-size);
  border-radius: var(--icon-frame-radius);
  flex-shrink: 0;
}

/* -------------------------------------------------------------------------- */
