/* Desktop chapters occupy the available reading stage. Content may grow;
   no fixed height, clipping or scroll interception is used. */
@media (min-width:901px) {
  :is(main,main > .spf-page) > :is(.section,.itd-chapter,.consultant-quote,.dfence-r2):not(.final-invitation,.spf-closing,.company-closing,.res-next,.res-building-next) {
    --section-stage-rail:0px;
    --section-stage-height:calc(100svh - var(--reading-header-height,var(--nav-height,82px)) - var(--section-stage-rail));
    min-height:var(--section-stage-height);
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  /* A chapter rail occupies the stage only after it has entered the flow.
     In particular, a consultant quote before the rail gets the full height. */
  :is(main,main > .spf-page) > :is([data-progress-nav],.res-chapters) ~ :is(.section,.itd-chapter,.consultant-quote,.dfence-r2) {
    --section-stage-rail:var(--reading-rail-height,0px);
  }
  .page-contact main > .section:first-child {
    min-height:0;
    display:block;
  }

  /* Assessment: distribute the available height between the introduction,
     navigation and the actual scene. The photograph grows with its row. */
  main > #home-assessment {
    --study-space:clamp(28px,3.2svh,52px);
    --study-pad:clamp(44px,5svh,80px);
    padding-block:var(--study-pad);
  }
  #home-assessment > .wrap {
    min-height:calc(var(--section-stage-height) - var(--study-pad) * 2);
    display:flex;
    flex-direction:column;
  }
  #home-assessment .home-design-heading {
    max-width:1220px;
    margin-bottom:var(--study-space);
  }
  #home-assessment .home-design-heading h2 {
    font-size:clamp(34px,2.2vw,60px);
  }
  #home-assessment .home-design-heading > p:last-child {
    font-size:clamp(16px,.8vw,21px);
    margin-top:clamp(18px,2svh,28px);
  }
  #home-assessment .home-design-tabs { flex:none;gap:clamp(24px,2.4vw,60px); }
  #home-assessment .home-design-tabs button {
    padding-block:clamp(17px,2svh,28px);
    font-size:clamp(16px,.9vw,23px);
  }
  #home-assessment .home-design-stage {
    flex:1;
    display:flex;
    padding-top:var(--study-space);
  }
  #home-assessment .home-design-panel {
    flex:1;
    width:100%;
    align-items:stretch;
    gap:clamp(40px,4vw,110px);
  }
  /* Ignore the source photograph's intrinsic portrait height when sizing the
     row; its actual frame still stretches with the scene and readable copy. */
  #home-assessment .home-design-photo { align-self:stretch;contain:size;min-height:420px; }
  #home-assessment .home-design-photo img {
    height:0;
    min-height:380px;
    max-height:none;
    aspect-ratio:auto;
    flex:1;
  }
  #home-assessment .home-design-photo figcaption {
    flex:none;
    padding-top:18px;
    font-size:clamp(13px,.6vw,17px);
  }
  #home-assessment .home-design-response {
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding-block:14px;
  }
  #home-assessment .home-design-response h3 {
    font-size:clamp(28px,1.55vw,42px);
    margin-bottom:var(--study-space);
  }
  #home-assessment .home-design-response p {
    font-size:clamp(16px,.8vw,21px);
    line-height:1.85;
  }
  #home-assessment .home-design-label { font-size:clamp(12px,.55vw,15px);margin-bottom:12px; }
  #home-assessment .home-design-answer {
    margin-top:var(--study-space);
    padding-top:var(--study-space);
  }
  #home-assessment .home-design-answer ul { margin-top:22px;gap:12px 26px; }
  #home-assessment .home-design-answer li { font-size:clamp(14px,.65vw,18px); }
  #home-assessment .home-design-response .text-link { align-self:flex-start;font-size:clamp(14px,.65vw,18px);margin-top:26px; }
  #home-assessment .home-design-response .home-design-private { font-size:clamp(12px,.6vw,16px);margin-top:24px; }

  /* Delivery: give the working photograph the remaining height, with a
     generous but bounded handover band beneath it. Expanded scope stays in
     normal flow and may make the chapter taller than one screen. */
  main > #home-delivery {
    --delivery-pad:clamp(44px,5svh,80px);
    padding-block:var(--delivery-pad);
  }
  #home-delivery > .wrap {
    min-height:calc(var(--section-stage-height) - var(--delivery-pad) * 2);
    display:flex;
    flex-direction:column;
  }
  #home-delivery .engineering-panel { flex:1;display:flex;flex-direction:column; }
  #home-delivery .engineering-panel-top { flex:1; }
  #home-delivery .engineering-photograph { min-height:360px; }
  #home-delivery .engineering-heading { padding:clamp(34px,3.2svh,58px) clamp(36px,3.1vw,88px); }
  #home-delivery .engineering-heading h2 { font-size:clamp(34px,2.05vw,56px);margin-bottom:clamp(22px,2.5svh,38px); }
  #home-delivery .engineering-heading > p:not(.eyebrow) { font-size:clamp(16px,.8vw,21px); }
  #home-delivery .engineering-heading > p.engineering-remit { font-size:clamp(14px,.65vw,18px);margin-top:24px; }
  #home-delivery .engineering-outcomes {
    flex:none;
    padding:clamp(30px,3.2svh,52px) clamp(34px,3vw,86px);
    gap:clamp(30px,3vw,84px);
  }
  #home-delivery .engineering-outcomes article { gap:clamp(18px,1.2vw,32px); }
  #home-delivery .engineering-outcomes h3 { font-size:clamp(22px,1.1vw,30px);margin-bottom:16px; }
  #home-delivery .engineering-outcomes p { font-size:clamp(16px,.8vw,21px);margin-bottom:18px; }
  #home-delivery .engineering-output { font-size:clamp(13px,.65vw,18px); }
  #home-delivery .engineering-scope { padding-inline:clamp(34px,3vw,86px); }
  #home-delivery .engineering-scope summary { padding-block:clamp(20px,2svh,28px);font-size:clamp(14px,.65vw,18px); }
}

/* Short desktop windows retain a useful photograph and readable copy;
   natural content height takes precedence over fitting every control. */
@media (min-width:901px) and (max-height:950px) {
  main > #home-assessment { --study-space:22px;--study-pad:36px; }
  #home-assessment .home-design-heading h2 { font-size:34px; }
  #home-assessment .home-design-heading > p:last-child { margin-top:14px; }
  #home-assessment .home-design-tabs button { padding-block:16px; }
  #home-assessment .home-design-photo img { min-height:340px; }
  #home-assessment .home-design-photo { min-height:380px; }
  #home-assessment .home-design-response h3 { font-size:28px; }
  #home-assessment .home-design-answer ul { margin-top:16px;gap:8px 20px; }
  #home-assessment .home-design-response .text-link { margin-top:18px; }
  main > #home-delivery { --delivery-pad:36px; }
  #home-delivery .engineering-heading { padding:30px 34px; }
  #home-delivery .engineering-photograph { min-height:320px; }
  #home-delivery .engineering-outcomes { padding:26px 30px;gap:28px; }
}
