/* Planning and development reports */
.planning-page main {
  overflow: hidden;
  background: var(--paper);
}
.report-hero {
  min-height: min(950px, 100vh);
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(420px, .97fr);
  padding-top: 330px;
  background: var(--ivory);
  border-bottom: 1px solid var(--line);
}
.report-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(4rem, 6vw, 7rem) clamp(2rem, 6vw, 7rem) clamp(4rem, 7vw, 7.5rem) clamp(1.25rem, 5vw, 5.5rem);
}
.report-hero h1,
.planning-page .section h2,
.technical-plan-heading h2,
.constraint-copy h2 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -.045em;
}
.report-hero h1 {
  max-width: 760px;
  font-size: clamp(3.5rem, 5.1vw, 6.2rem);
  line-height: .96;
}
.report-hero-line {
  max-width: 760px;
  margin: 1rem 0 0;
  font-family: var(--serif);
  font-size: clamp(2rem, 3.1vw, 3.8rem);
  letter-spacing: -.035em;
  line-height: 1;
}
.report-hero-intro {
  max-width: 720px;
  margin: 2.25rem 0 0;
  font-size: clamp(1rem, 1.15vw, 1.2rem);
  line-height: 1.65;
}
.report-hero-photo {
  min-height: 620px;
  margin: 0;
  border-left: 1px solid var(--line);
}
.report-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 49% center;
}
.early-input { background: var(--paper); }
.early-input-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .75fr);
  gap: clamp(3rem, 8vw, 9rem);
  align-items: start;
}
.early-input h2,
.planning-page .section-heading h2,
.technical-plan-heading h2,
.process-intro h2,
.questions-heading h2 {
  font-size: clamp(3rem, 4.5vw, 5.2rem);
  line-height: .98;
}
.early-input-copy,
.section-intro,
.technical-plan-heading > p:last-child,
.process-intro > p:last-child {
  font-size: clamp(1rem, 1.15vw, 1.2rem);
  line-height: 1.7;
}
.early-input-copy p:first-child { margin-top: 0; }
.early-input-copy p:last-child { margin-bottom: 0; }
.planning-page .section-heading > div { max-width: 860px; }
.section-intro { max-width: 720px; margin: 1.7rem 0 0; }

