/* Catalogs page — full-bleed collage cards */

.catalogs-page {
  width: 100%;
}

.catalog-card {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #fff;
}

.catalog-card__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.catalog-card__blur {
  position: absolute;
  inset: -8%;
  width: 116%;
  height: 116%;
  object-fit: cover;
  object-position: center;
  filter: blur(28px) saturate(1.1);
  transform: scale(1.08);
}

.catalog-card__empty {
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, #2c3e50 0%, #1a252f 55%, #0f161c 100%);
}

.catalog-card__collage {
  position: absolute;
  inset: 0;
  display: grid;
  gap: 6px;
  padding: 6px;
}

.catalog-card__cell {
  position: relative;
  overflow: hidden;
  min-height: 0;
}

.catalog-card__cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* 1 photo — centered panel, blur fills the rest */
.catalog-card__collage--n1 {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  place-items: center;
  padding: 8vh 10vw;
}

.catalog-card__collage--n1 .catalog-card__cell {
  width: min(72vw, 920px);
  height: min(58vh, 620px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

/* 2 photos — split, with outer margin so blur peeks through */
.catalog-card__collage--n2 {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
  padding: 6vh 4vw;
}

/* 3 photos — large left + two stacked right */
.catalog-card__collage--n3 {
  grid-template-columns: 1.4fr 1fr;
  grid-template-rows: 1fr 1fr;
  padding: 4vh 3vw;
}

.catalog-card__collage--n3 .catalog-card__cell:first-child {
  grid-row: 1 / -1;
}

/* 4 photos — 2×2 */
.catalog-card__collage--n4 {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  padding: 3vh 2vw;
}

/* 5+ photos — responsive mosaic; blur shows in gaps / sparse areas */
.catalog-card__collage--many {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  grid-auto-rows: minmax(28vh, 1fr);
  padding: 2vh 1.5vw;
}

.catalog-card__veil {
  position: absolute;
  inset: 0;
  /* Soft vignette — keep collage vivid, darken only the center reading zone */
  background:
    radial-gradient(
      ellipse 55% 45% at 50% 50%,
      rgba(6, 10, 16, 0.55) 0%,
      rgba(6, 10, 16, 0.28) 55%,
      rgba(6, 10, 16, 0.12) 100%
    );
  z-index: 1;
}

.catalog-card__content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 2.25rem clamp(1rem, 3vw, 2rem);
  width: min(92vw, 48rem);
  max-width: 48rem;
  box-sizing: border-box;
  border-radius: 4px;
  background: rgba(12, 16, 22, 0.42);
  backdrop-filter: blur(14px) saturate(1.15);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.14),
    0 18px 50px rgba(0, 0, 0, 0.35);
}

.catalog-card__title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 4.2vw, 3.1rem);
  font-weight: 600;
  letter-spacing: 0.03em;
  margin: 0 0 0.85rem;
  color: #fff !important;
  line-height: 1.15;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
  text-shadow:
    0 1px 0 rgba(0, 0, 0, 0.35),
    0 2px 24px rgba(0, 0, 0, 0.55),
    0 0 40px rgba(255, 255, 255, 0.12);
}

.catalog-card__motto {
  font-size: clamp(1rem, 2.2vw, 1.3rem);
  font-weight: 300;
  line-height: 1.5;
  margin: 0 auto 1.6rem;
  max-width: 34em;
  color: rgba(255, 248, 240, 0.92);
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.55);
}

.catalog-card__btn {
  display: inline-block;
  padding: 0.75rem 1.7rem;
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  background: rgba(255, 255, 255, 0.1);
  color: #fff !important;
  text-decoration: none !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.82rem;
  font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.catalog-card__btn:hover,
.catalog-card__btn:focus {
  background: #fff;
  color: #141a22 !important;
  border-color: #fff;
  transform: translateY(-1px);
}

/* Homepage catalog carousel */
.catalog-carousel .carousel-item {
  height: 70vh;
}

.catalog-carousel .catalog-card--home {
  min-height: 70vh;
  height: 70vh;
}

.catalog-carousel .carousel-indicators,
.catalog-carousel .carousel-control-prev,
.catalog-carousel .carousel-control-next {
  z-index: 5;
}

.catalog-carousel .carousel-indicators [data-bs-target] {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

@media (max-width: 767.98px) {
  .catalog-card {
    min-height: 62vh;
  }

  .catalog-carousel .carousel-item,
  .catalog-carousel .catalog-card--home {
    min-height: 62vh;
    height: 62vh;
  }

  .catalog-card__content {
    margin: 0 1rem;
    padding: 1.6rem 1.25rem;
    width: min(92vw, 48rem);
  }

  .catalog-card__collage--n1 {
    padding: 6vh 6vw;
  }

  .catalog-card__collage--n1 .catalog-card__cell {
    width: 88vw;
    height: 42vh;
  }

  .catalog-card__collage--n2,
  .catalog-card__collage--n3,
  .catalog-card__collage--n4 {
    padding: 2vh 1.5vw;
    gap: 4px;
  }

  .catalog-card__collage--n3 {
    grid-template-columns: 1fr;
    grid-template-rows: 1.2fr 0.8fr 0.8fr;
  }

  .catalog-card__collage--n3 .catalog-card__cell:first-child {
    grid-row: auto;
  }
}
