/* Alder: App Store. /app-store (page--app-store-index) and /app-store/{slug}
   (page--app-store-detail). Linked from each template's body; page.tpl.php
   hoists it into the head. Mobile first; one breakpoint at 921px, as
   alder.css. No gradients, glows, hover lift or horizontal rules. Sideways
   rows are plain scroll-snap rows: no auto-advance, no script.
   /app-store/register, /submit, /edit and /activate stay base on purpose
   (Core\Bootstrap::BASE_THEME_PATHS); /app-store/terms is still bridged. */

/* ---------- Head band ---------- */
.al-store__head { padding: 36px 0 40px; }
.al-store__h {
  font: 800 clamp(2.1rem, 7.4vw, 4rem)/1.02 var(--al-display);
  letter-spacing: -.034em; color: var(--al-ink); text-wrap: balance; max-width: 16ch;
}
.al-store__lede { margin-top: 16px; }
.al-store__head .al-actions { margin-top: 28px; }
@media (max-width: 520px) {
  .al-store__head .al-actions .al-pill { flex: 1 1 100%; }
}
@media (min-width: 921px) {
  .al-store__head { padding: 64px 0 72px; }
  .al-store__h { max-width: 20ch; }
}

.al-store__body { padding: 28px 0 var(--al-rhythm); }
@media (min-width: 921px) { .al-store__body { padding-top: 40px; } }

/* ---------- Pending review panel ---------- */
.al-store__pending { margin-bottom: 32px; padding: 20px; border-radius: var(--al-r); background: var(--al-sand); }
.al-store__pending-k { font: italic 400 16px/1.35 var(--al-serif); color: var(--al-moss); }
.al-store__pending-h { margin-top: 6px; font: 700 20px/1.25 var(--al-display); letter-spacing: -.012em; color: var(--al-ink); }
.al-store__pending-p { margin-top: 8px; max-width: 44em; font-size: 15px; line-height: 1.55; color: var(--al-body); }
.al-store__pending-list { margin-top: 12px; }
.al-store__pending-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.al-store__pending-t { display: flex; align-items: center; gap: 10px; min-width: 0; }
.al-store__pending-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: var(--al-ink); }
.al-store__pending-edit { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; flex: none; font: 600 14px/1.2 var(--al-sans); color: var(--al-ink); }
.al-store__pending-edit .al-ico { width: 16px; height: 16px; }
@media (hover: hover) { .al-store__pending-edit:hover { color: var(--al-moss); } }
@media (min-width: 921px) { .al-store__pending { padding: 28px 32px; } }

/* Status tag (pending panel, owner preview) */
.al-store__state {
  display: inline-flex; align-items: center; flex: none; padding: 4px 10px; border-radius: 999px;
  background: var(--al-paper); color: var(--al-moss); font: 600 12px/1.2 var(--al-sans);
}
.al-store__state--fix { background: #FBE9E4; color: #8A2C17; }

/* ---------- Category chips: one sideways row on phones ---------- */
.al-store__cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; }
.al-store__cats .al-chip { flex: none; white-space: nowrap; }
.al-store__cats .al-chip.is-on { background: var(--al-pill); border-color: var(--al-pill); color: #fff; }
@media (hover: hover) { .al-store__cats .al-chip.is-on:hover { background: var(--al-moss); } }
@media (max-width: 920px) {
  .al-store__cats {
    flex-wrap: nowrap; margin-inline: calc(-1 * var(--al-gutter)); padding: 2px var(--al-gutter);
    overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; scroll-padding-inline: var(--al-gutter);
  }
  .al-store__cats::-webkit-scrollbar { display: none; }
}
@media (min-width: 921px) { .al-store__cats { margin-bottom: 56px; } }

/* ---------- Sections ---------- */
.al-store__sec { margin-bottom: 56px; }
.al-store__sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 4px 16px; margin-bottom: 18px; }
.al-store__sec-titles { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; min-width: 0; }
.al-store__sec-h {
  font: 800 clamp(1.6rem, 2.8vw, 2.4rem)/1.05 var(--al-display); letter-spacing: -.03em; color: var(--al-ink); text-wrap: balance;
}
.al-store__count { font: 500 13px/1.3 var(--al-sans); color: var(--al-muted); }
.al-store__all { flex: none; margin-top: 0; }
@media (min-width: 921px) {
  .al-store__sec { margin-bottom: 80px; }
  .al-store__sec-head { margin-bottom: 28px; }
}

