/* ========================================
   PAGE OPENER — Editorial, flowing (new)
   Replaces .cat-hero for migrated pages
======================================== */
.page-opener {
  position: relative;
  background: var(--cream);
  padding: calc(var(--space-2xl) + 2rem) 0 0;
}

.page-opener-content {
  grid-column: 1 / -1;
  max-width: 68rem;
  margin: 0 auto;
  text-align: left;
}

@media (min-width: 901px) {
  .page-opener-content {
    grid-column: 2 / -2;
  }
}

.page-opener-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: var(--space-md);
}

.page-opener-breadcrumb a {
  color: color-mix(in srgb, var(--near-black) 50%, transparent);
  transition: color var(--duration-fast) var(--ease-out);
}

.page-opener-breadcrumb a:hover {
  color: var(--near-black);
}

.page-opener-breadcrumb .sep {
  color: color-mix(in srgb, var(--near-black) 25%, transparent);
}

.page-opener-breadcrumb .current {
  color: var(--accent);
}

.page-opener-heading {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5.5vw + 0.25rem, 5.25rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--near-black);
  max-width: 22ch;
  text-wrap: balance;
  margin: 0;
}

.page-opener-heading em {
  font-style: italic;
  font-weight: 400;
  color: var(--accent);
}

.page-opener-lead {
  font-family: var(--font-body);
  font-size: clamp(var(--text-base), 1.5vw + 0.4rem, 1.3rem);
  font-weight: 300;
  line-height: 1.55;
  color: color-mix(in srgb, var(--near-black) 72%, transparent);
  max-width: 52ch;
  margin: var(--space-md) 0 0;
}

.page-opener-figure {
  margin: var(--space-xl) 0 0;
  padding: 0 var(--grid-pad);
  overflow: hidden;
}

@media (min-width: 901px) {
  .page-opener-figure {
    padding: 0 var(--space-lg);
  }
}

.page-opener-figure img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 78vh;
  object-fit: cover;
  border-radius: var(--radius-lg);
  aspect-ratio: 21 / 9;
  object-position: center;
  filter: contrast(1.02);
}

@media (max-width: 600px) {
  .page-opener-figure img {
    aspect-ratio: 4 / 3;
  }
}

/* ========================================
   PRODUCT CATEGORY PAGE — HERO
======================================== */
.cat-hero {
  position: relative;
  min-height: 70svh;
  display: flex;
  align-items: flex-end;
  padding-bottom: var(--space-xl);
  background: var(--near-black);
  overflow: hidden;
}

.cat-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: grayscale(30%);
  opacity: 0.35;
}

.cat-hero-gradient {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--near-black) 50%, transparent) 0%, transparent 40%),
    linear-gradient(180deg, transparent 50%, var(--near-black) 100%),
    radial-gradient(ellipse at 20% 80%, color-mix(in srgb, var(--accent) 12%, transparent) 0%, transparent 60%);
}

.cat-hero-content {
  position: relative;
  z-index: 2;
  grid-column: 1 / -1;
}

@media (min-width: 601px) {
  .cat-hero-content {
    grid-column: 2 / 18;
  }
}

.cat-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: var(--space-md);
  opacity: 0;
  transform: translateY(15px);
}

.cat-hero-breadcrumb a {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--white) 50%, transparent);
  transition: color var(--duration-fast) var(--ease-out);
}

.cat-hero-breadcrumb a:hover {
  color: var(--white);
}

.cat-hero-breadcrumb a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.cat-hero-breadcrumb .sep {
  font-size: var(--text-xs);
  color: color-mix(in srgb, var(--white) 25%, transparent);
}

.cat-hero-breadcrumb .current {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

.cat-hero-heading {
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--white);
  margin-bottom: var(--space-sm);
  opacity: 0;
  transform: translateY(30px);
}

.cat-hero-sub {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 300;
  color: color-mix(in srgb, var(--white) 60%, transparent);
  line-height: 1.6;
  max-width: 38rem;
  opacity: 0;
  transform: translateY(20px);
}

/* ========================================
   PRODUCT CATEGORY — INTRO / OVERVIEW
======================================== */
.cat-intro {
  padding: var(--space-xl) 0;
  background: var(--bg-light);
  position: relative;
}

/* Page opener flows into cat-intro — zero top padding */
.page-opener + .cat-intro {
  padding-top: 0;
}

.cat-intro-inner {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 601px) {
  .cat-intro-inner {
    grid-column: 2 / 23;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xl);
    align-items: start;
  }
}

.cat-intro-left {
  opacity: 0;
  transform: translateY(40px);
}

.cat-intro-heading {
  font-size: var(--text-2xl);
  color: var(--text-dark);
  margin-top: var(--space-sm);
}

