/* =========================================================
   NON-STORAGE BED FRAMES — PAGE-SPECIFIC STYLESHEET
   ---------------------------------------------------------
   Only contains styles for non-storage-bed-frames.html. Relies
   on style.css (loaded first) for design tokens and shared
   components (.btn, .product-card, .grid--products). The hero
   uses a solid/gradient background only — no images anywhere
   on this page yet.
   ========================================================= */

/* ---- Hero (gradient background, no image) ---- */
.ns-hero {
  position: relative;
  min-height: clamp(340px, 44vh, 440px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--color-forest) 0%, var(--color-forest-dark) 100%);
}

.ns-hero__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-block: 3.5rem;
}

.ns-hero__content {
  max-width: 34rem;
  color: var(--color-ivory-soft);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ns-hero__heading {
  margin-top: 0.5rem;
  font-family: var(--font-display);
  font-size: 2.5rem;
  line-height: 1.05;
  color: var(--color-ivory-soft);
}

@media (min-width: 768px) {
  .ns-hero__heading {
    font-size: 3.5rem;
  }
}

.ns-hero__body {
  margin-top: 1rem;
  max-width: 30rem;
  font-size: 0.95rem;
  line-height: 1.6;
  color: rgba(248, 244, 235, 0.9);
}

.ns-hero__content .btn {
  margin-top: 1.75rem;
}

/* ---- Breadcrumb ---- */
.ns-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-block: 1.1rem;
  font-size: 0.8rem;
  color: rgba(35, 35, 32, 0.55);
}

.ns-breadcrumb a {
  color: var(--color-forest);
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}

.ns-breadcrumb a:hover {
  color: var(--color-brass);
}

/* ---- Introduction ---- */
.ns-intro {
  padding-block: 2.5rem;
}

.ns-intro__inner {
  max-width: 42rem;
  text-align: center;
  margin-inline: auto;
}

.ns-intro__inner h2 {
  font-family: var(--font-display);
  font-size: 2rem;
  color: var(--color-forest-dark);
}

.ns-intro__inner p {
  margin-top: 1rem;
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(35, 35, 32, 0.72);
}

/* ---- Toolbar ---- */
.ns-toolbar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--color-border);
}

.ns-toolbar-row__count {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: rgba(35, 35, 32, 0.6);
}

/* ---- Product grid: same responsive pattern as other category
   pages, ready to receive real .product-card entries ---- */
.ns-grid {
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .ns-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .ns-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.ns-product-card__cta {
  margin-top: 0.85rem;
  width: 100%;
  height: 42px;
  font-size: 0.8125rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ---- Empty state (shown until real products are added) ---- */
.ns-empty-state {
  grid-column: 1 / -1;
  padding: 3rem 1.5rem;
  text-align: center;
  font-size: 0.9375rem;
  color: rgba(35, 35, 32, 0.55);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-lg);
}