.report-types { border-top: 1px solid var(--line); }
.report-card-link { color: inherit; text-decoration: none; }
.report-card-link:hover { background: rgba(156, 174, 157, .14); }
.report-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: clamp(3rem, 6vw, 6rem);
  border-top: 1px solid var(--ink);
  border-left: 1px solid var(--ink);
}
.report-card {
  min-height: 410px;
  padding: clamp(2rem, 4vw, 4rem);
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.report-card:nth-child(4n + 2),
.report-card:nth-child(4n + 3) { background: rgba(156, 174, 157, .12); }
.report-card-wide { grid-column: 1 / -1; min-height: 320px; }
.report-card-label {
  margin: 0 0 clamp(3rem, 6vw, 6rem);
  color: var(--moss);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.report-card h3 {
  max-width: 620px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2rem, 3vw, 3.3rem);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1;
}
.report-card > p:not(.report-card-label) {
  max-width: 660px;
  margin: 1.6rem 0 0;
  line-height: 1.65;
}
.report-card ul {
  max-width: 660px;
  margin: 1.25rem 0 0;
  padding-left: 1.15rem;
  line-height: 1.65;
}

.technical-plan-section {
  padding: 0;
  background: var(--ivory);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.technical-plan-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .65fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: end;
}
.technical-plan-heading .eyebrow { grid-column: 1 / -1; }
.technical-plan-heading > p:last-child { margin: 0; }
.technical-plan-figure { margin: 0; border-top: 1px solid var(--line); }
.technical-plan-figure img {
  width: 100%;
  max-height: 940px;
  object-fit: contain;
  background: #eeeae0;
}
.technical-plan-figure figcaption {
  padding: .8rem clamp(1.25rem, 4vw, 4.75rem);
  border-top: 1px solid var(--line);
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.constraint-story {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  padding: 0;
  background: var(--forest);
  color: var(--ivory);
}
.constraint-photo { min-height: 680px; margin: 0; }
.constraint-photo img { width: 100%; height: 100%; object-fit: cover; }
.constraint-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(4rem, 8vw, 9rem) clamp(2rem, 7vw, 8rem);
}
.constraint-copy h2 { font-size: clamp(3.2rem, 5vw, 6rem); line-height: .93; }
.constraint-copy p:not(.eyebrow) { max-width: 660px; margin: 2rem 0 0; color: rgba(243,240,232,.78); line-height: 1.7; }
.constraint-copy em { color: var(--sage); }

.development-process { background: var(--paper); }
.process-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .7fr); gap: clamp(3rem, 8vw, 9rem); align-items: end; }
.process-intro .eyebrow { grid-column: 1 / -1; }
.process-intro > p:last-child { margin: 0; }
.stage-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: clamp(3rem, 6vw, 6rem) 0 0;
  padding: 0;
  border-top: 1px solid var(--ink);
  border-left: 1px solid var(--ink);
  list-style: none;
}
.stage-grid li {
  min-height: 390px;
  display: flex;
  flex-direction: column;
  padding: clamp(1.8rem, 3vw, 3rem);
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.stage-grid li:nth-child(even) { background: rgba(156,174,157,.13); }
.stage-grid span { color: var(--moss); font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.stage-grid h3 { margin: auto 0 1.2rem; font-family: var(--serif); font-size: clamp(1.8rem, 2.5vw, 2.8rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; }
.stage-grid p { margin: 0; line-height: 1.6; }

.audiences { background: var(--ivory); border-top: 1px solid var(--line); }
.audience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(3rem, 6vw, 6rem); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.audience-grid article { min-height: 340px; padding: clamp(2rem, 3.5vw, 3.8rem); border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.audience-grid h3 { margin: 0 0 1.7rem; font-family: var(--serif); font-size: clamp(1.9rem, 2.7vw, 3rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; }
.audience-grid p { margin: 0; line-height: 1.65; }

.project-information { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(4rem, 10vw, 12rem); }
.information-column h2 { font-size: clamp(3rem, 4.4vw, 5rem); line-height: .98; }
.information-column > p:not(.eyebrow) { margin: 1.5rem 0 0; line-height: 1.65; }
.information-column > ul { margin: 2.5rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.information-column > ul li { padding: 1.1rem 0; border-bottom: 1px solid var(--line); line-height: 1.5; }
.next-steps { margin: 2.5rem 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.next-steps li { display: grid; grid-template-columns: 48px 1fr; gap: 1.2rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.next-steps span { color: var(--moss); font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
.next-steps strong { font-family: var(--serif); font-size: 1.5rem; font-weight: 400; }
.next-steps p { margin: .45rem 0 0; line-height: 1.55; }

.questions { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr); gap: clamp(4rem, 10vw, 12rem); background: var(--forest); color: var(--ivory); }
.question-list { border-top: 1px solid rgba(243,240,232,.32); }
.question-list details { border-bottom: 1px solid rgba(243,240,232,.32); }
.question-list summary { position: relative; padding: 1.5rem 3rem 1.5rem 0; font-family: var(--serif); font-size: clamp(1.35rem, 1.9vw, 2rem); line-height: 1.2; cursor: pointer; list-style: none; }
.question-list summary::-webkit-details-marker { display: none; }
.question-list summary::after { content: "+"; position: absolute; top: 1.35rem; right: 0; font-family: var(--sans); font-size: 1.5rem; }
.question-list details[open] summary::after { content: "−"; }
.question-list details p { max-width: 740px; margin: 0 0 1.7rem; color: rgba(243,240,232,.78); line-height: 1.65; }
.planning-page .contact { border-top: 0; }

@media (max-width: 1100px) {
  .report-hero { grid-template-columns: 1fr; padding-top: 280px; }
  .report-hero-copy { min-height: 660px; }
  .report-hero-photo { min-height: 680px; border-top: 1px solid var(--line); border-left: 0; }
  .stage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .audience-grid { grid-template-columns: 1fr; }
  .audience-grid article { min-height: 0; }
}

@media (max-width: 760px) {
  .report-hero { padding-top: 230px; }
  .report-hero-copy { min-height: auto; padding: 4.5rem 1.25rem 5rem; }
  .report-hero h1 { font-size: clamp(3rem, 12vw, 4.4rem); }
  .report-hero-line { font-size: clamp(2rem, 8vw, 3rem); }
  .report-hero-photo { min-height: 560px; }
  .early-input-grid,
  .technical-plan-heading,
  .process-intro,
  .project-information,
  .questions { grid-template-columns: 1fr; }
  .report-card-grid,
  .stage-grid { grid-template-columns: 1fr; }
  .report-card-wide { grid-column: auto; }
  .report-card { min-height: 0; }
  .report-card-label { margin-bottom: 2.25rem; }
  .constraint-story { grid-template-columns: 1fr; }
  .constraint-photo { min-height: 520px; }
  .constraint-copy { padding: 5rem 1.25rem; }
  .stage-grid li { min-height: 300px; }
  .technical-plan-figure img { min-height: 520px; object-fit: cover; object-position: center; }
}

/* Review revision: separate page opening and simplified flow */
.planning-page .page-header {
  height: 0;
  display: block;
  padding: 0;
  border: 0;
}
.planning-page .page-header .menu-toggle {
  position: absolute;
  top: clamp(2rem, 4vw, 4rem);
  left: clamp(1.25rem, 4vw, 4.75rem);
  color: var(--ink);
}
.page-intro {
  min-height: 520px;
  display: flex;
  align-items: flex-end;
  padding: clamp(9rem, 14vw, 12rem) clamp(1.25rem, 4vw, 4.75rem) clamp(4.5rem, 8vw, 8rem);
  background: var(--ivory);
  border-bottom: 1px solid var(--line);
}
.page-intro-inner { max-width: 1120px; }
.page-intro h1 {
  max-width: 1100px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(3.5rem, 6.5vw, 7.5rem);
  font-weight: 400;
  letter-spacing: -.05em;
  line-height: .92;
}
.early-input-grid { display: block; }
.early-input-content { max-width: 880px; }
.early-input-content > p {
  max-width: 760px;
  margin: 1.6rem 0 0;
  font-size: clamp(1rem, 1.15vw, 1.2rem);
  line-height: 1.7;
}
.section-wide-photo {
  width: 100vw;
  height: clamp(520px, 62vw, 920px);
  margin: clamp(4rem, 8vw, 8rem) 0 calc(clamp(4rem, 7vw, 7rem) * -1) calc(50% - 50vw);
  border-top: 1px solid var(--line);
}
.section-wide-photo img,
.visual-break img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.section-wide-photo img { object-position: 50% 52%; }
.visual-break {
  width: 100%;
  height: clamp(500px, 48vw, 760px);
  margin: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.stage-grid h3 {
  margin: 1.6rem 0 1.15rem;
}
.stage-grid p { margin-top: 0; }
.audience-grid article { display: flex; flex-direction: column; }
.audiences .section-heading h2 { grid-column: 2; }
.audience-grid h3 { min-height: 2.05em; }
.audience-grid p { margin-top: 0; }
.project-information { align-items: stretch; }
.information-photo {
  min-height: 620px;
  margin: 0;
  border: 1px solid var(--ink);
}
.information-photo img { width: 100%; height: 100%; object-fit: cover; }
.planning-page .contact { border-bottom: 1px solid var(--line); }

@media (max-width: 980px) {
  .page-intro { min-height: 460px; }
  .audiences .section-heading h2 { grid-column: 1; }
  .audience-grid h3 { min-height: 0; }
}

@media (max-width: 760px) {
  .page-intro { min-height: 410px; padding-top: 8rem; }
  .page-intro h1 { font-size: clamp(3.1rem, 14vw, 5rem); }
  .section-wide-photo { height: 520px; }
  .visual-break { height: 480px; }
  .information-photo { min-height: 500px; }
}
