/* Team · studios — a directory board, one row per place (a photograph of the place, captioned with where it was taken;
   the city, the line about it and the people there; the address, suites, coordinates and directions), beside the map
   drawn to scale with the road between the studios, and the studio day in IST (partials/team/studios.php,
   assets/js/team/studios.js). The map's lines are SVG (non-scaling strokes, no path lengths); its words are HTML placed
   by percentage over it, so they keep the site's type sizes at every width. */
.tm-st__grid{display:grid;grid-template-columns:minmax(0,7.2fr) minmax(0,4.8fr);gap:var(--bdh-gap-l);align-items:start}
.tm-st__board{border-top:1px solid var(--ink)}
.tm-st__row{display:grid;grid-template-columns:150px minmax(0,1.05fr) minmax(0,1fr);gap:14px var(--bdh-gap);align-items:start;padding:26px 0;border-bottom:1px solid var(--line)}
.tm-st__ph{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.tm-st__pic{aspect-ratio:4/5;border-radius:var(--r)}
.tm-st__cap{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.04em;line-height:1.45;color:var(--faint)}
.tm-st__main{display:flex;flex-direction:column;gap:10px;min-width:0}
.tm-st__n{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.12em;color:var(--blue)}
.tm-st__city{font-family:var(--f-h);font-size:clamp(1.9rem,2.9vw,2.6rem);font-weight:500;letter-spacing:-.03em;line-height:1.02;color:var(--ink)}
.tm-st__note{font-size:var(--t-sm);line-height:1.6;color:var(--muted);max-width:34ch}
.tm-st__faces{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.tm-st__detail{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;padding-top:24px}
.tm-st__addr{font-style:normal;font-size:var(--t-sm);line-height:1.6;color:var(--txt)}
.tm-st__units{display:flex;flex-direction:column;gap:4px}
.tm-st__ul{font-size:var(--t-sm);line-height:1.5;color:var(--txt)}
.tm-st__geo{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.06em;line-height:1.4;color:var(--faint)}
.tm-st__dir{min-height:40px}
.tm-st__row--remote .tm-st__city{color:var(--muted)}

/* ---------- the map ---------- */
.tm-st__side{display:flex;flex-direction:column;gap:18px;position:sticky;top:var(--bdh-sticky)}
.tm-st__map{margin:0;padding:16px 16px 14px;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--sh-1)}
.tm-st__mapt{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;padding-bottom:12px;border-bottom:1px solid var(--line-2);
  font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.12em;text-transform:uppercase;line-height:1.4;color:var(--muted)}
.tm-st__km{color:var(--ink)}
.tm-st__plot{position:relative;max-width:420px;margin:14px auto 0}
.tm-st__svg{display:block;width:100%;height:auto;overflow:visible}
.tm-st__grat line{stroke:var(--line-2);stroke-width:1;vector-effect:non-scaling-stroke}
.tm-st__road{fill:none;stroke:var(--blue);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.tm-st__tdot{fill:var(--paper);stroke:var(--blue);stroke-width:1.5;vector-effect:non-scaling-stroke}
.tm-st__tdot.is-off{stroke:var(--faint);stroke-dasharray:2 2}
.tm-st__halo{fill:var(--blue-wash-2);stroke:var(--blue-line);stroke-width:1;vector-effect:non-scaling-stroke}
.tm-st__dot{fill:var(--blue)}
.tm-st__gl,.tm-st__town,.tm-st__lab,.tm-st__roadl{position:absolute;white-space:nowrap;pointer-events:none}
.tm-st__gl{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.04em;line-height:1;color:var(--faint)}
.tm-st__gl--lat{left:3px;transform:translateY(calc(-100% - 4px))}
.tm-st__gl--lng{bottom:3px;transform:translateX(5px)}
.tm-st__town{transform:translate(9px,-50%);font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.02em;line-height:1.2;color:var(--muted)}
.tm-st__town.is-off{color:var(--faint)}
.tm-st__lab{transform:translate(15px,-50%);font-family:var(--f-h);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;line-height:1.1;color:var(--ink)}
.tm-st__roadl{transform:translate(calc(-100% - 10px),-50%);padding:2px 7px;border:1px solid var(--blue-line);border-radius:var(--r-xs);background:var(--paper);
  font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.06em;line-height:1.3;color:var(--blue-d)}
.tm-st__map.is-live .tm-st__halo{animation:tm-st-pulse 2.6s var(--e-io) infinite;transform-box:fill-box;transform-origin:center}
.tm-st__map.is-live .tm-st__pin:nth-of-type(2) .tm-st__halo{animation-delay:1.3s}
@keyframes tm-st-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.55}}

