/* Public marketing pages */
.public-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--color-page-bg);
}

.public-header {
  background: var(--brand-primary);
  color: #fff;
}

.public-header__row,
.public-container {
  width: min(1100px, 100%);
  margin: 0 auto;
}

.public-header__row {
  min-height: 76px;
  padding: var(--space-4) var(--space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
}

.public-brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  min-width: 0;
}

.public-brand__mark {
  background: #fff;
  color: var(--brand-primary);
  border-radius: var(--radius-md);
  padding: var(--space-1) var(--space-3);
  letter-spacing: .04em;
  white-space: nowrap;
}

.public-brand__tagline {
  color: rgba(255, 255, 255, .78);
  font-size: var(--text-sm);
  font-weight: 500;
  white-space: nowrap;
}

.public-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-5);
}

.public-nav a {
  color: rgba(255, 255, 255, .86);
  text-decoration: none;
  font-size: var(--text-sm);
  white-space: nowrap;
}

.public-nav a:hover,
.public-nav a:focus-visible { color: #fff; }

.public-nav .btn { color: var(--brand-primary); }

.public-hero {
  background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dk) 100%);
  color: #fff;
  padding: clamp(3.5rem, 8vw, 7rem) var(--space-6);
}

.public-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 1fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}

.public-hero h1 {
  max-width: 650px;
  font-size: clamp(2.25rem, 5vw, 4rem);
  line-height: 1.05;
  letter-spacing: -.035em;
  margin: 0 0 var(--space-5);
}

.public-hero__lead {
  max-width: 590px;
  color: rgba(255, 255, 255, .84);
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.65;
  margin: 0 0 var(--space-8);
}

.public-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }

.public-hero__panel {
  background: rgba(255, 255, 255, .09);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: var(--radius-xl);
  padding: clamp(1.25rem, 4vw, 2rem);
}

.public-role { display: flex; gap: var(--space-3); align-items: flex-start; }
.public-role + .public-role { margin-top: var(--space-4); }
.public-role__number {
  flex: 0 0 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .15);
  border-radius: var(--radius-md);
  font-weight: 700;
}
.public-role p { color: rgba(255, 255, 255, .72); font-size: var(--text-sm); margin: .2rem 0 0; line-height: 1.5; }

.public-stats { background: var(--color-surface); border-bottom: 1px solid var(--color-border-light); }
.public-stats__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
  padding: var(--space-8) var(--space-6);
  text-align: center;
}
.public-stat__value { color: var(--brand-primary); font-size: 1.75rem; font-weight: 700; }
.public-stat__label { color: var(--color-text-muted); font-size: var(--text-sm); line-height: 1.5; }

.public-section { padding: clamp(3rem, 7vw, 6rem) var(--space-6); }
.public-section__title { font-size: var(--text-2xl); margin: 0 0 var(--space-8); }
.public-audience-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.public-audience-card { padding: var(--space-6); height: 100%; }
.public-audience-card p { color: var(--color-text-muted); font-size: var(--text-sm); line-height: 1.6; }

.public-footer { background: var(--brand-primary-dk); color: rgba(255, 255, 255, .7); padding: var(--space-6); }
.public-footer__inner { display: flex; justify-content: space-between; gap: var(--space-6); flex-wrap: wrap; font-size: var(--text-sm); }
.public-footer__links { display: flex; gap: var(--space-6); flex-wrap: wrap; }
.public-footer a { color: rgba(255, 255, 255, .7); text-decoration: none; }

.legal-page { max-width: 960px; }
.legal-page h1 { max-width: 720px; margin: 0 0 var(--space-5); font-size: clamp(2.25rem, 6vw, 4rem); letter-spacing: -.04em; }
.legal-page__eyebrow { color: var(--brand-primary); font-size: var(--text-sm); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.legal-page__lead { max-width: 760px; margin: 0 0 var(--space-10); color: var(--color-text-muted); font-size: clamp(1.05rem, 2vw, 1.25rem); line-height: 1.7; }
.legal-page__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.legal-page__grid article, .legal-page__steps > div { padding: var(--space-6); background: var(--color-surface); border: 1px solid var(--color-border-light); border-radius: var(--radius-lg); }
.legal-page h2 { margin: 0 0 var(--space-3); font-size: var(--text-lg); }
.legal-page article p, .legal-page__steps p { margin: 0; color: var(--color-text-muted); line-height: 1.7; }
.legal-page__notice { margin-top: var(--space-6); padding: var(--space-5); background: rgba(26, 58, 92, .06); border-left: 4px solid var(--brand-primary); border-radius: var(--radius-md); line-height: 1.65; }
.legal-page__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-bottom: var(--space-8); }
.legal-page__steps span { display: grid; place-items: center; width: 2rem; height: 2rem; margin-bottom: var(--space-5); border-radius: 50%; background: var(--brand-primary); color: #fff; font-weight: 700; }

.employer-application__form { display: flex; flex-direction: column; gap: var(--space-2); }
.employer-application__form .form-field { margin-bottom: var(--space-3); }
.employer-application__form .form-label { margin-bottom: var(--space-2); }
.employer-application__form .input,
.employer-application__form .textarea { min-height: 48px; }
.employer-application__form .textarea { min-height: 112px; }
.employer-application__form .btn { min-height: 48px; }

@media (max-width: 767px) {
  .public-header__row { min-height: 0; padding: var(--space-3) var(--space-4); display: block; }
  .public-brand { justify-content: space-between; }
  .public-brand__tagline { display: none; }
  .public-nav { justify-content: flex-start; gap: var(--space-2) var(--space-4); flex-wrap: wrap; margin-top: var(--space-3); }
  .public-nav .btn { margin-left: auto; }
  .public-hero { padding-left: var(--space-4); padding-right: var(--space-4); }
  .public-hero__inner { grid-template-columns: 1fr; gap: var(--space-8); }
  .public-actions .btn { flex: 1 1 100%; }
  .public-stats__grid { grid-template-columns: 1fr; gap: var(--space-5); padding-left: var(--space-4); padding-right: var(--space-4); }
  .public-section { padding-left: var(--space-4); padding-right: var(--space-4); }
  .public-audience-grid { grid-template-columns: 1fr; }
  .employer-layout { grid-template-columns: 1fr !important; gap: var(--space-8) !important; padding-top: var(--space-10) !important; padding-bottom: var(--space-10) !important; }
  .employer-application { position: static !important; }
  .employer-application .card__body { padding: var(--space-5); }
  .public-footer { padding-left: var(--space-4); padding-right: var(--space-4); }
  .public-footer__links { gap: var(--space-3) var(--space-5); }
  .legal-page__grid, .legal-page__steps { grid-template-columns: 1fr; }
  .legal-page__grid article, .legal-page__steps > div { padding: var(--space-5); }
}