.cat-intro-heading em {
  font-style: normal;
  color: var(--accent);
}

.cat-intro-right {
  opacity: 0;
  transform: translateY(40px);
}

.cat-intro-text {
  color: color-mix(in srgb, var(--text-dark) 70%, transparent);
  line-height: 1.7;
  margin-bottom: var(--space-md);
}

/* ========================================
   PRODUCT CATEGORY — PRODUCT TYPES GRID
======================================== */
.cat-products {
  padding: var(--space-xl) 0;
  background: var(--near-black);
  position: relative;
}

.cat-products-header {
  grid-column: 1 / -1;
  margin-bottom: var(--space-lg);
  opacity: 0;
  transform: translateY(30px);
}

@media (min-width: 601px) {
  .cat-products-header {
    grid-column: 2 / 14;
  }
}

.cat-products-heading {
  font-size: var(--text-2xl);
  color: var(--white);
  margin-top: var(--space-sm);
}

.cat-products-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

@media (min-width: 601px) {
  .cat-products-grid {
    grid-column: 2 / 23;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--grid-gap);
  }
}

/* Reuse .product-card styles from home.css for consistency */
.type-card {
  position: relative;
  min-height: 24rem;
  border-radius: 2px;
  overflow: hidden;
  cursor: pointer;
  opacity: 0;
  transform: translateY(40px);
  display: block;
}

.type-card-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: grayscale(100%);
  transition: transform var(--duration-slow) var(--ease-out),
              filter var(--duration-slow) var(--ease-out);
}

.type-card:hover .type-card-bg {
  transform: scale(1.06);
  filter: grayscale(0%);
}

.type-card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.type-card-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 30%, color-mix(in srgb, var(--near-black) 85%, transparent) 100%),
    color-mix(in srgb, var(--accent) 5%, transparent);
  transition: opacity var(--duration-med) var(--ease-out);
}

.type-card:hover .type-card-overlay {
  background:
    linear-gradient(180deg, transparent 20%, color-mix(in srgb, var(--near-black) 90%, transparent) 100%),
    color-mix(in srgb, var(--accent) 12%, transparent);
}

.type-card-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--space-md);
  z-index: 2;
}

.type-card-label {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.5rem;
}

.type-card-title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--white);
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
}

.type-card-desc {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--silver);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.type-card-arrow {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--white) 10%, transparent);
  backdrop-filter: blur(1rem);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(8px);
  transition: transform var(--duration-med) var(--ease-out),
              opacity var(--duration-med) var(--ease-out);
}

.type-card:hover .type-card-arrow {
  opacity: 1;
  transform: translateY(0);
}

.type-card-arrow svg {
  width: 1rem;
  height: 1rem;
  color: var(--white);
}

/* ========================================
   PRODUCT CATEGORY — CTA SECTION
======================================== */
.cat-cta {
  padding: var(--space-xl) 0;
  background: var(--bg-light);
  position: relative;
}

.cat-cta-inner {
  grid-column: 1 / -1;
  text-align: center;
  opacity: 0;
  transform: translateY(40px);
}

@media (min-width: 601px) {
  .cat-cta-inner {
    grid-column: 5 / 21;
  }
}

.cat-cta-heading {
  font-size: var(--text-2xl);
  color: var(--text-dark);
  margin-top: var(--space-sm);
  margin-bottom: var(--space-md);
}

.cat-cta-heading em {
  font-style: normal;
  color: var(--accent);
}

.cat-cta-text {
  font-size: var(--text-lg);
  color: var(--text-muted);
  max-width: 32rem;
  margin: 0 auto var(--space-lg);
}

.cat-cta-buttons {
  display: flex;
  gap: var(--space-sm);
  justify-content: center;
  flex-wrap: wrap;
}

/* ========================================
   PRODUCT DETAIL PAGE — HERO
======================================== */
.prod-hero {
  position: relative;
  min-height: 60svh;
  display: flex;
  align-items: flex-end;
  padding-bottom: var(--space-xl);
  background: var(--near-black);
  overflow: hidden;
}

.prod-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: grayscale(30%);
  opacity: 0.35;
}

.prod-hero-gradient {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--near-black) 50%, transparent) 0%, transparent 40%),
    linear-gradient(180deg, transparent 50%, var(--near-black) 100%);
}

.prod-hero-content {
  position: relative;
  z-index: 2;
  grid-column: 1 / -1;
}

@media (min-width: 601px) {
  .prod-hero-content {
    grid-column: 2 / 16;
  }
}

.prod-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: var(--space-md);
  flex-wrap: wrap;
  opacity: 0;
  transform: translateY(15px);
}

.prod-hero-breadcrumb a {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--white) 50%, transparent);
  transition: color var(--duration-fast) var(--ease-out);
}

