/* Shared photo and copy alignment. Keep the moving light outside the content. */
body { --photo-gutter: clamp(18px, 2vw, 26px); }
body main :is(.cards, .service-cards, .new-products) > .card,
body main .card.moving-frame:has(.card-info) {
  box-sizing: border-box;
  min-width: 0;
  padding: var(--photo-gutter) !important;
  overflow: visible;
}
body main :is(.cards, .service-cards, .new-products) > .card > .card-info,
body main .card.moving-frame > .card-info {
  box-sizing: border-box;
  padding: 22px 0 6px !important;
  margin: 0;
  min-width: 0;
  width: 100%;
  gap: 12px;
}
body main .card-info :is(h2, h3, p, .text-link) { max-width: 100%; overflow-wrap: break-word; }
body main .card-info h3 { line-height: 1.2; margin: 0 0 14px; }
body main .card-info .text-link { line-height: 1.5; white-space: normal; }
body main .new-products { align-items: start; gap: 28px; }
body main .new-products .catalog-photo {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: auto;
  margin: 0;
  padding: 0 !important;
  background: transparent;
}
body main .new-products .catalog-photo > img {
  display: block;
  width: 100%;
  height: auto !important;
  max-height: none !important;
  object-fit: contain;
}
body main .moving-frame:has(> figcaption) { padding: var(--photo-gutter) !important; }
body main .moving-frame > figcaption { margin: 0; padding: 16px 0 4px !important; }
body main .moving-frame > .orbit-light { padding: 1.5px; filter: drop-shadow(0 0 2px var(--frame-neon)); }

/* A native photo ratio removes the empty letterbox above product pictures. */
body main .product-original { width: 100%; min-width: 0; align-self: start; }
body main .product-original > img,
body main .product-photo-extra > img {
  display: block;
  width: 100%;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto;
  object-fit: contain;
}
body main > .hero:has(+ .section > .product-detail) {
  box-sizing: border-box;
  max-width: none;
  margin: 0 auto;
  padding: 30px 5% 12px !important;
  min-height: 0;
}
body main > .hero:has(+ .section > .product-detail) > :is(.crumb, .eyebrow, h1, p) {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 1080px;
  margin-inline: auto;
}
body main > .hero:has(+ .section > .product-detail) h1 {
  font-size: clamp(2rem, 4.5vw, 3.6rem);
  line-height: 1.16;
  margin-block: 0;
  text-wrap: balance;
}
body main > .hero:has(+ .section > .product-detail) .crumb { margin-bottom: 20px; }
body main > .hero:has(+ .section > .product-detail) .eyebrow { margin-bottom: 12px; }
body main > .hero + .section:has(> .product-detail) {
  padding-top: 12px !important;
  margin-top: 0;
}
body main .product-detail { align-items: start; }
body main .product-detail > div { min-width: 0; }
body main .product-detail .product-description { overflow-wrap: break-word; }

/* Relief belongs to the photographs, not to the writing or brand logos. */
body main img.photo-depth {
  image-rendering: auto;
  box-shadow: 0 2px 5px rgb(24 36 30 / 8%), 0 14px 28px -18px rgb(24 36 30 / 35%) !important;
}
body.mory-dark main img.photo-depth {
  box-shadow: 0 2px 6px rgb(0 0 0 / 22%), 0 16px 30px -19px rgb(75 171 220 / 35%) !important;
}
/* Opening content stays visible instead of reserving blank reveal regions. */
body main > .hero + .section.reveal-ready { opacity: 1; transform: none; }
@media (max-width: 800px) {
  body main > .hero:has(+ .section > .product-detail) { padding-top: 24px !important; }
  body main .product-detail { gap: 28px; }
  body main .product-original { max-width: none; margin: 0; }
  body main .new-products { gap: 26px; }
}
@media (max-width: 500px) {
  body main .new-products .card-info h3 { font-size: clamp(1.4rem, 6vw, 1.8rem); }
  body main .new-products .elixir-card-price { font-size: 1rem; margin: 0 0 16px; }
  body main > .hero:has(+ .section > .product-detail) .crumb { font-size: .875rem; margin-bottom: 18px; }
}
