.asas-gallery-trigger, .asas-gallery-expand {
  font: inherit;
  color: inherit;
  cursor: zoom-in;
}

.asas-gallery-trigger {
  display: block;
  min-inline-size: 0;
  max-inline-size: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: inherit;
}

.hero-visual > .asas-gallery-trigger,
.detail-image > .asas-gallery-trigger,
.editorial-cover > .asas-gallery-trigger,
.wp-block-gallery .asas-gallery-trigger { width: 100%; }

.shield-graphic > .asas-gallery-trigger { display: grid; width: 100%; place-items: center; }

.asas-gallery-expand, .asas-lightbox button {
  display: inline-grid;
  min-width: 44px;
  min-height: 44px;
  padding: 5px 9px;
  place-items: center;
  border: 1px solid var(--line, #dfddd4);
  border-radius: 12px;
  background: var(--surface, #fff);
  color: var(--ink, #132436);
}

.asas-gallery-expand svg { width: 21px; height: 21px; }
.solution-card { position: relative; }
.solution-card > .asas-gallery-expand {
  position: absolute;
  z-index: 2;
  inset-block-start: 10px;
  inset-inline-end: 10px;
}

.asas-gallery-trigger:focus-visible, .asas-gallery-expand:focus-visible,
.asas-lightbox :focus-visible, [aria-haspopup="dialog"]:focus-visible {
  outline: 2px solid var(--copper, #a66e42);
  outline-offset: 3px;
}

.editorial-content.prose[data-asas-gallery="partners"]:has(> .wp-block-image + .wp-block-image + .wp-block-image) {
  grid-template-columns: repeat(auto-fit, minmax(min(clamp(112px, 16vw, 186px), 100%), 1fr));
}

.editorial-content.prose[data-asas-gallery="partners"] :is(figure.wp-block-image, figure.wp-block-image.is-resized) {
  display: grid;
  min-width: 0;
  min-height: 116px;
  padding: clamp(10px, 2vw, 23px);
  place-items: center;
  border: 1px solid var(--line, #dfddd4);
  border-radius: 16px;
  background: #fff;
  box-shadow: none;
}

.editorial-content.prose[data-asas-gallery="partners"] figure.wp-block-image img {
  display: block;
  width: auto !important;
  max-width: 100%;
  height: auto !important;
  max-height: 90px;
  margin: auto;
  border-radius: 0;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.editorial-content[data-asas-gallery="partners"] figure.wp-block-image > .asas-gallery-trigger {
  display: grid;
  width: 100%;
  min-height: 70px;
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
}

.editorial-content[data-asas-gallery="partners"] > .wp-block-gallery { grid-column: 1 / -1; }

.portfolio-text-grid, .works-grid, .works-process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(235px, 100%), 1fr));
  gap: clamp(14px, 2.2vw, 23px);
  align-items: stretch;
}

.portfolio-text-card, .works-process-grid > li {
  min-width: 0;
  padding: clamp(15px, 2.5vw, 26px);
  border: 1px solid var(--line, #dfddd4);
  border-block-start: 3px solid var(--copper, #a66e42);
  border-radius: 17px;
  background: var(--surface, #fff);
}

.portfolio-text-grid { align-items: start; }
.portfolio-text-card { padding: clamp(12px, 1.9vw, 19px); }

.editorial-content .portfolio-text-card > :is(h3, h4) {
  margin: 0 0 .3em;
  padding: 0;
  border: 0;
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
}

.portfolio-text-card > :last-child, .works-process-grid > li > :last-child { margin-block-end: 0; }
.portfolio-text-card :is(ul, ol) { padding-inline-start: 1.25em; }
.editorial-content.prose .portfolio-text-card > .portfolio-card-preview {
  margin-block: 0;
  padding: 0;
  color: var(--muted);
  font-size: .9em;
  line-height: 1.55;
  list-style: none;
}
.portfolio-text-card:has(.portfolio-card-details:not([open])) > .portfolio-card-preview:not(:has(a, button)) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.portfolio-card-details { margin-block-start: .6em; }
.portfolio-card-details > summary {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: .5em;
  color: var(--copper-dark);
  font-size: .88em;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.portfolio-card-details > summary::-webkit-details-marker { display: none; }
.portfolio-card-details > summary::before {
  width: .43em;
  height: .43em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  content: '';
  transform: translateY(-.12em) rotate(45deg);
}
.portfolio-card-details[open] > summary::before { transform: translateY(.12em) rotate(225deg); }
.portfolio-card-content { padding-block-start: .5em; border-block-start: 1px solid var(--line); }
.portfolio-card-content > :last-child { margin-block-end: 0; }
@media (prefers-reduced-motion: no-preference) {
  .portfolio-card-details > summary::before { transition: transform 160ms ease; }
  .portfolio-card-details[open] > .portfolio-card-content { animation: asas-card-expand 180ms ease-out; }
  @keyframes asas-card-expand {
    from { opacity: .45; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
  }
}
.works-card { display: flex; flex-direction: column; overflow: hidden; }
.works-cover { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--tint, #f1f0eb); }
.works-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.works-card-body { display: flex; flex: 1; flex-direction: column; align-items: start; gap: .5em; padding: clamp(15px, 2.5vw, 24px); }
.works-card-body > :is(h3, p) { margin: 0; }
.works-card-body > .text-link { margin-block-start: auto; }
.works-kicker { color: var(--muted, #596275); font-size: .8rem; font-weight: 700; }
.works-process-grid { margin-block-end: 0; padding-inline-start: 0; list-style-position: inside; }
.works-process-grid > li::marker { content: ''; }
.works-process-grid > li > span { display: block; color: var(--copper, #a66e42); font-weight: 800; }
.works-process-grid > li > h3 { margin-block-start: .25em; }
.works-process-grid > li > p { margin-block-start: .55em; }

html.asas-lightbox-open { overflow: hidden; }

.asas-lightbox {
  width: min(940px, calc(100% - 20px));
  max-height: calc(100dvh - 20px);
  margin: auto;
  padding: clamp(10px, 2vw, 20px);
  border: 1px solid var(--line, #dfddd4);
  border-radius: 18px;
  background: var(--surface, #fff);
  color: var(--ink, #132436);
  overscroll-behavior: contain;
}

.asas-lightbox[open] { display: grid; gap: 10px; }
.asas-lightbox::backdrop { background: rgb(11 20 32 / 81%); }
.asas-lightbox-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.asas-lightbox-header h2 { margin: 0; font-size: clamp(1rem, 2.5vw, 1.3rem); }
.asas-lightbox-header p { margin: 0; font-size: .83rem; }
.asas-lightbox button { font: inherit; font-weight: 700; cursor: pointer; }
.asas-lightbox button:disabled { opacity: .55; cursor: default; }

.asas-lightbox-stage {
  height: clamp(155px, 57dvh, 590px);
  border-radius: 10px;
  overflow: auto;
  background: #f0eee8;
  direction: ltr;
  overscroll-behavior: contain;
  touch-action: pan-y;
}

.asas-lightbox-stage.is-zoomed { cursor: grab; touch-action: pan-x pan-y; }
.asas-lightbox-stage.is-zoomed:active { cursor: grabbing; }
.asas-lightbox.is-partners .asas-lightbox-stage { background: #fff; }
.asas-lightbox-frame { display: grid; width: max-content; min-width: 100%; min-height: 100%; place-items: center; }
.asas-lightbox-frame img { display: block; max-width: none; max-height: none; user-select: none; -webkit-user-drag: none; }
.asas-lightbox-caption { margin: 0; overflow-wrap: anywhere; text-align: center; }
.asas-lightbox-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; }
.asas-lightbox-controls :is([data-gallery-previous], [data-gallery-next]) { display: inline-flex; gap: 4px; }
.asas-lightbox-controls svg { width: 17px; height: 17px; flex: none; }
.asas-lightbox-controls button:dir(ltr) svg { transform: scaleX(-1); }
.asas-lightbox-controls output { min-width: 4.5ch; text-align: center; direction: ltr; }

.page-hero .editorial-hero-intro { max-width: 66ch; }
.page-hero .editorial-hero-intro p { margin-block: 0; }
.page-hero .editorial-hero-intro .editorial-hero-kicker {
  margin-block-end: .35em;
  color: var(--copper-dark);
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  font-weight: 700;
}

[data-asas-gallery="reviews"] .asas-review-grid { gap: clamp(12px, 2.5vw, 24px); }
[data-asas-gallery="reviews"] .asas-review-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: start;
  gap: .45em;
  padding: clamp(15px, 2.5vw, 28px);
  border-inline-start: 3px solid var(--copper);
  border-radius: 17px;
  background: linear-gradient(145deg, var(--surface), var(--tint));
}
[data-asas-gallery="reviews"].prose .asas-review-card h3 {
  margin: 0;
  font-size: clamp(.95rem, 1.6vw, 1.14rem);
}
[data-asas-gallery="reviews"] .asas-review-score {
  order: -1;
  padding: .14em .52em;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  line-height: 1.5;
}
[data-asas-gallery="reviews"].prose .asas-review-card p { margin: 0; color: var(--muted); font-size: .94em; }
[data-asas-gallery="reviews"] .asas-review-card p > strong { display: block; margin-block-end: .2em; color: var(--ink); }
