/* Two locations on an open canvas; the only orange boundary belongs to the site. */
.site-model { margin:8px 0 70px; }
.site-model > figcaption { font-size:clamp(24px,2.35vw,34px); line-height:1.4; padding-bottom:34px; border-bottom:1px solid #495240; }
.site-model > figcaption span { color:#bcc5b4; }
.site-relationship { display:grid; grid-template-columns:minmax(180px,.78fr) minmax(55px,.34fr) minmax(0,2.5fr); align-items:center; padding-top:40px; }
.local-operation { padding-bottom:50px; }
.local-building { display:block; width:150px; height:105px; margin-bottom:24px; }
.local-operation h3,.augmented-label h3 { font-size:clamp(32px,3.3vw,54px); line-height:1.02; letter-spacing:-.015em; }
.local-operation p { font-size:17px; line-height:1.75; margin-top:20px; color:#bcc5b4; }
.operation-link { align-self:center; margin-top:-2px; position:relative; }
.operation-link svg { width:100%; height:72px; display:block; overflow:visible; }
.operation-link path { fill:none; stroke-width:1.5; vector-effect:non-scaling-stroke; }
.link-track { stroke:#6b715f; }
.link-signal,.link-arrows { stroke:var(--orange); }
.augmented-operation { min-width:0; }
.augmented-label { display:flex; gap:15px; align-items:flex-start; padding-left:7%; }
.augmented-label h3 span { color:#b8c0b1; }
.augmented-label .flag { flex:0 0 27px; width:27px; height:18px; margin-top:9px; }
.site-cutaway { position:relative; width:100%; aspect-ratio:1.44; margin:0; isolation:isolate; }
.cutaway-poster { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.cutaway-canvas { position:absolute; inset:0; opacity:0; pointer-events:none; }
.cutaway-canvas canvas { display:block; width:100%; height:100%; }
.site-cutaway.is-rendered .cutaway-canvas { opacity:1; }
.site-cutaway.is-rendered .cutaway-poster { opacity:0; }
.workcell-labels { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:12px 28px; padding:0 20px; margin:-12px 0 24px; position:relative; font:500 clamp(25px,2.35vw,36px)/1.2 var(--display); }
.site-management { display:flex; justify-content:center; align-items:center; gap:14px; font-size:16px; line-height:1.5; color:#d3d8cd; }
.site-management > span { width:28px; height:2px; background:var(--orange); flex-shrink:0; }
@media (max-width:1100px) {
  .site-relationship { grid-template-columns:minmax(150px,.85fr) minmax(40px,.26fr) minmax(0,2.5fr); }
  .local-building { width:126px; height:90px; margin-bottom:22px; }
  .local-operation h3,.augmented-label h3 { font-size:clamp(31px,4vw,44px); }
  .local-operation p { font-size:16px; }
  .augmented-label { padding-left:6%; gap:10px; }
  .augmented-label .flag { width:23px; height:16px; flex-basis:23px; margin-top:6px; }
  .workcell-labels { gap:8px 20px; margin-top:0; padding-inline:0; font-size:27px; }
  .site-management { font-size:15px; gap:10px; padding-left:20px; }
}
@media (max-width:700px) {
  .site-model { margin-bottom:44px; }
  .site-model > figcaption { font-size:24px; padding-bottom:28px; }
  .site-model > figcaption span { display:block; }
  .site-relationship { grid-template-columns:1fr; padding-top:32px; }
  .local-operation { display:grid; grid-template-columns:minmax(0,1fr) 94px; gap:0 20px; padding:0; }
  .local-operation h3 { grid-column:1; grid-row:1; font-size:clamp(35px,10vw,49px); }
  .local-operation p { grid-column:1; grid-row:2; margin-top:16px; font-size:16px; }
  .local-building { grid-column:2; grid-row:1 / span 2; align-self:center; width:94px; height:auto; margin:0; }
  .operation-link { width:72px; height:85px; margin:20px 0 18px 12px; }
  .operation-link svg { width:85px; height:72px; transform:rotate(90deg); transform-origin:36px 36px; }
  .augmented-label { padding:0; gap:12px; }
  .augmented-label h3 { font-size:clamp(33px,9.5vw,50px); }
  .augmented-label .flag { margin-top:7px; }
  .site-cutaway { width:calc(100% + 28px); margin-left:-14px; margin-top:10px; }
  .workcell-labels { font-size:clamp(24px,6.5vw,30px); gap:8px 22px; margin:8px 0 25px; justify-content:space-between; }
  .site-management { justify-content:flex-start; padding:0; font-size:16px; align-items:flex-start; gap:12px; }
  .site-management > span { margin-top:12px; width:24px; }
}
@media (max-width:359px) {
  .local-operation { grid-template-columns:minmax(0,1fr) 70px; gap:0 12px; }
  .local-building { width:70px; }
  .workcell-labels { gap:8px 12px; font-size:23px; }
}
@media (prefers-reduced-motion:reduce) {
  .link-signal { stroke-dasharray:none !important; stroke-dashoffset:0 !important; }
}
