/* Inner-page composition only; no homepage, wallpaper or animation rules. */
body:not(.home-page) .installation-gallery:has(> .installation-figure:only-child) {
  grid-template-columns:minmax(0,1fr);
}
body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure {
  display:grid;
  grid-template-columns:minmax(0,520px) minmax(0,1fr);
  align-items:center;
  max-width:none;
  width:100%;
  margin:0;
}
body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure img {
  width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;
}
body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure figcaption {
  padding:clamp(24px,4vw,64px);
  font-family:var(--heading);
  font-size:clamp(32px,3.3vw,56px);
  line-height:1.12;
  text-wrap:balance;
  background:transparent;
}
body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure figcaption span {
  margin-top:20px;font-family:var(--body);font-size:12px;line-height:1.6;text-wrap:wrap;
}
/* A second explanatory photo must not extend just the visual column. */
body:not(.home-page) .depth-layout:has(.depth-visuals > :nth-child(2)) .depth-visuals {display:contents}
body:not(.home-page) .depth-layout:has(.depth-visuals > :nth-child(2)) .depth-visuals > :first-child {grid-column:2;grid-row:1}
body:not(.home-page) .depth-layout .depth-visuals > .installation-figure {grid-column:1 / -1}
body:not(.home-page) .depth-layout:has(.connectivity-explainer) {grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
body:not(.home-page) .depth-copy {max-width:none}
body:not(.home-page) .depth-section .connectivity-scene {max-height:150px}
/* Keep all three guidance articles in the same row at comfortable desktop widths. */
body:not(.home-page) .installation-articles:has(> article:nth-child(3):last-child) {grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
/* Balanced rows, including one-article callouts and the five-article coverage guide. */
body:not(.home-page) .depth-more {grid-template-columns:repeat(6,minmax(0,1fr));gap:28px 32px;margin-top:28px}
body:not(.home-page) .depth-more > article {grid-column:span 3}
body:not(.home-page) .depth-more:has(> article:nth-child(3):last-child) > article,
body:not(.home-page) .depth-more:has(> article:nth-child(5):last-child) > article:nth-child(-n+3) {grid-column:span 2}
body:not(.home-page) .depth-more > article:only-child {max-width:none;grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:32px}
body:not(.home-page) .depth-more > article:only-child h3 {max-width:24ch;margin:0}
body:not(.home-page) .depth-more > article:only-child p {max-width:none;margin:0}
/* Related installation evidence and planning read as a connected sequence. */
body:not(.home-page) .installation-photographs {padding-block:36px 28px}
body:not(.home-page) .installation-photographs + .installation-guidance {padding-top:28px}
body:not(.home-page) .depth-section .checkpoint-figure {margin-top:28px}
@media(min-width:1700px) {
  body:not(.home-page) .connectivity-explainer {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;align-content:start}
  body:not(.home-page) .connectivity-explainer > :is(.figure-header,.connectivity-title,.connectivity-checkpoints,.connectivity-context,details,figcaption) {grid-column:1 / -1}
  body:not(.home-page) .connectivity-explainer .connectivity-scene {grid-column:1;grid-row:3;align-self:center}
  body:not(.home-page) .connectivity-explainer .connectivity-places {grid-column:1;grid-row:4;align-self:start}
  body:not(.home-page) .connectivity-explainer .connectivity-links {grid-column:2;grid-row:3}
  body:not(.home-page) .connectivity-explainer .connectivity-services {grid-column:2;grid-row:4}
}
@media(max-width:1100px) {
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure {grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure figcaption {font-size:32px;padding:28px}
  body:not(.home-page) .depth-layout,body:not(.home-page) .depth-layout:has(.connectivity-explainer) {grid-template-columns:minmax(0,1fr);gap:28px}
  body:not(.home-page) .depth-copy {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  body:not(.home-page) .depth-copy article+article {margin-top:0}
  body:not(.home-page) .depth-layout:has(.depth-visuals > :nth-child(2)) .depth-visuals > :first-child {grid-column:1;grid-row:auto}
  body:not(.home-page) .depth-visuals > .system-figure:not(.connectivity-explainer) > svg {max-height:260px}
  body:not(.home-page) .installation-articles:has(> article:nth-child(3):last-child),body:not(.home-page) .depth-more {grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  body:not(.home-page) .depth-more > article,
  body:not(.home-page) .depth-more:has(> article:nth-child(3):last-child) > article,
  body:not(.home-page) .depth-more:has(> article:nth-child(5):last-child) > article:nth-child(-n+3) {grid-column:auto}
  body:not(.home-page) .depth-more > article:last-child:nth-child(odd),
  body:not(.home-page) .installation-articles > article:last-child:nth-child(3) {grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
}
@media(max-width:680px) {
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure {display:block}
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure figcaption {font-size:27px;padding:22px}
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure figcaption span {margin-top:12px;font-size:11px}
  body:not(.home-page) .depth-copy,body:not(.home-page) .depth-more,
  body:not(.home-page) .installation-articles:has(> article:nth-child(3):last-child) {grid-template-columns:minmax(0,1fr);gap:24px}
  body:not(.home-page) .depth-more > article:only-child,
  body:not(.home-page) .depth-more > article:last-child:nth-child(odd),
  body:not(.home-page) .installation-articles > article:last-child:nth-child(3) {display:block;grid-column:auto}
  body:not(.home-page) .depth-more > article:only-child h3 {max-width:none;margin-bottom:14px}
  body:not(.home-page) .installation-photographs {padding-block:24px 20px}
  body:not(.home-page) .installation-photographs + .installation-guidance {padding-top:20px}
}
/* Paired supporting photographs remain evidence cards, with captions beside the image. */
@media(min-width:1101px) {
  body:not(.home-page) .installation-gallery:has(> :nth-child(2)) > .installation-figure {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}
  body:not(.home-page) .installation-gallery:has(> :nth-child(2)) > .installation-figure figcaption {padding:24px;font-family:var(--heading);font-size:clamp(24px,1.8vw,32px);line-height:1.2;background:transparent;text-wrap:balance}
  body:not(.home-page) .installation-gallery:has(> :nth-child(2)) > .installation-figure figcaption span {font-family:var(--body);font-size:11px;line-height:1.6;margin-top:14px;text-wrap:wrap}
}
/* The final directory article spans the otherwise vacant half-row. */
@media(min-width:681px) {
  body:not(.home-page) .installation-articles > article:last-child:nth-child(11) {grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
}
/* Preserve portrait evidence without reserving a landscape-sized image well. */
body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure.composition-portrait {
  display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:center;
}
body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure.composition-portrait img {
  height:348px;aspect-ratio:auto;object-fit:contain;
}
body:not(.home-page) .installation-gallery:has(> :nth-child(2)) .installation-figure.composition-portrait {grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr)}
body:not(.home-page) .installation-gallery:has(> :nth-child(2)) .installation-figure.composition-portrait img {height:280px}
@media(max-width:1100px) {
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure.composition-portrait {grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure.composition-portrait img {height:260px}
}
@media(max-width:680px) {
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure.composition-portrait {grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure.composition-portrait img {height:auto;aspect-ratio:auto}
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure.composition-portrait figcaption {font-family:var(--heading);font-size:23px;line-height:1.2;padding:18px;background:transparent}
  body:not(.home-page) :is(.hero-explainer,.installation-gallery,.depth-layout) .installation-figure.composition-portrait figcaption span {font-family:var(--body);font-size:11px;line-height:1.6;margin-top:12px}
}

@media (min-width:681px) and (max-width:1100px) {
 body:not(.home-page) .installation-gallery:has(> :nth-child(2)) {grid-template-columns:minmax(0,1fr)}
}
@media (max-width:680px) {
 body:not(.home-page) .installation-gallery:has(> :nth-child(2)) > .installation-figure figcaption {font-size:23px}
}
/* Let the existing follow-up article use the short column beside a tall diagram. */
@media(min-width:1101px) and (max-width:1699px) {
  body:not(.home-page) .depth-section:has(.connectivity-explainer):has(.depth-more > article:only-child) > .wrap {
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 36px;
  }
  body:not(.home-page) .depth-section:has(.connectivity-explainer):has(.depth-more > article:only-child) .section-head {grid-column:1 / -1;margin-bottom:4px}
  body:not(.home-page) .depth-section:has(.connectivity-explainer):has(.depth-more > article:only-child) .depth-layout {display:contents}
  body:not(.home-page) .depth-section:has(.connectivity-explainer):has(.depth-more > article:only-child) .depth-copy {grid-column:1;grid-row:2}
  body:not(.home-page) .depth-section:has(.connectivity-explainer):has(.depth-more > article:only-child) .depth-visuals {grid-column:2;grid-row:2 / 4}
  body:not(.home-page) .depth-section:has(.connectivity-explainer):has(.depth-more > article:only-child) .depth-more {grid-column:1;grid-row:3;display:block;margin-top:0}
  body:not(.home-page) .depth-section:has(.connectivity-explainer):has(.depth-more > article:only-child) .depth-more > article {display:block}
  body:not(.home-page) .depth-section:has(.connectivity-explainer):has(.depth-more > article:only-child) .depth-more h3 {max-width:none;margin-bottom:14px}
  body:not(.home-page) .depth-section:has(.connectivity-explainer):has(.depth-more > article:only-child) .checkpoint-figure {grid-column:1 / -1;margin-top:0}
}
/* Existing utility-page statements balance their longer neighbouring copy. */
@media(min-width:1101px) {
  body:not(.home-page) .section:not(.intro-section) > .detail-intro h2 {font-size:clamp(48px,4.2vw,64px);max-width:14ch}
  body:not(.home-page) .contact-aside h2 {font-size:clamp(48px,4.5vw,68px);max-width:12ch}
  body:not(.home-page) .contact-aside > p:not(.note) {font-size:18px;line-height:1.7}
  body:not(.home-page) .contact-aside .note {font-size:clamp(18px,1.5vw,23px);line-height:1.6;max-width:38ch}
}
/* Five industry links form complete rows, without a vacant final card slot. */
@media(min-width:981px) {
  body:not(.home-page) .grid.three:has(> .service-card:nth-child(5):last-child) {grid-template-columns:repeat(6,minmax(0,1fr))}
  body:not(.home-page) .grid.three:has(> .service-card:nth-child(5):last-child) > .service-card {grid-column:span 2}
  body:not(.home-page) .grid.three:has(> .service-card:nth-child(5):last-child) > .service-card:nth-last-child(-n+2) {grid-column:span 3}
}
@media(min-width:681px) and (max-width:980px) {
  body:not(.home-page) .grid.three:has(> .service-card:nth-child(5):last-child) > .service-card:last-child {grid-column:1 / -1}
}
@media(min-width:981px) {
  body:not(.home-page) .grid.three:has(> .service-card:nth-child(5):last-child) > .service-card:not(.immersive) h3 {font-size:clamp(32px,3.2vw,48px);max-width:18ch}
  body:not(.home-page) .grid.three:has(> .service-card:nth-child(5):last-child) > .service-card:not(.immersive) p {font-size:18px;line-height:1.7;max-width:48ch}
}
/* At tablet widths, a long final paragraph needs the whole row, not half a row. */
@media(min-width:681px) and (max-width:1100px) {
  body:not(.home-page) .depth-more > article:last-child:nth-child(odd),
  body:not(.home-page) .installation-articles > article:last-child:nth-child(3),
  body:not(.home-page) .installation-articles > article:last-child:nth-child(11) {display:block;grid-column:1 / -1}
  body:not(.home-page) .depth-more > article:last-child:nth-child(odd) h3 {max-width:none;margin-bottom:14px}
}
@media(min-width:681px) and (max-width:1100px) {
  body:not(.home-page) .section:not(.intro-section) > .detail-intro {grid-template-columns:minmax(0,1fr);gap:24px}
}
@media(min-width:981px) and (max-width:1100px) {
  body:not(.home-page) .contact-aside h2 {font-size:48px;max-width:12ch}
  body:not(.home-page) .contact-aside > p:not(.note) {font-size:18px;line-height:1.7}
  body:not(.home-page) .contact-aside .note {font-size:18px;line-height:1.6}
}
