/* Blog layout follows garaninapps.com while keeping the JustMiniServer palette. */
.blog-index {
  padding: 2.75rem 0 4rem;
  scroll-margin-top: calc(var(--header-h) + 1rem);
}

.blog-index .section-title {
  margin-bottom: 0.75rem;
  font-size: 1.75rem;
  font-weight: 500;
}

.blog-index .section-description {
  max-width: 820px;
  margin-bottom: 2.5rem;
}

.blog-index .products-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 30px;
  margin-top: 24px;
}

.blog-index .product-card {
  display: flex;
  flex: 1 1 300px;
  flex-direction: column;
  max-width: 380px;
}

.blog-index .product-card__image-link {
  display: block;
}

.blog-index .product-card__title {
  font-size: 1.25rem;
  font-weight: 500;
}

.blog-index .product-card__descr {
  font-size: 0.875rem;
}

.blog-card {
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.blog-card:hover {
  box-shadow: 0 12px 28px rgba(30, 29, 30, 0.14);
  transform: translateY(-2px);
}

.blog-card__image {
  aspect-ratio: 4 / 3;
  background-color: #f3f3f3;
  background-position: center;
  background-size: cover;
}

.product-page--blog {
  padding: 2.5rem 0 4rem;
}

.product-page--blog .container {
  max-width: 880px;
}

.product-page--blog .product-toolbar {
  margin-bottom: 0.25rem;
}

.product-page--blog .product-toolbar .back-link {
  margin-bottom: 0;
  color: var(--text-muted);
}

.product-page--blog h1 {
  margin: 0.25rem 0 1rem;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 500;
}

.product-page--blog .lead {
  margin-bottom: 2rem;
  color: var(--text-muted);
  font-size: 1.1rem;
}

.product-page--blog time {
  display: block;
  margin-bottom: 0.5rem;
}

.product-page--blog .product-body {
  font-size: 1.02rem;
}

.product-page--blog .content p {
  margin: 0 0 1.1rem;
}

.product-page--blog .content h2 {
  margin-top: 2rem;
  color: var(--accent-on-light);
  font-size: 1.35rem;
  font-weight: 500;
}

.product-page--blog .content h3 {
  margin-top: 1.5rem;
  font-weight: 500;
}

.product-page--blog .product-body figure {
  margin: 1.5rem 0;
  text-align: center;
}

.product-page--blog .product-body figcaption {
  margin-top: 0.5rem;
  color: var(--text-muted);
  font-size: 0.875rem;
  text-align: center;
}

.product-page--blog .product-body img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 300px;
  margin: 1.5rem auto;
  object-fit: contain;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: zoom-in;
  transition: max-height 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.product-page--blog .product-body img:hover {
  max-height: min(70vh, 720px);
  box-shadow: var(--card-shadow);
}

.product-page--blog .product-body img.is-zoomed {
  position: fixed;
  inset: 50% auto auto 50%;
  z-index: 1001;
  max-width: calc(100vw - 48px);
  max-height: calc(100vh - 48px);
  margin: 0;
  background: var(--bg-page);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);
  transform: translate(-50%, -50%);
  cursor: zoom-out;
}

.image-zoom-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.42);
}

.video-embed {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 1.5rem 0 2rem;
  overflow: hidden;
  border-radius: var(--radius);
  box-shadow: var(--card-shadow);
}

.video-embed--vertical {
  width: min(100%, 360px);
  aspect-ratio: 9 / 16;
  margin-inline: auto;
}

.video-embed iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
