/* Consistent frames for each image role; retain complete products and poster text. */
:root {
  --media-paper: #f8f6f0;
  --media-gap: clamp(16px, 2vw, 24px);
  --media-inset: clamp(10px, 1.2vw, 16px);
}

/* Equal-width showcases with image and text boundaries on the same baseline. */
.plus-v38-home-grid,
.plus-v38-toys-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--media-gap);
  align-items: stretch;
}
.plus-v38-home-grid > .plus-v38-home-card,
.plus-v38-toys-grid > .plus-v38-toys-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  grid-column: auto;
}
.plus-v38-home-card .plus-v38-home-visual,
.plus-v38-home-card:first-child .plus-v38-home-visual,
.plus-v38-home-card .plus-v38-home-visual.portrait,
.plus-v38-toys-card .plus-v38-toys-image,
.plus-v38-toys-card:last-child .plus-v38-toys-image {
  display: grid;
  place-items: center;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  background: var(--media-paper);
  padding: 0;
  box-sizing: border-box;
  flex: none;
}
.plus-v38-home-card .plus-v38-home-visual > img,
.plus-v38-toys-card .plus-v38-toys-image > img {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: cover;
  object-position: center;
  transform: none;
}
.plus-v38-home-description,
.plus-v38-toys-text {
  flex: 1;
}

/* Use matching 4:3 frames for business cards, category cards and food photos. */
.business-grid .business-card .art,
.company-business-card .company-business-pic,
.category-card .category-card-image,
.product-card .pic {
  display: grid;
  place-items: center;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 4 / 3;
  background: var(--media-paper);
  box-sizing: border-box;
}
.business-grid .business-card .art {
  padding: var(--media-inset);
}
body:has(.plus-v26-business-future) .business-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--media-gap);
}
body:has(.plus-v26-business-future) .business-grid .business-card:last-child {
  display: flex;
  grid-column: auto;
}
body:has(.plus-v26-business-future) .business-grid .business-card .art,
body:has(.plus-v26-business-future) .business-grid .business-card:last-child .art {
  height: auto;
  min-height: 0;
  aspect-ratio: 4 / 3;
}
.category-card-grid,
.chiffon-flavor-grid,
.product-grid,
.gift-examples {
  gap: var(--media-gap);
}
.business-grid .business-card .art > img,
.company-business-card .company-business-pic > img,
.category-card .category-card-image > img,
.product-card .pic > img {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: contain;
  object-position: center;
}
.chiffon-flavor-grid .chiffon-flavor-card > img,
.category-flavor-grid .category-flavor-card > img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  object-position: center;
  padding: var(--media-inset);
  background: var(--media-paper);
  box-sizing: border-box;
}
.category-card:hover .category-card-image > img,
.chiffon-flavor-card:hover > img,
.product-card:hover .pic > img,
.company-business-card:hover .company-business-pic > img {
  transform: none;
}
.category-detail-intro .chiffon-hero .category-hero-visual {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  background: var(--media-paper);
}

/* Square gift photos share a square frame on every screen size. */
.gift-examples .gift-example {
  display: flex;
  flex-direction: column;
}
.gift-examples .gift-example > img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  object-position: center;
  background: var(--media-paper);
  padding: var(--media-inset);
  box-sizing: border-box;
  flex: none;
}
.gift-example-info {
  flex: 1;
}

/* Image dimensions no longer depend on the length of the adjacent heading. */
.prod-hero {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 56px);
}
.prod-hero > * {
  min-width: 0;
}
.prod-hero h1 {
  overflow-wrap: anywhere;
}
.prod-hero .product-photo {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.prod-hero .product-photo > img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  padding: var(--media-inset);
  object-fit: contain;
  object-position: center;
  background: var(--media-paper);
  box-sizing: border-box;
}

