/* ===========================================================================
   SolutionsCoding -- 対応モデル・連携 band, under the hero film.
   The AVATAR CODING product visual with NAL's AI character Avatar
   (assets/coding-key-visual-700/1400.webp from NAL-picture/Solution/
   Avatar_coding@2x.png; soft background, so 16px corners as on DataHub)
   beside the models / tools the product site itself names
   (avatar.nal.vn/coding, checked 2026-10-03; decisions.md D3, D4).
   Lives INSIDE the hero <section>: no new section, the page keeps its
   10-part rhythm. The picture never shows wider than 460px, so the logos in
   it stay sharp from a 700px source on 1x and stay acceptable on 2x screens.
   Entrance, once (latch: coding-sections.js): kicker, line, then the 3 rows
   rise in reading order; the picture rises a little later and slower. Kept
   quiet on purpose: the hero film right above is the moving part.
   =========================================================================== */
.cd-eco { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 24px; align-items: center; padding-top: clamp(28px, 3vw, 40px); padding-bottom: clamp(40px, 4.2vw, 60px); border-top: 1px solid var(--line); }
@media (min-width: 900px) { .cd-eco { grid-template-columns: minmax(0, 1fr) minmax(0, 460px); column-gap: clamp(40px, 5vw, 80px); } }
.cd-eco__k { margin: 0 0 12px; font-size: 13px; font-weight: 700; letter-spacing: 0.2em; color: #B8531A; }
.cd-eco__h { margin: 0 0 20px; max-width: 30em; font-size: clamp(18px, 1.8vw, 22px); font-weight: 700; line-height: 1.6; color: var(--navy); text-wrap: pretty; }
.cd-eco__dl { margin: 0; max-width: 34em; }
.cd-eco__dl > div { display: grid; grid-template-columns: 7em minmax(0, 1fr); column-gap: 16px; padding: 12px 0; border-top: 1px solid var(--line); }
.cd-eco__dl > div:last-child { border-bottom: 1px solid var(--line); }
.cd-eco__dl dt { padding-top: 10px; font-size: 13px; font-weight: 700; line-height: 1.85; color: var(--muted); }   /* centred on the 44px tile row */
.cd-eco__dl dd { margin: 0; }
/* one quiet tile per name: the brand's official logo (assets/logos, unaltered
   artwork, frame trimmed to the artwork) or plain text where no logo exists.
   --h balances each logo by eye: lowercase or light wordmarks a little larger,
   heavy ones smaller, so the row reads even. */
/* a 2-column grid in every row: equal tiles line up across the 3 rows, and the
   4 models sit 2 + 2 instead of breaking 3 + 1 */
.cd-eco__chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-width: 420px; margin: 0; padding: 0; list-style: none; }
.cd-eco__chips li { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); box-shadow: 0 1px 2px rgba(16, 42, 67, 0.05); font-size: 14px; font-weight: 700; letter-spacing: 0.01em; color: var(--navy); white-space: nowrap; }
.cd-eco__chips img { display: block; width: auto; max-width: 100%; height: var(--h, 20px); object-fit: contain; }   /* the long Claude Code lockup shrinks to fit a phone-width tile */
/* the 4 models are examples: an open, dashed row under them says there are more */
.cd-eco__chips .cd-eco__more { grid-column: 1 / -1; gap: 6px; border-style: dashed; border-color: #B7C4D1; background: none; box-shadow: none; font-size: 13px; color: var(--muted); }
/* tools: the MCP tile sits beside ChatOps, two lines (what + examples, words only) */
.cd-eco__chips .cd-eco__more--side { grid-column: auto; flex-direction: column; gap: 0; padding: 6px 12px; line-height: 1.45; text-align: center; white-space: normal; }
.cd-eco__more small { font-size: 13px; font-weight: 500; }
.cd-eco__more--side > span > [aria-hidden] { margin-right: 5px; }
.cd-eco__fig { justify-self: center; width: 100%; max-width: 460px; margin: 0; }
.cd-eco__fig img { display: block; width: 100%; height: auto; border-radius: 16px; }   /* the mascot key visual keeps its soft background (as SolutionsDataHub) */
@media (max-width: 599.98px) {
  .cd-eco__dl > div { grid-template-columns: minmax(0, 1fr); row-gap: 6px; }
  .cd-eco__dl dt { padding-top: 0; }
}

/* entrance: start state only under html.cd-motion before the latch; transitions only after it */
html.cd-motion .cd-eco[data-cd-latch]:not(.cd-seen) :is(.cd-eco__k, .cd-eco__h, .cd-eco__dl > div) { opacity: 0; transform: translateY(12px); }
html.cd-motion .cd-eco[data-cd-latch]:not(.cd-seen) .cd-eco__fig { opacity: 0; transform: translateY(20px); }
.cd-eco.cd-seen :is(.cd-eco__k, .cd-eco__h, .cd-eco__dl > div) { transition: opacity var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out); }
.cd-eco.cd-seen .cd-eco__fig { transition: opacity var(--dur-2) var(--ease-out) 200ms, transform var(--dur-2) var(--ease-out) 200ms; }
.cd-eco.cd-seen .cd-eco__h { transition-delay: 70ms; }
.cd-eco.cd-seen .cd-eco__dl > div:nth-child(1) { transition-delay: 160ms; }
.cd-eco.cd-seen .cd-eco__dl > div:nth-child(2) { transition-delay: 230ms; }
.cd-eco.cd-seen .cd-eco__dl > div:nth-child(3) { transition-delay: 300ms; }
.cd-eco.cd-seen .cd-eco__dl > div:nth-child(4) { transition-delay: 370ms; }
.cd-eco.cd-now, .cd-eco.cd-now * { transition: none !important; }