/* ---------- the studio day ---------- */
.tm-st__day{display:flex;flex-direction:column;gap:12px;padding:16px 18px 18px;border-radius:var(--r-lg);background:var(--paper-3)}
.band--alt .tm-st__day{background:var(--paper)}
.tm-st__dt{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}
.tm-st__tz{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.06em;line-height:1.4;color:var(--muted)}
.tm-st__dial{position:relative;height:30px;margin-top:2px}
.tm-st__dial.is-now{height:54px;padding-top:24px}
.tm-st__track,.tm-st__core{position:absolute;height:10px;border-radius:var(--r-pill)}
.tm-st__track{left:0;right:0;top:0;background:var(--paper)}
.band--alt .tm-st__track{background:var(--paper-3)}
.tm-st__core{top:0;background:var(--blue)}
.tm-st__dial.is-now .tm-st__track,.tm-st__dial.is-now .tm-st__core{top:24px}
.tm-st__hr{position:absolute;bottom:0;transform:translateX(-50%);font-family:var(--f);font-size:var(--t-lbl);line-height:1;color:var(--faint)}
.tm-st__hr:nth-last-child(5){transform:none}
.tm-st__hr:last-child{transform:translateX(-100%)}
/* the "now" line: from just under its label, through the day, to the hour labels */
.tm-st__nowl{position:absolute;top:20px;height:20px;width:0;border-left:1.5px solid var(--ink)}
.tm-st__nowl[hidden]{display:none}
.tm-st__nowl span{position:absolute;top:0;left:0;transform:translate(-50%,calc(-100% - 2px));padding:1px 8px;border-radius:var(--r-pill);background:var(--ink);color:var(--on-ink);
  font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.06em;line-height:1.5;white-space:nowrap}
.tm-st__nowl.is-start span{transform:translate(-6px,calc(-100% - 2px))}
.tm-st__nowl.is-end span{transform:translate(calc(-100% + 6px),calc(-100% - 2px))}
.tm-st__core-t{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:var(--t-sm);line-height:1.55;color:var(--ink)}
.tm-st__core-t::before{content:"";flex:none;width:18px;height:8px;border-radius:var(--r-pill);background:var(--blue)}
.tm-st__now{display:inline-flex;max-width:100%;align-items:center;padding:2px 9px;border-radius:var(--r-pill);background:var(--blue-wash);color:var(--blue-d);
  font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.06em;line-height:1.5}
.tm-st__now[hidden]{display:none}
.tm-st__now.is-out{background:var(--paper-4);color:var(--muted)}
.tm-st__visit{font-size:var(--t-sm);line-height:1.6;color:var(--muted)}
.tm-st__visit a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

@media (max-width:1180px){
  .tm-st__grid{grid-template-columns:minmax(0,6.8fr) minmax(0,5.2fr)}
  .tm-st__row{grid-template-columns:120px minmax(0,1fr);grid-template-rows:auto 1fr}
  .tm-st__ph{grid-row:1 / span 2}                     /* the details flow straight under the note, beside the picture */
  .tm-st__detail{grid-column:2;padding-top:0}
}
@media (max-width:1023px){
  .tm-st__grid{grid-template-columns:minmax(0,1fr)}
  .tm-st__side{position:static;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .tm-st__map{grid-row:span 2}
  .tm-st__visit{grid-column:2}
}
@media (max-width:760px){
  .tm-st__row{grid-template-columns:112px minmax(0,1fr);column-gap:18px;padding:24px 0}
  .tm-st__side{display:flex}
  .tm-st__dir{min-height:44px}
  .tm-st__city{font-size:clamp(1.6rem,7vw,2rem)}
}
@media (prefers-reduced-motion:reduce){
  .tm-st__map.is-live .tm-st__halo{animation:none}
}

/* short screens: the side panel is taller than the space below the nav (integrator, responsive pass) */
@media (max-height:940px){.tm-st__side{position:static}}
