/* Completed dashboard: keep every section inside the same centered canvas. */
.admin .onboarding-workspace .onboarding:has(.onboarding-dashboard-bottom) {
  width: min(92%, 1500px);
}

.admin .onboarding-workspace .onboarding-dashboard-bottom {
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  align-items: stretch;
  width: 100%;
  min-width: 0;
  margin-left: auto;
  margin-right: auto;
}

.admin .onboarding-workspace .onboarding-activity,
.admin .onboarding-workspace .onboarding-recommendation {
  box-sizing: border-box;
  min-width: 0;
  height: 100%;
}

.admin .onboarding-workspace .onboarding-recommendation {
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 20px;
}

.admin .onboarding-workspace .onboarding-recommendation > p {
  width: min(100%, 360px);
  text-align: center;
}

.admin .onboarding-workspace .onboarding-recommendation > a {
  align-self: center;
}

/* Statistics: center against the main area after the sidebar and use 92% of it. */
@media (min-width: 1100px) {
  .admin > .statistics-workspace {
    justify-self: stretch;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .admin .statistics-workspace > header,
  .admin .statistics-workspace > :not(header) {
    box-sizing: border-box;
    width: 92% !important;
    max-width: 1600px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .admin .statistics-workspace .statistics-cards,
  .admin .statistics-workspace .statistics-chart-card,
  .admin .statistics-workspace .statistics-chart {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }
}

/* The type scale already controls body copy; expose it to fixed-size headings too. */
.store-shell .hero h1 {
  font-size: clamp(
    calc(42px * var(--type-scale, 1)),
    calc(6vw * var(--type-scale, 1)),
    calc(78px * var(--type-scale, 1))
  );
}

.store-shell .hero-editorial h1 {
  font-size: clamp(
    calc(48px * var(--type-scale, 1)),
    calc(7vw * var(--type-scale, 1)),
    calc(92px * var(--type-scale, 1))
  );
}

.store-shell .hero-carousel h1 {
  font-size: clamp(
    calc(48px * var(--type-scale, 1)),
    calc(7vw * var(--type-scale, 1)),
    calc(90px * var(--type-scale, 1))
  );
}

.store-shell .hero-video h1 {
  font-size: clamp(
    calc(44px * var(--type-scale, 1)),
    calc(6vw * var(--type-scale, 1)),
    calc(78px * var(--type-scale, 1))
  );
}

.store-shell .section-title h2 {
  font-size: calc(32px * var(--type-scale, 1));
}

.store-shell .content-block-copy h2 {
  font-size: clamp(
    calc(28px * var(--type-scale, 1)),
    calc(3vw * var(--type-scale, 1)),
    calc(44px * var(--type-scale, 1))
  );
}

.store-shell .reviews-heading h2 {
  font-size: clamp(
    calc(30px * var(--type-scale, 1)),
    calc(4vw * var(--type-scale, 1)),
    calc(48px * var(--type-scale, 1))
  );
}

.store-shell .benefits-section > header h2 {
  font-size: clamp(
    calc(32px * var(--type-scale, 1)),
    calc(4vw * var(--type-scale, 1)),
    calc(52px * var(--type-scale, 1))
  );
}

.store-shell .category-editorial-item b,
.store-shell .category-text-directory b {
  font-size: clamp(
    calc(20px * var(--type-scale, 1)),
    calc(2.2vw * var(--type-scale, 1)),
    calc(42px * var(--type-scale, 1))
  );
}

@media (max-width: 900px) {
  .admin .onboarding-workspace .onboarding:has(.onboarding-dashboard-bottom) {
    width: calc(100% - 28px);
  }

  .admin .onboarding-workspace .onboarding-dashboard-bottom {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 600px) {
  .store-shell .hero h1,
  .store-shell .hero-carousel h1,
  .store-shell .hero-video h1 {
    overflow-wrap: anywhere;
    font-size: clamp(
      calc(30px * var(--type-scale, 1)),
      calc(10.5vw * var(--type-scale, 1)),
      calc(46px * var(--type-scale, 1))
    );
  }

  .store-shell .section-title h2 {
    font-size: clamp(
      calc(23px * var(--type-scale, 1)),
      calc(7vw * var(--type-scale, 1)),
      calc(32px * var(--type-scale, 1))
    );
  }
}

/* Preview mobile needs the same heading clamps because its host viewport is desktop. */
.preview-mobile .store-shell .hero h1,
.preview-mobile .store-shell .hero-carousel h1,
.preview-mobile .store-shell .hero-video h1 {
  overflow-wrap: anywhere;
  font-size: clamp(
    calc(30px * var(--type-scale, 1)),
    calc(10.5vw * var(--type-scale, 1)),
    calc(46px * var(--type-scale, 1))
  );
}

.preview-mobile .store-shell .section-title h2 {
  font-size: clamp(
    calc(23px * var(--type-scale, 1)),
    calc(7vw * var(--type-scale, 1)),
    calc(32px * var(--type-scale, 1))
  );
}
