/* Shared V4 viewer rhythm. Scene models and camera behavior remain unchanged. */
.index-v4 .v4-regional-map,
.index-v4.services-overview-v4 .v4-regional-map {
  height:clamp(400px,calc(100svh - 250px),580px);
  margin-top:16px; margin-bottom:32px;
}
.index-v4 .v4-globe { height:clamp(360px,calc(100svh - 250px),470px); margin-block:16px 32px; }
.index-v4 .v4-globe-tools { bottom:16px; }
.index-v4 .v4-network-contact { margin-top:28px; }

/* Fit the chemical scene and its controls together within the editorial frame. */
.index-v4.editorial-blue-hero .service-scene { scroll-margin-top:96px; }
.index-v4.editorial-blue-hero .stim-scene-stage { height:clamp(320px,calc(100svh - 280px),540px); }
.index-v4.editorial-blue-hero .stim-scene-foot {
  grid-template-columns:minmax(0,1fr) auto auto;
  grid-template-areas:"steps hint actions";
  align-items:center; gap:12px; padding:16px 0;
}
.index-v4.editorial-blue-hero .stim-scene-views { min-width:0; }
.index-v4.editorial-blue-hero .stim-scene-views button { font-size:10px; padding:10px 9px; }
.index-v4.editorial-blue-hero .stim-scene-hint { font-size:10px; }
.index-v4.editorial-blue-hero .stim-scene-actions { gap:8px; }
.index-v4.editorial-blue-hero .stim-scene-actions button { font-size:10px; }

/* Give drilling's explanation a readable column and close the excess header gap. */
.index-v4.service-v4 .service-sim .sim-heading { margin-bottom:32px; }
.index-v4.service-v4 .process-view-switch { margin-bottom:24px; }
.index-v4.service-v4 .story-stage-grid { grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr); }
.index-v4.service-v4 .story-art { height:clamp(340px,34vw,460px); }
.index-v4.service-v4 .story-editorial { padding:28px 32px; }
.index-v4.service-v4 .story-editorial > p { min-height:0; }
.index-v4.service-v4 .story-focus p { min-height:0; }
.index-v4.service-v4 .story-editorial h3 { margin-block:16px; }
.index-v4.service-v4 .story-focus { margin-top:20px; }
.index-v4.service-v4 .story-controls { margin-top:20px; }

@media(max-width:1100px) {
  .index-v4.editorial-blue-hero .stim-scene-foot {
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"steps steps" "hint actions";
  }
}
@media(max-width:900px) {
  .index-v4 .v4-regional-map,
  .index-v4.services-overview-v4 .v4-regional-map { height:clamp(320px,48vw,460px); }
  .index-v4.service-v4 .story-stage-grid,
  .index-v4.service-v4 .drill-explorer { grid-template-columns:minmax(0,1fr); }
  .index-v4.service-v4 .story-art { height:clamp(290px,48vw,400px); }
  .index-v4.service-v4 .story-editorial { padding:24px; }
  .index-v4.service-v4 .story-editorial > p { font-size:14px; }
  .index-v4.service-v4 .story-controls button { min-height:40px; }
  .index-v4.service-v4 .story-controls button:last-child { min-width:40px; }
}
@media(max-width:760px) {
  .index-v4.editorial-blue-hero .scene-media:has(.scene-style-bar) .stim-scene-stage { height:clamp(280px,80vw,360px); }
  .index-v4.editorial-blue-hero .stim-scene-foot {
    grid-template-columns:minmax(0,1fr); grid-template-areas:"steps" "hint" "actions";
    gap:12px; padding-block:12px 20px;
  }
  .index-v4.editorial-blue-hero .stim-scene-hint { text-align:center; }
  .index-v4.editorial-blue-hero .stim-scene-actions { justify-content:center; }
  .index-v4.editorial-blue-hero .stim-scene-actions button { min-height:44px; }
  .index-v4.service-v4 .service-sim .sim-heading { margin-bottom:24px; }
  .index-v4.service-v4 .story-timeline { grid-template-columns:repeat(2,minmax(0,1fr)); padding-inline:16px; }
  .index-v4.service-v4 .story-timeline button { font-size:11px; min-height:60px; padding:16px 8px; }
}
@media(max-width:600px) {
  .index-v4 .v4-regional-map,
  .index-v4.services-overview-v4 .v4-regional-map { height:clamp(280px,76vw,360px); margin-block:12px 24px; }
  .index-v4 .v4-globe { height:clamp(280px,88vw,380px); margin-block:12px 24px; }
  .index-v4 .v4-network-contact { margin-top:24px; }
}
