/* Public frontend module library: image_text, cards, stats, process, faq, feed, logo_wall, cta. */
@font-face {
  font-family: "FontAwesome";
  font-style: normal;
  font-weight: normal;
  font-display: swap;
  src:
    url("../fonts/fontawesome-webfont.woff2") format("woff2"),
    url("../fonts/fontawesome-webfont.woff") format("woff"),
    url("../fonts/fontawesome-webfont.ttf") format("truetype");
}

.page-module .fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.page-module .fa-th-large::before { content: "\f009"; }
.page-module .fa-cog::before { content: "\f013"; }
.page-module .fa-book::before { content: "\f02d"; }
.page-module .fa-camera::before { content: "\f030"; }
.page-module .fa-picture-o::before { content: "\f03e"; }
.page-module .fa-star-o::before { content: "\f006"; }
.page-module .fa-check-circle-o::before { content: "\f05d"; }
.page-module .fa-briefcase::before { content: "\f0b1"; }
.page-module .fa-comments-o::before { content: "\f0e6"; }
.page-module .fa-lightbulb-o::before { content: "\f0eb"; }
.page-module .fa-file-text-o::before { content: "\f0f6"; }
.page-module .fa-folder-open-o::before { content: "\f115"; }
.page-module .fa-shield::before { content: "\f132"; }
.page-module .fa-cube::before { content: "\f1b2"; }
.page-module .fa-trophy::before { content: "\f091"; }
.page-module .fa-users::before { content: "\f0c0"; }
.page-module .fa-bullseye::before { content: "\f140"; }
.page-module .fa-map-marker::before { content: "\f041"; }
.page-module .fa-check-circle::before { content: "\f058"; }
.page-module .fa-cogs::before { content: "\f085"; }
.page-module .fa-star::before { content: "\f005"; }
.page-module .fa-handshake-o::before { content: "\f2b5"; }
.page-module .fa-headphones::before { content: "\f025"; }
.page-module .fa-clock-o::before { content: "\f017"; }

