/* Editorial image system. Photographs bleed to the frame; logos have an inset.
   A source is never stretched. Expanded views always show the untouched file. */
.story-image-link, .row-image, .feature-photo {
  position: relative;
  overflow: hidden;
  background: #fff;
}
.story-image-link, .row-image, .related-grid .story-image-link {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
}
.story-image, .row-image img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.story-image-link:hover .story-image { filter: brightness(.98); }
.story-row {
  grid-template-columns: 63px minmax(0, 1fr) 100px 180px;
  padding-block: 12px;
}
.feature-photo { height: auto; aspect-ratio: 3 / 2; max-height: 680px; }
.feature-photo > .image-zoom { display: block; width: 100%; height: 100%; }
.article-feature .feature-photo > img,
.article-feature .image-zoom > img {
  display: block;
  width: 100%; height: 100%;
  max-height: none;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
  padding: 0;
}
/* Documents and inline images span their column at native proportions, with
   no fixed-height matte and no hidden document text. */
.article-content .report-photo, .article-content .kg-image-card { background: transparent; }
.article-content .report-photo img, .article-content .kg-image-card img {
  display: block;
  width: 100%; max-width: 100%; height: auto; max-height: none;
  object-fit: contain;
}
.article-content .report-photo figcaption,
.article-content .kg-image-card figcaption { background: var(--paper); }
.image-viewer > img { object-fit: contain; }
.story-image-link .image-brand { width: 105px; padding: 8px 10px; }

/* Identity panels: identical proportional clear space in every card. Only the
   main image is matched; photo-overlay logos keep their own smaller badge. */
.story-image[src*="logo"], .row-image img[src*="logo"] {
  object-fit: contain;
  padding: 16%;
}
.feature-photo:has(>img[src*="logo"], >.image-zoom>img[src*="logo"]) {
  height: clamp(220px, 26vw, 360px);
  aspect-ratio: auto;
}
.article-feature .feature-photo > img[src*="logo"],
.article-feature .image-zoom > img[src*="logo"] {
  object-fit: contain;
  padding: 7% 23%;
}

/* Company reporting: a compact identity, an intact archival photograph and a
   modest portfolio beside the company guide. These are not product launches. */
