/* Shared JET locations. .locations--compact belongs to the About preview;
   .globe-preview styles the isolated technical viewer. */
.globe-preview{margin:0;background:var(--jet-white);color:var(--jet-ink);font-family:var(--jet-font);-webkit-font-smoothing:antialiased}
.globe-preview *,.locations *{box-sizing:border-box}
.globe-preview ::selection,.locations ::selection{background:var(--jet-red);color:var(--jet-white)}
.globe-preview button,.locations button{font:inherit;-webkit-tap-highlight-color:transparent}
.locations button:focus-visible,.locations a:focus-visible,.locations [tabindex]:focus-visible,.globe-preview a:focus-visible{outline:2px solid var(--jet-red);outline-offset:5px}
.globe-preview .skip-link{position:fixed;left:var(--jet-margin);top:16px;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;z-index:10;color:var(--jet-ink);background:var(--jet-white)}
.globe-preview .skip-link:focus{width:auto;height:auto;clip-path:none;padding:16px}
.globe-preview .page-header{display:flex;align-items:center;justify-content:space-between;padding:24px var(--jet-margin)}
.globe-preview .page-header img{display:block;width:116px;height:auto}
.globe-preview .page-header .jet-link{font-weight:400}
.locations{display:grid;grid-template-columns:minmax(320px,.88fr) minmax(0,1.12fr);grid-template-rows:auto auto;column-gap:var(--jet-block-gap);padding:var(--jet-section-y) var(--jet-margin) 96px;min-height:720px;align-content:center;position:relative;isolation:isolate;background:var(--jet-white);overflow:hidden;scroll-margin-top:32px}
.locations__heading{grid-column:1;grid-row:1;position:relative;z-index:2;align-self:end}
.locations__heading h1,.locations__heading h2{margin:0 0 24px}
.locations__heading p{margin:0}
.offices{grid-column:1;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;max-width:520px;width:100%;padding-top:64px;position:relative;z-index:2;align-self:start}
.office{padding:24px 0 0;position:relative}
.office::before{position:absolute;top:0;left:0;width:16px;height:2px;background:var(--jet-red);content:"";opacity:0;transition:opacity 240ms ease}
.office.is-selected::before{opacity:1}
.locations .office__select{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;text-align:left;width:100%;padding:0 0 20px;background:transparent;border:0;cursor:pointer;color:var(--jet-ink)}
.office__select .jet-item-title{width:100%;font-size:var(--jet-role-item)}
.office__country{color:var(--jet-muted)}
.office__indicator{display:none}
.office__details{display:block}
.office address{font-style:normal;color:var(--jet-muted);line-height:1.8}
.office__details .jet-link{font-weight:400;margin-top:24px}
.globe{grid-column:2;grid-row:1/3;position:relative;margin:-80px -64px -48px -80px;min-width:0;align-self:center}
.globe__stage{height:clamp(460px,42vw,640px);width:100%;position:relative;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.globe__stage.is-dragging{cursor:grabbing}
#globe-canvas{position:absolute;inset:0}
#globe-canvas canvas{display:block;width:100%;height:100%}
.globe__pins{position:absolute;inset:0;pointer-events:none;overflow:visible}
.locations .globe__leaders{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--jet-muted);stroke-width:.65;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.globe__leaders path{opacity:.42;stroke-dasharray:1}
.globe__leaders path.is-active{stroke:var(--jet-red);opacity:.55}
.locations .globe-pin{position:absolute;left:0;top:0;width:88px;height:52px;padding:4px 8px;border:0;border-radius:0;background:transparent;color:var(--jet-ink);pointer-events:auto;cursor:pointer;visibility:hidden;text-align:left;white-space:nowrap;transition:color 240ms}
.globe-pin span{display:block;font-size:var(--jet-button-font);font-weight:500;line-height:22px}
.globe-pin small{display:block;font-size:var(--jet-role-label);font-weight:400;color:var(--jet-muted);line-height:18px}
.locations .globe-pin[aria-pressed="true"] span{font-weight:600}
.locations .globe-pin:hover span{color:var(--jet-red)}
.globe__tools{position:relative;display:flex;align-items:center;justify-content:center;gap:24px;margin-top:8px}
.globe__caption{display:flex;align-items:center;gap:10px;font-size:var(--jet-role-label);color:var(--jet-muted);line-height:1.6;margin:0}
.locations .globe__caption svg{display:block;fill:none;stroke:currentColor;stroke-width:1.2;width:18px;height:18px;flex:none}
.globe__caption[hidden]{display:none}
.globe__status{position:absolute;left:0;right:0;bottom:64px;text-align:center;color:var(--jet-muted);padding:0 24px}
.globe__status[hidden],.locations [hidden]{display:none}
.globe__fallback{position:absolute;inset:12% 15%;border:1px solid var(--jet-line);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:20px;color:var(--jet-muted);font-size:var(--jet-role-label);aspect-ratio:1;max-height:76%;margin:auto}
.globe__fallback i{height:2px;width:16px;background:var(--jet-red)}
.globe-ready .globe__fallback{display:none}
.globe-preview .page-footer{display:flex;justify-content:space-between;align-items:center;padding:24px var(--jet-margin);color:var(--jet-muted);gap:24px}
.globe-preview .page-footer .jet-link{font-size:var(--jet-role-label);font-weight:400}
.globe-preview .noscript-note{padding:24px var(--jet-margin);color:var(--jet-muted)}
@media(max-width:1100px) and (min-width:801px){.locations{column-gap:32px;grid-template-columns:minmax(320px,.95fr) minmax(0,1.05fr)}.offices{gap:24px}.globe{margin-left:-64px;margin-right:-48px}.globe__stage{height:560px}}
@media(max-width:800px){
.globe-preview .page-header{padding-top:16px;padding-bottom:16px}
.globe-preview .page-header img{width:88px}
.globe-preview .page-header .jet-link{font-size:12px}
.locations{grid-template-columns:1fr;grid-template-rows:auto auto auto;padding:64px var(--jet-margin) 64px;gap:0;min-height:0;scroll-margin-top:0}
.locations__heading{grid-column:1;grid-row:1}
.locations__heading h1,.locations__heading h2{margin-bottom:20px}
.globe{grid-column:1;grid-row:2;margin:0 -32px 0}
.globe__stage{height:clamp(320px,96vw,520px)}
.globe__tools{margin:0 24px;gap:16px;flex-wrap:wrap}
.globe__caption{font-size:11px;gap:8px}
.offices{grid-column:1;grid-row:3;max-width:none;padding-top:40px;gap:32px}
.office{padding-top:20px}
.locations .office__select{gap:8px;padding-bottom:16px}
.office__details .jet-link{margin-top:20px;font-size:var(--jet-role-label);gap:8px}
.office address{font-size:var(--jet-role-label)}
.globe-preview .page-footer{font-size:11px;align-items:start;padding-bottom:24px}
.globe-preview .page-footer .jet-link{font-size:11px;gap:8px}
.globe-pin span{font-size:13px}
.globe-pin small{font-size:12px}
}
@media(max-width:360px){.locations{padding-top:48px}.offices{gap:20px}.globe__tools{gap:16px}.globe__caption{font-size:11px}}
@media(prefers-reduced-motion:reduce){.locations *,.locations *::before,.locations *::after{transition:none!important}}

/* About: a compact band in the page flow, not a second opening viewport. */
.locations--compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;padding:24px var(--jet-margin);column-gap:var(--jet-block-gap);scroll-margin-top:24px}
.locations--compact .locations__heading h2{margin:0}
.locations--compact .offices{padding-top:24px;gap:32px}
.locations--compact .office{padding-top:12px}
.locations--compact .office__select{gap:8px;padding-bottom:12px}
.locations--compact .office__details .jet-link{margin-top:16px}
.locations--compact .globe{margin:0;align-self:center}
.locations--compact .globe__stage{height:336px}
.locations--compact .globe__tools{margin-top:0}
.locations--compact .globe__status{bottom:32px}
@media(max-width:1100px) and (min-width:801px){.locations--compact{column-gap:32px}.locations--compact .offices{gap:20px}.locations--compact .globe__stage{height:320px}}
@media(max-width:800px){
  .locations--compact{grid-template-columns:1fr;padding:32px var(--jet-margin);scroll-margin-top:16px}
  .locations--compact .globe{margin:8px -12px 0}
  .locations--compact .globe__stage{height:320px}
  .locations--compact .offices{padding-top:24px;gap:24px}
}

/* Direct two-axis touch interaction on the sphere, native scrolling outside it. */
.globe__drag-surface{position:absolute;inset:0;clip-path:circle(var(--globe-hit-radius,0px) at 50% 50%);touch-action:none;cursor:grab}
.globe__stage.is-dragging .globe__drag-surface{cursor:grabbing}