/* Rows: a sideways snap row on phones (the next card peeks in); grids from 921px */
.al-store__row {
  display: grid; grid-auto-flow: column; grid-auto-columns: min(68vw, 300px); gap: 20px;
  margin-inline: calc(-1 * var(--al-gutter)); padding: 4px var(--al-gutter);
  overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none;
  scroll-snap-type: x mandatory; scroll-padding-inline: var(--al-gutter);
}
.al-store__row::-webkit-scrollbar { display: none; }
.al-store__row > * { scroll-snap-align: start; min-width: 0; }
.al-store__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
@media (min-width: 640px) and (max-width: 920px) {
  .al-store__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
}
@media (min-width: 921px) {
  .al-store__row {
    grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px;
    margin-inline: 0; padding: 0; overflow: visible; scroll-snap-type: none;
  }
  .al-store__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
}
@media (min-width: 1200px) {
  .al-store__row:not(.al-store__row--3), .al-store__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- Product card (whole card is the link) ----------
   Phones: no box; rounded 16:10 picture, then the words. From 921px a
   hairline card, picture flush on top. */
.al-scard { display: flex; flex-direction: column; min-width: 0; color: inherit; text-decoration: none; }
.al-scard__pic {
  position: relative; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--al-r);
  background: var(--al-sand); outline: 1px solid rgba(14, 42, 27, .08); outline-offset: -1px;
}
.al-scard__pic img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: top center; }
.al-scard__pic--ph { display: grid; place-items: center; color: var(--al-moss); }
.al-scard__pic--ph svg { width: 44px; height: 44px; }
.al-scard__body { display: flex; flex-direction: column; flex: 1 1 auto; gap: 4px; padding: 14px 0 0; min-width: 0; }
.al-scard__cat { font: 600 11px/1.3 var(--al-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--al-moss); }
.al-scard__h {
  font: 600 18px/1.3 var(--al-serif); letter-spacing: -.005em; color: var(--al-ink); text-wrap: pretty;
  overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
  transition: color .18s;
}
.al-scard__co { font: 500 13px/1.4 var(--al-sans); color: var(--al-muted); }
.al-scard__tag {
  margin-top: 2px; font: 400 14.5px/1.5 var(--al-sans); color: var(--al-body);
  overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
}
.al-scard__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 10px; }
.al-scard__price { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 13.5px/1.3 var(--al-sans); color: var(--al-ink); }
.al-scard__flag {
  display: inline-flex; align-items: center; gap: 6px; flex: none; padding: 5px 12px; border-radius: 999px;
  background: var(--al-sand); color: var(--al-ink); font: 500 13px/1.2 var(--al-sans);
}
.al-scard__flag .al-ico { width: 14px; height: 14px; }
.al-scard__flag--star { background: var(--al-paper); color: var(--al-moss); }
.al-scard:focus-visible { outline: 2px solid var(--al-ink); outline-offset: 3px; border-radius: var(--al-r); }
@media (hover: hover) {
  .al-scard:hover .al-scard__h { color: var(--al-moss); }
}
/* Phones, one-category list: picture left, words right */
@media (max-width: 639.98px) {
  .al-store__grid .al-scard { display: grid; grid-template-columns: 128px minmax(0, 1fr); column-gap: 14px; align-items: start; }
  .al-store__grid .al-scard__pic { border-radius: 12px; }
  .al-store__grid .al-scard__body { padding: 0; gap: 3px; }
  .al-store__grid .al-scard__h { font-size: 17px; }
  .al-store__grid .al-scard__tag { font-size: 14px; }
  .al-store__grid .al-scard__foot { padding-top: 6px; }
}
@media (min-width: 921px) {
  .al-scard { border: 1px solid var(--al-line); border-radius: var(--al-r); background: #fff; overflow: hidden; transition: border-color .18s; }
  .al-scard__pic { border-radius: 0; outline: 0; }
  .al-scard__body { padding: 20px 22px 22px; gap: 6px; }
  .al-scard__h { font-size: 19px; line-height: 1.25; }
}
@media (min-width: 921px) and (hover: hover) { .al-scard:hover { border-color: rgba(14, 42, 27, .36); } }

/* ---------- Empty state and closing panel ---------- */
.al-store__empty { margin-bottom: 40px; padding: 56px 24px; border-radius: var(--al-r); background: var(--al-paper); text-align: center; }
.al-store__empty-p { max-width: 30em; margin: 12px auto 24px; font: italic 400 18px/1.55 var(--al-serif); color: var(--al-body); }
.al-store__cta { padding: 40px 24px; border-radius: var(--al-r); background: var(--al-paper); }
.al-store__cta-h { margin-bottom: 12px; font: 800 clamp(2rem, 4vw, 3.25rem)/1.04 var(--al-display); letter-spacing: -.03em; color: var(--al-ink); text-wrap: balance; }
.al-store__cta .al-actions { margin-top: 24px; }
@media (max-width: 520px) { .al-store__cta .al-pill { flex: 1 1 100%; } }
@media (min-width: 921px) {
  .al-store__empty { padding: 96px 40px; }
  .al-store__cta { padding: 72px 56px; }
}

/* ---------- Detail ---------- */
.al-sd__wrap { padding: 12px 0 var(--al-rhythm); }

/* Owner preview notice */
.al-sd__preview {
  display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 20px;
  margin: 12px 0 8px; padding: 18px 20px; border-radius: var(--al-r); background: var(--al-sand);
}
.al-sd__preview-copy { flex: 1 1 240px; min-width: 0; }
.al-sd__preview-copy p { margin-top: 8px; font-size: 14.5px; line-height: 1.55; color: var(--al-body); }
.al-sd__preview-copy strong { color: var(--al-ink); }

/* Breadcrumb */
.al-sd__crumbs { display: flex; flex-wrap: wrap; align-items: center; column-gap: 8px; margin-bottom: 12px; font: 500 13px/1.3 var(--al-sans); color: var(--al-muted); }
.al-sd__crumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--al-muted); }
@media (hover: hover) { .al-sd__crumbs a:hover { color: var(--al-ink); } }
.al-sd__sep { color: rgba(14, 42, 27, .3); }
.al-sd__here { color: var(--al-ink); min-width: 0; overflow-wrap: anywhere; }