.page-module {
  --page-module-section-padding: var(--ui-section-space-standard, clamp(64px, 7vw, 100px));
  --page-module-header-gap: var(--ui-section-heading-gap, 64px);
  --page-module-grid-gap: var(--ui-grid-gap, clamp(16px, 2vw, 24px));
  --page-module-card-radius: var(--ui-card-radius, var(--theme-card-radius, 12px));
  --page-module-card-padding: var(--ui-card-padding, 24px);
  position: relative;
  width: 100%;
  box-sizing: border-box;
  padding: var(--page-module-section-padding) 0;
  color: var(--ui-color-text, var(--theme-text, #1e293b));
  background: var(--page-module-section-background, var(--ui-color-bg, #fff));
}

.page-module[data-module-radius="none"] {
  --page-module-card-radius: 0;
}

.page-module[data-module-radius="small"] {
  --page-module-card-radius: var(--ui-radius-sm, 8px);
}

.page-module[data-module-radius="medium"] {
  --page-module-card-radius: var(--ui-radius-md, 12px);
}

.page-module[data-module-radius="large"] {
  --page-module-card-radius: var(--ui-radius-xl, 24px);
}

.page-module,
.page-module * {
  box-sizing: border-box;
}

.page-module__container {
  width: 100%;
  max-width: var(--ui-container-max, 1280px);
  margin: 0 auto;
  padding: 0 var(--ui-container-gutter, 24px);
}

.page-module__header {
  margin: 0 auto var(--page-module-header-gap);
  text-align: var(--page-module-title-align, center);
}

.page-module[style*="--page-module-title-align:left"] .page-module__header {
  margin-right: auto;
  margin-left: 0;
}

.page-module[style*="--page-module-title-align:center"] .page-module__header {
  margin-right: auto;
  margin-left: auto;
}

.page-module[style*="--page-module-title-align:right"] .page-module__header {
  margin-right: 0;
  margin-left: auto;
}

.page-module__header > :empty {
  display: none;
}

.page-module__eyebrow {
  display: inline-block;
  margin-bottom: 16px;
  padding: 6px 14px;
  color: var(--page-module-eyebrow-color, var(--page-module-accent));
  background: color-mix(
    in srgb,
    var(--page-module-eyebrow-color, var(--page-module-accent)) 12%,
    transparent
  );
  border-radius: var(--ui-radius-xs, 4px);
  font-size: var(--page-module-eyebrow-size, var(--ui-type-eyebrow-size, 12px));
  font-weight: var(--ui-type-eyebrow-weight, 600);
  line-height: var(--ui-type-eyebrow-leading, 1.5);
  letter-spacing: var(--ui-type-eyebrow-tracking, .18em);
  text-transform: uppercase;
}

.page-module .page-module__title {
  margin: 0 0 16px;
  color: var(--page-module-title-color, var(--ui-color-text-strong, #0f172a));
  font-size: var(--page-module-title-size, var(--ui-type-section-title-size, clamp(28px, 4vw, 42px)));
  font-weight: var(--page-module-title-weight, var(--ui-type-section-title-weight, 700));
  line-height: var(--ui-type-section-title-leading, 1.35);
  letter-spacing: var(--ui-type-section-title-tracking, -.02em);
}

.page-module__intro {
  max-width: 720px;
  margin: 0 auto;
  color: var(--page-module-intro-color, var(--ui-color-text-muted, #64748b));
  font-size: var(--page-module-intro-size, var(--ui-type-section-description-size, 16px));
  font-weight: var(--ui-type-section-description-weight, 400);
  line-height: var(--ui-type-section-description-leading, 1.8);
}

.page-module__header[style*="left"] .page-module__intro,
.page-module[style*="--page-module-title-align:left"] .page-module__intro {
  margin-left: 0;
}

.page-module[style*="--page-module-title-align:right"] .page-module__intro {
  margin-right: 0;
  margin-left: auto;
}

.page-module__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--page-module-grid-gap);
}

.page-module__grid > .page-module-card {
  grid-column: span 12;
}

.page-module__grid[data-module-desktop-columns="2"] > .page-module-card {
  grid-column: span 6;
}

.page-module__grid[data-module-desktop-columns="3"] > .page-module-card {
  grid-column: span 4;
}

.page-module__grid[data-module-desktop-columns="4"] > .page-module-card {
  grid-column: span 3;
}

.page-module-card,
.page-module-faq__item {
  position: relative;
  isolation: isolate;
  min-width: 0;
  overflow: hidden;
  color: var(--ui-color-text-strong, var(--theme-dark, #0f172a));
  background: var(--page-module-card-background, var(--ui-card-background, var(--ui-color-bg, #fff)));
  border: var(--ui-card-border, 1px solid var(--ui-card-border-color, var(--ui-color-border, #e2e8f0)));
  border-radius: var(--page-module-card-radius);
  box-shadow: var(--ui-card-shadow, 0 1px 3px rgba(15, 23, 42, .07), 0 10px 28px rgba(15, 23, 42, .07));
  transition:
    transform var(--ui-card-duration, 300ms) var(--ui-ease, ease),
    border-color var(--ui-card-duration, 300ms) var(--ui-ease, ease),
    box-shadow var(--ui-card-duration, 300ms) var(--ui-ease, ease),
    background-color var(--ui-card-duration, 300ms) var(--ui-ease, ease);
}

a.page-module-card {
  text-decoration: none;
}

/* When a card has both a primary destination and independent secondary links,
   keep valid non-nested link semantics while allowing its empty surface to
   activate the primary destination. Keyboard access remains on the visible
   primary action; secondary links stay independently interactive. */
.page-module-card__click-target {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.page-module-card.has-card-click-target .page-module-card__body {
  z-index: 3;
  pointer-events: none;
}

.page-module-card.has-card-click-target .page-module-card__links,
.page-module-card.has-card-click-target .page-module-card__link {
  pointer-events: auto;
}

.page-module-card:focus-within,
.page-module-faq__item:focus-within {
  border-color: color-mix(in srgb, var(--page-module-accent) 42%, var(--ui-color-border, #e2e8f0));
}

/* Shared card-style presets. The Renderer exposes these through a neutral modifier
   and data-card-style so every page uses the same saved appearance setting. */
.page-module.is-card-style-simple .page-module-card,
.page-module.is-card-style-simple .page-module-faq__item {
  border-color: transparent;
  box-shadow: none;
}

.page-module.is-card-style-outline .page-module-card,
.page-module.is-card-style-outline .page-module-faq__item {
  border-color: var(--ui-card-border-color, var(--ui-color-border, #e2e8f0));
  box-shadow: var(--ui-shadow-xs, 0 1px 2px rgba(15, 23, 42, .05));
}

.page-module.is-card-style-soft .page-module-card,
.page-module.is-card-style-soft .page-module-card__body,
.page-module.is-card-style-soft .page-module-faq__item {
  background: var(
    --page-module-card-soft-background,
    color-mix(in srgb, var(--page-module-card-background, #fff) 93%, var(--page-module-accent) 7%)
  );
}

.page-module.is-card-style-soft .page-module-card,
.page-module.is-card-style-soft .page-module-faq__item {
  border-color: color-mix(in srgb, var(--page-module-accent) 16%, var(--ui-color-border, #e2e8f0));
  box-shadow: var(--ui-shadow-sm, 0 8px 20px rgba(15, 23, 42, .08));
}

.page-module.is-card-style-featured .page-module-card,
.page-module.is-card-style-featured .page-module-faq__item {
  border-color: color-mix(in srgb, var(--page-module-accent) 28%, var(--ui-color-border, #e2e8f0));
  box-shadow: var(--ui-shadow-md, 0 14px 34px rgba(15, 23, 42, .11));
}

.page-module-card__media {
  overflow: hidden;
  aspect-ratio: var(--page-module-image-ratio, 16 / 9);
  background: var(--ui-media-background, #eef2f6);
}

.page-module-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: var(--ui-media-object-fit, cover);
  transition: transform var(--ui-media-duration, 500ms) var(--ui-ease, ease);
}

.page-module-card__body {
  position: relative;
  isolation: isolate;
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  background: var(--page-module-card-background, var(--ui-color-bg, #fff));
}

.page-module-card__body > * {
  position: relative;
  z-index: 1;
}

.page-module-card__body::after,
.page-module-card--stat::after,
.page-module-card--process::after,
.page-module-faq__item::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--page-module-accent);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--ui-duration, 260ms) var(--ui-ease, ease);
}

.page-module .page-module-card__title {
  display: -webkit-box;
  margin: 0 0 10px;
  overflow: hidden;
  color: var(--page-module-card-title-color, var(--ui-color-text-strong, #0f172a));
  font-size: var(--page-module-card-title-size, var(--ui-type-card-title-size, 19px));
  font-weight: var(--page-module-card-title-weight, var(--ui-type-card-title-weight, 700));
  line-height: var(--ui-type-card-title-leading, 1.35);
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.page-module-card__description {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--page-module-card-description-color, var(--ui-color-text-muted, #64748b));
  font-size: var(--page-module-card-description-size, var(--ui-type-card-description-size, 14px));
  font-weight: var(--ui-type-body-weight, 400);
  line-height: var(--ui-type-body-leading, 1.75);
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--page-module-description-lines, 2);
}

.page-module.page-module--cards.is-description-unclamped .page-module-card__description,
.page-module.page-module--feed.is-description-unclamped .page-module-card__description,
.page-module.page-module--process.is-description-unclamped .page-module-card__description {
  display: block;
  overflow: visible;
  -webkit-line-clamp: initial;
}

.page-module-card__icon {
  display: inline-flex;
  width: var(
    --page-module-icon-holder-size,
    clamp(42px, calc(var(--page-module-icon-size, 22px) + 26px), 74px)
  );
  height: var(
    --page-module-icon-holder-size,
    clamp(42px, calc(var(--page-module-icon-size, 22px) + 26px), 74px)
  );
  margin-bottom: 22px;
  align-items: center;
  justify-content: center;
  color: var(--page-module-icon-color, var(--page-module-accent));
  background: color-mix(
    in srgb,
    var(--page-module-icon-color, var(--page-module-accent)) 11%,
    transparent
  );
  border-radius: calc(var(--page-module-card-radius) * .72);
  font-size: var(--page-module-icon-size, 22px);
}

.page-module-card__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--page-module-accent);
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--page-module-accent) 6%, #fff),
    color-mix(in srgb, var(--page-module-accent) 15%, #f8fafc)
  );
}

.page-module-card__placeholder i {
  font-size: clamp(28px, 3vw, 42px);
  opacity: .78;
}

.page-module-card__placeholder.is-placeholder {
  color: var(--ui-color-text-muted, #64748b);
  background: var(--ui-media-background, #eef2f6);
}

/* image_text */
.page-module__grid--image-text {
  gap: clamp(20px, 3vw, 34px);
}

.page-module--image-text.is-variant-split .page-module__grid--image-text {
  grid-template-columns: minmax(0, 1fr);
}

.page-module--image-text.is-variant-split .page-module-card--image-text {
  grid-column: 1 / -1;
}

.page-module-card--image-text {
  display: grid;
  min-height: 320px;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
  align-items: stretch;
}

.page-module-card--image-text .page-module-card__media {
  min-height: 320px;
}

.page-module-card--image-text .page-module-card__body {
  padding: clamp(28px, 4vw, 54px);
  align-items: flex-start;
  justify-content: center;
}

.page-module-card--image-text .page-module-card__title {
  margin-bottom: 14px;
}

.page-module-card--image-text .page-module-card__description {
  margin-bottom: 26px;
  line-height: 2;
  -webkit-line-clamp: initial;
}

.page-module-card--image-text.is-media-right .page-module-card__media {
  order: 2;
}

.page-module-card--image-text.is-layout-vertical {
  min-height: 0;
  grid-template-columns: 1fr;
}

.page-module-card--image-text.is-layout-vertical .page-module-card__media {
  min-height: 260px;
}

.page-module-card--image-text.is-layout-vertical .page-module-card__body {
  min-height: 200px;
  padding: clamp(24px, 3vw, 38px);
}

.page-module-card--image-text.is-layout-compact {
  min-height: 170px;
  grid-template-columns: minmax(118px, 180px) minmax(0, 1fr);
}

.page-module-card--image-text.is-layout-compact .page-module-card__media {
  min-height: 170px;
  aspect-ratio: auto;
}

.page-module-card--image-text.is-layout-compact .page-module-card__body {
  min-height: 170px;
  padding: 24px;
}

.page-module-card--image-text.is-layout-compact .page-module-card__description {
  margin-bottom: 18px;
  line-height: 1.7;
}

.page-module-card--image-text.is-layout-text {
  min-height: 0;
  grid-template-columns: 1fr;
}

.page-module-card--image-text.is-layout-text .page-module-card__body {
  min-height: 165px;
  padding: clamp(24px, 3vw, 38px);
}

.page-module-card--image-text.is-no-media {
  max-width: 920px;
  min-height: 0;
  margin-right: auto;
  margin-left: auto;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 860px);
  justify-content: center;
}

.page-module-card--image-text.is-no-media .page-module-card__body {
  align-items: center;
  text-align: center;
}

/* cards and feed */
.page-module-card--content,
.page-module-card--feed {
  display: flex;
  flex-direction: column;
}

.page-module-card--content .page-module-card__body,
.page-module-card--feed .page-module-card__body {
  min-height: 180px;
  padding: var(--page-module-card-padding);
}

.page-module-card--content.is-layout-horizontal,
.page-module-card--feed.is-layout-horizontal {
  min-height: 230px;
  flex-direction: row;
}

.page-module-card--content.is-layout-horizontal .page-module-card__media,
.page-module-card--feed.is-layout-horizontal .page-module-card__media {
  width: 42%;
  flex: 0 0 42%;
  aspect-ratio: auto;
}

.page-module-card--content.is-layout-horizontal .page-module-card__body,
.page-module-card--feed.is-layout-horizontal .page-module-card__body {
  min-height: 230px;
}

.page-module-card--content.is-layout-compact,
.page-module-card--feed.is-layout-compact {
  min-height: 150px;
  flex-direction: row;
}

.page-module-card--content.is-layout-compact .page-module-card__media,
.page-module-card--feed.is-layout-compact .page-module-card__media {
  width: 118px;
  flex: 0 0 118px;
  aspect-ratio: auto;
}

.page-module-card--content.is-layout-compact .page-module-card__body,
.page-module-card--feed.is-layout-compact .page-module-card__body {
  min-height: 150px;
  padding: 18px;
}

.page-module-card--content.is-layout-text .page-module-card__body,
.page-module-card--feed.is-layout-text .page-module-card__body {
  min-height: 165px;
}

.page-module-card__date {
  display: block;
  margin-bottom: 9px;
  color: var(--page-module-card-description-color, var(--ui-color-text-faint, #94a3b8));
  font-size: var(--ui-type-note-size, 13px);
  font-weight: var(--ui-type-note-weight, 400);
  line-height: var(--ui-type-note-leading, 1.6);
  font-style: normal;
  letter-spacing: .05em;
}

.page-module-card__eyebrow {
  display: block;
  margin-bottom: 8px;
  color: var(--page-module-accent);
  font-family: var(--ui-font-mono, monospace);
  font-size: var(--ui-type-eyebrow-size, 12px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.page-module-tags {
  display: flex;
  margin-bottom: 12px;
  flex-wrap: wrap;
  gap: var(--ui-tag-gap, 8px);
}

.page-module-tags__item {
  display: inline-flex;
  min-height: var(--ui-tag-height, 26px);
  padding: 3px var(--ui-tag-padding-x, 10px);
  align-items: center;
  color: var(--page-module-icon-color, var(--page-module-accent));
  background: color-mix(in srgb, var(--page-module-accent) 9%, #fff);
  border: 1px solid color-mix(in srgb, var(--page-module-accent) 20%, transparent);
  border-radius: var(--ui-tag-radius, var(--ui-radius-pill, 999px));
  font-size: var(--ui-tag-font-size, 12px);
  font-weight: var(--ui-tag-font-weight, 600);
  line-height: 1;
}

.page-module-card__links {
  display: flex;
  margin-top: auto;
  padding-top: 16px;
  flex-wrap: wrap;
  gap: 10px 16px;
}

.page-module--cards .page-module-card--content[data-card-content="related-links-only"] .page-module-card__body {
  min-height: 0;
}

.page-module--cards .page-module-card--content[data-card-content="related-links-only"] .page-module-card__title {
  display: none;
}

.page-module--cards .page-module-card--content[data-card-content="related-links-only"] .page-module-card__links {
  margin-top: 0;
  padding-top: 0;
}

.page-module-card__meta {
  display: flex;
  margin-bottom: 13px;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
}

.page-module-card__meta .page-module-tags,
.page-module-card__meta .page-module-card__date {
  margin-bottom: 0;
}

.page-module-card__model {
  --ui-entity-model-accent: var(--page-module-accent, var(--ui-color-accent));
  margin-top: 8px;
  margin-bottom: 2px;
}

/* Media cards */
.page-module--cards.is-variant-media .page-module-card--content {
  min-height: 100%;
}

.page-module--cards.is-variant-media .page-module-card__media {
  aspect-ratio: var(--page-module-image-ratio, 16 / 9);
}

.page-module--cards.is-variant-media .page-module-card__body {
  min-height: 0;
  padding: var(--page-module-card-padding);
}

.page-module--cards.is-variant-media .page-module-card__description {
  margin-bottom: 18px;
}

.page-module--cards.is-variant-media .page-module-card__links,
.page-module--cards.is-variant-selection .page-module-card__links,
.page-module--cards.is-variant-tags-icons .page-module-card__links {
  gap: 8px;
}

.page-module--cards.is-variant-media .page-module-link--secondary,
.page-module--cards.is-variant-selection .page-module-link--secondary,
.page-module--cards.is-variant-tags-icons .page-module-link--secondary,
.page-module--cards.is-variant-tags-icons .page-module-link--more {
  min-height: var(--ui-tag-height, 26px);
  padding: 3px var(--ui-tag-padding-x, 10px);
  color: var(--page-module-link-color, var(--page-module-accent));
  background: color-mix(in srgb, var(--page-module-accent) 8%, #fff);
  border: 1px solid color-mix(in srgb, var(--page-module-accent) 18%, transparent);
  border-radius: var(--ui-tag-radius, var(--ui-radius-pill, 999px));
  font-size: var(--ui-tag-font-size, 12px);
  font-weight: var(--ui-tag-font-weight, 600);
}

.page-module--cards.is-variant-tags-icons .page-module-link--more {
  color: var(--page-module-card-description-color, #64748b);
  background: var(--page-module-card-background, #fff);
  border-style: dashed;
}

.page-module--cards.is-variant-media .page-module-link--primary {
  margin-top: auto;
  padding-top: 20px;
}

@media (min-width: 1025px) {
  .page-module--cards.is-variant-media.is-description-hidden .page-module-card__body {
    min-height: 0;
    padding: clamp(20px, 2vw, 24px);
  }

  .page-module--cards.is-variant-media.is-description-hidden .page-module-card__links {
    padding-top: 12px;
  }

  .page-module--cards.is-variant-media.is-description-hidden .page-module-link--primary {
    padding-top: 14px;
  }
}

/* Numbered cards: a compact text hierarchy layered on the shared Card Base. */
.page-module--cards.is-variant-numbered .page-module-card--content {
  min-height: 0;
}

.page-module--cards.is-variant-numbered .page-module-card__body {
  min-height: 0;
  padding: 22px 22px 20px;
}

.page-module--cards.is-variant-numbered .page-module-card__body::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 0;
  width: 3px;
  background: var(--page-module-accent);
  opacity: .24;
  transform: scaleY(.36);
  transform-origin: top;
  transition:
    opacity var(--ui-duration, 260ms) var(--ui-ease, ease),
    transform var(--ui-duration, 260ms) var(--ui-ease, ease);
}

.page-module--cards.is-variant-numbered .page-module-card__number {
  position: absolute;
  top: 15px;
  right: 18px;
  color: color-mix(
    in srgb,
    var(--page-module-icon-color, var(--page-module-accent)) 16%,
    transparent
  );
  font-size: clamp(38px, calc(var(--page-module-icon-size, 22px) + 32px), 80px);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: .92;
  letter-spacing: -.065em;
  pointer-events: none;
  transition:
    color var(--ui-duration, 260ms) var(--ui-ease, ease),
    opacity var(--ui-duration, 260ms) var(--ui-ease, ease);
}

.page-module--cards.is-variant-numbered .page-module-card__icon {
  width: var(
    --page-module-numbered-icon-holder-size,
    clamp(34px, calc(var(--page-module-icon-size, 22px) + 14px), 52px)
  );
  height: var(
    --page-module-numbered-icon-holder-size,
    clamp(34px, calc(var(--page-module-icon-size, 22px) + 14px), 52px)
  );
  margin-bottom: 14px;
  color: var(--page-module-icon-color, var(--page-module-accent));
  background: color-mix(in srgb, var(--page-module-icon-color, var(--page-module-accent)) 9%, transparent);
  border: 1px solid color-mix(in srgb, var(--page-module-icon-color, var(--page-module-accent)) 19%, transparent);
  border-radius: calc(var(--page-module-card-radius) * .58);
  font-size: clamp(15px, calc(var(--page-module-icon-size, 22px) * .5 + 7px), 31px);
  transition:
    background-color var(--ui-duration, 260ms) var(--ui-ease, ease),
    border-color var(--ui-duration, 260ms) var(--ui-ease, ease);
}

.page-module--cards.is-variant-numbered .page-module-card__title {
  margin-bottom: 7px;
  padding-right: 58px;
}

.page-module--cards.is-variant-numbered .page-module-card__description {
  line-height: 1.62;
  -webkit-line-clamp: min(var(--page-module-description-lines, 4), 4);
}

.page-module--cards.is-variant-numbered .page-module-card__links {
  padding-top: 15px;
}

.page-module--cards.is-variant-selection .page-module__grid--cards {
  overflow: hidden;
  gap: 1px;
  padding: 1px;
  background: var(--ui-color-border, #e2e8f0);
  border-radius: var(--page-module-card-radius);
}

.page-module--cards.is-variant-selection .page-module-card--content {
  min-height: 0;
  background: var(--page-module-card-background, var(--ui-color-surface, #fff));
  border-radius: 0;
}

.page-module--cards.is-variant-selection .page-module-card__body {
  min-height: 0;
  padding: 30px 28px 26px;
}

.page-module--cards.is-variant-selection .page-module-card__media {
  display: none;
}

.page-module--cards.is-variant-selection .page-module-card__title {
  max-width: 100%;
  margin: 10px 0 18px;
  padding-right: 54px;
  color: var(--page-module-card-title-color, var(--ui-color-text-strong, #0f172a));
  font-size: var(--page-module-card-title-size, clamp(32px, 3.25vw, 48px));
  line-height: 1.02;
  letter-spacing: -.045em;
  -webkit-line-clamp: 2;
}

.page-module--cards.is-variant-selection .page-module-tags {
  order: -1;
}

.page-module--cards.is-variant-selection .page-module-tags__item {
  min-height: 0;
  padding: 0;
  color: var(--ui-color-text-faint, #94a3b8);
  background: transparent;
  border: 0;
  border-radius: 0;
  font-family: var(--ui-font-mono, monospace);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .07em;
}

.page-module--cards.is-variant-selection .page-module-card__description {
  max-width: none;
  padding-right: 0;
  color: var(--page-module-card-description-color, var(--ui-color-text-muted, #64748b));
  -webkit-line-clamp: min(var(--page-module-description-lines, 3), 3);
}

.page-module--cards.is-variant-selection .page-module-card__secondary-description {
  max-width: none;
  margin: 10px 0 0;
  padding: 10px 0 0;
  color: var(--page-module-card-description-color, var(--ui-color-text-muted, #64748b));
  border-top: 1px solid var(--ui-color-border, #e2e8f0);
  font-size: var(--page-module-card-description-size, var(--ui-type-card-description-size, 14px));
  line-height: var(--ui-type-body-line-height, 1.7);
}

.page-module--cards.is-variant-tags-icons .page-module__grid--cards {
  counter-reset: page-module-card;
}

.page-module--cards.is-variant-tags-icons .page-module-card--content {
  counter-increment: page-module-card;
}

.page-module--cards.is-variant-tags-icons .page-module-card__body {
  min-height: 250px;
  padding: 26px;
}

.page-module--cards.is-variant-tags-icons .page-module-card__icon {
  font-size: 0;
}

.page-module--cards.is-variant-tags-icons .page-module-card__icon::after {
  content: counter(page-module-card, decimal-leading-zero);
  font-size: var(--page-module-icon-size, 22px);
  font-weight: var(--ui-number-font-weight, 800);
  letter-spacing: .08em;
}

/* Icon information cards: a compact, cross-industry fact/feature pattern.
   The Standard Card Surface remains public; the Variant owns only the
   horizontal icon/content composition and its accent feedback. */
.page-module--cards.is-variant-icon-feature .page-module__grid--cards {
  gap: var(--page-module-icon-feature-gap, 24px);
}

.page-module--cards.is-variant-icon-feature .page-module__grid--cards[data-module-grid-layout="direct"][data-module-desktop-columns="1"] {
  grid-template-columns: minmax(0, 1fr);
}

.page-module--cards.is-variant-icon-feature .page-module__grid--cards[data-module-grid-layout="direct"][data-module-desktop-columns="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-module--cards.is-variant-icon-feature .page-module__grid--cards[data-module-grid-layout="direct"][data-module-desktop-columns="3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-module--cards.is-variant-icon-feature .page-module__grid--cards[data-module-grid-layout="direct"][data-module-desktop-columns="4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.page-module--cards.is-variant-icon-feature .page-module__grid--cards > .page-module-card--icon-feature {
  grid-column: auto;
}

.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature {
  min-height: 100%;
  overflow: hidden;
  box-shadow: var(
    --page-module-icon-feature-shadow,
    0 1px 3px rgba(15, 23, 42, .06),
    0 4px 12px rgba(15, 23, 42, .04)
  );
}

.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature::before {
  position: absolute;
  z-index: 6;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  background: linear-gradient(
    180deg,
    var(--page-module-accent) 0%,
    color-mix(in srgb, var(--page-module-accent) 54%, #7c3aed) 100%
  );
  content: "";
  transform: scaleY(0);
  transform-origin: top;
  transition: transform var(--ui-card-duration, 300ms) var(--ui-ease, ease);
}

.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__body {
  min-height: 0;
  padding: var(--page-module-icon-feature-padding, 32px);
  display: grid;
  grid-template-columns: var(
    --page-module-icon-feature-holder-size,
    clamp(50px, calc(var(--page-module-icon-size, 22px) + 34px), 82px)
  ) minmax(0, 1fr);
  grid-template-rows: auto 1fr auto;
  column-gap: 20px;
  align-content: start;
}

.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__icon {
  width: var(
    --page-module-icon-feature-holder-size,
    clamp(50px, calc(var(--page-module-icon-size, 22px) + 34px), 82px)
  );
  height: var(
    --page-module-icon-feature-holder-size,
    clamp(50px, calc(var(--page-module-icon-size, 22px) + 34px), 82px)
  );
  margin: 0;
  grid-column: 1;
  grid-row: 1 / span 3;
  color: var(--page-module-icon-color, var(--page-module-accent));
  background: color-mix(
    in srgb,
    var(--page-module-icon-color, var(--page-module-accent)) 11%,
    transparent
  );
  border: 1px solid color-mix(
    in srgb,
    var(--page-module-icon-color, var(--page-module-accent)) 24%,
    transparent
  );
  border-radius: 12px;
  font-size: var(--page-module-icon-size, 28px);
  transition:
    color var(--ui-card-duration, 300ms) var(--ui-ease, ease),
    background var(--ui-card-duration, 300ms) var(--ui-ease, ease),
    border-color var(--ui-card-duration, 300ms) var(--ui-ease, ease);
}

.page-module--cards.is-variant-icon-feature.is-card-style-simple .page-module-card--icon-feature {
  border-color: transparent;
  box-shadow: none;
}

.page-module--cards.is-variant-icon-feature.is-card-style-outline .page-module-card--icon-feature {
  border-color: var(--ui-card-border-color, var(--ui-color-border, #e2e8f0));
  box-shadow: var(--ui-shadow-xs, 0 1px 2px rgba(15, 23, 42, .05));
}

.page-module--cards.is-variant-icon-feature.is-card-style-soft .page-module-card--icon-feature {
  border-color: color-mix(in srgb, var(--page-module-accent) 16%, var(--ui-color-border, #e2e8f0));
  box-shadow: var(--ui-shadow-sm, 0 8px 20px rgba(15, 23, 42, .08));
}

.page-module--cards.is-variant-icon-feature.is-card-style-featured .page-module-card--icon-feature {
  border-color: color-mix(in srgb, var(--page-module-accent) 28%, var(--ui-color-border, #e2e8f0));
  box-shadow: var(--ui-shadow-md, 0 14px 34px rgba(15, 23, 42, .11));
}

.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__icon i {
  transition: transform var(--ui-card-duration, 300ms) var(--ui-ease, ease);
}

.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__title,
.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__description,
.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__links,
.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__link {
  grid-column: 2;
}

.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__title {
  margin: 0 0 12px;
}

.page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__description {
  line-height: 1.7;
  -webkit-line-clamp: initial;
}

.page-module--cards.is-variant-icon-feature:not([data-card-hover="none"]) .page-module-card--icon-feature:hover .page-module-card__icon,
.page-module--cards.is-variant-icon-feature:not([data-card-hover="none"]) .page-module-card--icon-feature:focus-within .page-module-card__icon {
  color: #fff;
  background: linear-gradient(
    135deg,
    var(--page-module-icon-color, var(--page-module-accent)),
    color-mix(in srgb, var(--page-module-icon-color, var(--page-module-accent)) 54%, #7c3aed)
  );
  border-color: var(--page-module-icon-color, var(--page-module-accent));
}

.page-module--cards.is-variant-icon-feature:not([data-card-hover="none"]) .page-module-card--icon-feature:hover .page-module-card__icon i,
.page-module--cards.is-variant-icon-feature:not([data-card-hover="none"]) .page-module-card--icon-feature:focus-within .page-module-card__icon i {
  transform: scale(.9);
}

.page-module--cards.is-variant-icon-feature[data-card-hover="border"] .page-module-card--icon-feature:hover::before,
.page-module--cards.is-variant-icon-feature[data-card-hover="border"] .page-module-card--icon-feature:focus-within::before {
  transform: scaleY(1);
}

.page-module--cards.is-variant-featured .page-module-card--content:first-child {
  border-color: color-mix(in srgb, var(--page-module-accent) 45%, var(--ui-color-border, #e2e8f0));
  box-shadow: var(--ui-shadow-md, 0 12px 32px rgba(15, 23, 42, .12));
}

/* Visual cards: media carries the hierarchy; card chrome stays deliberately quiet. */
.page-module--cards.is-variant-visual .page-module-card--content {
  display: grid;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 260px;
  overflow: hidden;
  aspect-ratio: var(--page-module-image-ratio, 16 / 9);
  background: var(--ui-media-background, #eef2f6);
  border-color: transparent;
  box-shadow: none;
}

.page-module--cards.is-variant-visual .page-module-card--content:is(.has-media, .has-placeholder) > * {
  grid-area: 1 / 1;
}

.page-module--cards.is-variant-visual .page-module-card__media {
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
}

.page-module--cards.is-variant-visual .page-module-card__body {
  align-self: end;
  min-height: 56%;
  padding: clamp(24px, 3vw, 36px);
  justify-content: flex-end;
  color: #fff;
  background: linear-gradient(180deg, transparent 0%, rgba(4, 12, 27, .14) 22%, rgba(4, 12, 27, .86) 100%);
}

.page-module--cards.is-variant-visual .page-module-card__body::after {
  display: none;
}

.page-module--cards.is-variant-visual .page-module-card__title {
  max-width: 20ch;
  margin-bottom: 12px;
  color: #fff;
  font-size: var(--page-module-card-title-size, clamp(22px, 2vw, 30px));
  line-height: 1.2;
  -webkit-line-clamp: 2;
}

.page-module--cards.is-variant-visual .page-module-card__description {
  max-width: 52ch;
  color: rgba(255, 255, 255, .78);
  -webkit-line-clamp: min(var(--page-module-description-lines, 3), 3);
}

.page-module--cards.is-variant-visual .page-module-tags__item,
.page-module--cards.is-variant-visual .page-module-link--secondary {
  color: #fff;
  background: rgba(4, 12, 27, .32);
  border-color: rgba(255, 255, 255, .34);
  backdrop-filter: blur(8px);
}

.page-module--cards.is-variant-visual .page-module-card__link {
  color: #fff;
}

.page-module--cards.is-variant-visual .page-module-card--content.is-media-hidden {
  min-height: 300px;
  background: color-mix(in srgb, var(--page-module-accent) 8%, var(--ui-color-surface, #f8fafc));
  border: 1px solid var(--ui-color-border, #e2e8f0);
}

.page-module--cards.is-variant-visual .page-module-card--content.is-media-hidden .page-module-card__body {
  min-height: 300px;
  color: var(--ui-color-text, #1e293b);
  background: transparent;
}

.page-module--cards.is-variant-visual .page-module-card--content.is-media-hidden :is(.page-module-card__title, .page-module-card__link) {
  color: var(--page-module-card-title-color, var(--ui-color-text-strong, #0f172a));
}

.page-module--cards.is-variant-visual .page-module-card--content.is-media-hidden .page-module-card__description {
  color: var(--page-module-card-description-color, var(--ui-color-text-muted, #64748b));
}

.page-module--cards.is-variant-visual .page-module-card--content.has-placeholder {
  border: 1px solid var(--ui-color-border, #e2e8f0);
}

.page-module--cards.is-variant-visual .page-module-card--content.has-placeholder .page-module-card__body {
  color: var(--ui-color-text, #1e293b);
  background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, .78) 38%, var(--ui-color-surface, #fff) 100%);
}

.page-module--cards.is-variant-visual .page-module-card--content.has-placeholder :is(.page-module-card__title, .page-module-card__link) {
  color: var(--page-module-card-title-color, var(--ui-color-text-strong, #0f172a));
}

.page-module--cards.is-variant-visual .page-module-card--content.has-placeholder .page-module-card__description {
  color: var(--page-module-card-description-color, var(--ui-color-text-muted, #64748b));
}

.page-module--cards.is-variant-visual .page-module-card--content.has-placeholder :is(.page-module-tags__item, .page-module-link--secondary) {
  color: var(--page-module-link-color, var(--page-module-accent));
  background: color-mix(in srgb, var(--page-module-accent) 8%, #fff);
  border-color: color-mix(in srgb, var(--page-module-accent) 20%, transparent);
  backdrop-filter: none;
}

/* Secondary card links keep the Variant default unless an editor choice is explicit. */
.page-module--cards .page-module-card__links:where([data-secondary-style]):not([data-secondary-style="auto"]) > .page-module-link--secondary,
.page-module--cards .page-module-card__links:where([data-secondary-style]):not([data-secondary-style="auto"]) > .page-module-link--more {
  min-height: var(--ui-tag-height, 26px);
  padding: 3px var(--ui-tag-padding-x, 10px);
  border: 1px solid transparent;
  border-radius: var(--ui-tag-radius, var(--ui-radius-pill, 999px));
  font-size: var(--ui-tag-font-size, 12px);
  font-weight: var(--ui-tag-font-weight, 600);
  line-height: 1;
  backdrop-filter: none;
}

.page-module--cards .page-module-card__links[data-secondary-style="glass"] > .page-module-link--secondary,
.page-module--cards .page-module-card__links[data-secondary-style="glass"] > .page-module-link--more {
  color: #fff;
  background: rgba(4, 12, 27, .42);
  border-color: rgba(255, 255, 255, .34);
  backdrop-filter: blur(8px);
}

.page-module--cards .page-module-card__links[data-secondary-style="soft"] > .page-module-link--secondary,
.page-module--cards .page-module-card__links[data-secondary-style="soft"] > .page-module-link--more {
  color: var(--page-module-link-color, var(--page-module-accent));
  background: color-mix(in srgb, var(--page-module-accent) 9%, #fff);
  border-color: color-mix(in srgb, var(--page-module-accent) 18%, transparent);
}

.page-module--cards .page-module-card__links[data-secondary-style="outline"] > .page-module-link--secondary,
.page-module--cards .page-module-card__links[data-secondary-style="outline"] > .page-module-link--more {
  color: var(--page-module-link-color, var(--page-module-accent));
  background: transparent;
  border-color: color-mix(in srgb, var(--page-module-accent) 44%, transparent);
}

.page-module--cards .page-module-card__links[data-secondary-style="solid"] > .page-module-link--secondary,
.page-module--cards .page-module-card__links[data-secondary-style="solid"] > .page-module-link--more {
  color: #fff;
  background: var(--page-module-link-color, var(--page-module-accent));
  border-color: var(--page-module-link-color, var(--page-module-accent));
}

.page-module--cards .page-module-card__links[data-secondary-style="text"] > .page-module-link--secondary,
.page-module--cards .page-module-card__links[data-secondary-style="text"] > .page-module-link--more {
  min-height: 0;
  padding: 0;
  color: var(--page-module-link-color, var(--page-module-accent));
  background: transparent;
  border-color: transparent;
  border-radius: 0;
}

@media (hover: hover) {
  .page-module--cards .page-module-card__links[data-secondary-style="auto"] > .page-module-link--secondary:hover,
  .page-module--cards .page-module-card__links[data-secondary-style="soft"] > .page-module-link--secondary:hover {
    color: var(--page-module-link-color, var(--page-module-accent));
    background: color-mix(in srgb, var(--page-module-accent) 15%, #fff);
    border-color: color-mix(in srgb, var(--page-module-accent) 30%, transparent);
  }

  .page-module--cards.is-variant-visual .page-module-card__links[data-secondary-style="auto"] > .page-module-link--secondary:hover,
  .page-module--cards .page-module-card__links[data-secondary-style="glass"] > .page-module-link--secondary:hover {
    color: #fff;
    background: rgba(4, 12, 27, .56);
    border-color: rgba(255, 255, 255, .52);
  }

  .page-module--cards .page-module-card__links[data-secondary-style="outline"] > .page-module-link--secondary:hover {
    color: var(--page-module-link-color, var(--page-module-accent));
    background: color-mix(in srgb, var(--page-module-accent) 8%, transparent);
    border-color: color-mix(in srgb, var(--page-module-accent) 62%, transparent);
  }

  .page-module--cards .page-module-card__links[data-secondary-style="solid"] > .page-module-link--secondary:hover {
    color: #fff;
    background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 88%, #0f172a);
    border-color: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 88%, #0f172a);
  }

  .page-module--cards .page-module-card__links[data-secondary-style="text"] > .page-module-link--secondary:hover {
    color: var(--page-module-link-color, var(--ui-color-accent-deep, var(--page-module-accent)));
  }
}

/* Technical cards: hierarchy comes from numbering, rules and information density. */
.page-module--cards.is-variant-technical .page-module__grid--cards {
  counter-reset: page-module-technical;
  column-gap: clamp(22px, 2.6vw, 40px);
  row-gap: clamp(24px, 3vw, 40px);
}

.page-module--cards.is-variant-technical .page-module-card--content {
  counter-increment: page-module-technical;
  overflow: visible;
  background:
    linear-gradient(
      90deg,
      transparent 0 68px,
      var(--ui-color-border, #e2e8f0) 68px 69px,
      transparent 69px 100%
    );
  border: 0;
  border-top: 1px solid color-mix(in srgb, var(--page-module-accent) 34%, var(--ui-color-border, #e2e8f0));
  border-radius: 0;
  box-shadow: none;
}

.page-module--cards.is-variant-technical .page-module-card--content::before {
  content: counter(page-module-technical, decimal-leading-zero);
  position: absolute;
  top: 28px;
  left: 0;
  z-index: 2;
  color: var(--page-module-icon-color, var(--page-module-accent));
  font-family: var(--ui-font-mono, monospace);
  width: 52px;
  font-size: clamp(
    19px,
    calc(clamp(25px, 2.6vw, 36px) + var(--page-module-icon-size, 22px) - 22px),
    62px
  );
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.04em;
  text-align: left;
}

.page-module--cards.is-variant-technical .page-module-card__body {
  min-height: 238px;
  padding: 28px 0 26px 88px;
  background: transparent;
}

.page-module--cards.is-variant-technical .page-module-card__body::after,
.page-module--cards.is-variant-technical .page-module-card__icon,
.page-module--cards.is-variant-technical .page-module-card__media {
  display: none;
}

.page-module--cards.is-variant-technical .page-module-card__title {
  margin-top: 28px;
  font-size: var(--page-module-card-title-size, clamp(21px, 2vw, 27px));
  line-height: 1.24;
  -webkit-line-clamp: 3;
}

.page-module--cards.is-variant-technical .page-module-card__description {
  margin-top: 4px;
  -webkit-line-clamp: min(var(--page-module-description-lines, 4), 4);
}

.page-module--cards.is-variant-technical .page-module-tags {
  order: -1;
}

.page-module--cards.is-variant-technical .page-module-tags__item {
  min-height: 0;
  padding: 2px 8px;
  color: var(--ui-color-text-muted, #64748b);
  background: transparent;
  border: 0;
  border-left: 2px solid color-mix(in srgb, var(--page-module-accent) 70%, transparent);
  border-radius: 0;
  font-family: var(--ui-font-mono, monospace);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .06em;
}

.page-module--cards.is-variant-technical .page-module-card__links {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--ui-color-border, #e2e8f0);
}

/* Selection remains a low-density navigation pattern, not a generic content card. */
.page-module--cards.is-variant-selection a.page-module-card--content::after {
  content: "\2192";
  position: absolute;
  top: 28px;
  right: 24px;
  bottom: auto;
  z-index: 2;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--page-module-link-color, var(--page-module-accent));
  background: color-mix(in srgb, var(--page-module-accent) 9%, transparent);
  border: 0;
  border-radius: 50%;
  transition:
    color var(--ui-duration, 260ms) var(--ui-ease, ease),
    background var(--ui-duration, 260ms) var(--ui-ease, ease),
    transform var(--ui-duration, 260ms) var(--ui-ease, ease);
}

.page-module--cards.is-variant-selection a.page-module-card--content:hover::after,
.page-module--cards.is-variant-selection a.page-module-card--content:focus-visible::after {
  color: var(--ui-color-on-accent, #fff);
  background: var(--page-module-accent);
  transform: translateX(4px);
}

/* stats */
.page-module-card--stat {
  padding: clamp(28px, 4vw, 46px) 20px;
  text-align: center;
}

.page-module-card--stat > * {
  position: relative;
  z-index: 1;
}

.page-module-stat {
  display: flex;
  margin-bottom: 10px;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
  line-height: 1;
}

.page-module-stat__value {
  color: var(--page-module-icon-color, var(--page-module-accent));
  font-size: var(--ui-type-data-size, clamp(32px, 5vw, 64px));
  font-weight: var(--ui-type-data-weight, 800);
  line-height: var(--ui-type-data-leading, 1);
}

.page-module-stat__unit {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: var(--page-module-card-title-color, #475569);
  font-size: var(--page-module-card-title-size, var(--ui-type-card-title-size, 19px));
  font-weight: var(--page-module-card-title-weight, var(--ui-type-card-title-weight, 700));
}

.page-module-stat__unit em {
  font-style: normal;
}

.page-module-stat__label {
  color: var(--page-module-card-description-color, #475569);
  font-size: var(--page-module-card-description-size, var(--ui-type-card-description-size, 14px));
  line-height: var(--ui-type-body-leading, 1.75);
}

/* process */
.page-module__grid--process {
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-module-card--process {
  display: flex;
  min-height: 170px;
  padding: 28px;
  gap: 18px;
}

.page-module-card--process .page-module-card__number {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  color: color-mix(in srgb, var(--page-module-icon-color, var(--page-module-accent)) 32%, #fff);
  font-size: var(--ui-number-font-size, 13px);
  font-weight: var(--ui-number-font-weight, 800);
  line-height: 1;
}

.page-module-card--process .page-module-card__body {
  background: transparent;
}

.page-module--process.is-variant-timeline .page-module__grid--process,
.page-module--process.is-variant-flow .page-module__grid--process {
  position: relative;
  overflow: visible;
  row-gap: 58px;
}

.page-module--process.is-variant-timeline .page-module-card--process::before {
  content: "";
  position: absolute;
  top: 49px;
  left: 0;
  width: 22px;
  height: 2px;
  background: color-mix(in srgb, var(--page-module-accent) 55%, transparent);
}

.page-module--process.is-variant-flow .page-module-card--process {
  position: relative;
  overflow: visible;
  min-height: 170px;
  padding: 0 16px;
  align-items: center;
  flex-direction: column;
  gap: 14px;
  text-align: center;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.page-module--process.is-variant-flow .page-module-card__number {
  display: inline-flex;
  width: var(--ui-number-size, 48px);
  height: var(--ui-number-size, 48px);
  align-items: center;
  justify-content: center;
  color: var(--ui-color-text-strong, #0f172a);
  background: color-mix(in srgb, var(--page-module-accent) 14%, #fff);
  border: 4px solid var(--page-module-section-background, #fff);
  border-radius: var(--ui-number-radius, 50%);
  box-shadow: 0 8px 20px color-mix(in srgb, var(--page-module-accent) 24%, transparent);
  font-size: var(--ui-number-font-size, 13px);
  font-weight: var(--ui-number-font-weight, 800);
}

.page-module--process.is-variant-flow .page-module-card__body {
  align-items: center;
  text-align: center;
}

.page-module--process.is-variant-flow .page-module-card__title {
  margin-bottom: 8px;
}

.page-module--process.is-variant-flow .page-module-card--process::before {
  content: "";
  position: absolute;
  top: 24px;
  right: calc(50% + 25px);
  width: calc(100% - 50px + clamp(16px, 2vw, 24px));
  height: 2px;
  background: color-mix(in srgb, var(--page-module-accent) 72%, transparent);
}

.page-module--process.is-variant-flow .page-module-card--process::after {
  content: "";
  position: absolute;
  top: 20px;
  left: calc(-1 * clamp(16px, 2vw, 24px) / 2 - 3px);
  width: 7px;
  height: 7px;
  border-top: 2px solid var(--page-module-accent);
  border-right: 2px solid var(--page-module-accent);
  transform: rotate(45deg);
}

.page-module--process.is-variant-flow .page-module-card--process:first-child::before,
.page-module--process.is-variant-flow .page-module-card--process:first-child::after,
.page-module--process.is-variant-flow .page-module__grid--process[data-module-desktop-columns="2"] > :nth-child(2n + 1)::before,
.page-module--process.is-variant-flow .page-module__grid--process[data-module-desktop-columns="2"] > :nth-child(2n + 1)::after,
.page-module--process.is-variant-flow .page-module__grid--process[data-module-desktop-columns="3"] > :nth-child(3n + 1)::before,
.page-module--process.is-variant-flow .page-module__grid--process[data-module-desktop-columns="3"] > :nth-child(3n + 1)::after,
.page-module--process.is-variant-flow .page-module__grid--process[data-module-desktop-columns="4"] > :nth-child(4n + 1)::before,
.page-module--process.is-variant-flow .page-module__grid--process[data-module-desktop-columns="4"] > :nth-child(4n + 1)::after {
  display: none;
}

/* Standard flow follows the balanced grid's real row starts instead of only
   the configured maximum column count. The nth-child rules above remain the
   no-JavaScript fallback. */
@media (min-width: 768px) {
  .page-module--process.is-variant-flow:not(.is-layout-serpentine) .page-module__grid--process > .page-module-card--process:not([data-balanced-row-start])::before,
  .page-module--process.is-variant-flow:not(.is-layout-serpentine) .page-module__grid--process > .page-module-card--process:not([data-balanced-row-start])::after {
    display: block;
  }

  .page-module--process.is-variant-flow:not(.is-layout-serpentine) .page-module__grid--process > .page-module-card--process[data-balanced-row-start]::before,
  .page-module--process.is-variant-flow:not(.is-layout-serpentine) .page-module__grid--process > .page-module-card--process[data-balanced-row-start]::after {
    display: none;
  }
}

/* Public Process layout: count-aware continuous serpentine for 2-20 steps.
   The mature 2-8 compositions remain unchanged; 9-20 extend the same ordered
   track in four-node rows with alternating direction. */
@media (min-width: 1025px) {
  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process {
    position: relative;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: clamp(16px, 2vw, 24px);
    row-gap: 58px;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module-card--process {
    position: relative;
    z-index: 1;
    height: 100%;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="1"] .page-module-card--process {
    grid-column: 4 / span 6 !important;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="2"] .page-module-card--process {
    grid-column: span 6 !important;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="3"] .page-module-card--process {
    grid-column: span 4 !important;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="4"] .page-module-card--process {
    grid-column: span 3 !important;
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="5"], [data-module-item-count="6"]) .page-module-card--process:nth-child(-n + 3) {
    grid-column: span 4 !important;
    grid-row: 1;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="5"] .page-module-card--process:nth-child(4) {
    grid-column: 7 / span 4 !important;
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="5"] .page-module-card--process:nth-child(5) {
    grid-column: 3 / span 4 !important;
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="6"] .page-module-card--process:nth-child(4) {
    grid-column: 9 / span 4 !important;
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="6"] .page-module-card--process:nth-child(5) {
    grid-column: 5 / span 4 !important;
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="6"] .page-module-card--process:nth-child(6) {
    grid-column: 1 / span 4 !important;
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="7"], [data-module-item-count="8"]) .page-module-card--process:nth-child(-n + 4) {
    grid-column: span 3 !important;
    grid-row: 1;
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="7"], [data-module-item-count="8"]) .page-module-card--process:nth-child(5) {
    grid-column: 10 / span 3 !important;
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="7"], [data-module-item-count="8"]) .page-module-card--process:nth-child(6) {
    grid-column: 7 / span 3 !important;
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="7"], [data-module-item-count="8"]) .page-module-card--process:nth-child(7) {
    grid-column: 4 / span 3 !important;
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="8"] .page-module-card--process:nth-child(8) {
    grid-column: 1 / span 3 !important;
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count] .page-module-card--process::before,
  .page-module--process.is-layout-serpentine[data-module-item-count] .page-module-card--process::after {
    display: none;
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="2"], [data-module-item-count="3"], [data-module-item-count="4"]) .page-module-card--process:nth-child(n + 2)::before,
  .page-module--process.is-layout-serpentine:is([data-module-item-count="5"], [data-module-item-count="6"]) .page-module-card--process:nth-child(n + 2):nth-child(-n + 3)::before,
  .page-module--process.is-layout-serpentine:is([data-module-item-count="7"], [data-module-item-count="8"]) .page-module-card--process:nth-child(n + 2):nth-child(-n + 4)::before {
    display: block;
    top: 24px;
    right: calc(50% + 25px);
    left: auto;
    width: calc(100% - 50px + clamp(16px, 2vw, 24px));
    height: 2px;
    background: color-mix(in srgb, var(--page-module-accent) 72%, transparent);
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="5"] .page-module-card--process:nth-child(5)::before,
  .page-module--process.is-layout-serpentine[data-module-item-count="6"] .page-module-card--process:nth-child(n + 5)::before,
  .page-module--process.is-layout-serpentine[data-module-item-count="7"] .page-module-card--process:nth-child(n + 6)::before,
  .page-module--process.is-layout-serpentine[data-module-item-count="8"] .page-module-card--process:nth-child(n + 6)::before {
    display: block;
    top: 24px;
    right: auto;
    left: calc(50% + 25px);
    width: calc(100% - 50px + clamp(16px, 2vw, 24px));
    height: 2px;
    background: color-mix(in srgb, var(--page-module-accent) 72%, transparent);
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="5"], [data-module-item-count="6"], [data-module-item-count="7"], [data-module-item-count="8"]) .page-module__grid--process {
    --page-module-serpentine-line: color-mix(in srgb, var(--page-module-accent) 72%, transparent);
    --page-module-serpentine-top-x: 83.333%;
    --page-module-serpentine-bottom-x: 83.333%;
  }

  .page-module--process.is-layout-serpentine[data-module-item-count="5"] .page-module__grid--process {
    --page-module-serpentine-bottom-x: 66.667%;
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="7"], [data-module-item-count="8"]) .page-module__grid--process {
    --page-module-serpentine-top-x: 87.5%;
    --page-module-serpentine-bottom-x: 87.5%;
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="5"], [data-module-item-count="6"], [data-module-item-count="7"], [data-module-item-count="8"]) .page-module__grid--process::after {
    position: absolute;
    z-index: 0;
    top: 24px;
    right: 0;
    left: 0;
    height: 228px;
    background:
      linear-gradient(to right, transparent 0 var(--page-module-serpentine-top-x), var(--page-module-serpentine-line) var(--page-module-serpentine-top-x) 100%) 0 0 / 100% 2px no-repeat,
      linear-gradient(var(--page-module-serpentine-line), var(--page-module-serpentine-line)) 100% 0 / 2px 100% no-repeat,
      linear-gradient(to right, transparent 0 var(--page-module-serpentine-bottom-x), var(--page-module-serpentine-line) var(--page-module-serpentine-bottom-x) 100%) 0 100% / 100% 2px no-repeat;
    content: "";
    pointer-events: none;
  }

  .page-module--process.is-layout-serpentine:is([data-module-item-count="2"], [data-module-item-count="3"], [data-module-item-count="4"]) .page-module__grid--process::after {
    display: none;
    content: none;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module__grid--process {
    --page-module-serpentine-line: color-mix(in srgb, var(--page-module-accent) 72%, transparent);
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:is(
      :nth-child(1), :nth-child(8), :nth-child(9),
      :nth-child(16), :nth-child(17)
    ) {
    grid-column: 1 / span 3 !important;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:is(
      :nth-child(2), :nth-child(7), :nth-child(10),
      :nth-child(15), :nth-child(18)
    ) {
    grid-column: 4 / span 3 !important;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:is(
      :nth-child(3), :nth-child(6), :nth-child(11),
      :nth-child(14), :nth-child(19)
    ) {
    grid-column: 7 / span 3 !important;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:is(
      :nth-child(4), :nth-child(5), :nth-child(12),
      :nth-child(13), :nth-child(20)
    ) {
    grid-column: 10 / span 3 !important;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(-n + 4) {
    grid-row: 1;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(n + 5):nth-child(-n + 8) {
    grid-row: 2;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(n + 9):nth-child(-n + 12) {
    grid-row: 3;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(n + 13):nth-child(-n + 16) {
    grid-row: 4;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(n + 17):nth-child(-n + 20) {
    grid-row: 5;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:is(
      :nth-child(2), :nth-child(3), :nth-child(4),
      :nth-child(10), :nth-child(11), :nth-child(12),
      :nth-child(18), :nth-child(19), :nth-child(20)
    )::before {
    display: block;
    top: 24px;
    right: calc(50% + 25px);
    left: auto;
    width: calc(100% - 50px + clamp(16px, 2vw, 24px));
    height: 2px;
    background: var(--page-module-serpentine-line);
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:is(
      :nth-child(6), :nth-child(7), :nth-child(8),
      :nth-child(14), :nth-child(15), :nth-child(16)
    )::before {
    display: block;
    top: 24px;
    right: auto;
    left: calc(50% + 25px);
    width: calc(100% - 50px + clamp(16px, 2vw, 24px));
    height: 2px;
    background: var(--page-module-serpentine-line);
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:is(:nth-child(4), :nth-child(8))::after,
  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(12)::after,
  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(16)::after {
    display: block;
    top: 24px;
    bottom: auto;
    width: 50%;
    height: calc(100% + 58px);
    box-sizing: border-box;
    background: transparent;
    border: 0;
    opacity: 1;
    transform: none;
    pointer-events: none;
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(4)::after,
  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(12)::after {
    right: auto;
    left: 50%;
    border-top: 2px solid var(--page-module-serpentine-line);
    border-right: 2px solid var(--page-module-serpentine-line);
    border-bottom: 2px solid var(--page-module-serpentine-line);
  }

  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="9"],
      [data-module-item-count="10"],
      [data-module-item-count="11"],
      [data-module-item-count="12"],
      [data-module-item-count="13"],
      [data-module-item-count="14"],
      [data-module-item-count="15"],
      [data-module-item-count="16"],
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(8)::after,
  .page-module--process.is-layout-serpentine:is(
      [data-module-item-count="17"],
      [data-module-item-count="18"],
      [data-module-item-count="19"],
      [data-module-item-count="20"]
    ) .page-module-card--process:nth-child(16)::after {
    right: 50%;
    left: auto;
    border-top: 2px solid var(--page-module-serpentine-line);
    border-bottom: 2px solid var(--page-module-serpentine-line);
    border-left: 2px solid var(--page-module-serpentine-line);
  }

  .page-module--process.is-layout-serpentine .page-module__grid--process::before {
    display: none;
    content: none;
  }
}

/* Public serpentine row capacity. Four items remains the compatibility
   composition above; two and three items reuse the same ordered DOM and
   continuous alternating track without creating page-specific layouts. */
@media (min-width: 1025px) {
  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process:is(
      [data-module-desktop-columns="2"],
      [data-module-desktop-columns="3"]
    ) {
    --page-module-serpentine-line: color-mix(in srgb, var(--page-module-accent) 72%, transparent);
    grid-auto-flow: row dense;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process:is(
      [data-module-desktop-columns="2"],
      [data-module-desktop-columns="3"]
    )::before,
  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process:is(
      [data-module-desktop-columns="2"],
      [data-module-desktop-columns="3"]
    )::after {
    display: none !important;
    content: none !important;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process:is(
      [data-module-desktop-columns="2"],
      [data-module-desktop-columns="3"]
    ) > .page-module-card--process:nth-child(n) {
    grid-column: auto !important;
    grid-row: auto !important;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="2"] > .page-module-card--process:is(:nth-child(4n + 1), :nth-child(4n + 4)) {
    grid-column: 1 / span 6 !important;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="2"] > .page-module-card--process:is(:nth-child(4n + 2), :nth-child(4n + 3)) {
    grid-column: 7 / span 6 !important;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="3"] > .page-module-card--process:is(:nth-child(6n + 1), :nth-child(6n + 6)) {
    grid-column: 1 / span 4 !important;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="3"] > .page-module-card--process:is(:nth-child(6n + 2), :nth-child(6n + 5)) {
    grid-column: 5 / span 4 !important;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="3"] > .page-module-card--process:is(:nth-child(6n + 3), :nth-child(6n + 4)) {
    grid-column: 9 / span 4 !important;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine[data-module-item-count="2"] .page-module__grid--process[data-module-desktop-columns="3"] > .page-module-card--process {
    grid-column: span 6 !important;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process:is(
      [data-module-desktop-columns="2"],
      [data-module-desktop-columns="3"]
    ) > .page-module-card--process:nth-child(n)::before,
  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process:is(
      [data-module-desktop-columns="2"],
      [data-module-desktop-columns="3"]
    ) > .page-module-card--process:nth-child(n)::after {
    display: none !important;
    position: absolute;
    top: 24px;
    bottom: auto;
    right: auto;
    left: auto;
    box-sizing: border-box;
    background: transparent;
    border: 0;
    opacity: 1;
    transform: none;
    content: "";
    pointer-events: none;
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="2"] > .page-module-card--process:nth-child(4n + 2)::before,
  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="3"] > .page-module-card--process:is(:nth-child(6n + 2), :nth-child(6n + 3))::before {
    display: block !important;
    right: calc(50% + 25px);
    width: calc(100% - 50px + clamp(16px, 2vw, 24px));
    height: 2px;
    background: var(--page-module-serpentine-line);
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="2"] > .page-module-card--process:nth-child(4n + 4)::before,
  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="3"] > .page-module-card--process:is(:nth-child(6n + 5), :nth-child(6n + 6))::before {
    display: block !important;
    left: calc(50% + 25px);
    width: calc(100% - 50px + clamp(16px, 2vw, 24px));
    height: 2px;
    background: var(--page-module-serpentine-line);
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="2"] > .page-module-card--process:is(:nth-child(4n + 2), :nth-child(4n + 4)):not(:last-child)::after,
  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="3"] > .page-module-card--process:is(:nth-child(6n + 3), :nth-child(6n + 6)):not(:last-child)::after {
    display: block !important;
    width: 50%;
    height: calc(100% + 58px);
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="2"] > .page-module-card--process:nth-child(4n + 2):not(:last-child)::after,
  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="3"] > .page-module-card--process:nth-child(6n + 3):not(:last-child)::after {
    left: 50%;
    border-top: 2px solid var(--page-module-serpentine-line);
    border-right: 2px solid var(--page-module-serpentine-line);
    border-bottom: 2px solid var(--page-module-serpentine-line);
  }

  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="2"] > .page-module-card--process:nth-child(4n + 4):not(:last-child)::after,
  .page-module--process.is-variant-flow.is-layout-serpentine .page-module__grid--process[data-module-desktop-columns="3"] > .page-module-card--process:nth-child(6n + 6):not(:last-child)::after {
    right: 50%;
    border-top: 2px solid var(--page-module-serpentine-line);
    border-bottom: 2px solid var(--page-module-serpentine-line);
    border-left: 2px solid var(--page-module-serpentine-line);
  }
}

/* Feed variants */
.page-module--feed.is-variant-featured .page-module__grid--feed {
  align-items: stretch;
  grid-auto-flow: row;
}

.page-module--feed.is-variant-featured .page-module-card--feed:first-child {
  grid-column: span 8 !important;
  grid-row: span 2 !important;
}

.page-module--feed.is-variant-featured .page-module-card--feed:nth-child(n + 2) {
  grid-column: span 4 !important;
}

.page-module--feed.is-variant-featured .page-module-card--feed:first-child .page-module-card__body {
  min-height: 350px;
  padding: clamp(28px, 3vw, 42px);
}

.page-module--feed.is-variant-featured .page-module-card--feed:first-child .page-module-card__title {
  font-size: var(--page-module-card-title-size, clamp(24px, 2.4vw, 34px));
  line-height: 1.3;
  -webkit-line-clamp: 3;
}

.page-module--feed.is-variant-featured .page-module-card--feed:nth-child(n + 2) .page-module-card__body {
  min-height: 168px;
  padding: var(--page-module-card-padding);
}

.page-module--feed.is-variant-image-cards .page-module-card--feed,
.page-module--cards.is-variant-image-cards .page-module-card--content {
  height: auto;
  align-self: start;
}

.page-module--feed.is-variant-image-cards .page-module-card__body,
.page-module--cards.is-variant-image-cards .page-module-card__body {
  min-height: 0;
  padding: var(--page-module-card-padding);
}

.page-module--feed.is-variant-image-cards .page-module-card__title,
.page-module--cards.is-variant-image-cards .page-module-card__title {
  -webkit-line-clamp: 3;
}

.page-module--feed.is-variant-image-cards .page-module-card__description,
.page-module--cards.is-variant-image-cards .page-module-card__description {
  -webkit-line-clamp: var(--page-module-description-lines, 3);
}

.page-module--feed.is-variant-image-cards .page-module-card__links,
.page-module--cards.is-variant-image-cards .page-module-card__links,
.page-module--feed.is-variant-image-cards .page-module-card__link,
.page-module--cards.is-variant-image-cards .page-module-card__link {
  margin-top: 14px;
  padding-top: 0;
}

/* Equal height is an explicit same-row image-card opt-in. Natural flow
   remains the default, including single-column mobile cards. */
@media (min-width: 768px) {
  .page-module.is-variant-image-cards[data-card-height="equal"] .page-module-card--feed,
  .page-module.is-variant-image-cards[data-card-height="equal"] .page-module-card--content {
    height: 100%;
    align-self: stretch;
  }

  .page-module.is-variant-image-cards[data-card-height="equal"] .page-module-card__body {
    min-height: 196px;
    flex: 1;
  }

  .page-module.is-variant-image-cards[data-card-height="equal"] .page-module-card__links,
  .page-module.is-variant-image-cards[data-card-height="equal"] .page-module-card__link {
    margin-top: auto;
  }
}


/* Same-row Feed content shares intrinsic tracks. Long headings, optional
   metadata and unequal excerpts cannot push sibling actions out of line.
   Subgrid uses actual content heights, including unclamped descriptions. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 768px) {
    /* Parent gutters must not create space in empty internal tracks. Keep
       the inter-card row gutter outside each card's shared content tracks. */
    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module__grid--feed.is-layout-vertical {
      row-gap: 0;
      margin-bottom: calc(-1 * var(--page-module-grid-gap));
    }

    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module-card--feed.is-layout-vertical {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      grid-template-rows: subgrid;
      grid-row: span 8;
      row-gap: 0;
      height: auto;
      margin-bottom: var(--page-module-grid-gap);
    }

    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module-card--feed.is-layout-vertical > .page-module-card__media {
      grid-row: 1;
      width: 100%;
    }

    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module-card--feed.is-layout-vertical > .page-module-card__body {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      grid-template-rows: subgrid;
      grid-row: 2 / span 7;
      row-gap: 0;
      min-height: 0;
    }

    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module-card__body > .page-module-card__meta { grid-row: 1; }
    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module-card__body > .page-module-card__title { grid-row: 2; }
    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module-card__body > .page-module-card__model { grid-row: 3; justify-self: start; }
    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module-card__body > .page-module-card__description { grid-row: 4; }
    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module-card__body > [data-card-supporting-content] { grid-row: 5; }
    .page-module--feed:is(.is-variant-image-cards, .is-variant-visual)[data-card-height="equal"] .page-module-card__body > .page-module-card__link { grid-row: 7; margin-top: 14px; }
  }
}

/* Media list keeps real article media and metadata in a compact reading row. */
.page-module--feed.is-variant-media-list .page-module__grid--feed {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.page-module--feed.is-variant-media-list .page-module-card--feed {
  grid-column: 1 / -1 !important;
  min-height: 0;
  padding: clamp(22px, 2.2vw, 28px) 0;
  align-items: center;
  flex-direction: row;
  overflow: visible;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--ui-color-border, #e2e8f0);
  border-radius: 0;
  box-shadow: none;
  transition: border-color var(--ui-motion-duration-fast, 180ms) ease;
}

.page-module--feed.is-variant-media-list .page-module-card--feed:first-child {
  border-top: 1px solid var(--ui-color-border, #e2e8f0);
}

.page-module--feed.is-variant-media-list .page-module-card__media {
  width: clamp(190px, 20vw, 220px);
  flex: 0 0 clamp(190px, 20vw, 220px);
  overflow: hidden;
  aspect-ratio: var(--page-module-image-ratio, 16 / 10);
  border-radius: var(--page-module-card-radius);
}

.page-module--feed.is-variant-media-list .page-module-card__body {
  min-height: 0;
  padding: 4px 0 4px clamp(24px, 3vw, 36px);
  background: transparent;
}

.page-module--feed.is-variant-media-list .page-module-card--feed.is-layout-horizontal-reverse {
  flex-direction: row-reverse;
}

.page-module--feed.is-variant-media-list .page-module-card--feed.is-layout-horizontal-reverse .page-module-card__body {
  padding-right: clamp(24px, 3vw, 36px);
  padding-left: 0;
}

.page-module--feed.is-variant-media-list .page-module-card__meta {
  margin-bottom: 10px;
  align-items: center;
  justify-content: flex-start;
  gap: 7px 14px;
}

.page-module--feed.is-variant-media-list .page-module-card__date {
  order: -1;
  margin: 0;
  color: var(--ui-color-text-faint, #94a3b8);
}

.page-module--feed.is-variant-media-list .page-module-tags {
  gap: 6px;
}

.page-module--feed.is-variant-media-list .page-module-tags__item {
  min-height: 24px;
  padding: 3px 9px;
  color: var(--page-module-link-color, var(--page-module-accent));
  background: color-mix(in srgb, var(--page-module-accent) 8%, #fff);
  border-color: color-mix(in srgb, var(--page-module-accent) 16%, transparent);
  font-size: 11px;
}

.page-module--feed.is-variant-media-list .page-module-card__title {
  margin-bottom: 8px;
  font-size: clamp(18px, calc(var(--page-module-card-title-size, 19px) * 1.06), 23px);
  line-height: 1.38;
  -webkit-line-clamp: 2;
}

.page-module--feed.is-variant-media-list .page-module-card__description {
  line-height: 1.72;
  -webkit-line-clamp: min(var(--page-module-description-lines, 2), 3);
}

.page-module--feed.is-variant-media-list .page-module-card__link {
  width: max-content;
  margin-top: 12px;
  padding-top: 0;
}

/* Editorial feed: typography and rules establish the hierarchy, not card chrome. */
.page-module--feed.is-variant-editorial .page-module__grid--feed {
  gap: 0 clamp(28px, 4vw, 64px);
}

.page-module--feed.is-variant-editorial .page-module-card--feed {
  overflow: visible;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transition: border-color var(--ui-motion-duration-fast, 180ms) ease;
}

.page-module--feed.is-variant-editorial .page-module-card--feed:first-child {
  grid-column: span 7 !important;
  grid-row: 1 / span 3;
  padding-right: clamp(0px, 2vw, 28px);
  border-right: 1px solid var(--ui-color-border, #e2e8f0);
}

.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2) {
  grid-column: span 5 !important;
  border-top: 1px solid var(--ui-color-border, #e2e8f0);
}

.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(2) {
  border-top: 0;
}

/* Editorial count contract: one lead story, then complete secondary rows. */
.page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count="1"] .page-module-card--feed:first-child {
  grid-column: 1 / -1 !important;
  grid-row: auto;
  padding-right: 0;
  border-right: 0;
}

.page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count="2"] .page-module-card--feed:first-child {
  grid-row: auto;
}

.page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count="3"] .page-module-card--feed:first-child,
.page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count="5"] .page-module-card--feed:first-child,
.page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count="6"] .page-module-card--feed:first-child {
  grid-row: 1 / span 2;
}

.page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count="5"] .page-module-card--feed:nth-child(4),
.page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count="5"] .page-module-card--feed:nth-child(5) {
  grid-column: span 6 !important;
}

.page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count="6"] .page-module-card--feed:nth-child(n + 4) {
  grid-column: span 4 !important;
}

.page-module--feed.is-variant-editorial .page-module-card__media {
  flex: 0 0 auto;
  margin-bottom: clamp(22px, 3vw, 34px);
  border-radius: var(--page-module-card-radius);
}

.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2) .page-module-card__media {
  display: none;
}

.page-module--feed.is-variant-editorial .page-module-card__body {
  min-height: 0;
  padding: 0;
  background: transparent;
}

/* The lead story has no card-body padding, so reserve enough bottom room for
   the minimal action underline instead of letting it render past the card. */
.page-module--feed.is-variant-editorial .page-module-card--feed:first-child .page-module-card__body {
  padding-bottom: 8px;
}

.page-module--feed.is-variant-editorial .page-module-card--feed:first-child .page-module-card__title {
  max-width: 100%;
  margin-bottom: 16px;
  font-size: clamp(28px, calc(var(--page-module-card-title-size, 19px) * 1.65), 44px);
  line-height: 1.16;
  letter-spacing: -.035em;
  -webkit-line-clamp: 3;
}

.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2) .page-module-card__body {
  padding: clamp(18px, 2vw, 24px) 0;
}

.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2) .page-module-card__title {
  margin-bottom: 9px;
  font-size: clamp(17px, calc(var(--page-module-card-title-size, 19px) * 1.04), 24px);
  font-weight: var(--page-module-card-title-weight, 700);
  line-height: 1.38;
  -webkit-line-clamp: 2;
}

.page-module--feed.is-variant-editorial .page-module-card__description {
  color: var(--page-module-card-description-color, var(--ui-color-text-muted, #64748b));
  -webkit-line-clamp: min(var(--page-module-description-lines, 4), 4);
}

.page-module--feed.is-variant-editorial .page-module-card--feed:first-child .page-module-card__description {
  max-width: 62ch;
  font-size: clamp(14px, calc(var(--page-module-card-description-size, 14px) * 1.08), 18px);
  line-height: 1.72;
}

.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2) .page-module-card__description {
  font-size: clamp(13px, var(--page-module-card-description-size, 14px), 16px);
  line-height: 1.62;
  -webkit-line-clamp: min(var(--page-module-description-lines, 2), 2);
}

.page-module--feed.is-variant-editorial .page-module-card__meta {
  margin-bottom: 12px;
  justify-content: flex-start;
  gap: 8px 14px;
}

.page-module--feed.is-variant-editorial .page-module-tags {
  gap: 6px 10px;
}

.page-module--feed.is-variant-editorial .page-module-tags__item {
  min-height: 0;
  padding: 0;
  color: var(--ui-color-text-muted, #64748b);
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.page-module--feed.is-variant-editorial .page-module-card__date {
  color: var(--ui-color-text-faint, #94a3b8);
  font-size: 11px;
  letter-spacing: .06em;
}

.page-module--feed.is-variant-editorial .page-module-card__link {
  margin-top: 16px;
  padding-top: 0;
}

/* Visual feed keeps article metadata while making the image the primary signal. */
.page-module--feed.is-variant-visual .page-module-card--feed {
  overflow: visible;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

.page-module--feed.is-variant-visual .page-module-card__media {
  overflow: hidden;
  border-radius: var(--page-module-card-radius);
}

.page-module--feed.is-variant-visual .page-module-card__body {
  min-height: 0;
  padding: 20px 18px 18px;
  background: transparent;
}

/* Visual Feed cards deliberately have no independent Surface. Their default
   copy therefore consumes the existing Section foreground contract; explicit
   card title/description colors remain authoritative through the inline
   --page-module-card-* variables emitted by the Renderer. */
.page-module--feed.is-variant-visual[data-module-foreground="dark"] {
  --ui-card-title-color: #0f172a;
  --ui-card-text-color: #64748b;
}

.page-module--feed.is-variant-visual[data-module-foreground="light"] {
  --ui-card-title-color: #f8fafc;
  --ui-card-text-color: #cbd5e1;
}

.page-module--feed.is-variant-visual .page-module-card__title {
  font-size: var(--page-module-card-title-size, clamp(20px, 2vw, 28px));
  line-height: 1.28;
  -webkit-line-clamp: 3;
}

.page-module--feed.is-variant-visual .page-module-card__description {
  -webkit-line-clamp: min(var(--page-module-description-lines, 3), 3);
}

.page-module--feed.is-variant-visual .page-module-card__link {
  margin-top: 16px;
  padding-top: 0;
}

/* FAQ */
.page-module-faq {
  display: grid;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  gap: 14px;
}

.page-module-faq__item {
  width: 100%;
  margin: 0;
  box-shadow: var(--ui-card-shadow, 0 1px 3px rgba(15, 23, 42, .07), 0 10px 28px rgba(15, 23, 42, .07));
}

.page-module-faq__item summary {
  position: relative;
  display: flex;
  padding: 20px 54px 20px 22px;
  align-items: baseline;
  gap: 8px;
  color: var(--page-module-card-title-color, var(--ui-color-text-strong, #0f172a));
  font-size: var(--page-module-card-title-size, var(--ui-type-card-title-size, 19px));
  font-weight: var(--page-module-card-title-weight, var(--ui-type-card-title-weight, 700));
  cursor: pointer;
  list-style: none;
}

/* Semantic question heading: summary remains the typography/layout owner. */
.page-module-faq .page-module-faq__item .page-module-faq__question {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: inherit;
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  /* Preserve summary sizing even under the compact mobile H3 policy. */
  font-size: inherit !important;
  letter-spacing: inherit;
  text-transform: inherit;
}

.page-module-faq__item summary::-webkit-details-marker {
  display: none;
}

.page-module-faq__item summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 22px;
  color: var(--page-module-icon-color, var(--page-module-accent));
  font-size: 24px;
  transform: translateY(-50%);
}

.page-module-faq__item[open] summary::after {
  content: "−";
}

.page-module-faq__answer {
  position: relative;
  z-index: 1;
  display: flex;
  padding: 0 22px 22px;
  align-items: baseline;
  gap: 8px;
  color: var(--page-module-card-description-color, var(--ui-color-text-muted, #64748b));
  font-size: var(--page-module-card-description-size, var(--ui-type-card-description-size, 14px));
  line-height: var(--ui-type-body-leading, 1.75);
}

.page-module-faq__answer p {
  flex: 1;
  margin: 0;
  color: inherit;
}

.page-module-faq__mark {
  display: inline-block;
  flex: 0 0 auto;
  color: var(--page-module-icon-color, var(--page-module-accent));
  font-size: 1em;
  line-height: inherit;
}

.page-module-faq__item summary .page-module-faq__mark {
  font-weight: 800;
}

.page-module-faq__answer .page-module-faq__mark {
  font-weight: 500;
}

/* Text entries */
.page-module-link {
  position: relative;
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: var(--ui-action-gap, 8px);
  color: var(--page-module-link-color, var(--page-module-accent));
  font-size: var(--page-module-link-size, var(--ui-action-card-font-size, 14px));
  font-weight: var(--ui-action-font-weight, 600);
  line-height: 1.4;
  text-decoration: none;
  transition:
    color var(--ui-duration, 260ms) var(--ui-ease, ease),
    opacity var(--ui-duration, 260ms) var(--ui-ease, ease),
    transform var(--ui-duration, 260ms) var(--ui-ease, ease),
    background-color var(--ui-duration, 260ms) var(--ui-ease, ease),
    border-color var(--ui-duration, 260ms) var(--ui-ease, ease);
}

/* Light-surface module actions consume the resolved readable accent tone. */
.site-ui-v2 .page-module-link,
.site-ui-v2 .page-module-link:hover {
  color: var(--page-module-link-color, var(--ui-color-accent-deep, var(--page-module-accent)));
}

/* One focus contract for every public PageModule interactive target. The outline
   stays independent from Card Style and Variant box-shadow composition. */
.page-module a.page-module-card:focus-visible,
.page-module a.page-module-link:focus-visible,
.page-module .page-module-faq__item > summary:focus-visible,
.page-module .page-module-cta .ui-button:focus-visible {
  outline: 3px solid var(--page-module-link-color, var(--ui-color-accent-deep));
  outline-offset: 3px;
}

.page-module--cards.is-variant-visual a.page-module-card:focus-visible,
.page-module--cards.is-variant-visual a.page-module-link:focus-visible,
.page-module--cta.is-visual-preset-rail-frame .ui-button:focus-visible {
  outline-color: var(--ui-color-on-accent, #fff);
}

.page-module-link:active {
  transform: translateY(1px);
}

.page-module-link[aria-disabled="true"] {
  opacity: .48;
  pointer-events: none;
}

.page-module-card__link {
  margin-top: auto;
  padding-top: 18px;
}

.page-module-card.is-layout-compact .page-module-card__link {
  padding-top: 12px;
}

.page-module-link__arrow {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 10px;
  transition: transform var(--ui-duration, 260ms) var(--ui-ease, ease);
}

.page-module-link__arrow::before,
.page-module-link__arrow::after {
  content: "";
  position: absolute;
  right: 0;
  background: currentColor;
}

.page-module-link__arrow::before {
  top: 4px;
  width: 16px;
  height: 1px;
}

.page-module-link__arrow::after {
  top: 2px;
  width: 5px;
  height: 5px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  background: transparent;
  transform: rotate(45deg);
}

.page-module-link[data-entry-arrow="0"] .page-module-link__arrow {
  display: none;
}

.page-module-link[data-entry-style="minimal"]::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -6px;
  left: 0;
  width: 24px;
  height: 1px;
  background: currentColor;
  transition: width var(--ui-duration, 260ms) var(--ui-ease, ease);
}

/* Saved button_style is independent from content wording and entry-style variants. */
.page-module:not([data-button-style="inherit"]) .page-module-card__link {
  min-height: var(--ui-action-height-sm, 36px);
  padding: 8px var(--ui-action-padding-x, 18px);
  border: 1px solid transparent;
  border-radius: var(--ui-action-radius, var(--ui-radius-pill, 999px));
}

.page-module[data-button-style="primary"] .page-module-card__link {
  color: var(--ui-color-on-accent, #fff);
  background: var(--page-module-link-color, var(--page-module-accent));
}

.page-module[data-button-style="primary"] .page-module-card__link:hover {
  color: var(--ui-color-on-accent, #fff);
  background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 82%, #0f172a);
}

.page-module[data-button-style="secondary"] .page-module-card__link {
  color: var(--page-module-link-color, var(--page-module-accent));
  background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 10%, transparent);
}

.page-module[data-button-style="secondary"] .page-module-card__link:hover,
.page-module[data-button-style="ghost"] .page-module-card__link:hover {
  background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 16%, transparent);
}

.page-module[data-button-style="outline"] .page-module-card__link {
  color: var(--page-module-link-color, var(--page-module-accent));
  background: transparent;
  border-color: currentColor;
}

.page-module[data-button-style="outline"] .page-module-card__link:hover {
  background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 8%, transparent);
}

.page-module[data-button-style="ghost"] .page-module-card__link {
  color: var(--page-module-link-color, var(--page-module-accent));
  background: transparent;
}

.page-module[data-button-style="text"] .page-module-card__link {
  min-height: 0;
  padding: 0;
  color: var(--page-module-link-color, var(--page-module-accent));
  background: transparent;
  border: 0;
  border-radius: 0;
}

.page-module[data-button-style="text"] .page-module-card__link:hover {
  color: var(--page-module-link-color, var(--ui-color-accent-deep, var(--page-module-accent)));
}

.page-module-link[data-entry-style="soft-pill"],
.page-module-link[data-entry-style="rounded-box"],
.page-module-link[data-entry-style="solid"],
.page-module-link[data-entry-style="gradient-outline"] {
  min-height: 32px;
  padding: 0 14px;
  justify-content: center;
  border-radius: var(--ui-radius-pill, 999px);
  line-height: 1;
  white-space: nowrap;
}

/* Feed actions keep a readable content gap even when button-like entry styles reset padding. */
.page-module--feed .page-module-card__title:has(+ .page-module-card__link:is(
  [data-entry-style="soft-pill"],
  [data-entry-style="rounded-box"],
  [data-entry-style="solid"],
  [data-entry-style="gradient-outline"]
)),
.page-module--feed .page-module-card__description:has(+ .page-module-card__link:is(
  [data-entry-style="soft-pill"],
  [data-entry-style="rounded-box"],
  [data-entry-style="solid"],
  [data-entry-style="gradient-outline"]
)) {
  margin-bottom: 16px;
}

.page-module--feed.is-variant-editorial .page-module-card__link:is(
  [data-entry-style="soft-pill"],
  [data-entry-style="rounded-box"],
  [data-entry-style="solid"],
  [data-entry-style="gradient-outline"]
) {
  margin-top: 0;
}

.page-module--cards .page-module-link--primary:is(
  [data-entry-style="soft-pill"],
  [data-entry-style="rounded-box"],
  [data-entry-style="solid"],
  [data-entry-style="gradient-outline"]
) {
  padding: 0 14px;
}

.page-module--cards.is-variant-media .page-module-link--primary[data-entry-style="soft-pill"],
.page-module--cards.is-variant-media .page-module-link--primary[data-entry-style="rounded-box"],
.page-module--cards.is-variant-media .page-module-link--primary[data-entry-style="solid"],
.page-module--cards.is-variant-media .page-module-link--primary[data-entry-style="gradient-outline"] {
  padding: 0 14px;
}

.page-module--cards .page-module-card__body:has(> .page-module-card__links) > .page-module-link--primary:is(
  [data-entry-style="soft-pill"],
  [data-entry-style="rounded-box"],
  [data-entry-style="solid"],
  [data-entry-style="gradient-outline"]
) {
  margin-top: 12px;
}

.page-module-link[data-entry-style="soft-pill"] {
  background: color-mix(in srgb, var(--page-module-link-color) 10%, transparent);
}

.page-module .page-module-link[data-entry-style="rounded-box"] {
  min-height: 38px;
  padding: 0 16px;
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 48%, transparent);
  border-radius: var(--ui-radius-sm, 8px);
}

/* Treat the label and arrow as one centered group inside pill actions. */
.page-module-link[data-entry-style="soft-pill"][data-entry-arrow="1"] {
  display: inline-flex;
}

.page-module-link[data-entry-style="circle-arrow"] .page-module-link__arrow {
  width: 28px;
  height: 28px;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.page-module-link[data-entry-style="circle-arrow"] .page-module-link__arrow::before {
  top: 13px;
  right: 6px;
  width: 14px;
}

.page-module-link[data-entry-style="circle-arrow"] .page-module-link__arrow::after {
  top: 10px;
  right: 6px;
}

.page-module-link[data-entry-style="solid"] {
  color: var(--ui-color-on-accent, #fff);
  background: var(--page-module-link-color, var(--page-module-accent));
}

.site-ui-v2 .page-module-link[data-entry-style="solid"],
.site-ui-v2 .page-module-link[data-entry-style="solid"]:hover {
  color: var(--ui-color-on-accent, #fff);
}

.page-module-link[data-entry-style="gradient-outline"] {
  border: 1px solid transparent;
  background:
    linear-gradient(var(--page-module-card-background), var(--page-module-card-background)) padding-box,
    linear-gradient(
      var(--page-module-link-gradient-angle, 90deg),
      var(--page-module-link-color),
      var(--page-module-link-gradient-color)
    ) border-box;
}

.page-module-link[data-entry-style="long-line"] .page-module-link__arrow {
  width: 42px;
}

.page-module-link[data-entry-style="long-line"] .page-module-link__arrow::before {
  width: 40px;
}

.page-module-link[data-entry-style="wide-outline"] {
  display: inline-flex;
  width: 100%;
  min-height: 44px;
  padding: 0 16px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--page-module-link-color, var(--page-module-accent));
  background: transparent;
  border: 1px solid currentColor;
  border-radius: var(--ui-radius-sm, 8px);
  box-sizing: border-box;
  line-height: 1;
}

@media (hover: hover) {
  .site-ui-v2 .page-module-link[data-entry-style="soft-pill"]:hover {
    background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 16%, transparent);
  }

  .site-ui-v2 .page-module-link[data-entry-style="rounded-box"]:hover {
    background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 8%, transparent);
    border-color: var(--page-module-link-color, var(--page-module-accent));
  }

  .site-ui-v2 .page-module-link[data-entry-style="circle-arrow"]:hover .page-module-link__arrow {
    background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 10%, transparent);
  }

  .site-ui-v2 .page-module-link[data-entry-style="solid"]:hover {
    background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 88%, #0f172a);
  }

  .site-ui-v2 .page-module-link[data-entry-style="gradient-outline"]:hover {
    background:
      linear-gradient(
        color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 6%, var(--page-module-card-background)),
        color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 6%, var(--page-module-card-background))
      ) padding-box,
      linear-gradient(
        var(--page-module-link-gradient-angle, 90deg),
        var(--page-module-link-color),
        var(--page-module-link-gradient-color)
      ) border-box;
  }

  .site-ui-v2 .page-module-link[data-entry-style="wide-outline"]:hover {
    background: color-mix(in srgb, var(--page-module-link-color, var(--page-module-accent)) 8%, transparent);
  }
}

.site-ui-v2 .page-module--cards.is-variant-visual .page-module-card__link,
.site-ui-v2 .page-module--cards.is-variant-visual .page-module-card__link:hover {
  color: #fff;
}

/* Hover variants */
.page-module:not(.has-variant-interaction)[data-card-hover="lift"] .page-module-card:hover,
.page-module:not(.has-variant-interaction)[data-card-hover="lift"] .page-module-faq__item:hover {
  border-color: color-mix(in srgb, var(--page-module-accent) 42%, var(--ui-color-border, #e2e8f0));
  box-shadow: var(--ui-card-shadow-hover, 0 14px 34px rgba(15, 23, 42, .14));
  transform: translateY(var(--ui-card-hover-lift, -4px));
}

.page-module:not(.has-variant-interaction)[data-card-hover="border"] .page-module-card:hover,
.page-module:not(.has-variant-interaction)[data-card-hover="border"] .page-module-faq__item:hover {
  border-color: color-mix(in srgb, var(--page-module-accent) 68%, var(--ui-color-border, #e2e8f0));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--page-module-accent) 18%, transparent);
}

.page-module:not(.has-variant-interaction)[data-card-hover="tint"] .page-module-card:hover,
.page-module:not(.has-variant-interaction)[data-card-hover="tint"] .page-module-faq__item:hover {
  border-color: color-mix(in srgb, var(--page-module-accent) 32%, var(--ui-color-border, #e2e8f0));
  box-shadow: 0 8px 22px color-mix(in srgb, var(--page-module-accent) 10%, transparent);
}

.page-module:not(.has-variant-interaction)[data-card-hover="tint"] .page-module-card:hover .page-module-card__body::after,
.page-module:not(.has-variant-interaction)[data-card-hover="tint"] .page-module-card--stat:hover::after,
.page-module:not(.has-variant-interaction)[data-card-hover="tint"] .page-module-card--process:hover::after,
.page-module:not(.has-variant-interaction)[data-card-hover="tint"] .page-module-faq__item:hover::after {
  opacity: .055;
}

.page-module:not(.has-variant-interaction)[data-card-hover="about-line"] .page-module-card::before,
.page-module:not(.has-variant-interaction)[data-card-hover="about-line"] .page-module-faq__item::before,
.page-module:not(.has-variant-interaction)[data-card-hover="side-line"] .page-module-card::before,
.page-module:not(.has-variant-interaction)[data-card-hover="side-line"] .page-module-faq__item::before {
  content: "";
  position: absolute;
  z-index: 6;
  pointer-events: none;
  transition: transform .4s cubic-bezier(.16, 1, .3, 1);
}

.page-module:not(.has-variant-interaction)[data-card-hover="about-line"] .page-module-card::before,
.page-module:not(.has-variant-interaction)[data-card-hover="about-line"] .page-module-faq__item::before {
  top: 0;
  right: 0;
  bottom: auto;
  left: 0;
  width: auto;
  height: 3px;
  background: linear-gradient(90deg, var(--page-module-accent), color-mix(in srgb, var(--page-module-accent) 54%, #7c3aed));
  transform: scaleX(0);
  transform-origin: left;
}

.page-module:not(.has-variant-interaction)[data-card-hover="about-line"] .page-module-card:hover::before,
.page-module:not(.has-variant-interaction)[data-card-hover="about-line"] .page-module-faq__item:hover::before {
  transform: scaleX(1);
}

.page-module:not(.has-variant-interaction)[data-card-hover="side-line"] .page-module-card::before,
.page-module:not(.has-variant-interaction)[data-card-hover="side-line"] .page-module-faq__item::before {
  top: 0;
  right: auto;
  bottom: 0;
  left: 0;
  width: 4px;
  height: auto;
  background: linear-gradient(180deg, var(--page-module-accent), color-mix(in srgb, var(--page-module-accent) 54%, #7c3aed));
  transform: scaleY(0);
  transform-origin: top;
}

.page-module:not(.has-variant-interaction)[data-card-hover="side-line"] .page-module-card:hover::before,
.page-module:not(.has-variant-interaction)[data-card-hover="side-line"] .page-module-faq__item:hover::before {
  transform: scaleY(1);
}

.page-module:not(.has-variant-interaction)[data-card-hover="glow"] .page-module-card:hover,
.page-module:not(.has-variant-interaction)[data-card-hover="glow"] .page-module-faq__item:hover {
  border-color: color-mix(in srgb, var(--page-module-accent) 62%, var(--ui-color-border, #e2e8f0));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--page-module-accent) 18%, transparent),
    0 14px 32px color-mix(in srgb, var(--page-module-accent) 22%, transparent);
}

.page-module:not(.has-variant-interaction)[data-title-accent="1"] .page-module-card:hover .page-module-card__title,
.page-module:not(.has-variant-interaction)[data-title-accent="1"] .page-module-faq__item:hover summary {
  color: var(--page-module-accent, var(--ui-color-accent-deep, #0891b2));
}

.page-module:not([data-card-hover="none"]) .page-module-card:hover .page-module-card__media img {
  transform: scale(var(--ui-media-hover-scale, 1.04));
}

.page-module .page-module-card:hover .page-module-link__arrow {
  transform: translateX(4px);
}

.page-module .page-module-card:hover .page-module-link[data-entry-style="minimal"]::after {
  width: 38px;
}

/* Variant interaction remains structural: image/action emphasis or rule emphasis,
   never a second generic lift animation. */
.page-module--cards.is-variant-visual[data-card-hover] .page-module-card:hover,
.page-module--cards.is-variant-technical[data-card-hover] .page-module-card:hover,
.page-module--feed.is-variant-media-list[data-card-hover] .page-module-card:hover,
.page-module--feed.is-variant-editorial[data-card-hover] .page-module-card:hover,
.page-module--feed.is-variant-visual[data-card-hover] .page-module-card:hover {
  transform: none;
}

.page-module--feed.is-variant-media-list .page-module-card--feed:hover,
.page-module--feed.is-variant-media-list .page-module-card--feed:focus-within {
  border-color: color-mix(in srgb, var(--page-module-accent) 36%, var(--ui-color-border, #e2e8f0));
  background: transparent;
  box-shadow: none;
}

.page-module--feed.is-variant-media-list .page-module-card--feed:hover .page-module-card__title,
.page-module--feed.is-variant-media-list .page-module-card--feed:focus-within .page-module-card__title {
  color: var(--page-module-link-color, var(--page-module-accent));
}

.page-module--feed.is-variant-editorial[data-card-hover] .page-module-card:hover,
.page-module--feed.is-variant-editorial[data-card-hover] .page-module-card:focus-within {
  background: transparent;
  box-shadow: none;
}

.page-module--cards.is-variant-numbered .page-module-card:hover .page-module-card__body::before,
.page-module--cards.is-variant-numbered .page-module-card:focus-within .page-module-card__body::before {
  opacity: .72;
  transform: scaleY(1);
}

.page-module--cards.is-variant-numbered .page-module-card:hover .page-module-card__number,
.page-module--cards.is-variant-numbered .page-module-card:focus-within .page-module-card__number {
  color: color-mix(
    in srgb,
    var(--page-module-icon-color, var(--page-module-accent)) 28%,
    transparent
  );
}

.page-module--cards.is-variant-numbered .page-module-card:hover .page-module-card__icon,
.page-module--cards.is-variant-numbered .page-module-card:focus-within .page-module-card__icon {
  background: color-mix(in srgb, var(--page-module-icon-color, var(--page-module-accent)) 14%, transparent);
  border-color: color-mix(in srgb, var(--page-module-icon-color, var(--page-module-accent)) 34%, transparent);
}

.page-module--cards.is-variant-visual .page-module-card:hover .page-module-card__media img,
.page-module--feed.is-variant-visual .page-module-card:hover .page-module-card__media img {
  transform: scale(1.065);
}

.page-module--cards.is-variant-technical .page-module-card:hover {
  border-top-color: var(--page-module-accent);
  background:
    linear-gradient(
      90deg,
      transparent 0 68px,
      var(--page-module-accent) 68px 69px,
      color-mix(in srgb, var(--page-module-accent) 3%, transparent) 69px 100%
    );
}

.page-module--cards.is-variant-selection:not([data-card-hover="none"]) .page-module-card:hover,
.page-module--cards.is-variant-selection:not([data-card-hover="none"]) .page-module-card:focus-within {
  z-index: 1;
  background: color-mix(in srgb, var(--page-module-accent) 7%, var(--ui-color-surface, #fff));
  box-shadow: inset 0 -3px 0 var(--page-module-accent);
}

.page-module--cards.is-variant-selection:not([data-card-hover="none"]) .page-module-card:hover .page-module-card__body::after,
.page-module--cards.is-variant-selection:not([data-card-hover="none"]) .page-module-card:focus-within .page-module-card__body::after {
  opacity: .07;
}

.page-module--cards.is-variant-selection .page-module-card:active {
  transform: scale(.995);
}

/* Selection keeps its navigation feedback only when an explicit shared hover
   preset is selected. `none` must remain visually inert on pointer hover. */
.page-module--cards.is-variant-selection[data-card-hover="lift"] .page-module-card:hover {
  transform: translateY(var(--ui-card-hover-lift, -4px));
}

.page-module--cards.is-variant-selection[data-card-hover="border"] .page-module-card:hover {
  box-shadow:
    inset 0 0 0 2px color-mix(in srgb, var(--page-module-accent) 54%, transparent),
    inset 0 -3px 0 var(--page-module-accent);
}

.page-module--cards.is-variant-selection[data-card-hover="tint"] .page-module-card:hover .page-module-card__body::after {
  opacity: .12;
}

.page-module--cards.is-variant-selection[data-card-hover="glow"] .page-module-card:hover {
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--page-module-accent) 48%, transparent),
    inset 0 0 24px color-mix(in srgb, var(--page-module-accent) 14%, transparent),
    inset 0 -3px 0 var(--page-module-accent);
}

.page-module--feed.is-variant-editorial .page-module-card--feed:first-child:hover,
.page-module--feed.is-variant-editorial .page-module-card--feed:first-child:focus-within {
  border-right-color: color-mix(in srgb, var(--page-module-accent) 42%, var(--ui-color-border, #e2e8f0));
}

.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2):hover,
.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2):focus-within {
  border-top-color: color-mix(in srgb, var(--page-module-accent) 34%, var(--ui-color-border, #e2e8f0));
}

.page-module--feed.is-variant-editorial .page-module-card--feed:first-child:hover .page-module-card__title,
.page-module--feed.is-variant-editorial .page-module-card--feed:first-child:focus-within .page-module-card__title {
  color: var(--page-module-link-color, var(--ui-color-accent-deep, var(--page-module-accent)));
}

.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2):hover .page-module-card__title,
.page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2):focus-within .page-module-card__title {
  color: var(--page-module-link-color, var(--ui-color-accent-deep, var(--page-module-accent)));
}

/* Logo Wall */
.page-module__grid--logo-wall {
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-module__grid--logo-wall[data-module-desktop-columns="4"] > .page-module-logo {
  grid-column: span 3;
}

.page-module__grid--logo-wall[data-module-desktop-columns="6"] > .page-module-logo {
  grid-column: span 2;
}

.page-module-logo {
  min-width: 0;
  min-height: 144px;
  overflow: hidden;
  background: var(--page-module-card-background, var(--ui-color-surface, #fff));
  border: 1px solid var(--ui-color-border, #e2e8f0);
  border-radius: var(--page-module-card-radius);
  transition:
    border-color var(--ui-duration, 260ms) var(--ui-ease, ease),
    background-color var(--ui-duration, 260ms) var(--ui-ease, ease);
}

.page-module--logo-wall.is-variant-compact .page-module-logo {
  min-height: 108px;
}

.page-module-logo.has-placeholder {
  border-style: dashed;
}

.page-module-logo__link {
  display: flex;
  min-height: inherit;
  padding: clamp(18px, 2.4vw, 32px);
  align-items: center;
  justify-content: center;
  color: var(--ui-color-text-muted, #64748b);
  text-align: center;
  text-decoration: none;
}

.page-module--logo-wall.is-variant-compact .page-module-logo__link {
  padding: clamp(14px, 1.8vw, 22px);
}

.page-module-logo__media {
  display: flex;
  width: 100%;
  height: 64px;
  min-width: 0;
  align-items: center;
  justify-content: center;
}

.page-module--logo-wall.is-variant-compact .page-module-logo__media {
  height: 46px;
}

.page-module-logo__image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  filter: grayscale(1);
  opacity: var(--ui-media-muted-opacity, .62);
  transition:
    filter var(--ui-media-duration, 500ms) var(--ui-ease, ease),
    opacity var(--ui-duration, 260ms) var(--ui-ease, ease),
    transform var(--ui-media-duration, 500ms) var(--ui-ease, ease);
}

.page-module-logo__fallback {
  display: -webkit-box;
  overflow: hidden;
  color: var(--ui-color-text-muted, #64748b);
  font-size: var(--ui-type-body-size, 15px);
  font-weight: 600;
  line-height: 1.4;
  word-break: break-word;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.page-module-logo:hover,
.page-module-logo:focus-within {
  background: color-mix(in srgb, var(--page-module-accent) 3%, var(--ui-color-surface, #fff));
  border-color: color-mix(in srgb, var(--page-module-accent) 36%, var(--ui-color-border, #e2e8f0));
}

.page-module-logo:hover .page-module-logo__image,
.page-module-logo:focus-within .page-module-logo__image {
  filter: grayscale(0);
  opacity: 1;
  transform: scale(1.025);
}

.page-module-logo__link:focus-visible {
  outline: 2px solid var(--page-module-accent);
  outline-offset: -4px;
}

/* CTA base owns only the shared content and action structure. Visual surface rules
   belong to an explicit public visual preset. */
.page-module-cta {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: clamp(28px, 5vw, 64px);
}

.page-module--cta.is-variant-split .page-module-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}

.page-module-cta__content {
  min-width: 0;
  max-width: 720px;
  text-align: var(--page-module-title-align, left);
}

.page-module-cta__eyebrow {
  margin-bottom: var(--ui-space-3, 12px);
}

.page-module-cta__title {
  margin-bottom: var(--ui-space-3, 12px);
  color: inherit;
}

.page-module-cta__intro {
  max-width: none;
  margin: 0;
  color: inherit;
  opacity: .84;
}

.page-module-cta__note {
  margin: var(--ui-space-4, 16px) 0 0;
  color: inherit;
  font-size: var(--ui-type-note-size, 13px);
  line-height: var(--ui-type-note-leading, 1.6);
  opacity: .72;
}

.page-module-cta__actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: var(--ui-space-3, 12px);
}

.page-module-cta__action {
  white-space: nowrap;
}

/* Site consultation is one public semantic CTA across Page Types. Action
   direction is a profile contract and must never depend on label length. */
.page-module--cta[data-cta-profile="site_consultation"] .page-module-cta__actions {
  display: grid;
  width: min(100%, 480px);
  grid-template-columns: 1fr;
  gap: var(--ui-space-3, 12px);
}

.page-module--cta[data-cta-profile="site_consultation"] .page-module-cta__actions[data-action-count="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-module--cta[data-cta-profile="site_consultation"] .page-module-cta__action {
  width: 100%;
  min-width: 0;
  white-space: normal;
  text-align: center;
}

/* Public CTA visual preset: neutral dark conversion surface. */
.page-module--cta[data-module-visual-preset="default"] .page-module-cta {
  padding: clamp(28px, 4vw, 48px);
  color: var(--ui-color-on-accent, #fff);
  background:
    radial-gradient(ellipse 48% 130% at 84% 50%, color-mix(in srgb, var(--page-module-accent) 17%, transparent) 0%, transparent 66%),
    linear-gradient(115deg, #071426 0%, #0b1d34 58%, #071426 100%);
  border-radius: var(--page-module-card-radius);
}

.page-module--cta[data-module-visual-preset="default"] .ui-button--primary:hover {
  color: var(--ui-color-on-accent, #fff);
  background: var(--page-module-accent);
  border-color: var(--page-module-accent);
  box-shadow: var(--ui-shadow-accent);
}

.page-module--cta[data-module-visual-preset="default"] .ui-button--ghost,
.page-module--cta[data-module-visual-preset="default"] .ui-button--outline,
.page-module--cta[data-module-visual-preset="default"] .ui-button--secondary {
  color: color-mix(in srgb, var(--page-module-accent) 78%, #fff);
  background: rgba(255, 255, 255, .035);
  border-color: color-mix(in srgb, var(--page-module-accent) 55%, rgba(255, 255, 255, .25));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 10px 28px rgba(0, 0, 0, .14);
}

.page-module--cta[data-module-visual-preset="default"] .ui-button--ghost:hover,
.page-module--cta[data-module-visual-preset="default"] .ui-button--outline:hover,
.page-module--cta[data-module-visual-preset="default"] .ui-button--secondary:hover {
  color: var(--page-module-accent);
  background: var(--ui-color-on-accent, #fff);
  border-color: var(--ui-color-on-accent, #fff);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 12px 30px rgba(0, 0, 0, .16);
}

.page-module--cta[data-module-visual-preset="default"] .ui-button:focus-visible {
  outline-color: var(--ui-color-on-accent, #fff);
}

/* Phone is an action type, not a visual role. It only contributes semantics and
   an icon; role colors and states remain owned by the button class/preset. */
.page-module--cta .page-module-cta__action[data-action-type="phone"]::before,
.page-module--cta .page-module-cta__action[data-action-type="wechat"]::before {
  display: inline-block;
  margin-right: 9px;
  content: "\f095";
  font-family: FontAwesome;
  font-size: .92em;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  text-rendering: auto;
}

.page-module--cta .page-module-cta__action[data-action-type="wechat"]::before {
  content: "\f1d7";
}

/* Keep telephone labels on one line inside the existing consultation grid.
   Use one icon gap and narrower internal padding; preserve width and type. */
.page-module--cta[data-cta-profile="site_consultation"] .page-module-cta__action[data-action-type="phone"] {
  white-space: nowrap;
  padding-inline: 16px;
  gap: 8px;
}

.page-module--cta[data-cta-profile="site_consultation"] .page-module-cta__action[data-action-type="phone"]::before {
  margin-right: 0;
  flex-shrink: 0;
}

/* Normal links use a trailing direction mark while phone actions keep their
   leading phone icon. Action type only owns icon placement; the active button
   role continues to own color, surface, hover and focus. */
.page-module--cta .page-module-cta__action[data-action-type="link"]::after {
  display: inline-block;
  margin-left: 9px;
  content: "\2192";
  line-height: 1;
  transition: transform var(--ui-duration-fast, 160ms) var(--ui-ease, ease);
}

.page-module--cta .page-module-cta__action[data-action-type="link"]:hover::after {
  transform: translateX(3px);
}

/* Public CTA visual preset: compact rounded conversion card. */
.page-module--cta.is-variant-split.is-visual-preset-rounded-card {
  padding: clamp(16px, 2.2vw, 28px) 0;
  background: transparent;
  border-top: 0;
  border-bottom: 0;
}

.page-module--cta.is-visual-preset-rounded-card .page-module-cta {
  min-height: 276px;
  padding: clamp(32px, 3.4vw, 44px);
  color: var(--ui-color-text, #1e293b);
  background: var(--page-module-section-background, #fff);
  border: 1px solid color-mix(in srgb, var(--page-module-accent) 24%, var(--ui-color-border, #e2e8f0));
  border-radius: clamp(24px, 2.5vw, 36px);
  box-shadow: 0 18px 54px rgba(15, 23, 42, .07), inset 0 1px 0 rgba(255, 255, 255, .2);
}

.page-module--cta.is-visual-preset-rounded-card .page-module-cta__title {
  color: var(--page-module-title-color, var(--ui-color-text-strong, #0f172a));
}

.page-module--cta.is-visual-preset-rounded-card .page-module-cta__intro {
  color: var(--page-module-intro-color, var(--ui-color-text-muted, #64748b));
  opacity: 1;
}

.page-module--cta.is-visual-preset-rounded-card .page-module-cta__note {
  color: var(--page-module-intro-color, var(--ui-color-text-muted, #64748b));
  opacity: .82;
}

/* Rounded-card must remain readable on its light and custom surfaces instead of
   inheriting the dark-only action palette from the neutral CTA base. */
.page-module--cta.is-visual-preset-rounded-card .ui-button--primary {
  color: var(--ui-color-on-accent, #fff);
  background: var(--page-module-accent);
  border-color: var(--page-module-accent);
  box-shadow: var(--ui-shadow-accent);
}

.page-module--cta.is-visual-preset-rounded-card .ui-button--primary:hover {
  color: var(--ui-color-on-accent, #fff);
  background: var(--ui-color-accent-deep, var(--page-module-accent));
  border-color: var(--ui-color-accent-deep, var(--page-module-accent));
}

.page-module--cta.is-visual-preset-rounded-card .ui-button--ghost,
.page-module--cta.is-visual-preset-rounded-card .ui-button--outline,
.page-module--cta.is-visual-preset-rounded-card .ui-button--secondary {
  color: var(--page-module-link-color, var(--ui-color-accent-deep, var(--page-module-accent)));
  background: color-mix(in srgb, var(--page-module-accent) 7%, #fff);
  border-color: color-mix(in srgb, var(--page-module-accent) 42%, var(--ui-color-border, #e2e8f0));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .76), 0 10px 28px rgba(15, 23, 42, .08);
}

.page-module--cta.is-visual-preset-rounded-card .ui-button--ghost:hover,
.page-module--cta.is-visual-preset-rounded-card .ui-button--outline:hover,
.page-module--cta.is-visual-preset-rounded-card .ui-button--secondary:hover {
  color: var(--ui-color-on-accent, #fff);
  background: var(--page-module-accent);
  border-color: var(--page-module-accent);
  box-shadow: var(--ui-shadow-accent);
}

.page-module--cta.is-visual-preset-rounded-card .ui-button:focus-visible {
  outline-color: var(--page-module-link-color, var(--ui-color-accent-deep, var(--page-module-accent)));
}

.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .page-module-cta {
  --ui-color-text-strong: #fff;
  color: #fff;
  background:
    radial-gradient(ellipse 48% 130% at 84% 50%, color-mix(in srgb, var(--page-module-accent) 17%, transparent) 0%, transparent 66%),
    linear-gradient(115deg, #071426 0%, #0b1d34 58%, #071426 100%);
}

.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .ui-button--primary {
  color: var(--ui-color-on-accent, #fff);
  background: var(--page-module-accent);
  border-color: var(--page-module-accent);
  box-shadow: var(--ui-shadow-accent);
}

.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .ui-button--primary:hover {
  color: var(--page-module-accent);
  background: var(--ui-color-on-accent, #fff);
  border-color: var(--ui-color-on-accent, #fff);
}

.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .ui-button--ghost,
.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .ui-button--outline,
.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .ui-button--secondary {
  color: color-mix(in srgb, var(--page-module-accent) 78%, #fff);
  background: rgba(255, 255, 255, .035);
  border-color: color-mix(in srgb, var(--page-module-accent) 55%, rgba(255, 255, 255, .25));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 10px 28px rgba(0, 0, 0, .14);
}

.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .ui-button--ghost:hover,
.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .ui-button--outline:hover,
.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .ui-button--secondary:hover {
  color: var(--page-module-accent);
  background: var(--ui-color-on-accent, #fff);
  border-color: var(--ui-color-on-accent, #fff);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 12px 30px rgba(0, 0, 0, .16);
}

.page-module--cta.is-visual-preset-rounded-card .page-module-cta::before,
.page-module--cta.is-visual-preset-rounded-card .page-module-cta__actions::before {
  display: none;
  content: none;
}

.page-module--cta.is-visual-preset-rounded-card[data-module-section-background="inherit"] .ui-button:focus-visible {
  outline-color: var(--ui-color-on-accent, #fff);
}

/* Public CTA visual preset: dark rail frame with controlled responsive actions. */
.page-module--cta.is-variant-split.is-visual-preset-rail-frame {
  --page-module-cta-note-color: var(--page-module-accent);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 0;
  background:
    radial-gradient(ellipse 48% 130% at 84% 50%, color-mix(in srgb, var(--page-module-accent) 17%, transparent) 0%, transparent 66%),
    linear-gradient(115deg, #071426 0%, #0b1d34 58%, #071426 100%);
  border-top: 1px solid color-mix(in srgb, var(--page-module-accent) 16%, var(--ui-color-border, #e2e8f0));
  border-bottom: 1px solid color-mix(in srgb, var(--page-module-accent) 16%, var(--ui-color-border, #e2e8f0));
}

/* The rail-frame preset owns structure and decoration. Named/custom section
   backgrounds remain owned by the shared section background control. */
.page-module--cta.is-variant-split.is-visual-preset-rail-frame:not([data-module-section-background="inherit"]) {
  background:
    radial-gradient(ellipse 48% 130% at 84% 50%, color-mix(in srgb, var(--page-module-accent) 10%, transparent) 0%, transparent 66%),
    var(--page-module-section-background, var(--ui-color-bg, #fff));
}

.page-module--cta.is-visual-preset-rail-frame::before {
  position: absolute;
  z-index: -2;
  inset: -55% -2% -65% 48%;
  background: radial-gradient(ellipse at center, color-mix(in srgb, var(--page-module-accent) 20%, transparent) 0%, color-mix(in srgb, var(--page-module-accent) 7%, transparent) 38%, transparent 72%);
  content: "";
  pointer-events: none;
}

.page-module--cta.is-visual-preset-rail-frame::after {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  bottom: 0;
  width: max(34%, 430px);
  background: linear-gradient(125deg, transparent 0 12%, rgba(255, 255, 255, .025) 12.2% 100%);
  content: "";
  pointer-events: none;
}

.page-module--cta.is-visual-preset-rail-frame > .page-module__container {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1280px);
  max-width: 1280px;
  padding: 0;
}

.page-module--cta.is-visual-preset-rail-frame > .page-module__container::before {
  position: absolute;
  z-index: -1;
  top: 34px;
  right: 0;
  bottom: 34px;
  left: 0;
  background:
    linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--page-module-accent) 12%, transparent) 12%, color-mix(in srgb, var(--page-module-accent) 32%, transparent) 72%, color-mix(in srgb, var(--page-module-accent) 68%, transparent) 100%) left top / 65% 1px no-repeat,
    linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--page-module-accent) 10%, transparent) 12%, color-mix(in srgb, var(--page-module-accent) 28%, transparent) 72%, color-mix(in srgb, var(--page-module-accent) 62%, transparent) 100%) left bottom / 58% 1px no-repeat;
  content: "";
  pointer-events: none;
}

.page-module--cta.is-visual-preset-rail-frame > .page-module__container::after {
  position: absolute;
  z-index: -1;
  top: 34px;
  right: -8%;
  bottom: 34px;
  left: 60%;
  background: linear-gradient(180deg, color-mix(in srgb, var(--page-module-accent) 14%, transparent) 0%, color-mix(in srgb, var(--page-module-accent) 36%, transparent) 32%, color-mix(in srgb, var(--page-module-accent) 78%, transparent) 46%, color-mix(in srgb, var(--page-module-accent) 100%, transparent) 50%, color-mix(in srgb, var(--page-module-accent) 78%, transparent) 54%, color-mix(in srgb, var(--page-module-accent) 36%, transparent) 68%, color-mix(in srgb, var(--page-module-accent) 14%, transparent) 100%) left center / 2px 100% no-repeat;
  border: 1px solid color-mix(in srgb, var(--page-module-accent) 23%, transparent);
  border-right: 0;
  border-left-color: color-mix(in srgb, var(--page-module-accent) 28%, transparent);
  border-radius: 38px 0 0 38px;
  filter: drop-shadow(-1px 0 6px color-mix(in srgb, var(--page-module-accent) 18%, transparent));
  content: "";
  pointer-events: none;
  transform: skewX(-15deg);
  transform-origin: center;
}

.page-module--cta.is-visual-preset-rail-frame .page-module-cta {
  --ui-color-text-strong: #fff;
  position: relative;
  display: grid;
  min-height: clamp(350px, 30vw, 420px);
  grid-template-columns: minmax(0, 760px) minmax(400px, 1fr);
  gap: clamp(48px, 6vw, 88px);
  align-items: center;
  padding: clamp(62px, 6.5vw, 88px) 70px clamp(62px, 6.5vw, 88px) 34px;
  color: #fff;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.page-module--cta.is-visual-preset-rail-frame:not([data-module-section-background="inherit"]) .page-module-cta {
  --ui-color-text-strong: var(--page-module-title-color, var(--ui-color-text-strong, #0f172a));
  color: var(--page-module-title-color, var(--ui-color-text, #1e293b));
}

.page-module--cta.is-visual-preset-rail-frame .page-module-cta::before {
  position: absolute;
  top: clamp(62px, 6.5vw, 88px);
  bottom: clamp(62px, 6.5vw, 88px);
  left: 0;
  width: 4px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--page-module-accent) 72%, #fff), var(--page-module-accent));
  box-shadow: 0 0 24px color-mix(in srgb, var(--page-module-accent) 20%, transparent);
  content: "";
}

.page-module--cta.is-visual-preset-rail-frame .page-module-cta__content {
  max-width: 760px;
}

.page-module--cta.is-visual-preset-rail-frame .page-module-cta__eyebrow {
  margin-bottom: 16px;
}

.page-module--cta.is-visual-preset-rail-frame .page-module-cta__title {
  max-width: none;
  color: var(--page-module-title-color, #f8fafc);
  line-height: 1.12;
  letter-spacing: -.035em;
}

.page-module--cta.is-visual-preset-rail-frame .page-module-cta__intro {
  max-width: 680px;
  color: var(--page-module-intro-color, #cbd5e1);
  line-height: 1.78;
  opacity: 1;
}

.page-module--cta.is-visual-preset-rail-frame .page-module-cta__note {
  margin-top: 19px;
  color: var(--page-module-cta-note-color, var(--page-module-accent));
  font-size: 13px;
  font-weight: 600;
  opacity: 1;
}

.page-module--cta.is-visual-preset-rail-frame .page-module-cta__actions {
  position: relative;
  justify-content: flex-end;
  gap: 14px;
}

.page-module--cta.is-visual-preset-rail-frame .page-module-cta__actions::before {
  position: absolute;
  top: 50%;
  left: -40px;
  width: 5px;
  height: 5px;
  background: color-mix(in srgb, var(--page-module-accent) 82%, #fff);
  border: 1px solid color-mix(in srgb, var(--page-module-accent) 42%, #fff);
  border-radius: 50%;
  box-shadow: 0 0 7px var(--page-module-accent), 0 0 19px color-mix(in srgb, var(--page-module-accent) 68%, transparent);
  content: "";
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.page-module--cta.is-visual-preset-rail-frame .ui-button {
  min-width: 184px;
  min-height: 54px;
  padding-inline: 22px;
  border-radius: var(--ui-action-radius);
  letter-spacing: .01em;
}

.page-module--cta.is-visual-preset-rail-frame .ui-button--primary {
  color: var(--ui-color-on-accent, #fff);
  background: linear-gradient(180deg, color-mix(in srgb, var(--page-module-accent) 78%, #fff) 0%, var(--page-module-accent) 46%, color-mix(in srgb, var(--page-module-accent) 82%, #082f49) 100%);
  border-color: color-mix(in srgb, var(--page-module-accent) 70%, #fff);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .38), inset 0 -1px 0 rgba(2, 6, 23, .2), 0 12px 30px color-mix(in srgb, var(--page-module-accent) 20%, transparent), 0 0 34px color-mix(in srgb, var(--page-module-accent) 10%, transparent);
}

.page-module--cta.is-visual-preset-rail-frame .ui-button--primary:hover {
  color: color-mix(in srgb, var(--page-module-accent) 82%, #fff);
  background: rgba(5, 17, 32, .72);
  border-color: color-mix(in srgb, var(--page-module-accent) 82%, #fff);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 12px 30px rgba(0, 0, 0, .2), 0 0 36px color-mix(in srgb, var(--page-module-accent) 18%, transparent);
}

.page-module--cta.is-visual-preset-rail-frame .ui-button--ghost,
.page-module--cta.is-visual-preset-rail-frame .ui-button--outline,
.page-module--cta.is-visual-preset-rail-frame .ui-button--secondary {
  color: #e6fffb;
  background: rgba(255, 255, 255, .035);
  border-color: color-mix(in srgb, var(--page-module-accent) 55%, rgba(255, 255, 255, .25));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 10px 28px rgba(0, 0, 0, .18), 0 0 28px color-mix(in srgb, var(--page-module-accent) 7%, transparent);
}

.page-module--cta.is-visual-preset-rail-frame:not([data-module-section-background="inherit"]) .ui-button--ghost,
.page-module--cta.is-visual-preset-rail-frame:not([data-module-section-background="inherit"]) .ui-button--outline,
.page-module--cta.is-visual-preset-rail-frame:not([data-module-section-background="inherit"]) .ui-button--secondary {
  color: var(--page-module-link-color, var(--ui-color-accent-deep, var(--page-module-accent)));
  background: color-mix(in srgb, var(--page-module-accent) 7%, #fff);
  border-color: color-mix(in srgb, var(--page-module-accent) 42%, var(--ui-color-border, #e2e8f0));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .76), 0 10px 28px rgba(15, 23, 42, .08), 0 0 28px color-mix(in srgb, var(--page-module-accent) 7%, transparent);
}

.page-module--cta.is-visual-preset-rail-frame .ui-button--ghost:hover,
.page-module--cta.is-visual-preset-rail-frame .ui-button--outline:hover,
.page-module--cta.is-visual-preset-rail-frame .ui-button--secondary:hover {
  color: var(--page-module-accent);
  background: color-mix(in srgb, var(--page-module-accent) 13%, #fff);
  border-color: color-mix(in srgb, var(--page-module-accent) 46%, #fff);
  box-shadow: inset 0 1px 0 #fff, 0 12px 30px rgba(0, 0, 0, .16), 0 0 36px color-mix(in srgb, var(--page-module-accent) 18%, transparent);
}

.page-module--cta.is-visual-preset-rail-frame:not([data-module-section-background="inherit"]) .ui-button:focus-visible {
  outline-color: var(--page-module-link-color, var(--ui-color-accent-deep, var(--page-module-accent)));
}

@media (max-width: 1024.98px) {
  .page-module--cards.is-variant-icon-feature .page-module__grid--cards[data-module-grid-layout="direct"][data-module-tablet-columns="1"] {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-module--cards.is-variant-icon-feature .page-module__grid--cards[data-module-grid-layout="direct"][data-module-tablet-columns="2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-module--cards.is-variant-icon-feature .page-module__grid--cards[data-module-grid-layout="direct"][data-module-tablet-columns="3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .page-module--cta.is-visual-preset-rounded-card .page-module-cta {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .page-module--cta.is-visual-preset-rounded-card .page-module-cta__actions {
    justify-content: flex-start;
  }

  .page-module--process.is-layout-serpentine .page-module__grid--process::before,
  .page-module--process.is-layout-serpentine .page-module__grid--process::after,
  .page-module--process.is-layout-serpentine .page-module-card--process::before,
  .page-module--process.is-layout-serpentine .page-module-card--process::after {
    display: none;
    content: none;
  }

  .page-module--cta.is-visual-preset-rail-frame::after,
  .page-module--cta.is-visual-preset-rail-frame > .page-module__container::before,
  .page-module--cta.is-visual-preset-rail-frame > .page-module__container::after,
  .page-module--cta.is-visual-preset-rail-frame .page-module-cta__actions::before {
    display: none;
  }

  .page-module--cta.is-visual-preset-rail-frame .page-module-cta {
    grid-template-columns: 1fr;
    gap: 30px;
    padding-right: 0;
  }

  .page-module--cta.is-visual-preset-rail-frame .page-module-cta__actions {
    justify-content: flex-start;
  }

  .page-module__grid--logo-wall[data-module-tablet-columns="4"] > .page-module-logo {
    grid-column: span 3;
  }

  .page-module__grid[data-module-tablet-columns="1"] > .page-module-card {
    grid-column: span 12;
  }

  .page-module__grid[data-module-tablet-columns="2"] > .page-module-card {
    grid-column: span 6;
  }

  .page-module--cards.is-variant-selection .page-module-card__title {
    font-size: var(--page-module-card-title-size, clamp(29px, 3.25vw, 36px));
    -webkit-line-clamp: 3;
  }

  .page-module--feed.is-variant-featured .page-module-card--feed:first-child,
  .page-module--feed.is-variant-featured .page-module-card--feed:nth-child(n + 2),
  .page-module--feed.is-variant-editorial .page-module-card--feed:first-child,
  .page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2) {
    grid-column: span 6 !important;
    grid-row: auto !important;
  }

  .page-module--feed.is-variant-editorial .page-module-card--feed:first-child {
    padding-right: 0;
    border-right: 0;
    border-bottom: 1px solid var(--ui-color-border, #e2e8f0);
  }

  .page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(2) {
    border-top: 0;
  }

  .page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count] .page-module-card--feed:first-child,
  .page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count] .page-module-card--feed:nth-child(n + 2) {
    grid-column: span 6 !important;
    grid-row: auto !important;
  }
}

@media (max-width: 767px) {
  .page-module--cards.is-variant-icon-feature .page-module__grid--cards[data-module-grid-layout="direct"][data-module-mobile-columns="1"] {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-module--cards.is-variant-icon-feature .page-module__grid--cards[data-module-grid-layout="direct"][data-module-mobile-columns="2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__body {
    padding: var(--page-module-icon-feature-mobile-padding, 24px);
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto auto;
  }

  .page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__icon,
  .page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__title,
  .page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__description,
  .page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__links,
  .page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__link {
    grid-column: 1;
  }

  .page-module--cards.is-variant-icon-feature .page-module-card--icon-feature .page-module-card__icon {
    grid-row: 1;
    margin-bottom: 20px;
  }

  .page-module--cta[data-cta-profile="site_consultation"] .page-module-cta__actions,
  .page-module--cta[data-cta-profile="site_consultation"] .page-module-cta__actions[data-action-count="2"] {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .page-module--cta.is-variant-split.is-visual-preset-rounded-card {
    padding: 12px 0;
  }

  .page-module--cta.is-visual-preset-rounded-card .page-module-cta {
    min-height: 0;
    padding: 30px 24px 24px;
    border-radius: 22px;
  }

  .page-module--cta.is-visual-preset-rail-frame {
    padding: 0;
  }

  .page-module--cta.is-visual-preset-rail-frame > .page-module__container {
    width: min(100% - 32px, 1280px);
  }

  .page-module--cta.is-visual-preset-rail-frame .page-module-cta {
    min-height: 0;
    gap: 28px;
    padding: 54px 0 58px 22px;
  }

  .page-module--cta.is-visual-preset-rail-frame .page-module-cta::before {
    top: 54px;
    bottom: 58px;
  }

  .page-module--cta.is-visual-preset-rail-frame .page-module-cta__actions {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr;
  }

  .page-module--cta.is-visual-preset-rail-frame .ui-button {
    width: 100%;
    min-width: 0;
    min-height: 50px;
  }

  .page-module--process.is-layout-serpentine .page-module__grid--process {
    grid-template-columns: 1fr;
    row-gap: 18px;
  }

  .page-module--process.is-layout-serpentine .page-module-card--process,
  .page-module--process.is-layout-serpentine .page-module-card--process:nth-child(n) {
    grid-column: 1 !important;
    grid-row: auto;
  }

  .page-module--process.is-layout-serpentine .page-module-card--process {
    padding: 0 8px 14px;
    gap: 10px;
  }

  .page-module--process.is-layout-serpentine .page-module__grid--process::before,
  .page-module--process.is-layout-serpentine .page-module__grid--process::after,
  .page-module--process.is-layout-serpentine .page-module-card--process::before,
  .page-module--process.is-layout-serpentine .page-module-card--process::after {
    display: none;
  }
  .page-module__grid--logo-wall[data-module-mobile-columns="1"] > .page-module-logo {
    grid-column: span 12;
  }

  .page-module__grid--logo-wall[data-module-mobile-columns="2"] > .page-module-logo {
    grid-column: span 6;
  }

  .page-module-logo {
    min-height: 112px;
  }

  .page-module--logo-wall.is-variant-compact .page-module-logo {
    min-height: 92px;
  }

  .page-module-logo__link {
    padding: 16px;
  }

  .page-module-logo__media {
    height: 48px;
  }

  .page-module-cta,
  .page-module--cta.is-variant-split .page-module-cta {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
  }

  .page-module-cta__actions {
    width: 100%;
  }

  .page-module {
    --page-module-section-padding: var(--ui-section-space-compact, clamp(44px, 12vw, 64px));
    --page-module-header-gap: var(--ui-section-heading-gap-compact, 40px);
  }

  .page-module__container {
    padding: 0 18px;
  }

  .page-module__header {
    margin-bottom: var(--page-module-header-gap);
    text-align: var(--page-module-mobile-title-align, var(--page-module-title-align, center));
  }

  .page-module-cta__content {
    text-align: var(--page-module-mobile-title-align, var(--page-module-title-align, left));
  }

  .page-module__grid[data-module-mobile-columns="1"] > .page-module-card {
    grid-column: span 12;
  }

  .page-module__grid[data-module-mobile-columns="2"] > .page-module-card {
    grid-column: span 6;
  }

  .page-module-card--image-text {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .page-module-card--image-text.is-media-right .page-module-card__media {
    order: 0;
  }

  .page-module--image-text[data-mobile-media-order="content-first"] .page-module-card--image-text .page-module-card__media {
    order: 2;
  }

  .page-module-card--image-text.is-layout-compact {
    grid-template-columns: 96px minmax(0, 1fr);
  }

  .page-module-card--image-text.is-layout-compact .page-module-card__media {
    min-height: 142px;
  }

  .page-module-card--image-text .page-module-card__media {
    min-height: 240px;
  }

  .page-module-card--image-text .page-module-card__body {
    padding: 22px;
  }

  .page-module-card--image-text.is-layout-compact .page-module-card__body {
    min-height: 142px;
    padding: 16px;
  }

  .page-module-card--content.is-layout-horizontal,
  .page-module-card--feed.is-layout-horizontal {
    min-height: 0;
    flex-direction: column;
  }

  .page-module-card--content.is-layout-horizontal .page-module-card__media,
  .page-module-card--feed.is-layout-horizontal .page-module-card__media {
    width: 100%;
    flex-basis: auto;
    aspect-ratio: var(--page-module-image-ratio, 16 / 9);
  }

  .page-module-card--content.is-layout-horizontal .page-module-card__body,
  .page-module-card--feed.is-layout-horizontal .page-module-card__body {
    min-height: 170px;
  }

  .page-module--feed.is-variant-media-list .page-module-card--feed,
  .page-module--feed.is-variant-media-list .page-module-card--feed.is-layout-horizontal-reverse {
    min-height: 0;
    padding: 20px 0;
    flex-direction: column;
  }

  .page-module--feed.is-variant-media-list .page-module-card__media {
    width: 100%;
    flex-basis: auto;
    aspect-ratio: var(--page-module-image-ratio, 16 / 10);
  }

  .page-module--feed.is-variant-media-list .page-module-card__body {
    width: 100%;
    min-height: 0;
    padding: 18px 0 4px;
  }

  .page-module--feed.is-variant-media-list .page-module-card--feed.is-layout-horizontal-reverse .page-module-card__body {
    padding: 18px 0 4px;
  }

  .page-module-card--content.is-layout-compact .page-module-card__media,
  .page-module-card--feed.is-layout-compact .page-module-card__media {
    width: 96px;
    flex-basis: 96px;
  }

  .page-module-card--content.is-layout-compact .page-module-card__body,
  .page-module-card--feed.is-layout-compact .page-module-card__body {
    min-height: 142px;
    padding: 16px;
  }

  .page-module--cards.is-variant-numbered .page-module-card__body {
    min-height: 0;
    padding: 18px 18px 17px;
  }

  .page-module--cards.is-variant-numbered .page-module-card__number {
    top: 14px;
    right: 16px;
    font-size: clamp(28px, calc(var(--page-module-icon-size, 22px) + 16px), 64px);
  }

  .page-module--cards.is-variant-numbered .page-module-card__icon {
    width: var(
      --page-module-numbered-icon-holder-size,
      clamp(34px, calc(var(--page-module-icon-size, 22px) + 14px), 52px)
    );
    height: var(
      --page-module-numbered-icon-holder-size,
      clamp(34px, calc(var(--page-module-icon-size, 22px) + 14px), 52px)
    );
    margin-bottom: 12px;
  }

  .page-module-card--process {
    min-height: 150px;
    padding: 22px;
  }

  .page-module--process.is-variant-flow .page-module__grid--process {
    row-gap: 28px;
  }

  .page-module--process.is-variant-flow .page-module-card--process {
    min-height: 0;
    padding: 0 10px 18px;
  }

  .page-module--process.is-variant-flow .page-module-card--process::before,
  .page-module--process.is-variant-flow .page-module-card--process::after {
    display: none;
  }

  .page-module--feed.is-variant-featured .page-module-card--feed:first-child,
  .page-module--feed.is-variant-featured .page-module-card--feed:nth-child(n + 2),
  .page-module--feed.is-variant-editorial .page-module-card--feed:first-child,
  .page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2) {
    grid-column: span 12 !important;
    grid-row: auto !important;
  }

  .page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count] .page-module-card--feed:first-child,
  .page-module--feed.is-variant-editorial .page-module__grid--feed[data-module-item-count] .page-module-card--feed:nth-child(n + 2) {
    grid-column: span 12 !important;
    grid-row: auto !important;
  }

  .page-module--cards.is-variant-visual .page-module-card--content {
    min-height: clamp(280px, 86vw, 340px);
  }

  .page-module--cards.is-variant-visual .page-module-card__body {
    min-height: 60%;
    padding: 24px;
  }

  .page-module--cards.is-variant-technical .page-module-card--content {
    background:
      linear-gradient(
        90deg,
        transparent 0 54px,
        var(--ui-color-border, #e2e8f0) 54px 55px,
        transparent 55px 100%
      );
  }

  .page-module--cards.is-variant-technical .page-module-card__body {
    min-height: 220px;
    padding: 22px 0 22px 72px;
  }

  .page-module--cards.is-variant-technical .page-module-card--content::before {
    top: 23px;
    width: 42px;
  }

  .page-module--cards.is-variant-technical .page-module-card:hover {
    background:
      linear-gradient(
        90deg,
        transparent 0 54px,
        var(--page-module-accent) 54px 55px,
        color-mix(in srgb, var(--page-module-accent) 3%, transparent) 55px 100%
      );
  }

  .page-module--feed.is-variant-editorial .page-module-card--feed,
  .page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(2) {
    padding: 0;
    border-top: 1px solid var(--ui-color-border, #e2e8f0);
    border-right: 0;
    border-bottom: 0;
  }

  .page-module--feed.is-variant-editorial .page-module-card--feed:first-child {
    padding-bottom: 28px;
    border-top: 0;
  }

  .page-module--feed.is-variant-editorial .page-module-card--feed:first-child .page-module-card__title {
    max-width: 20ch;
    font-size: clamp(26px, calc(var(--page-module-card-title-size, 19px) * 1.48), 36px);
  }

  .page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2) .page-module-card__body {
    padding: 18px 0;
  }

  .page-module--feed.is-variant-editorial .page-module-card--feed:nth-child(n + 2) .page-module-card__body,
  .page-module--feed.is-variant-visual .page-module-card__body {
    min-height: 0;
  }

  .page-module--feed.is-variant-featured .page-module-card--feed:first-child .page-module-card__body,
  .page-module--feed.is-variant-featured .page-module-card--feed:nth-child(n + 2) .page-module-card__body,
  .page-module--cards.is-variant-media .page-module-card__body,
  .page-module--cards.is-variant-selection .page-module-card__body,
  .page-module--cards.is-variant-tags-icons .page-module-card__body {
    min-height: 0;
  }

  .page-module-faq__item summary {
    padding: 18px 48px 18px 18px;
  }

  .page-module-faq__answer {
    padding: 0 18px 18px;
  }
}

@media (max-width: 430px) {
  .page-module--cards.is-variant-selection .page-module-card__title {
    font-size: var(--page-module-card-title-size, clamp(25px, 8.4vw, 32px));
  }

  .page-module--cards.is-variant-selection a.page-module-card--content::after {
    top: 18px;
    right: 18px;
    bottom: auto;
    width: 34px;
    height: 34px;
  }

  .page-module--cards.is-variant-technical .page-module-card--content::before {
    font-size: clamp(20px, calc(var(--page-module-icon-size, 22px) + 4px), 52px);
  }

  .page-module--feed.is-variant-visual .page-module-card__title {
    font-size: var(--page-module-card-title-size, 22px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-module-card,
  .page-module-card::before,
  .page-module-card__media img,
  .page-module-logo,
  .page-module-logo__image,
  .page-module-link,
  .page-module-link__arrow {
    transition: none !important;
  }

  .page-module-card:hover {
    transform: none !important;
  }
}

/* Public entity relationship table: Product/Equipment V1.
 * The surrounding Section remains Page-Type Composition. */
.public-entity-relation-table {
  border-radius: var(--ui-radius-md, 12px);
}

.public-entity-relation-table table {
  min-width: 680px;
}

.public-entity-relation-table thead th {
  font-size: var(--ui-text-sm, 14px);
}

.public-entity-relation-table th:nth-child(-n + 3),
.public-entity-relation-table td:nth-child(-n + 3) {
  width: 1%;
  padding-inline: 24px;
  white-space: nowrap;
}

.public-entity-relation-table th:nth-child(4),
.public-entity-relation-table td:nth-child(4) {
  width: 100%;
}

.public-entity-relation-table[data-relation-quantity-column="after-model"] th:nth-child(-n + 4),
.public-entity-relation-table[data-relation-quantity-column="after-model"] td:nth-child(-n + 4) {
  width: 1%;
  white-space: nowrap;
}

.public-entity-relation-table[data-relation-quantity-column="after-model"] th:nth-child(5),
.public-entity-relation-table[data-relation-quantity-column="after-model"] td:nth-child(5) {
  width: 100%;
}

/* Keep the narrative column readable when intrinsic identity columns need
 * more room. The existing information-matrix scroll owns horizontal overflow. */
.site-ui-v2 .public-entity-relation-table .ui-information-matrix__head > :last-child,
.site-ui-v2 .public-entity-relation-table .ui-information-matrix__row > :last-child {
  min-width: 18em;
}

.public-entity-relation-table[data-table-density="compact"] th,
.public-entity-relation-table[data-table-density="compact"] td {
  padding: 11px 14px;
}

.public-entity-relation-table[data-table-density="compact"] th:nth-child(-n + 3),
.public-entity-relation-table[data-table-density="compact"] td:nth-child(-n + 3) {
  padding-inline: 18px;
}

.public-entity-relation-table[data-table-density="compact"][data-relation-quantity-column="after-model"] th:nth-child(4),
.public-entity-relation-table[data-table-density="compact"][data-relation-quantity-column="after-model"] td:nth-child(4) {
  padding-inline: 18px;
}

.public-entity-relation-table tbody th {
  color: var(--ui-color-text-strong, #0f172a);
  font-weight: var(--ui-weight-semibold, 600);
}

.public-entity-relation-table a {
  color: var(--ui-color-accent-deep, #0f766e);
  text-decoration: none;
}

.public-entity-relation-table a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.public-entity-relation-table th small {
  display: block;
  margin-top: 4px;
  color: var(--ui-color-text-muted, #94a3b8);
  font-size: var(--ui-text-xs, 12px);
  font-weight: var(--ui-weight-regular, 400);
}

.public-entity-relation-table__empty {
  color: var(--ui-color-text-muted, #94a3b8);
}

/* Product Feed media is equipment imagery, not scene photography. Providers
   declare entity identity; no page, brand or upload-path inference is used. */
.page-module-card[data-entity-type="product"] > .page-module-card__media img {
  object-fit: contain;
  padding: var(--ui-product-card-media-padding, 12px);
  box-sizing: border-box;
  background: #fff;
}

/* Explicit image_text composition: complete image, independent copy height.
 * Opt-in only; other cards retain their configured crop and hover behavior. */
.page-module-card--image-text.is-media-intrinsic {
  align-items: center;
  --ui-media-hover-scale: 1;
}
.page-module-card--image-text.is-media-intrinsic > .page-module-card__media {
  min-width: 0;
  width: 100%;
  min-height: 0;
  height: auto;
  aspect-ratio: auto;
  align-self: center;
}
.page-module-card--image-text.is-media-intrinsic > .page-module-card__body {
  min-width: 0;
}
.page-module-card--image-text.is-media-intrinsic > .page-module-card__media img {
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  transform: none;
}

/* Public opt-in copy-height media: desktop copy owns the card height; centered media crops
 * within that height. Stacked/mobile and vertical layouts keep natural media. */
@media (min-width: 768px) {
  .page-module .page-module-card--image-text.is-media-intrinsic.is-media-copy-height:not(.is-layout-vertical):not(.is-layout-text):not(.is-no-media) {
    min-height: 0;
    align-items: stretch;
  }

  .page-module .page-module-card--image-text.is-media-intrinsic.is-media-copy-height:not(.is-layout-vertical):not(.is-layout-text):not(.is-no-media) > .page-module-card__media {
    position: relative;
    align-self: stretch;
  }

  .page-module .page-module-card--image-text.is-media-intrinsic.is-media-copy-height:not(.is-layout-vertical):not(.is-layout-text):not(.is-no-media) > .page-module-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}
/* Reuse the theme's subtle image zoom; keep disabled-hover and reduced-motion
 * preferences, and never enlarge the card itself for this effect. */
@media (min-width: 768px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .page-module:not([data-card-hover="none"]) .page-module-card--image-text.is-media-intrinsic.is-media-copy-height:not(.is-layout-vertical):not(.is-layout-text):not(.is-no-media):hover > .page-module-card__media img {
    transform: scale(var(--ui-card-media-hover-scale, 1.04));
  }
}


/* Optional copy-height media: no image keeps the full-width text card.
 * Only this explicit consumer removes unused trailing button spacing. */
.page-module-card--image-text.is-media-optional > .page-module-card__body > :last-child {
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .page-module .page-module-card--image-text.is-media-optional.is-layout-horizontal {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
  .page-module .page-module-card--image-text.is-media-optional.is-layout-horizontal.is-media-right {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  }
}
@media (min-width: 768px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .page-module .page-module-card--image-text.is-media-optional.is-layout-horizontal:hover > .page-module-card__media img {
    transform: scale(var(--ui-card-media-hover-scale, 1.04));
  }
}

/* Opt-in long labels: wrap within their container without changing ordinary tags. */
.page-module-tags.page-module-tags--wrap .page-module-tags__item {
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  line-height: 1.5;
}