.prod-hero-breadcrumb a:hover {
  color: var(--white);
}

.prod-hero-breadcrumb a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.prod-hero-breadcrumb .sep {
  font-size: var(--text-xs);
  color: color-mix(in srgb, var(--white) 25%, transparent);
}

.prod-hero-breadcrumb .current {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

.prod-hero-heading {
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--white);
  margin-bottom: var(--space-sm);
  opacity: 0;
  transform: translateY(30px);
}

.prod-hero-tagline {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 300;
  color: color-mix(in srgb, var(--white) 60%, transparent);
  line-height: 1.6;
  max-width: 36rem;
  opacity: 0;
  transform: translateY(20px);
}

/* ========================================
   PRODUCT DETAIL — DESCRIPTION SECTION
======================================== */
.prod-desc {
  padding: var(--space-xl) 0;
  background: var(--bg-light);
  position: relative;
}

.prod-desc-inner {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 601px) {
  .prod-desc-inner {
    grid-column: 2 / 23;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xl);
    align-items: start;
  }
}

.prod-desc-left {
  opacity: 0;
  transform: translateY(40px);
}

.prod-desc-heading {
  font-size: var(--text-2xl);
  color: var(--text-dark);
  margin-top: var(--space-sm);
  margin-bottom: var(--space-md);
}

.prod-desc-heading em {
  font-style: normal;
  color: var(--accent);
}

.prod-desc-text {
  color: color-mix(in srgb, var(--text-dark) 70%, transparent);
  line-height: 1.7;
  margin-bottom: var(--space-sm);
}

.prod-desc-right {
  opacity: 0;
  transform: translateY(40px);
}

.prod-desc-img {
  position: relative;
  border-radius: 2px;
  overflow: hidden;
}

.prod-desc-img img {
  width: 100%;
  height: auto;
  display: block;
  filter: grayscale(20%);
}

.prod-desc-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, color-mix(in srgb, var(--near-black) 15%, transparent));
}

/* ========================================
   PRODUCT DETAIL — FEATURES SECTION
======================================== */
.prod-features {
  padding: var(--space-xl) 0;
  background: var(--cream);
  position: relative;
}

.prod-features-header {
  grid-column: 1 / -1;
  margin-bottom: var(--space-xl);
  opacity: 0;
  transform: translateY(30px);
}

@media (min-width: 901px) {
  .prod-features-header {
    grid-column: 2 / 14;
  }
}

.prod-features-heading {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.025em;
  color: var(--near-black);
  margin-top: var(--space-sm);
  max-width: 20ch;
  text-wrap: balance;
}

.prod-features-heading em {
  font-style: italic;
  font-weight: 400;
  color: var(--accent);
}

.prod-features-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  counter-reset: feature;
}

@media (min-width: 901px) {
  .prod-features-grid {
    grid-column: 2 / -2;
    grid-template-columns: 1fr 1fr;
    column-gap: var(--space-2xl);
  }
}

.feature-card {
  background: transparent;
  padding: var(--space-lg) 0;
  position: relative;
  opacity: 0;
  transform: translateY(30px);
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: var(--space-md);
  row-gap: 0.4rem;
  align-items: start;
  counter-increment: feature;
  border-bottom: 1px solid color-mix(in srgb, var(--near-black) 12%, transparent);
  transition: padding-left var(--duration-med) var(--ease-out);
}

.feature-card::before {
  content: counter(feature, decimal-leading-zero);
  grid-row: 1 / 3;
  font-family: var(--font-mono);
  font-size: clamp(1.1rem, 1.4vw + 0.3rem, 1.4rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--accent);
  line-height: 1;
  padding-top: 0.25rem;
  min-width: 2.5rem;
  transition: transform var(--duration-med) var(--ease-out);
}

.feature-card:hover {
  padding-left: 0.75rem;
}

.feature-card:hover::before {
  transform: translateX(-0.25rem);
}

/* Hide last row's bottom border on each column (desktop 2-col) */
@media (min-width: 901px) {
  .feature-card:nth-last-child(-n+2):nth-child(odd):last-of-type,
  .feature-card:nth-last-child(1) {
    border-bottom: none;
  }
  .feature-card:nth-last-child(2) {
    border-bottom: none;
  }
}

@media (max-width: 900px) {
  .feature-card:last-child {
    border-bottom: none;
  }
}

/* Icon is now small and inline with the title row — purely decorative accent */
.feature-card-icon {
  display: none;
}

.feature-card-title {
  font-family: var(--font-heading);
  font-size: clamp(1.15rem, 1.4vw + 0.4rem, 1.4rem);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--near-black);
  margin: 0;
  grid-column: 2;
}