.article[data-story="pentel-becomes-astrum"] .feature-photo {
  height: clamp(150px, 18vw, 230px);
}
.article[data-story="pentel-becomes-astrum"] .feature-photo img[src*="logo"] {
  padding: 30px 22%;
}
.article[data-story="pentel-becomes-astrum"] .company-history-photo {
  max-width: 620px;
  margin-inline: auto;
}
.article[data-story="pentel-becomes-astrum"] .company-context {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 270px);
  gap: 28px;
  align-items: start;
  margin-block: 28px;
}
.article[data-story="pentel-becomes-astrum"] .company-context-copy p {
  font-size: 19px;
  line-height: 1.6;
  margin-top: 0;
}
.article[data-story="pentel-becomes-astrum"] .company-portfolio {
  width: 100%;
  margin: 0;
}
.article[data-story="pentel-becomes-astrum"] .company-context figcaption {
  font-size: 12px;
  line-height: 1.5;
}
@media (max-width: 620px) {
  .article[data-story="pentel-becomes-astrum"] .company-context {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
  .article[data-story="pentel-becomes-astrum"] .company-context-copy p {
    font-size: 18px;
  }
}

/* Landscape compositions for unlabelled studio packshots. Rotation is a page
   presentation only; no generated pixels or changes to the source products. */
:is([data-story="rhodia-script-ten-years"],
    [data-story="loft-staedtler-autumn"],
    [data-story="staedtler-july-2026-prices"],
    [data-story="lamy-summer-pencil-colors"]) {
  --packshot-turn: 27deg;
  --packshot-scale: 1.12;
}
[data-story="rhodia-script-ten-years"] { --packshot-scale: 1.15; }
:is([data-story="rhodia-script-ten-years"],
    [data-story="loft-staedtler-autumn"],
    [data-story="staedtler-july-2026-prices"],
    [data-story="lamy-summer-pencil-colors"])
:is(.story-image, .row-image img, .feature-photo > img, .feature-photo .image-zoom > img) {
  object-fit: contain;
  transform: rotate(var(--packshot-turn)) scale(var(--packshot-scale));
}
/* Keep this lead compact without cutting either tip or cap. */
.featured-grid > [data-story="platinum-pro-use-171-pastel"]:first-child .story-image-link { aspect-ratio: 16 / 9; }
.featured-grid > [data-story="platinum-pro-use-171-pastel"]:first-child .story-image {
  object-fit: contain;
  transform: rotate(20deg) scale(1.08);
}
/* Printed product labels remain upright and visible on this press sheet. */
[data-story="iwi-fusion-japan"] :is(.story-image, .row-image img) { object-fit: contain; }
[data-story="uni-jetstream-single-exchange"] :is(.story-image, .row-image img, .feature-photo img) {
  object-fit: contain; padding: 5%;
}
/* These original press sheets need their complete labelled composition in the
   article. Native height avoids both a letterbox and a crop through labels. */
:is([data-story="kitera-lift-colors"], [data-story="iwi-fusion-japan"],
    [data-story="ohto-refill-packaging-change"], [data-story="godzilla-sanrio-kurutoga"]) .feature-photo {
  aspect-ratio: auto; max-height: none;
}
:is([data-story="kitera-lift-colors"], [data-story="iwi-fusion-japan"],
    [data-story="ohto-refill-packaging-change"], [data-story="godzilla-sanrio-kurutoga"])
.feature-photo :is(img, .image-zoom) { height: auto; }
/* Sun-Star's mascot gets clear space; peripheral confetti can bleed. */
[data-story="sun-star-official-store-opens"] :is(.story-image, .row-image img, .feature-photo .image-zoom > img) { padding: 10%; }
/* The 849 originals have large transparent margins around horizontal products. */
.article.media-wide-product .article-content .kg-image-card img,
.article-content .report-photo--wide-product img {
  width: 100%; height: clamp(150px, 24vw, 280px); object-fit: cover;
}
.related-grid .story-image-link { margin: 0 0 12px; }
.related-grid .story-card { display: flex; flex-direction: column; }
.related-grid .story-copy { display: flex; flex-direction: column; flex: 1; }
.related-grid .byline { margin-top: auto; padding-top: 14px; }
/* A large article must not enlarge a small press photograph. Card geometry is
   unchanged; article figures use their real source resolution. */
[data-story="lamy-summer-pencil-colors"], [data-story="staedtler-92515-metal"] { --source-photo-width: 600px; }
[data-story="platinum-pro-use-171-pastel"], [data-story="platinum-official-store"] { --source-photo-width: 732px; }
[data-story="kitera-lift-colors"] { --source-photo-width: 768px; }
[data-story="godzilla-sanrio-kurutoga"] { --source-photo-width: 650px; }
[data-story="pilot-investment-plan"] { --source-photo-width: 770px; }
[data-story="pilot-elite95-colors"] { --source-photo-width: 843px; }
[data-story="uni-jetstream-single-exchange"], [data-story="loft-staedtler-autumn"],
[data-story="uni-zento-three-color"], [data-story="copic-multiliner-plus-parts"],
[data-story="staedtler-july-2026-prices"] { --source-photo-width: 750px; }
[data-story="pilot-july-price-list"] { --source-photo-width: 892px; }
.article[data-story] .article-feature { max-width: var(--source-photo-width, 100%); margin-inline: auto; }
[data-story="uni-jetstream-single-exchange"] .feature-photo { aspect-ratio: 750 / 151; }
[data-story="uni-jetstream-single-exchange"] .feature-photo img { padding: 0; }
/* Small original press assets stay sharp at their native display width.
   Horizontal pencils fill a shallow frame with both ends intact. */
[data-story="ohto-refill-packaging-change"] { --source-photo-width: 500px; }
[data-story="ohto-refill-packaging-change"] .article-content .kg-image-card {
  max-width: 500px;
  margin-inline: auto;
}
[data-story="hands-anniversary-pencils"] { --source-photo-width: 500px; }
[data-story="hands-anniversary-pencils"] .feature-photo { aspect-ratio: 3 / 1; }
[data-story="hands-anniversary-pencils"] .article-content .kg-image-card {
  max-width: 500px;
  margin-inline: auto;
}
[data-story="hands-anniversary-pencils"] .article-content .kg-image-card img {
  width: 100%; height: auto; aspect-ratio: 3 / 1; object-fit: cover;
}
@media (max-width: 950px) {
  .story-row { grid-template-columns: 45px minmax(0, 1fr) 72px 144px; }
}
@media (max-width: 650px) {
  .story-row { grid-template-columns: minmax(0, 1fr) 100px; }
  .related-grid .story-card { display: grid; }
  .related-grid .story-image-link { margin: 0; }
  .related-grid .byline { margin-top: 8px; padding-top: 0; }
  .featured-grid > .story-card:not(:first-child) .image-brand {
    width: 68px; left: 5px; bottom: 5px; padding: 5px;
  }
}

/* Native-size limits for the reviewed inline originals. No synthetic upscaling. */
.article-content .kg-image-card:has(img[src*="archive-nws-014-8.png"]),
.article-content .kg-image-card:has(img[src*="archive-nws-022-3.jpg"]),
.article-content .kg-image-card:has(img[src*="archive-nws-022-4.jpg"]),
.article-content .kg-image-card:has(img[src*="industry-lamy-meteora.jpg"]) { max-width: 600px; margin-inline: auto; }
.article-content .kg-image-card:has(img[src*="industry-jetstream-lot.png"]),
.article-content .kg-image-card:has(img[src*="industry-loft-black.jpg"]),
.article-content .kg-image-card:has(img[src*="industry-zento-lineup.png"]) { max-width: 750px; margin-inline: auto; }
.article-content .kg-image-card:has(img[src*="pentel-official-brand-range.jpg"]) { max-width: 790px; margin-inline: auto; }
.article-content .kg-image-card:has(img[src*="pentel-kerry-detail.jpg"]) { max-width: 900px; margin-inline: auto; }
.article-content .kg-image-card:has(img[src*="papermate.jpg"]) { max-width: 940px; margin-inline: auto; }
.article-content .kg-image-card:has(img[src*="kokuyo-lineup.jpg"]) { max-width: 985px; margin-inline: auto; }
.article-content .kg-image-card:has(img[src*="archive-nws-036-10.jpg"]),
.article-content .kg-image-card:has(img[src*="iwi-finishes.jpg"]) { max-width: 1000px; margin-inline: auto; }
.article-content .kg-image-card:has(img[src*="industry-kohaku-pencil.jpg"]) { max-width: 1013px; margin-inline: auto; }
.article-content .kg-image-card:has(img[src*="archive-nws-020-14.jpg"]),
.article-content .kg-image-card:has(img[src*="archive-nws-021-16.jpg"]),
.article-content .kg-image-card:has(img[src*="industry-platinum-pastel-detail.jpg"]) { max-width: 1024px; margin-inline: auto; }
.article-content .kg-image-card:has(img[src*="archive-doms-results.png"]) { max-width: 1062px; margin-inline: auto; }

/* September 28 reporting: art direction uses untouched company originals.
   Product ends remain in frame; each card retains the common 3:2 geometry. */
[data-story="caran-dache-mbf-gorillasharpener"] :is(.story-image,.row-image img,.feature-photo img) { object-position: 50% 75%; }
[data-story="sailor-october-2026-pencil-prices"] .kg-image-card { max-width: 400px; margin-inline: auto; }
[data-story="mg-shenyang-flagship-jiumu-refurbishment-2026"] { --source-photo-width: 1280px; }
[data-story="pelikan-m815-metal-striped-green-october-2026"] :is(.story-image,.row-image img,.feature-photo img) { padding: 6%; background: #f1f3ef; }
[data-story="pelikan-m815-metal-striped-green-october-2026"] .kg-image-card { max-width: 560px; margin-inline: auto; }
[data-story="caran-dache-mbf-gorillasharpener"] .kg-image-card { max-width: 560px; margin-inline: auto; }
[data-story="caran-dache-849-horizon-japan"] { --source-photo-width: 550px; }
[data-story="caran-dache-849-horizon-japan"] .feature-photo { aspect-ratio: 2190 / 2700; max-height: none; }
[data-story="caran-dache-849-horizon-japan"] .kg-image-card { max-width: 600px; margin-inline: auto; }
/* The press pack is upright with its box on the right. Cards present only the
   complete pair from the left of that unchanged original, rotated as a unit.
   The article retains the original lifestyle photograph and full pack image. */
[data-story="caran-dache-849-horizon-japan"] :is(.story-image-link,.row-image) { background: #d9dfda; }
[data-story="caran-dache-849-horizon-japan"] :is(.story-image,.row-image img) { visibility: hidden; }
[data-story="caran-dache-849-horizon-japan"] :is(.story-image-link,.row-image)::after {
  content: ""; position: absolute; width: 28%; height: 140%; left: 36%; top: -20%;
  background: url('../images/editorial/horizon-pack.png') 15% 50% / auto 100% no-repeat;
  transform: rotate(65deg); pointer-events: none;
}
/* This labelled square source is the only complete photograph of these two
   limited finishes. Keep its printed text upright and both pencils intact. */
[data-story="kitera-lift-colors"] :is(.story-image-link,.row-image) { background: linear-gradient(#e8e9e5,#dcded8); }
[data-story="kitera-lift-colors"] :is(.story-image,.row-image img) { object-fit: contain; }

/* Announcement galleries preserve the complete manufacturer composition. */
.article-content .announcement-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:28px 0; }
.article-content .announcement-gallery .kg-image-card { margin:0; display:flex; align-items:center; background:#fff; }
.article-content .announcement-gallery img { width:100%; height:auto; max-height:320px; object-fit:contain; }
.article[data-story="pentel-becomes-astrum"] .article-feature .feature-photo { height:clamp(150px,18vw,230px); }
.article[data-story="pentel-becomes-astrum"] .company-portfolio { max-width:270px; }
@media(max-width:620px) { .article-content .announcement-gallery {gap:12px;} }

/* Reviewed June price story: give the long instrument a deliberate shallow
   stage. Rotation affects presentation only; the zoom retains the original. */
.article[data-story="staedtler-july-2026-prices"] .feature-photo {
  aspect-ratio: 2.8 / 1;
}
.article[data-story="staedtler-july-2026-prices"] .feature-photo .image-zoom > img,
.article[data-story="staedtler-july-2026-prices"] .feature-photo > img {
  position: absolute;
  top: 50%; left: 50%;
  width: 100%; height: auto;
  transform: translate(-50%, -50%) rotate(27deg) scale(.72);
}
/* Complementary vertical announcement photographs keep their full framing,
   at a comfortable width alongside the reading column. */
.article[data-story="seasar-kerry-brown"] .kg-image-card { max-width: 540px; margin-inline: auto; }
.article[data-story="getnavi-2026-pencil-top-three"] .kg-image-card:has(img[src*="getnavi-2"]) { max-width: 520px; margin-inline: auto; }