/* Picture + side column */
.al-sd__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: start; }
.al-sd__media { min-width: 0; }
.al-sd__hero { position: relative; margin: 0; overflow: hidden; border-radius: var(--al-r); background: var(--al-sand); }
.al-sd__hero img { display: block; width: 100%; height: auto; }
.al-sd__hero--device { padding-top: clamp(24px, 7vw, 40px); background: #0B0F0D; }
.al-sd__hero--device img { width: 84%; margin: 0 auto; }
.al-sd__hero--ph { aspect-ratio: 16 / 10; }
.al-sd__ph { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 32px; }
.al-sd__ph-badge {
  display: grid; place-items: center; width: clamp(96px, 22%, 160px); aspect-ratio: 1;
  border: 1px solid var(--al-line); border-radius: 50%; background: var(--al-page); color: var(--al-moss);
}
.al-sd__ph-badge svg { width: 44%; height: 44%; }
.al-sd__ph-cat { font: 600 11px/1.3 var(--al-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--al-muted); }

.al-sd__side { display: flex; flex-direction: column; min-width: 0; }
.al-sd__side .al-label { margin-bottom: 10px; }
.al-sd__h { font: 800 clamp(2.1rem, 3.6vw, 3.25rem)/1.02 var(--al-display); letter-spacing: -.034em; color: var(--al-ink); text-wrap: balance; overflow-wrap: anywhere; }
.al-sd__by { margin-top: 10px; font-size: 15px; color: var(--al-body); }
.al-sd__by strong { font-weight: 600; color: var(--al-ink); }
.al-sd__maker { display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; min-height: 44px; margin-top: 10px; font-size: 14px; line-height: 1.3; }
.al-sd__maker img { width: 36px; height: 36px; flex: none; border-radius: 50%; object-fit: cover; outline: 1px solid var(--al-line); outline-offset: -1px; }
.al-sd__maker-k { color: var(--al-muted); }
.al-sd__maker-n { font-weight: 600; color: var(--al-ink); transition: color .18s; }
.al-sd__maker .al-ico { width: 14px; height: 14px; vertical-align: -2px; color: var(--al-moss); }
@media (hover: hover) { .al-sd__maker:hover .al-sd__maker-n { color: var(--al-moss); } }
.al-sd__tagline { margin-top: 14px; font: italic 400 18px/1.55 var(--al-serif); color: var(--al-body); }
.al-sd__visit { width: 100%; min-height: 52px; margin-top: 24px; }
.al-sd__note { margin-top: 10px; text-align: center; font: 400 12px/1.5 var(--al-sans); color: var(--al-muted); }

/* Facts: a paper panel, quiet labels, no rules between rows */
.al-sd__facts { margin-top: 22px; padding: 6px 0; border-radius: var(--al-r); background: var(--al-paper); font-size: 14px; }
.al-sd__fact { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 10px 18px; }
.al-sd__fact dt { flex: none; padding-top: 2px; font: 500 13px/1.4 var(--al-sans); color: var(--al-muted); }
.al-sd__fact dd { min-width: 0; text-align: right; color: var(--al-ink); line-height: 1.45; }
.al-sd__fact--stack { flex-direction: column; gap: 2px; }
.al-sd__fact--stack dd { text-align: left; }
.al-sd__price { font-weight: 700; }
/* Chip rows (Platforms, Categories): one line that scrolls sideways. Touch
   swipes natively; a mouse drags it (js/store-detail.js in the base theme,
   which also sets data-fade so the overflowing edge softens). The first
   chip's auto margin right-aligns a short row and collapses to 0 once the
   row overflows, so the start stays reachable. 3px of padding (offset by the
   negative margin) keeps chip focus rings inside the scroll box. */
.al-sd__fact dd.al-sd__tags { flex: 1 1 auto; }
.al-sd__tags {
  display: flex; flex-wrap: nowrap; gap: 6px; padding: 3px; margin: -3px;
  overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.al-sd__tags::-webkit-scrollbar { display: none; }
.al-sd__tags > :first-child { margin-left: auto; }
.al-sd__tags .al-chip { flex: none; white-space: nowrap; background: var(--al-page); }
.al-sd__tags[data-fade="end"]   { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); }
.al-sd__tags[data-fade="start"] { -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to left, #000 calc(100% - 28px), transparent); }
.al-sd__tags[data-fade="both"]  { -webkit-mask-image: linear-gradient(to right, transparent, #000 28px, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to right, transparent, #000 28px, #000 calc(100% - 28px), transparent); }
@media (hover: hover) and (pointer: fine) {
  .al-sd__tags:is([data-fade="end"], [data-fade="start"], [data-fade="both"]) { cursor: grab; }
}
.al-sd__tags.is-dragging { cursor: grabbing; user-select: none; -webkit-user-select: none; }
.al-sd__tags.is-dragging .al-chip { pointer-events: none; }
.al-sd__tags .al-chip--static { min-height: 30px; font-size: 13px; }
@media (hover: hover) { .al-sd__tags a.al-chip:hover { background: #fff; } }
.al-sd__listed { margin-top: 16px; font: 400 12px/1.55 var(--al-sans); color: var(--al-muted); }
.al-sd__listed a { color: var(--al-ink); text-decoration: underline; text-decoration-color: rgba(14, 42, 27, .35); text-underline-offset: 3px; }

@media (min-width: 921px) {
  .al-sd__wrap { padding-top: 20px; }
  .al-sd__grid { grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; }
  .al-sd__media { position: sticky; top: calc(var(--al-hdr-h, 72px) + 24px); }
  .al-sd__hero:not(.al-sd__hero--ph):not(.al-sd__hero--device) { display: grid; place-items: center; min-height: 360px; }
  .al-sd__hero:not(.al-sd__hero--ph):not(.al-sd__hero--device) img { width: 100%; max-height: 640px; object-fit: contain; }
  .al-sd__tagline { font-size: 19px; }
  /* In the 380px column the title steps down (about 60 to 65 percent of the
     phone size) so a long name stays on two lines and still leads. */
  .al-sd__h { font-size: clamp(1.5rem, 2.2vw, 2.125rem); line-height: 1.08; letter-spacing: -.028em; }
}

/* Sections */
.al-sd__sec { margin-top: 56px; }
.al-sd__h2 { margin-bottom: 20px; font: 800 clamp(1.6rem, 2.6vw, 2.25rem)/1.05 var(--al-display); letter-spacing: -.03em; color: var(--al-ink); }
.al-sd__sec .al-store__sec-head .al-sd__h2 { margin-bottom: 0; }
@media (min-width: 921px) { .al-sd__sec { margin-top: 80px; } }

/* Screenshot strip: stays black (the composites are shot on black) */
.al-sd__shots-box { padding: 16px 16px 12px; border-radius: var(--al-r); background: #0B0F0D; }
.al-sd__shots {
  display: flex; gap: 12px; padding: 0 0 12px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-color: rgba(250, 250, 248, .28) transparent;
}
.al-sd__shot {
  flex: 0 0 auto; display: block; height: clamp(320px, 52vh, 460px); overflow: hidden;
  border-radius: 12px; background: #0B0F0D; cursor: zoom-in; scroll-snap-align: start;
}
.al-sd__shot img { display: block; height: 100%; width: auto; max-width: none; object-fit: contain; }
.al-sd__shot:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.al-sd__shots-hint { font: 500 12.5px/1.4 var(--al-sans); color: rgba(250, 250, 248, .62); }
@media (min-width: 921px) {
  .al-sd__shots-box { padding: 24px 24px 16px; }
  .al-sd__shots { gap: 16px; }
}

/* About, demo */
.al-sd__prose { max-width: 70ch; }
.al-sd__prose :is(h2, h3) { margin: 1.4em 0 .4em; font: 700 20px/1.25 var(--al-display); color: var(--al-ink); }
.al-sd__prose :is(ol) { list-style: decimal; padding-left: 1.3em; }
.al-sd__prose :is(ul, ol) { margin-top: 1em; }
.al-sd__prose li + li { margin-top: .35em; }
.al-sd__prose img { max-width: 100%; height: auto; border-radius: 12px; }
.al-sd__video { max-width: 880px; overflow: hidden; border-radius: var(--al-r); }

/* Desktop from 1024px: About moves under the picture in the left column and
   the rail (label, title, by-line, tagline, Visit, facts) sticks below the
   fixed header, so a long description scrolls past a rail that stays in view.
   .al-sd__layout wraps picture, rail, screenshots and About in the phone
   order; here it becomes the grid and .al-sd__grid steps aside (display:
   contents) so all four share one grid: picture, About, screenshots down the
   left, the rail spanning every row on the right. Screenshots stay in the
   left column on purpose: Chrome bounds a sticky grid item by the whole grid
   container, not its grid area, so a full-width row under the pair would
   slide beneath the stuck rail. Row 4 is a 1fr filler: when the rail is
   taller than the left column it absorbs the difference, so the left column
   just ends. A rail
   taller than the viewport scrolls inside itself so the facts are never
   stranded below the fold. 921px to 1023px keeps the sticky picture above. */
@media (min-width: 1024px) {
  .al-sd__layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; grid-template-rows: auto auto auto 1fr; column-gap: 56px; align-items: start; }
  .al-sd__layout > .al-sd__grid { display: contents; }
  .al-sd__layout .al-sd__media { grid-column: 1; grid-row: 1; position: static; }
  .al-sd__layout .al-sd__sec--about { grid-column: 1; grid-row: 2; margin-top: 56px; }
  .al-sd__layout .al-sd__sec--shots { grid-column: 1; grid-row: 3; margin-top: 56px; }
  .al-sd__layout .al-sd__side {
    grid-column: 2; grid-row: 1 / -1;
    position: sticky; top: calc(var(--al-hdr-h, 72px) + 18px);
    max-height: calc(100vh - var(--al-hdr-h, 72px) - 36px); overflow-y: auto; scrollbar-width: none;
    /* 6px of room so the focus ring (2px + 3px offset) is not clipped by the
       scroll box; the negative margin keeps the content on the 380px track,
       so the content itself rides 24px under the header. */
    padding: 6px; margin: -6px;
  }
  /* Capped height must never squeeze a rail item; the rail scrolls instead. */
  .al-sd__layout .al-sd__side > * { flex-shrink: 0; }
  /* No visible scrollbar; the rail still scrolls by wheel, trackpad and
     keyboard. While it is taller than the viewport (js sets .is-scrollable)
     a wheel gesture over it stays on it; js/store-detail.js hands the next
     gesture to the page once the rail is at its end. */
  .al-sd__layout .al-sd__side::-webkit-scrollbar { display: none; }
  .al-sd__layout .al-sd__side.is-scrollable { overscroll-behavior-y: contain; }
}

/* Product partner */
.al-sd__partner {
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; padding: 18px;
  border: 1px solid var(--al-line); border-radius: var(--al-r); background: #fff; transition: border-color .18s;
}
@media (hover: hover) { .al-sd__partner:hover { border-color: var(--al-ink); } }
.al-sd__partner-pic { width: 64px; height: 64px; flex: none; border-radius: 14px; object-fit: cover; outline: 1px solid var(--al-line); outline-offset: -1px; }
.al-sd__partner-pic--ph { display: grid; place-items: center; background: var(--al-paper); color: var(--al-moss); outline: 0; }
.al-sd__partner-pic--ph svg { width: 28px; height: 28px; }
.al-sd__partner-copy { display: flex; flex-direction: column; gap: 2px; flex: 1 1 200px; min-width: 0; }
.al-sd__partner-k { font: italic 400 15px/1.3 var(--al-serif); color: var(--al-moss); }
.al-sd__partner-n { font: 700 17px/1.3 var(--al-display); color: var(--al-ink); }
.al-sd__partner-s { font-size: 14px; line-height: 1.5; color: var(--al-body); }
.al-sd__partner-go {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; flex: none;
  border: 1px solid var(--al-line); border-radius: 999px; font: 600 14px/1.2 var(--al-sans); color: var(--al-ink);
}
.al-sd__partner-go .al-ico { width: 16px; height: 16px; }
@media (max-width: 520px) { .al-sd__partner-go { flex: 1 1 100%; justify-content: center; } }
@media (min-width: 921px) { .al-sd__partner { padding: 24px 28px; } }
