/* URBAN PATCH / PROFESSIONAL — Phase E maintenance refinement.
   Only loaded on the EN/JP Professional microsites. */
.up-pro{--muted:#4d4d49;--line:#c7c5be;}

/* Reliable touch and keyboard affordances across desktop and mobile. */
.up-pro .up-nav a,
.up-pro .up-lang a,
.up-pro .up-footer-nav a{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  line-height:1.45;
  padding:5px 0;
  touch-action:manipulation;
}
.up-pro .up-nav a:focus-visible,
.up-pro .up-lang a:focus-visible,
.up-pro .up-footer-nav a:focus-visible,
.up-pro .up-brand:focus-visible,
.up-pro .up-slide-link:focus-visible,
.up-pro .up-project a:focus-visible{
  outline:2px solid #171715;
  outline-offset:4px;
  opacity:1;
}
.up-pro .up-header .up-nav a.up-active,
.up-pro .up-lang a.up-active{
  font-weight:700;
  color:#111;
}
.up-pro .up-slide-ui button{
  width:44px;
  min-width:44px;
  height:44px;
  min-height:44px;
  padding:0 11px;
  display:flex;
  align-items:center;
  justify-content:center;
  touch-action:manipulation;
}
.up-pro .up-slide-ui button:after{width:100%;flex-shrink:0;}
.up-pro .up-slide-ui button:focus-visible{
  outline:2px solid #151514;
  outline-offset:3px;
}
.up-pro .up-kicker,.up-pro .up-meta,.up-pro .up-label,.up-pro .up-small,
.up-pro .up-project-data,.up-pro .up-detail-meta span{color:#4a4a44;}
.up-pro .up-slide-info span{color:#44443d;}
.up-pro .up-image-caption{font-size:11px;letter-spacing:.08em;padding:8px 10px;}
.up-pro .up-project-credit,.up-pro .up-note{color:#44443f;line-height:1.7;}

/* Intentional archival art direction when there is no verified project photograph. */
.up-pro .up-project-media:empty{
  background:linear-gradient(145deg,#e1e0db 0%,#d5d4ce 100%);
  border-color:#c5c3bd;
}
.up-pro .up-project-media:empty::before{
  background:#aaa9a1;
}
.up-pro .up-project-media:empty::after{
  content:"PROJECT / RECORD";
  position:absolute;
  inset:auto auto 18px 18px;
  width:auto;
  height:auto;
  background:transparent;
  color:#45453f;
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  line-height:1.35;
}
.up-pro .up-project-media:has(img)::before,
.up-pro .up-project-media:has(img)::after,
.up-pro .up-plane:has(img)::before,
.up-pro .up-plane:has(img)::after{
  display:none;
}
/* Avoid giant empty 16:9 rectangles on text-only professional records. */
.up-pro .up-detail-hero:empty{
  position:relative;
  min-height:190px;
  aspect-ratio:16/5;
  margin-top:clamp(32px,5vw,58px);
  background:linear-gradient(145deg,#e3e2dc,#d7d6cf);
  border-color:#c5c3bc;
}
.up-pro .up-detail-hero:empty::before{
  content:"";
  position:absolute;
  inset:18px;
  border-top:1px solid #a9a8a0;
}
.up-pro .up-detail-hero:empty::after{
  content:"PROJECT / PROFESSIONAL EXPERIENCE";
  position:absolute;
  bottom:18px;
  left:18px;
  color:#464641;
  font-size:11px;
  font-weight:600;
  line-height:1.5;
  letter-spacing:.1em;
}
/* Image-based slides are unaffected; don't apply visual wireframes over images. */
.up-pro .up-plane:has(img){background:#d9d8d2;}
.up-pro .up-plane img{display:block;width:100%;height:100%;object-fit:cover;}
.up-pro .up-project-media img{display:block;width:100%;height:100%;object-fit:cover;}

@media(max-width:980px){
  .up-pro .up-header-in{row-gap:6px;}
  .up-pro .up-nav{gap:clamp(6px,3vw,24px);padding-top:7px;align-items:center;}
  .up-pro .up-nav a{font-size:clamp(10px,1.5vw,12px);letter-spacing:.09em;}
  .up-pro .up-lang a{padding-inline:4px;}
}
@media(max-width:720px){
  .up-pro .up-header-in{
    grid-template-columns:minmax(0,1fr) auto;
    padding:9px clamp(18px,5vw,28px) 7px;
    column-gap:14px;
  }
  .up-pro .up-nav{
    grid-column:1/-1;
    width:100%;
    justify-content:space-between;
    gap:8px;
    padding-top:5px;
  }
  .up-pro .up-nav a{font-size:10px;white-space:nowrap;letter-spacing:.05em;}
  .up-pro .up-lang{gap:7px;font-size:10px;}
  .up-pro .up-slide-ui{gap:0;}
  .up-pro .up-slide-ui button{width:44px;min-width:44px;padding:0 11px;}
  .up-pro .up-detail-hero:empty{min-height:145px;aspect-ratio:16/6;}
  .up-pro .up-project-media:empty::after{bottom:12px;left:12px;font-size:9px;}
}
@media(max-width:355px){
  .up-pro .up-nav{gap:4px;}
  .up-pro .up-nav a{font-size:9px;letter-spacing:0;}
  .up-pro .up-brand{font-size:12px;letter-spacing:.11em;}
  .up-pro .up-lang{gap:4px;}
  .up-pro .up-slide-ui button{width:40px;min-width:40px;padding:0 9px;}
}
@media(prefers-reduced-motion:reduce){
  .up-pro .up-slide{transition:none!important;}
  .up-pro .up-project a{transition:none!important;}
}