/* Shared layout primitives for the CHEM005–CHEM015 editions. */
.chem-edition {
  --edition-font: "Avenir Next", "Segoe UI", Arial, sans-serif;
  --edition-display: var(--edition-font);
  --edition-weight: 650;
  --edition-title: clamp(36px, 5.2vw, 76px);
  --edition-deck-width: 58ch;
  --edition-paper: var(--wash);
  --photo-panel: var(--ink);
  --photo-ink: #fff;
  --photo-text: #edf2f2;
  --photo-height: clamp(425px, 41vw, 575px);
  --photo-focus: center;
  --slide-gap: clamp(22px, 4vw, 60px);
  --media-width: 56%;
  --caption-height: 235px;
  --catalog-gap: 20px;
  font-family: var(--edition-font);
}
.chem-edition h1,
.chem-edition h2,
.chem-edition h3 {
  font-family: var(--edition-display);
  font-weight: var(--edition-weight);
  overflow-wrap: anywhere;
}
.chem-edition .site-footer {
  background: var(--wash);
}
.chem-edition .theme-toggle,
.chem-edition .chem-navitem .chem-nav-quote,
.chem-edition .button {
  border-radius: var(--control-radius, var(--radius));
}
.chem-edition .button-primary,
:root[data-theme=dark] .chem-edition .button-primary {
  color: var(--action-ink, #fff);
  background: var(--action-fill, var(--brand-dark));
  border-color: transparent;
}
.chem-edition .button-primary:hover,
:root[data-theme=dark] .chem-edition .button-primary:hover {
  color: var(--action-ink, #fff);
  background: var(--action-hover, var(--action-fill, var(--brand-dark)));
  filter: brightness(.9);
}
.chem-edition .section-space {
  padding-block: clamp(48px, 7vw, 94px);
}
.chem-edition .section-heading {
  margin-bottom: clamp(22px, 4vw, 42px);
}
.chem-edition .section-heading h2 {
  max-width: 22ch;
}
.chem-edition .closing-section,
:root[data-theme=dark] .chem-edition .closing-section {
  color: #fff;
  background-color: var(--closing-fill, var(--brand-dark));
}
.chem-edition .closing-section p {
  color: #eff4f4;
}
.chem-edition .application-item:nth-child(n) {
  background: var(--wash);
  border: 1px solid var(--line);
}
.chem-edition .application-item:nth-child(2) {
  background: var(--sand);
}
.chem-edition .foundation {
  border-color: var(--line);
}
.chem-edition .section-banner {
  border-color: var(--line);
}
.edition-cover {
  position: relative;
  background: var(--edition-paper);
}
.edition-intro {
  min-width: 0;
  padding-block: clamp(26px, 4.5vw, 65px);
}
.edition-intro .eyebrow {
  margin-bottom: 14px;
  color: var(--brand);
}
.edition-intro h1 {
  max-width: 24ch;
  margin-bottom: 16px;
  font-size: var(--edition-title);
  line-height: 1.06;
  letter-spacing: -.055em;
  text-wrap: balance;
}
.edition-deck {
  max-width: var(--edition-deck-width);
  font-size: clamp(15px, 1.4vw, 19px);
  margin-bottom: 22px;
}
.edition-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 22px;
}
.edition-actions .button {
  min-height: 44px;
  padding: 9px 15px;
  gap: 11px;
}
.edition-actions .text-link {
  padding-block: 6px;
}
.edition-split,
.edition-front {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  align-items: center;
  gap: var(--slide-gap);
  padding-block: clamp(24px, 4.2vw, 64px);
}
.edition-split .edition-intro,
.edition-front .edition-intro {
  padding-block: 10px;
}
.edition-front {
  grid-template-columns: minmax(0, 1fr) minmax(210px, 26%);
}
.edition-cover .hero-carousel {
  color: var(--photo-ink);
  background: var(--photo-panel);
  border-radius: var(--photo-radius, var(--radius));
}
.edition-cover .banner-track {
  height: var(--photo-height);
}
.edition-cover .banner-image {
  object-position: var(--photo-focus);
}
.edition-cover .banner-content {
  padding-bottom: 68px;
}
.edition-cover .banner-content h2 {
  max-width: 17ch;
  font-size: var(--slide-title, clamp(30px, 4vw, 62px));
  line-height: 1.1;
  margin-bottom: 12px;
  color: var(--photo-ink);
}
.edition-cover .banner-content .eyebrow {
  color: var(--slide-label, var(--photo-text));
  margin-bottom: 12px;
}
.edition-cover .banner-description {
  color: var(--photo-text);
  max-width: 46ch;
  margin-bottom: 16px;
  line-height: 1.55;
  font-size: clamp(14px, 1.25vw, 17px);
}
.edition-cover .banner-content .button {
  background: var(--slide-button, #fff);
  color: var(--slide-button-ink, #17252b);
  min-height: 44px;
  padding: 8px 15px;
  gap: 13px;
}
.edition-cover .banner-controls {
  gap: 8px;
  bottom: 14px;
}
.edition-cover .banner-dot {
  width: 23px;
}
.edition-cover .banner-dot:before,
.edition-cover .banner-dot[aria-current=true]:before {
  width: 20px;
}
.edition-cover .banner-pagination,
.edition-cover .banner-playback {
  gap: 5px;
}
.edition-cover .banner-counter {
  margin-right: 4px;
  color: var(--photo-ink);
}
.edition-cover .banner-playback > button {
  color: var(--photo-ink);
  width: 36px;
  height: 36px;
  border-radius: var(--control-radius, var(--radius));
  border-color: var(--slide-rule, #fff7);
  background: var(--slide-control, #13242a60);
}
.edition-cover .banner-playback > button:hover {
  background: var(--slide-control-hover, #ffffff2a);
}
.edition-cover .banner-dot:before {
  background: var(--slide-rule, #fff7);
}
.edition-cover .banner-dot[aria-current=true]:before {
  background: var(--photo-ink);
}
.edition-cover .banner-content .button:hover {
  color: var(--slide-button-ink, #17252b);
  background: var(--slide-button, #fff);
  filter: brightness(.9);
}
.edition-cover .banner-content .button:focus-visible,
.edition-cover .banner-controls button:focus-visible {
  outline-color: var(--photo-ink);
}
.edition-cover > .shell .banner-content,
.edition-cover > .shell .banner-controls {
  width: calc(100% - var(--slide-gap) * 2);
}
.edition-photo-left .banner-scrim,
.edition-photo-right .banner-scrim,
.edition-stacked .banner-scrim {
  display: none;
}
.edition-photo-left .banner-image,
.edition-photo-right .banner-image {
  width: var(--media-width);
}
.edition-photo-right .banner-image {
  inset-inline-start: auto;
}
.edition-photo-left .banner-image {
  inset-inline-end: auto;
}
.edition-cover.edition-photo-left .banner-content,
.edition-cover.edition-photo-left .banner-controls,
.edition-cover.edition-photo-right .banner-content,
.edition-cover.edition-photo-right .banner-controls {
  position: absolute;
  width: calc(100% - var(--media-width) - var(--slide-gap) * 2);
  margin: 0;
}
.edition-photo-left .banner-content,
.edition-photo-left .banner-controls {
  left: calc(var(--media-width) + var(--slide-gap));
  right: auto;
}
.edition-photo-right .banner-content,
.edition-photo-right .banner-controls {
  left: var(--slide-gap);
  right: auto;
}
.edition-stacked .banner-image {
  height: calc(100% - var(--caption-height));
  inset-block-end: auto;
}
.edition-stacked .banner-content {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: var(--caption-height);
}
.edition-catalog .collection-products {
  grid-template-columns: repeat(var(--catalog-columns, 4), minmax(0, 1fr));
  gap: var(--catalog-gap);
}
.edition-catalog .collection-product {
  grid-template-rows: auto 1fr;
  background: var(--catalog-surface, var(--paper));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: clip;
}
.edition-catalog .collection-product-copy {
  padding: clamp(13px, 1.9vw, 25px);
}
.edition-catalog .collection-product-copy h3 {
  font-size: clamp(18px, 2.05vw, 28px);
}
.edition-catalog .collection-product:hover {
  border-color: var(--brand);
}
@media (max-width: 900px) {
  .edition-split,
  .edition-front {
    grid-template-columns: minmax(0, 1fr);
  }
  .edition-cover .banner-track {
    height: var(--mobile-photo-height, 455px);
  }
  .edition-catalog .collection-products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .edition-photo-left,
  .edition-photo-right {
    --caption-height: 292px;
  }
  .edition-cover.edition-photo-left .banner-track,
  .edition-cover.edition-photo-right .banner-track {
    height: calc(clamp(185px, 42vw, 340px) + var(--caption-height));
  }
  .edition-photo-left .banner-image,
  .edition-photo-right .banner-image {
    width: 100%;
    height: calc(100% - var(--caption-height));
  }
  .edition-cover.edition-photo-left .banner-content,
  .edition-cover.edition-photo-left .banner-controls,
  .edition-cover.edition-photo-right .banner-content,
  .edition-cover.edition-photo-right .banner-controls {
    left: var(--slide-gap);
    width: calc(100% - var(--slide-gap) * 2);
  }
  .edition-photo-left .banner-content,
  .edition-photo-right .banner-content {
    height: var(--caption-height);
    bottom: 0;
  }
  .edition-cover .banner-content h2 {
    font-size: var(--mobile-slide-title, clamp(27px, 5vw, 42px));
  }
}
@media (max-width: 520px) {
  .edition-catalog .collection-products {
    grid-template-columns: minmax(0, 1fr);
  }
  .edition-cover .banner-counter {
    display: none;
  }
  .edition-cover .banner-pagination,
  .edition-cover .banner-playback {
    gap: 4px;
  }
  .edition-cover .banner-playback > button {
    width: 34px;
  }
}
