/* V110 — Project detail layout normalization
   Scoped to .project-detail-v110 so the rest of the site is untouched. */

/* Remove the legacy 100svh vertical centering from project-detail content. */
.project-detail-v110 main > section.section,
.project-detail-v110 main > section.projects.section {
  width: 100%;
  height: auto;
  min-height: 0;
  display: block;
}

/* Consistent vertical rhythm. */
.project-detail-v110 .case-intro.section,
.project-detail-v110 .case-highlights-section.section,
.project-detail-v110 .case-next.section,
.project-detail-v110 .content-grid-section.section,
.project-detail-v110 .projects.section {
  padding-block: clamp(82px, 8vw, 126px);
}

/* Intro: both columns begin at the same top line. */
.project-detail-v110 .case-intro__grid {
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: clamp(52px, 7vw, 112px);
  align-items: start;
}
.project-detail-v110 .case-intro__grid > * { min-width: 0; }
.project-detail-v110 .case-intro h2 {
  margin: 0;
  max-width: 720px;
  font-size: clamp(40px, 4.3vw, 68px);
  line-height: 1.04;
  letter-spacing: -.045em;
}
.project-detail-v110 .case-intro .eyebrow { margin-bottom: 22px; }
.project-detail-v110 .case-lead {
  padding-top: 0;
  align-self: start;
}
.project-detail-v110 .case-lead .lead {
  margin: 0;
  max-width: 820px;
  font-size: clamp(21px, 1.75vw, 28px);
  line-height: 1.4;
}

/* Challenge / solution: no bottom anchoring; everything reads top-to-bottom. */
.project-detail-v110 .case-story {
  padding: 0;
  background: #fff;
}
.project-detail-v110 .case-story__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  width: min(100%, var(--max));
  padding-inline: var(--gutter);
  gap: 0;
}
.project-detail-v110 .case-story__block {
  min-height: 0;
  padding: clamp(46px, 5vw, 72px);
  display: grid;
  grid-template-rows: auto auto auto;
  align-content: start;
  gap: 20px;
}
.project-detail-v110 .case-story__block > span {
  margin: 0;
  line-height: 1;
}
.project-detail-v110 .case-story__block .eyebrow {
  margin: 8px 0 0;
}
.project-detail-v110 .case-story__block h3 {
  margin: 0;
  max-width: 760px;
  font-size: clamp(25px, 2.2vw, 38px);
  line-height: 1.22;
  letter-spacing: -.03em;
  font-weight: 450;
}

/* Key facts always come before the gallery and align from the top. */
.project-detail-v110 .case-highlights-section {
  background: var(--soft);
}
.project-detail-v110 .case-section-head {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  gap: clamp(48px, 7vw, 108px);
  align-items: start;
  margin-bottom: 38px;
}
.project-detail-v110 .case-section-head > * { min-width: 0; }
.project-detail-v110 .case-section-head > .eyebrow,
.project-detail-v110 .case-section-head > p.eyebrow {
  margin: 0;
}
.project-detail-v110 .case-section-head h2,
.project-detail-v110 .case-section-head .h3 {
  margin: 0;
  max-width: 780px;
  font-size: clamp(35px, 3.6vw, 54px);
  line-height: 1.08;
  letter-spacing: -.04em;
}
.project-detail-v110 .case-section-head > div > .eyebrow { margin-bottom: 18px; }
.project-detail-v110 .case-highlights {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.project-detail-v110 .case-highlight {
  min-height: 150px;
  padding: 26px;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 26px;
}
.project-detail-v110 .case-highlight span {
  line-height: 1.25;
}
.project-detail-v110 .case-highlight strong {
  margin: 0;
  font-size: clamp(18px, 1.45vw, 24px);
  line-height: 1.18;
}

/* Gallery: same heading, spacing and row logic on all standard case studies. */
.project-detail-v110 .case-gallery-section,
.project-detail-v110 .case-gallery.case-gallery-section {
  min-height: 0;
  display: block;
  padding-block: clamp(82px, 8vw, 126px);
  background: #101010;
  color: #fff;
}
.project-detail-v110 .case-gallery-head {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  gap: clamp(48px, 7vw, 108px);
  align-items: start;
  margin-bottom: 38px;
}
.project-detail-v110 .case-gallery-head .eyebrow { margin: 0; }
.project-detail-v110 .case-gallery-head h2 {
  margin: 0;
  font-size: clamp(35px, 3.6vw, 54px);
  line-height: 1.08;
  letter-spacing: -.04em;
}
.project-detail-v110 .case-gallery__grid,
.project-detail-v110 .case-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.project-detail-v110 .case-gallery__item,
.project-detail-v110 .case-photo {
  margin: 0;
  min-height: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #1a1a1a;
}
.project-detail-v110 .case-photo--wide {
  grid-column: 1 / -1;
  aspect-ratio: 2 / 1;
  min-height: 0;
}
.project-detail-v110 .case-gallery__item img,
.project-detail-v110 .case-photo img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
}