.feature-card-text {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 1.7;
  color: color-mix(in srgb, var(--near-black) 68%, transparent);
  margin: 0;
  grid-column: 2;
}

/* ========================================
   PRODUCT DETAIL — GALLERY SECTION
======================================== */
.prod-gallery {
  padding: var(--space-xl) 0;
  background: var(--bg-light);
  position: relative;
}

.prod-gallery-header {
  grid-column: 1 / -1;
  margin-bottom: var(--space-lg);
  opacity: 0;
  transform: translateY(30px);
}

@media (min-width: 601px) {
  .prod-gallery-header {
    grid-column: 2 / 14;
  }
}

.prod-gallery-heading {
  font-size: var(--text-2xl);
  color: var(--text-dark);
  margin-top: var(--space-sm);
}

.prod-gallery-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-sm);
}

@media (min-width: 601px) {
  .prod-gallery-grid {
    grid-column: 2 / 23;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--grid-gap);
  }

  .prod-gallery-grid .gallery-item:first-child {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
  }
}

.gallery-item {
  position: relative;
  border-radius: 2px;
  overflow: hidden;
  opacity: 0;
  transform: translateY(30px);
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(40%);
  transition: transform var(--duration-slow) var(--ease-out),
              filter var(--duration-slow) var(--ease-out);
}

.gallery-item:hover img {
  transform: scale(1.04);
  filter: grayscale(0%);
}

.gallery-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, color-mix(in srgb, var(--near-black) 20%, transparent));
  pointer-events: none;
}

.gallery-item:not(:first-child) {
  aspect-ratio: 4 / 3;
}

@media (min-width: 601px) {
  .gallery-item:first-child {
    aspect-ratio: auto;
  }
}

/* ========================================
   PRODUCT DETAIL — TECH SPECS
======================================== */
.prod-specs {
  padding: var(--space-xl) 0;
  background: var(--charcoal);
  position: relative;
}

.prod-specs-header {
  grid-column: 1 / -1;
  margin-bottom: var(--space-lg);
  opacity: 0;
  transform: translateY(30px);
}

@media (min-width: 601px) {
  .prod-specs-header {
    grid-column: 2 / 14;
  }
}

.prod-specs-heading {
  font-size: var(--text-2xl);
  color: var(--white);
  margin-top: var(--space-sm);
}

.prod-specs-table {
  grid-column: 1 / -1;
  opacity: 0;
  transform: translateY(30px);
}

@media (min-width: 601px) {
  .prod-specs-table {
    grid-column: 2 / 23;
  }
}

.spec-row {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--space-md);
  padding: 1.25rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--white) 8%, transparent);
}

.spec-row:first-child {
  border-top: 1px solid color-mix(in srgb, var(--white) 8%, transparent);
}

.spec-label {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

.spec-value {
  font-size: var(--text-sm);
  color: var(--silver);
  line-height: 1.6;
}

/* ========================================
   PRODUCT DETAIL — CTA
======================================== */
.prod-cta {
  padding: var(--space-xl) 0;
  background: var(--bg-light);
  position: relative;
}

/* Stack same-bg cream product sections tight — no double padding
   (page-opener keeps its natural gap to the first section so the figure breathes) */
.prod-desc + .prod-features,
.prod-features + .prod-gallery,
.prod-gallery + .prod-cta,
.prod-features + .prod-cta,
.prod-desc + .prod-gallery,
.prod-desc + .prod-cta {
  padding-top: 0;
}

.prod-cta-inner {
  grid-column: 1 / -1;
  text-align: center;
  opacity: 0;
  transform: translateY(40px);
}

@media (min-width: 601px) {
  .prod-cta-inner {
    grid-column: 5 / 21;
  }
}

.prod-cta-heading {
  font-size: var(--text-2xl);
  color: var(--text-dark);
  margin-top: var(--space-sm);
  margin-bottom: var(--space-md);
}

.prod-cta-heading em {
  font-style: normal;
  color: var(--accent);
}

.prod-cta-text {
  font-size: var(--text-lg);
  color: var(--text-muted);
  max-width: 32rem;
  margin: 0 auto var(--space-lg);
}

.prod-cta-buttons {
  display: flex;
  gap: var(--space-sm);
  justify-content: center;
  flex-wrap: wrap;
}

/* ========================================
   RESPONSIVE FINE-TUNING — PRODUCTS
======================================== */
@media (max-width: 600px) {
  .cat-hero {
    min-height: 55svh;
    padding-bottom: var(--space-lg);
  }

  .prod-hero {
    min-height: 50svh;
    padding-bottom: var(--space-lg);
  }

  .type-card {
    min-height: 18rem;
  }

  .spec-row {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .prod-gallery-grid .gallery-item:not(:first-child) {
    aspect-ratio: 16 / 10;
  }
}
