/* D-088 changelog (Changelog.astro). Index: beige hero with the feature heroes' ruled breadcrumb row and three facts,
   recent highlights as site cards (first one forest), then every update as dated rows grouped by month with a filter
   bar (product area, year). Entry: the same hero rhythm, body copy with a facts aside and a link to the product page
   that the update improves, newer/older navigation and more updates from the same area. Square geometry, one border
   colour, type roles from site-v7 (data-zamp-type); text only. */
.zcl { --zcl-line: var(--ds-border, #e6e1da); --zcl-beige: var(--ds-ground-beige, #f6f5f3); --zcl-forest: var(--ds-forest, #183e3d); --zcl-mint: var(--ds-mint, #afecdb); --zcl-ink2: var(--ds-ink-secondary, #323232); --zcl-cap: var(--ds-ink-caption, #838383); --zcl-g: clamp(20px, 4.2vw, 60px); color: #000; }
.zcl-wrap { max-width: 80rem; margin: 0 auto; padding: 0 var(--zcl-g); box-sizing: content-box; }
.zcl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.zcl :is(h1, h2, h3, p) { margin: 0; }
html body main .zcl :is(ul, ol), html body main .zcl li { margin-left: 0; padding-left: 0; }

/* Hero */
.zcl-hero { padding: 48px 0 72px; background: var(--zcl-beige); border-bottom: 1px solid var(--zcl-line); }
.zcl-top { margin-bottom: 56px; padding-bottom: 16px; border-bottom: 1px solid var(--zcl-line); }
.zcl-top .z-crumbs { margin: 0; font-size: 13px; }
.zcl-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: 64px; align-items: center; }
.zcl-hero h1 { max-width: 14ch; }
.zcl-hero [data-zamp-type="lead"] { max-width: 36rem; margin-top: 20px; }
/* Hero art (rev 3, user: abstract and simple): the site's green media stage (forest-stage tl + br squares at native
   size, as site-squares.css maps media stages) holding a column of log rows: a square marker and a bar each, the newest
   row in yellow and solid mint, older rows fading. Rows settle in once on load; static under reduced motion. */
.zcl-art { position: relative; display: grid; place-items: center; aspect-ratio: 23 / 20; background: var(--zcl-forest) url('/design-assets/squares/forest-stage-tl.svg') no-repeat 0 0; overflow: hidden; }
.zcl-art::after { content: ""; position: absolute; inset: 0; background: url('/design-assets/squares/forest-stage-br.svg') no-repeat 100% 100%; pointer-events: none; }
.zcl-art__log { position: relative; z-index: 1; display: grid; gap: 18px; width: 62%; margin: 0; padding: 0; list-style: none; }
.zcl-art__log li { display: grid; grid-template-columns: 16px 1fr; align-items: center; gap: 16px; opacity: calc(1 - var(--i) * .13); animation: zcl-row .7s cubic-bezier(.2, .7, .2, 1) calc(var(--i) * 90ms) both; }
.zcl-art__log i { width: 16px; height: 16px; box-shadow: inset 0 0 0 1px rgba(175, 236, 219, .55); }
.zcl-art__log span { width: var(--w); height: 10px; background: rgba(175, 236, 219, .28); }
.zcl-art__log li:first-child i { background: var(--ds-yellow, #ffec72); box-shadow: none; }
.zcl-art__log li:first-child span { background: var(--zcl-mint); }
@keyframes zcl-row { from { opacity: 0; transform: translateY(10px); } }

/* Section header */
.zcl-sh { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 32px; }
.zcl-sh a { font: 500 15px/1.3 var(--z-font-body); color: #000; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; white-space: nowrap; }

/* Highlights: site card geometry (square, 1px border, beige; the first is the forest card) */
.zcl-high { padding: 96px 0 24px; }
.zcl-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.zcl-card { display: flex; flex-direction: column; gap: 14px; height: 100%; min-height: 280px; box-sizing: border-box; padding: 32px; background: var(--zcl-beige); border: 1px solid var(--zcl-line); color: #000; text-decoration: none; transition: border-color .2s; }
.zcl-card:hover { border-color: #000; }
.zcl-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font: 500 13px/1.3 var(--z-font-body); color: #000; }
.zcl-card__meta time { margin-left: auto; font-weight: 400; color: var(--zcl-cap); }
.zcl-card__ico { display: grid; place-items: center; width: 28px; height: 28px; background: #fff; box-shadow: 0 0 0 1px var(--zcl-line); color: var(--zcl-forest); }
.zcl-card__ico svg { width: 15px; height: 15px; }
.zcl-card h3 { margin-top: 18px; }
.zcl-card__x { font: 400 16px/1.5 var(--z-font-body); color: var(--zcl-ink2); }
.zcl-card__go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 12px; font: 500 15px/1.3 var(--z-font-body); }
.zcl-card__go i, .zcl-row__go, .zcl-side__more i { display: inline-grid; width: 16px; height: 16px; }
.zcl-card__go svg, .zcl-row__go svg, .zcl-side__more i svg { width: 16px; height: 16px; }
.zcl-card--dark { background: var(--zcl-forest); border-color: var(--zcl-forest); color: #fff; }
.zcl-card--dark:hover { border-color: var(--zcl-mint); }
.zcl-card--dark .zcl-card__meta { color: var(--zcl-mint); }
.zcl-card--dark .zcl-card__meta time, .zcl-card--dark .zcl-card__x { color: rgba(255, 255, 255, .8); }
.zcl-card--dark .zcl-card__ico { background: transparent; box-shadow: 0 0 0 1px rgba(175, 236, 219, .4); color: var(--zcl-mint); }
html body main .zcl-card--dark h3, html body main .zcl-card--dark .zcl-card__go { color: #fff !important; }
html body main .zcl-card--dark .zcl-card__x { color: rgba(255, 255, 255, .8) !important; }

/* Log: filter bar, months, rows */
.zcl-log { padding: 72px 0 var(--z-space-section, 120px); }
.zcl-bar { position: sticky; top: 0; z-index: 3; display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 8px; padding: 16px 0; background: #fff; border-bottom: 1px solid #000; }
.zcl-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.zcl-chip, .zcl-years button { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px; border: 1px solid var(--zcl-line); border-radius: 0; background: #fff; font: 500 14px/1 var(--z-font-body); color: #000; cursor: pointer; transition: background-color .15s, border-color .15s; }
.zcl-chip span { font-weight: 400; color: var(--zcl-cap); }
.zcl-chip:hover, .zcl-years button:hover { border-color: #000; }
.zcl-chip[aria-pressed="true"], .zcl-years button[aria-pressed="true"] { background: #000; border-color: #000; color: #fff; }
.zcl-chip[aria-pressed="true"] span { color: rgba(255, 255, 255, .7); }
.zcl-chip:focus-visible, .zcl-years button:focus-visible { outline: 2px solid var(--zcl-forest); outline-offset: 2px; }
.zcl-years { display: flex; flex: none; }
.zcl-years button + button { margin-left: -1px; }
.zcl-month { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 0 32px; border-bottom: 1px solid var(--zcl-line); }
.zcl-month[hidden], .zcl-rows li[hidden] { display: none; }
.zcl-month__h { position: sticky; top: 92px; align-self: start; display: flex; flex-direction: column; gap: 6px; padding: 28px 0; }
.zcl-month__h span { font: 400 14px/1.3 var(--z-font-body); color: var(--zcl-cap); }
.zcl-rows { margin: 0; padding: 0; list-style: none; }
.zcl-rows li + li { border-top: 1px solid var(--zcl-line); }
.zcl-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) minmax(0, 220px) 16px; gap: 24px; align-items: start; padding: 28px 16px; margin: 0 -16px; color: #000; text-decoration: none; transition: background-color .15s; }
.zcl-row:hover { background: var(--zcl-beige); }
.zcl-row:focus-visible { outline: 2px solid var(--zcl-forest); outline-offset: -2px; }
.zcl-row time { display: flex; flex-direction: column; gap: 2px; padding-top: 3px; font: 500 14px/1.3 var(--z-font-body); color: #000; }
.zcl-row time small { font-weight: 400; color: var(--zcl-cap); font-size: 13px; }
.zcl-row__t { display: flex; flex-direction: column; gap: 6px; }
.zcl-row__t b { font: 500 18px/1.35 var(--z-font-body); color: #000; }
.zcl-row__t span { font: 400 16px/1.5 var(--z-font-body); color: var(--zcl-ink2); }
.zcl-row__tags { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 2px; }
.zcl-row__go { padding-top: 4px; color: var(--zcl-cap); transition: color .15s, transform .15s; }
.zcl-row:hover .zcl-row__go { color: #000; transform: translateX(3px); }
.zcl-tag { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 9px 0 7px; background: #fff; border: 1px solid var(--zcl-line); font: 500 12px/1 var(--z-font-body); color: #000; text-decoration: none; white-space: nowrap; }
.zcl-tag i { display: inline-grid; width: 13px; height: 13px; color: var(--zcl-forest); }
.zcl-tag i svg { width: 13px; height: 13px; }
.zcl-empty { padding: 48px 0; font: 400 16px/1.5 var(--z-font-body); color: var(--zcl-ink2); }
.zcl-empty button { padding: 0; border: 0; background: none; font: inherit; font-weight: 500; color: #000; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }

/* Entry */
.zcl-hero--entry { padding-bottom: 64px; }
.zcl-entry__head { max-width: 52rem; }
.zcl-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 24px !important; font: 500 14px/1.3 var(--z-font-body); color: #000; }
.zcl-meta time { margin-right: 4px; }
.zcl-entry__head h1 { max-width: 24ch; }
.zcl-entry__lead { max-width: 40rem; margin-top: 20px !important; }
.zcl-body { padding: 72px 0 96px; }
.zcl-entry { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 96px; align-items: start; }
.zcl-entry__copy { max-width: 42rem; }
.zcl-entry__copy > p + p { margin-top: 20px; }
html body main .zcl-entry__copy [data-zamp-type="body"] { font-size: 18px !important; line-height: 1.65 !important; }
.zcl-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--zcl-line); }
.zcl-pager__a { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px; border: 1px solid var(--zcl-line); color: #000; text-decoration: none; transition: border-color .15s; }
.zcl-pager__a:hover { border-color: #000; }
.zcl-pager__a--older { text-align: right; }
.zcl-pager__a small { font: 500 13px/1.3 var(--z-font-body); color: var(--zcl-cap); }
.zcl-pager__a b { font: 500 16px/1.4 var(--z-font-body); }
.zcl-side { position: sticky; top: 100px; display: grid; gap: 16px; }
.zcl-side dl { margin: 0; border-top: 1px solid #000; }
.zcl-side dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--zcl-line); }
.zcl-side dt { font: 400 14px/1.4 var(--z-font-body); color: var(--zcl-ink2); }
.zcl-side dd { margin: 0; font: 500 14px/1.4 var(--z-font-body); color: #000; text-align: right; }
.zcl-side__more { display: grid; grid-template-columns: 40px minmax(0, 1fr) 16px; align-items: center; gap: 14px; margin-top: 8px; padding: 20px; background: var(--zcl-forest); color: #fff; text-decoration: none; }
.zcl-side__ico { display: grid; place-items: center; width: 40px; height: 40px; box-shadow: 0 0 0 1px rgba(175, 236, 219, .4); color: var(--zcl-mint); }
.zcl-side__ico svg { width: 18px; height: 18px; }
.zcl-side__more > span:nth-child(2) { display: flex; flex-direction: column; gap: 2px; }
.zcl-side__more small { font: 500 12px/1.3 var(--z-font-body); color: var(--zcl-mint); }
.zcl-side__more b { font: 500 16px/1.3 var(--z-font-body); color: #fff; }
.zcl-side__more:hover b { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.zcl-side__all { justify-self: start; font: 500 15px/1.3 var(--z-font-body); color: #000; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.zcl-related { padding: 88px 0 var(--z-space-section, 120px); background: var(--zcl-beige); border-top: 1px solid var(--zcl-line); }
.zcl-related .zcl-rows { border-top: 1px solid #000; }
.zcl-related .zcl-row { grid-template-columns: 72px minmax(0, 1fr) 16px; }
.zcl-related .zcl-row__tags { display: none; }
.zcl-related .zcl-row:hover { background: #fff; }

@media (max-width: 991px) {
  .zcl-hero__grid, .zcl-entry { grid-template-columns: 1fr; gap: 40px; }
  .zcl-cards { grid-template-columns: 1fr; }
  .zcl-card { min-height: 0; }
  .zcl-month { grid-template-columns: 1fr; }
  .zcl-month__h { position: static; flex-direction: row; justify-content: space-between; align-items: baseline; padding: 32px 0 8px; }
  .zcl-side { position: static; }
}
@media (max-width: 767px) {
  .zcl-hero { padding: 28px 0 48px; }
  .zcl-top { margin-bottom: 32px; padding-bottom: 12px; }
  .zcl-high { padding-top: 64px; }
  .zcl-card { padding: 24px; }
  .zcl-bar { position: static; flex-direction: column; align-items: stretch; gap: 12px; }
  .zcl-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 calc(-1 * var(--zcl-g)); padding: 0 var(--zcl-g) 4px; scrollbar-width: none; }
  .zcl-chips::-webkit-scrollbar { display: none; }
  .zcl-chip { flex: none; }
  .zcl-row, .zcl-related .zcl-row { grid-template-columns: minmax(0, 1fr) 16px; gap: 10px 16px; padding: 22px 0; margin: 0; }
  .zcl-row time { grid-column: 1 / -1; flex-direction: row; gap: 6px; padding: 0; font-size: 13px; }
  .zcl-row__tags { grid-column: 1; grid-row: 3; }
  .zcl-row__go { grid-column: 2; grid-row: 2; }
  .zcl-row__t b { font-size: 17px; }
  .zcl-body { padding: 48px 0 64px; }
  html body main .zcl-entry__copy [data-zamp-type="body"] { font-size: 17px !important; }
  .zcl-pager { grid-template-columns: 1fr; }
  .zcl-pager__a--older { text-align: left; }
  .zcl-related { padding: 64px 0 88px; }
}
@media (prefers-reduced-motion: reduce) { .zcl-row, .zcl-row__go, .zcl-card { transition: none; } .zcl-art__log li { animation: none; } }