/* Closing CTA: top-aligned columns, no bottom stagger. */
.project-detail-v110 .case-next__grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: clamp(52px, 7vw, 112px);
  align-items: start;
}
.project-detail-v110 .case-next__grid h2 { margin-top: 0; }
.project-detail-v110 .case-next__grid > div:last-child {
  padding-top: 2px;
  align-self: start;
}
.project-detail-v110 .case-next__grid > div:last-child p {
  margin-top: 0;
  max-width: 620px;
  font-size: clamp(17px, 1.25vw, 20px);
  line-height: 1.5;
}

/* CBRE's richer long-form template: preserve content, normalize alignment/rhythm. */
.project-detail-v110 .numbers { min-height: 0; }
.project-detail-v110 .number {
  min-height: 150px;
  justify-content: flex-start;
  align-items: flex-start;
  padding-top: 30px;
  padding-bottom: 30px;
}
.project-detail-v110 .content-grid {
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  gap: clamp(52px, 7vw, 112px);
  align-items: start;
}
.project-detail-v110 .content-grid > * { min-width: 0; }
.project-detail-v110 .content-grid h2 {
  position: static;
  top: auto;
  margin: 0;
  max-width: 650px;
  font-size: clamp(40px, 4.3vw, 68px);
  line-height: 1.04;
}
.project-detail-v110 .content-grid .eyebrow { margin-bottom: 22px; }
.project-detail-v110 .prose { max-width: 840px; }
.project-detail-v110 .prose > :first-child { margin-top: 0; }
.project-detail-v110 .prose p,
.project-detail-v110 .prose li {
  font-size: clamp(17px, 1.2vw, 20px);
  line-height: 1.55;
}
.project-detail-v110 .feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}
.project-detail-v110 .feature-card {
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.project-detail-v110 .feature-card span { margin-bottom: 34px; }
.project-detail-v110 .feature-card h3 { margin-top: 0; }

.project-detail-v110 .cbre-gallery-section {
  background: #101010;
  color: #fff;
}
.project-detail-v110 .cbre-gallery-section .gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.project-detail-v110 .cbre-gallery-section .gallery img,
.project-detail-v110 .cbre-gallery-section .gallery img:first-child {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  grid-row: auto;
}
.project-detail-v110 .quote {
  margin: 0;
}
.project-detail-v110 .section-head {
  align-items: start;
}
.project-detail-v110 .final-cta__grid {
  align-items: start;
}

/* Tablet / mobile */
@media (max-width: 1100px) {
  .project-detail-v110 .case-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-detail-v110 .feature-grid { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .project-detail-v110 .case-intro__grid,
  .project-detail-v110 .case-story__grid,
  .project-detail-v110 .case-section-head,
  .project-detail-v110 .case-gallery-head,
  .project-detail-v110 .case-next__grid,
  .project-detail-v110 .content-grid,
  .project-detail-v110 .final-cta__grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .project-detail-v110 .case-story__grid { padding-inline: var(--gutter); }
  .project-detail-v110 .case-story__block { padding: 38px 30px; }
  .project-detail-v110 .case-gallery__grid,
  .project-detail-v110 .case-photo-grid,
  .project-detail-v110 .cbre-gallery-section .gallery {
    grid-template-columns: 1fr;
  }
  .project-detail-v110 .case-photo--wide {
    grid-column: auto;
    aspect-ratio: 4 / 3;
  }
  .project-detail-v110 .case-gallery__item,
  .project-detail-v110 .case-photo,
  .project-detail-v110 .cbre-gallery-section .gallery img,
  .project-detail-v110 .cbre-gallery-section .gallery img:first-child {
    aspect-ratio: 4 / 3;
  }
  .project-detail-v110 .case-next__grid > div:last-child { padding-top: 0; }
}
@media (max-width: 560px) {
  .project-detail-v110 .case-highlights { grid-template-columns: 1fr; }
  .project-detail-v110 .case-highlight { min-height: 0; }
  .project-detail-v110 .case-intro h2,
  .project-detail-v110 .content-grid h2 { font-size: 38px; }
  .project-detail-v110 .case-story__block h3 { font-size: 24px; }
}

/* Small polish after visual QA */
.project-detail-v110 section.section--soft:has(.quote){padding-block:clamp(70px,6vw,96px)}
/* Prevent the longer English header CTA from creating a tiny horizontal overflow on project pages. */
.project-detail-v110 .header-cta{padding-inline:14px;font-size:10px;white-space:nowrap}
/* Project pages have long EN navigation labels: keep the desktop header inside the viewport. */
@media (min-width:1101px){
  .project-detail-v110 .site-header{grid-template-columns:auto minmax(0,1fr) auto;gap:24px}
  .project-detail-v110 .site-nav{gap:clamp(14px,1.7vw,26px);min-width:0}
  .project-detail-v110 .header-cta{padding-inline:12px;font-size:9px;white-space:nowrap}
}