/* Side-by-side brochures use landscape or portrait frames as a pair. */
.plus-v38-editorial-card {
  display: flex;
  flex-direction: column;
}
.plus-v38-editorial-image {
  display: grid;
  place-items: center;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  background: var(--media-paper);
  padding: var(--media-inset);
  box-sizing: border-box;
}
.plus-v38-editorial-image:has(> img[data-media-format="portrait"]) {
  aspect-ratio: 3 / 4;
}
.plus-v38-editorial-image > img {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: contain;
  object-position: center;
}
.plus-v38-editorial-text {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.plus-v38-caption-meta {
  margin-top: auto;
  padding-top: 16px;
}

/* Calm, proportional images beside descriptive copy. */
.v11-hero .business-hero-visual {
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 3;
  background: var(--media-paper);
}
.v11-hero .business-hero-visual > img {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: contain;
}
.split .split-art {
  display: grid;
  place-items: center;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  max-width: 560px;
  margin-inline: auto;
  background: var(--media-paper);
}
.split .split-art:has(> img[data-media-format="portrait"]) {
  max-width: 420px;
  aspect-ratio: 3 / 4;
}
.split .split-art > img {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: contain;
}
.plus-v38-feature-image > img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: contain;
}
.plus-v28-future-panel > img {
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
}

@media (max-width: 800px) {
  .plus-v38-home-grid,
  .plus-v38-toys-grid,
  body:has(.plus-v26-business-future) .business-grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 540px;
    margin-inline: auto;
  }
  .plus-v38-home-grid > .plus-v38-home-card:first-child,
  .plus-v38-toys-grid > .plus-v38-toys-card:last-child {
    grid-column: auto;
  }
}
@media (min-width: 1051px) {
  .chiffon-flavor-grid:has(> .chiffon-flavor-card:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: calc(66.6667% - var(--media-gap) / 3);
    margin-inline: auto;
  }
}
@media (max-width: 820px) {
  .prod-hero {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Full originals share an image height through proportional column widths.
   Landscape : portrait : landscape = 2 : 1 : 2; no empty square frames. */
#main .plus-v38-home-grid {
  grid-template-columns: minmax(0,2fr) minmax(0,1fr) minmax(0,2fr);
}
#main .plus-v38-toys-grid {
  grid-template-columns: minmax(0,.75fr) minmax(0,.8002853fr) minmax(0,1.5fr);
}
#main .plus-v38-home-card .plus-v38-home-visual,
#main .plus-v38-home-card:first-child .plus-v38-home-visual,
#main .plus-v38-home-card .plus-v38-home-visual.portrait,
#main .plus-v38-toys-card .plus-v38-toys-image,
#main .plus-v38-toys-card:last-child .plus-v38-toys-image {
  display: block;
  height: auto;
  aspect-ratio: auto;
  padding: 0;
  line-height: 0;
}
#main .plus-v38-home-card .plus-v38-home-visual > img,
#main .plus-v38-home-card .plus-v38-home-visual.portrait > img,
#main .plus-v38-toys-card .plus-v38-toys-image > img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  padding: 0;
  object-fit: contain;
  transform: none;
}
#main .plus-v38-home-card .plus-v38-home-description,
#main .plus-v38-toys-card .plus-v38-toys-text {
  padding: clamp(14px,1.6vw,24px);
}
#main .plus-v38-home-card .plus-v38-home-description h3,
#main .plus-v38-toys-card .plus-v38-toys-text h3 {
  min-height: 77px;
}
#main .plus-v38-home-card:nth-child(2) h3,
#main .plus-v38-toys-card h3 {
  font-size: clamp(17px,1.3vw,21px);
}
#main .prod-hero .product-photo > img[src*="plus-original-"],
#main .toy-link-box > img[src*="plus-original-"] {
  height: auto;
  aspect-ratio: auto;
  padding: 0;
  max-height: none;
  object-fit: contain;
}
@media(max-width:1100px) {
  #main .plus-v38-home-grid,
  #main .plus-v38-toys-grid {
    grid-template-columns: minmax(0,1fr);
    max-width: 540px;
    margin-inline: auto;
  }
  #main .plus-v38-home-card .plus-v38-home-description h3,
  #main .plus-v38-toys-card .plus-v38-toys-text h3 {
    min-height: 0;
    font-size: 22px;
  }
}
