/**
 * ============================================================================
 *  NILOFAR HEYDARIAN — BASE STYLES
 * ============================================================================
 *  Reset, root layout, and shared text utilities.
 *  The body element is the flex-column wrapper that lets the footer stick
 *  to the bottom of the viewport on short pages and be pushed down
 *  naturally on long pages.
 * ============================================================================
 */

.nh-root,
.nh-root * {
  box-sizing: border-box;
}

.nh-root {
  font-family: var(--nh-sans);
  color: var(--nh-ink-2);
  background: var(--nh-cream);
  min-height: 100vh;
  overflow-x: clip;
  line-height: 1.55;
  /* Flex column so the footer always sticks to the bottom of the viewport on
     short pages and is pushed down naturally on long pages. */
  display: flex;
  flex-direction: column;
}

/* The growing content region (header + active page + shared contact section).
   Takes up all remaining vertical space so the footer below it never floats. */
.nh-content {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
}

.nh-root input,
.nh-root textarea,
.nh-root button {
  font-family: inherit;
}

.nh-root ::selection {
  background: var(--nh-rose);
  color: var(--nh-ink);
}

.nh-serif {
  font-family: var(--nh-serif);
}

/* -------------------------------------------------------------------------- */
/*  Generic reusable text bits                                                 */
/* -------------------------------------------------------------------------- */
.nh-eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--nh-plum);
  margin-bottom: 12px;
}

.nh-eyebrow-sm {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--nh-plum);
  margin-bottom: 8px;
}

.nh-eyebrow-lg {
  display: inline-block;
  font-size: clamp(11px, 1.5vw, 13px);
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--nh-plum);
  margin-bottom: 14px;
}

.nh-heading-serif {
  font-family: var(--nh-serif);
  font-weight: 500;
  color: var(--nh-ink);
}

.nh-cta-inline {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 14px;
  font-weight: 600;
  color: var(--nh-plum);
}

/* Utilities ---------------------------------------------------------------- */
.nh-arrow {
  font-size: 17px;
}

.nh-arrow--sm {
  font-size: 16px;
}

/* Respect users who prefer less motion */
@media (prefers-reduced-motion: reduce) {
  .nh-gallery__track,
  .nh-path-card,
  .nh-cert-card,
  .nh-social,
  .nh-lang-btn,
  .nh-nav__btn {
    transition: none !important;
  }
}
