/* Only the guided tour uses a full-window recovery stage. */
.has-tour-layout { --tour-height: calc(100svh - var(--tour-header, 64px)); overflow-anchor: none; }
.has-tour-layout .recovery-section { padding: 0; border: 0; }
.has-tour-layout .recovery-section > .process-wrap { width: 100%; }
.has-tour-layout .recovery-head,
.has-tour-layout .recovery-status,
.has-tour-layout .recovery-explore-hint,
.has-tour-layout .material-choices,
.has-tour-layout .recovery-section .process-footnote { display: none; }
.has-tour-layout .recovery-viewport,
.has-tour-layout .recovery-viewport.is-zoomed { width: 100%; max-width: none; height: var(--tour-height); aspect-ratio: auto; margin: 0; }
.has-tour-layout .recovery-viewport .recovery-scene {
  /* Trim only the spare floor; retain the full machine and all six bins. */
  width: min(100%, calc(var(--tour-height) * 1.68));
  left: 50%; margin-left: max(-50%, calc(var(--tour-height) * -.84));
  top: 50%; margin-top: max(-33.333vw, calc(var(--tour-height) * -.56));
}
.has-tour-layout .recovery-detail { width: 32%; min-width: 310px; padding: clamp(24px, 3.2svh, 36px); }
.has-tour-layout .recovery-next-life img { max-height: 13svh; }
.has-tour-layout .investors-section { min-height: var(--tour-height); padding: 36px 0; }
.has-tour-layout .outlet-label { font-size: clamp(10px, 1.4vw, 20px); }

@media (min-width: 761px) {
  .has-tour-layout .outlook-waste { min-height: var(--tour-height); }
  .has-tour-layout .outlook-waste .outlook-content { padding-top: 4svh; padding-bottom: 20px; }
  .has-tour-layout .outlook-waste h2 { font-size: clamp(30px, 6svh, 62px); }
  .has-tour-layout .outlook-date strong { font-size: clamp(64px, 14svh, 140px); }
  .has-tour-layout .outlook-waste-data { margin-top: 4svh; }
  .has-tour-layout .outlook-waste-stat { padding-bottom: 20px; }
  .has-tour-layout .outlook-tonnage strong { font-size: clamp(88px, 21svh, 190px); }
  .has-tour-layout .outlook-chart { height: 29svh; }
}
@media (max-width: 700px) {
  .has-tour-layout .recovery-macro { height: 52%; }
  .has-tour-layout .recovery-detail { top: auto; bottom: 0; width: 100%; min-width: 0; height: 48%; padding: 16px 20px; }
  .has-tour-layout .recovery-detail h3 { margin-top: 10px; }
  .has-tour-layout .recovery-share { position: absolute; top: 40px; right: 20px; margin: 0; text-align: right; }
  .has-tour-layout .recovery-share strong { font-size: 32px; }
  .has-tour-layout .recovery-share i { display: none; }
  .has-tour-layout .recovery-detail-description { max-width: 100%; margin-top: 32px; }
  .has-tour-layout .recovery-next-life { margin-top: 12px; }
  .has-tour-layout .recovery-next-life ul { margin-top: 6px; }
  .has-tour-layout .recovery-next-life li { display: flex; align-items: center; gap: 4px; padding: 0; }
  .has-tour-layout .recovery-next-life img { width: 46%; height: 50px; margin: 0; }
  .has-tour-layout .recovery-next-life li > span { padding: 0 4px; }
  .has-tour-layout .recovery-sources { margin-top: 10px; padding-top: 8px; }
  .has-tour-layout .recovery-detail-close { margin-top: 6px; }
}
@media (max-width: 760px) {
  .has-tour-layout .outlook-content.wrap { padding-top: 28px; }
  .has-tour-layout .outlook-panel h2,
  .has-tour-layout[lang="ko"] .outlook-panel h2 { font-size: 28px; }
  .has-tour-layout .outlook-date { top: 27px; }
  .has-tour-layout .outlook-waste-data { margin-top: 38px; }
  .has-tour-layout .outlook-chart { height: 190px; }
  .has-tour-layout .outlook-value-stat { margin-top: 24px; }
  .has-tour-layout .outlook-resource-row { margin-top: 18px; gap: 14px 22px; }
  .has-tour-layout .outlook-resource > div { height: 10svh; max-width: 145px; margin: auto; }
  .has-tour-layout .outlook-resource p { margin-top: 6px; }
  .has-tour-layout .outlook-material-note { margin-top: 14px; margin-bottom: 12px; }
  .has-tour-layout .outlook-value-source { padding-top: 10px; font-size: 8px; }
  .has-tour-layout .outlook-value-source a { margin-top: 8px; }
}
