.projects-overview {
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--gold);
  border-bottom: 1px solid rgba(200, 166, 106, .35);
  background: linear-gradient(135deg, #0e0e0d, #090909 68%);
}

.projects-overview .projects-grid { inset: 0 0 0 42%; }

.projects-overview-inner {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 64px), var(--max-width));
  margin: 0 auto;
  padding: clamp(80px, 8vw, 118px) clamp(24px, 5vw, 72px);
  display: grid;
  grid-template-columns: minmax(170px, .38fr) minmax(0, 1.3fr);
  gap: clamp(40px, 8vw, 130px);
}

.projects-overview-copy h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(52px, 7vw, 92px);
  font-weight: 500;
  line-height: .87;
  letter-spacing: -.04em;
  text-transform: none;
}

.projects-overview-copy h2 span, .projects-overview-copy h2 em { display: block; }
.projects-overview-copy h2 em { color: var(--light-gold); font-weight: inherit; }
.projects-overview-copy p { max-width: 700px; margin: 32px 0 0; color: #bcb6ac; font-size: clamp(14px, 1.25vw, 17px); line-height: 1.78; }
.projects-overview-copy .experience-since { margin-top: 22px; color: var(--light-gold); font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }

.projects-grid {
  position: absolute;
  inset: var(--header-height) 0 0 42%;
  opacity: .3;
  background-image: linear-gradient(rgba(244, 240, 232, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(244, 240, 232, .07) 1px, transparent 1px);
  background-size: 88px 88px;
  mask-image: linear-gradient(to right, transparent, black 24%, transparent 96%);
}

.project-kicker, .project-index {
  margin: 0;
  color: var(--gold);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.project-section { padding: clamp(78px, 8vw, 120px) max(32px, calc((100vw - var(--max-width)) / 2)); background: var(--black); }
.project-section.light-project { background: var(--ivory); color: #171613; }
.project-intro { display: grid; grid-template-columns: minmax(170px, .38fr) minmax(0, 1.3fr); gap: clamp(40px, 8vw, 130px); margin-bottom: clamp(44px, 5vw, 74px); }
.project-intro > div { min-width: 0; max-width: 900px; }
.project-intro h2 { margin: 0; font-family: var(--serif); font-size: clamp(42px, 5.7vw, 78px); font-weight: 500; line-height: .91; letter-spacing: -.035em; text-transform: uppercase; }
.project-intro h2 em { color: var(--light-gold); font-weight: inherit; }
.light-project .project-intro h2 em { color: #9a7539; }
.project-intro > div > p { max-width: 760px; margin: 30px 0 0; color: #bcb6ac; font-size: clamp(14px, 1.25vw, 17px); line-height: 1.78; }
.light-project .project-intro > div > p { color: #5d584f; }
.project-intro .project-note { padding-top: 20px; border-top: 1px solid rgba(224, 193, 139, .22); color: #8e887f; font-size: 12px; line-height: 1.65; }
.light-project .project-index { color: #88652f; }

.editorial-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: clamp(210px, 25vw, 390px); gap: clamp(10px, 1.35vw, 20px); }
.editorial-gallery figure { position: relative; grid-column: span 4; margin: 0; overflow: hidden; opacity: 1; visibility: visible; background: #191816; }
.light-project .editorial-gallery figure { background: #ddd7cc; }
.editorial-gallery .gallery-feature { grid-column: 1 / -1; grid-row: span 2; }
.editorial-gallery .gallery-tall { grid-row: span 2; }
.editorial-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2, .7, .2, 1), filter .45s ease; }
.editorial-gallery figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  padding: 38px 16px 14px;
  background: linear-gradient(transparent, rgba(7, 7, 6, .88));
  color: #f0ebe2;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .025em;
}
.manteca-gallery figure:nth-child(2) { grid-column: span 5; }
.manteca-gallery figure:nth-child(3) { grid-column: span 7; }
.sanaa-gallery figure:nth-child(2), .sanaa-gallery figure:nth-child(3) { grid-column: span 6; }
.sanaa-gallery figure:nth-child(4) { grid-column: span 8; }
.sanaa-gallery figure:nth-child(5) { grid-column: span 4; }
.sanaa-gallery figure:nth-child(6) { grid-column: 1 / -1; }
.infrastructure-gallery .gallery-feature img { object-position: center 66%; }

.selected-gallery { grid-auto-rows: clamp(230px, 28vw, 420px); }
.selected-gallery .gallery-feature { grid-column: span 8; grid-row: span 1; }
.selected-gallery figure { grid-column: span 4; }

.paired-projects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(62px, 8vw, 124px); }
.paired-projects article { min-width: 0; }
.paired-projects .project-intro { display: block; margin-bottom: 34px; }
.paired-projects .project-intro > div { margin-top: 20px; }
.paired-projects .project-intro h2 { font-size: clamp(36px, 4.3vw, 60px); }
.paired-projects .project-intro > div > p { margin-top: 20px; }
.compact-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(185px, 20vw, 290px); gap: 10px; }
.compact-gallery .gallery-feature { grid-column: 1 / -1; grid-row: span 1; }
.compact-gallery figure { grid-column: span 1; }
.compact-gallery img { object-position: center; }
.compact-gallery .gallery-uncropped {
  grid-column: 1 / -1;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 4 / 3;
}
.compact-gallery .gallery-uncropped img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
}
.townhome-gallery .gallery-feature img { object-position: center 46%; }
.townhome-gallery figure:nth-child(2) img { object-position: center 52%; }
.townhome-gallery figure:nth-child(3) img { object-position: center 58%; }
.commercial-additional { margin-top: clamp(54px, 6vw, 82px); }
.commercial-additional article { max-width: calc(50% - clamp(31px, 4vw, 62px)); }
.experience-directory { padding: clamp(76px, 8vw, 112px) max(32px, calc((100vw - var(--max-width)) / 2)); background: #0e0e0d; }
.experience-directory ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid rgba(224, 193, 139, .28); list-style: none; }
.experience-directory li { min-width: 0; padding: 28px 22px 30px 0; border-bottom: 1px solid rgba(224, 193, 139, .2); }
.experience-directory li + li { padding-left: 22px; border-left: 1px solid rgba(224, 193, 139, .18); }
.experience-directory li span { display: block; margin-bottom: 15px; color: var(--gold); font-size: 8px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.experience-directory li strong { display: block; font-family: var(--serif); font-size: clamp(21px, 2vw, 29px); font-weight: 500; line-height: 1.05; }
.experience-directory li p { margin: 15px 0 0; color: #9f998f; font-size: 13px; line-height: 1.6; }

.portfolio-project { margin-top: clamp(44px, 5vw, 76px); }
.portfolio-project-heading {
  display: grid;
  grid-template-columns: minmax(155px, .34fr) minmax(220px, .7fr) minmax(260px, 1fr);
  gap: clamp(24px, 4vw, 62px);
  align-items: end;
  margin-bottom: 26px;
  padding: 22px 0;
  border-top: 1px solid rgba(224, 193, 139, .28);
  border-bottom: 1px solid rgba(224, 193, 139, .18);
}
.portfolio-project-heading p { margin: 0; color: var(--gold); font-size: 8px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.portfolio-project-heading h3 { margin: 0; font-family: var(--serif); font-size: clamp(27px, 3.2vw, 46px); font-weight: 500; line-height: .95; }
.portfolio-project-heading span { color: #a9a39a; font-size: 14px; line-height: 1.6; }
.light-project .portfolio-project-heading { border-color: rgba(23, 22, 19, .22); }
.light-project .portfolio-project-heading p { color: #88652f; }
.light-project .portfolio-project-heading span { color: #5d584f; }

.infrastructure-projects {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: clamp(54px, 6vw, 84px);
  border-top: 1px solid rgba(224, 193, 139, .28);
}
.infrastructure-projects article { position: relative; min-height: 210px; padding: 30px clamp(22px, 3vw, 42px) 32px 0; border-bottom: 1px solid rgba(224, 193, 139, .2); }
.infrastructure-projects article:nth-child(even) { padding-left: clamp(22px, 3vw, 42px); border-left: 1px solid rgba(224, 193, 139, .18); }
.infrastructure-projects span { color: var(--gold); font-size: 9px; letter-spacing: .16em; }
.infrastructure-projects h3 { margin: 22px 0 0; font-family: var(--serif); font-size: clamp(25px, 2.3vw, 34px); font-weight: 500; line-height: 1.05; }
.infrastructure-projects p { max-width: 540px; margin: 17px 0 0; color: #9f998f; font-size: 14px; line-height: 1.65; }

.category-intro { margin-bottom: clamp(58px, 7vw, 96px); padding-bottom: clamp(42px, 5vw, 68px); border-bottom: 1px solid rgba(23, 22, 19, .2); }
.commercial-portfolio .paired-projects { align-items: start; }
.commercial-portfolio .paired-projects > article,
.commercial-portfolio .paired-projects > .text-projects { min-width: 0; }
.text-projects { display: grid; border-top: 1px solid rgba(23, 22, 19, .28); }
.text-projects article { padding: 29px 0 32px; border-bottom: 1px solid rgba(23, 22, 19, .2); }
.text-projects span, .franchise-directory span { display: block; color: #88652f; font-size: 8px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.text-projects h3, .franchise-directory h3 { margin: 17px 0 0; font-family: var(--serif); font-size: clamp(27px, 3vw, 40px); font-weight: 500; line-height: 1; }
.text-projects p { margin: 15px 0 0; color: #5d584f; font-size: 14px; line-height: 1.65; }

.franchise-portfolio { background: #0e0e0d; }
.franchise-portfolio .category-intro { border-bottom-color: rgba(224, 193, 139, .2); }
.franchise-portfolio .compact-gallery { max-width: 1120px; margin-left: auto; }
.franchise-directory { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(58px, 7vw, 96px); border-top: 1px solid rgba(224, 193, 139, .28); }
.franchise-directory article { padding: 29px 26px 32px 0; border-bottom: 1px solid rgba(224, 193, 139, .2); }
.franchise-directory article + article { padding-left: 26px; border-left: 1px solid rgba(224, 193, 139, .18); }
.franchise-directory span { color: var(--gold); }
.franchise-directory p { margin: 15px 0 0; color: #9f998f; font-size: 14px; line-height: 1.65; }

.organizations { padding: clamp(76px, 8vw, 112px) max(32px, calc((100vw - var(--max-width)) / 2)); background: var(--ivory); color: #171613; }
.organizations .project-index { color: #88652f; }
.organizations .project-intro h2 em { color: #9a7539; }
.organizations .project-intro > div > p { color: #5d584f; }
.organization-groups { display: grid; grid-template-columns: 1.45fr .75fr; gap: clamp(40px, 8vw, 120px); }
.organization-groups > div { border-top: 1px solid rgba(23, 22, 19, .3); }
.organization-groups h3 { margin: 0; padding: 22px 0; border-bottom: 1px solid rgba(23, 22, 19, .18); color: #88652f; font-size: 9px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.organization-groups ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.organization-groups li { padding: 18px 16px 18px 0; border-bottom: 1px solid rgba(23, 22, 19, .16); font-family: var(--serif); font-size: clamp(21px, 2vw, 29px); }
.organization-groups li.has-logo { display: grid; grid-template-columns: minmax(72px, 112px) minmax(0, 1fr); gap: 18px; align-items: center; min-height: 82px; }
.organization-groups li.has-logo img { display: block; width: auto; max-width: 104px; max-height: 34px; object-fit: contain; object-position: left center; }
.organization-groups li.has-logo span { min-width: 0; }
.organization-groups > div:last-child ul { grid-template-columns: 1fr; }
.organization-groups > div:last-child li.has-logo { position: relative; grid-template-columns: 140px minmax(0, 1fr); padding-block: 20px; }
.organization-groups > div:last-child li.has-logo img { position: absolute; top: 50%; left: 0; transform: translateY(-50%); }
.organization-groups > div:last-child li.has-logo span { grid-column: 2; }
.organization-groups > div:last-child li.has-logo img[src*="shish-grill"] {
  width: 48px;
  height: auto;
  max-width: 48px;
  max-height: none;
  justify-self: start;
}
.organization-groups img[src*="baskin-robbins"] { width: 132px; max-width: 132px; max-height: 44px; }

@media (hover: hover) and (pointer: fine) {
  .editorial-gallery figure:hover img { transform: scale(1.018); filter: brightness(1.04); }
}

@media (max-width: 820px) {
  .projects-overview-inner { width: min(calc(100% - 40px), var(--max-width)); padding: 66px 14px; grid-template-columns: 1fr; gap: 28px; }
  .projects-overview-copy h2 { font-size: clamp(44px, 12vw, 62px); }
  .projects-overview-copy p { margin-top: 24px; font-size: 14px; }
  .projects-grid { left: 24%; background-size: 64px 64px; }
  .project-section { padding: 66px 20px; }
  .project-intro { grid-template-columns: 1fr; gap: 25px; margin-bottom: 38px; padding: 0 14px; }
  .project-intro h2 { font-size: clamp(38px, 11vw, 55px); }
  .project-intro > div > p { margin-top: 22px; font-size: 14px; }
  .editorial-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(190px, 60vw, 310px); gap: 9px; }
  .editorial-gallery figure, .manteca-gallery figure:nth-child(2), .manteca-gallery figure:nth-child(3), .sanaa-gallery figure:nth-child(2), .sanaa-gallery figure:nth-child(3), .sanaa-gallery figure:nth-child(4), .sanaa-gallery figure:nth-child(5), .sanaa-gallery figure:nth-child(6) { grid-column: span 1; grid-row: span 1; }
  .editorial-gallery .gallery-feature { grid-column: 1 / -1; grid-row: span 2; }
  .editorial-gallery .gallery-tall { grid-row: span 2; }
  .paired-projects { grid-template-columns: 1fr; gap: 76px; }
  .paired-projects .project-intro { padding: 0 14px; }
  .compact-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compact-gallery .gallery-feature { grid-column: 1 / -1; }
  .selected-gallery .gallery-feature { grid-column: 1 / -1; }
  .experience-directory { padding: 66px 34px; }
  .experience-directory ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .experience-directory li, .experience-directory li + li { padding: 24px 18px 25px 0; border-left: 0; }
  .experience-directory li:nth-child(even) { padding-left: 18px; border-left: 1px solid rgba(224, 193, 139, .18); }
  .portfolio-project-heading { grid-template-columns: 1fr; gap: 12px; }
  .infrastructure-projects { grid-template-columns: 1fr; }
  .infrastructure-projects article,
  .infrastructure-projects article:nth-child(even) { min-height: 0; padding: 26px 0 28px; border-left: 0; }
  .commercial-portfolio .paired-projects { grid-template-columns: 1fr; gap: 64px; }
  .commercial-additional article { max-width: none; }
  .franchise-directory { grid-template-columns: 1fr; }
  .franchise-directory article,
  .franchise-directory article + article { padding: 25px 0 27px; border-left: 0; }
  .organizations { padding: 66px 34px; }
  .organization-groups { grid-template-columns: 1fr; gap: 48px; }
}

@media (max-width: 480px) {
  .editorial-gallery { display: flex; flex-direction: column; }
  .editorial-gallery figure, .editorial-gallery .gallery-feature, .editorial-gallery .gallery-tall { width: 100%; height: 68vw; min-height: 230px; }
  .editorial-gallery .gallery-feature { height: 92vw; }
  .editorial-gallery .gallery-tall { height: 112vw; }
  .selected-gallery .gallery-feature, .compact-gallery .gallery-feature { height: 72vw; }
  .compact-gallery { display: grid; }
  .compact-gallery figure, .compact-gallery .gallery-feature { height: 62vw; min-height: 210px; }
  .compact-gallery .gallery-uncropped { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .experience-directory ul { grid-template-columns: 1fr; }
  .experience-directory li, .experience-directory li + li, .experience-directory li:nth-child(even) { padding: 24px 0; border-left: 0; }
  .editorial-gallery figcaption { position: relative; padding: 11px 12px 12px; background: #171613; }
  .light-project .editorial-gallery figcaption { background: #25231f; }
  .organization-groups ul { grid-template-columns: 1fr; }
  .organization-groups li.has-logo { grid-template-columns: 74px minmax(0, 1fr); min-height: 72px; }
  .organization-groups li.has-logo img { max-width: 70px; max-height: 28px; }
  .organization-groups > div:last-child li.has-logo { grid-template-columns: 92px minmax(0, 1fr); }
  .organization-groups > div:last-child li.has-logo img[src*="shish-grill"] {
    width: 44px;
    max-width: 44px;
    max-height: none;
  }
  .organization-groups img[src*="baskin-robbins"] { width: 86px; max-width: 86px; max-height: 34px; }
}

/* Editorial project-photo compositions */
.infrastructure-gallery {
  grid-template-columns: minmax(0, 2fr) minmax(260px, .82fr);
  grid-template-rows: repeat(2, clamp(220px, 21vw, 330px));
  gap: clamp(7px, .75vw, 11px);
}
.infrastructure-gallery .gallery-feature {
  grid-column: 1;
  grid-row: 1 / 3;
}
.infrastructure-gallery figure:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
}
.infrastructure-gallery figure:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
}
.infrastructure-gallery.two-image-story .gallery-feature { grid-column: 1; grid-row: 1 / 3; }
.infrastructure-gallery.two-image-story figure:nth-child(2) { grid-column: 2; grid-row: 1 / 3; }
.infrastructure-gallery figure:nth-child(2) img { object-position: center 58%; }
.infrastructure-gallery figure:nth-child(3) img { object-position: center; }

.compact-gallery {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto clamp(180px, 18vw, 255px);
  gap: 8px;
}
.compact-gallery .gallery-feature {
  grid-column: 1 / -1;
  grid-row: 1;
  height: auto;
  min-height: 0;
  aspect-ratio: 16 / 10;
}
.compact-gallery .gallery-feature img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.compact-gallery figure:nth-child(2) {
  grid-column: 1;
  grid-row: 2;
}
.compact-gallery figure:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
}
.compact-gallery.manteca-gallery .gallery-feature {
  aspect-ratio: 4 / 3;
}
.compact-gallery.manteca-gallery .gallery-feature img {
  object-fit: contain;
}
.manteca-gallery figure:nth-child(2) img { object-position: center 42%; }
.manteca-gallery figure:nth-child(3) img { object-position: center 55%; }
.sanaa-gallery .gallery-feature img { object-position: center 48%; }
.sanaa-gallery figure:nth-child(2) img { object-position: center 46%; }
.sanaa-gallery figure:nth-child(3) img { object-position: center 48%; }

.single-project-image { max-width: 1120px; margin-left: auto; }
.single-project-image figure { position: relative; margin: 0; overflow: hidden; aspect-ratio: 16 / 9; background: #191816; }
.single-project-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.single-project-image figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 42px 16px 14px; background: linear-gradient(transparent, rgba(7, 7, 6, .88)); color: #f0ebe2; font-size: 11px; line-height: 1.5; }

.tiktok-gallery {
  grid-template-columns: minmax(300px, .9fr) repeat(2, minmax(0, .55fr));
  grid-template-rows: repeat(2, clamp(250px, 24vw, 365px));
  gap: clamp(7px, .75vw, 11px);
}
.tiktok-gallery .gallery-feature { grid-column: 1; grid-row: 1 / 3; }
.tiktok-gallery figure:nth-child(2) { grid-column: 2; grid-row: 1; }
.tiktok-gallery figure:nth-child(3) { grid-column: 3; grid-row: 1; }
.tiktok-gallery figure:nth-child(4) { grid-column: 2 / 4; grid-row: 2; }
.tiktok-gallery .gallery-feature img { object-position: center; }
.tiktok-gallery figure:nth-child(2) img,
.tiktok-gallery figure:nth-child(3) img { object-position: center 32%; }
.tiktok-gallery figure:nth-child(4) img { object-position: center 42%; }

@media (max-width: 820px) {
  .infrastructure-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto clamp(190px, 42vw, 300px);
    gap: 8px;
  }
  .infrastructure-gallery .gallery-feature {
    grid-column: 1 / -1;
    grid-row: 1;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
  .infrastructure-gallery figure:nth-child(2) { grid-column: 1; grid-row: 2; }
  .infrastructure-gallery figure:nth-child(3) { grid-column: 2; grid-row: 2; }
  .infrastructure-gallery.two-image-story .gallery-feature { grid-column: 1; grid-row: 1; }
  .infrastructure-gallery.two-image-story figure:nth-child(2) { grid-column: 2; grid-row: 1; }
  .compact-gallery {
    grid-template-rows: auto clamp(190px, 42vw, 300px);
    gap: 8px;
  }
  .compact-gallery .gallery-feature { grid-row: 1; }
  .compact-gallery figure:nth-child(2) { grid-column: 1; grid-row: 2; }
  .compact-gallery figure:nth-child(3) { grid-column: 2; grid-row: 2; }
  .tiktok-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: clamp(390px, 72vw, 560px) repeat(2, clamp(220px, 42vw, 330px));
  }
  .tiktok-gallery .gallery-feature { grid-column: 1 / -1; grid-row: 1; }
  .tiktok-gallery figure:nth-child(2) { grid-column: 1; grid-row: 2; }
  .tiktok-gallery figure:nth-child(3) { grid-column: 2; grid-row: 2; }
  .tiktok-gallery figure:nth-child(4) { grid-column: 1 / -1; grid-row: 3; }
}

@media (max-width: 520px) {
  #infrastructure-heading { font-size: clamp(29px, 7.5vw, 36px); overflow-wrap: break-word; }
  .infrastructure-gallery,
  .compact-gallery {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    gap: 6px;
  }
  .infrastructure-gallery .gallery-feature,
  .infrastructure-gallery figure:nth-child(2),
  .infrastructure-gallery figure:nth-child(3),
  .compact-gallery .gallery-feature,
  .compact-gallery figure:nth-child(2),
  .compact-gallery figure:nth-child(3) {
    grid-column: 1;
    grid-row: auto;
    width: 100%;
    height: auto;
    min-height: 0;
  }
  .infrastructure-gallery.two-image-story .gallery-feature,
  .infrastructure-gallery.two-image-story figure:nth-child(2) { grid-column: 1; grid-row: auto; }
  .infrastructure-gallery .gallery-feature,
  .compact-gallery .gallery-feature { aspect-ratio: 4 / 3; }
  .infrastructure-gallery figure:nth-child(2),
  .infrastructure-gallery figure:nth-child(3),
  .compact-gallery figure:nth-child(2),
  .compact-gallery figure:nth-child(3) { aspect-ratio: 16 / 10; }
  .single-project-image figure { aspect-ratio: 4 / 3; }
  .single-project-image figcaption { position: relative; padding: 11px 12px 12px; background: #171613; }
  .tiktok-gallery { display: grid; grid-template-columns: 1fr; grid-template-rows: none; gap: 6px; }
  .tiktok-gallery .gallery-feature,
  .tiktok-gallery figure:nth-child(2),
  .tiktok-gallery figure:nth-child(3),
  .tiktok-gallery figure:nth-child(4) { grid-column: 1; grid-row: auto; width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 5; }
  .tiktok-gallery figure:nth-child(4) { aspect-ratio: 4 / 3; }
}

@media (prefers-reduced-motion: reduce) {
  .editorial-gallery img { transition: none; }
}
