.contact-page .site-header{background:#15171a;position:sticky;height:84px}.contact-page .header-cta{white-space:nowrap}.contact-intro{padding:76px 4.4vw 62px;border-bottom:1px solid var(--line)}.contact-intro-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:end;margin-top:32px}.contact-intro h1{font-size:clamp(42px,5.4vw,84px);line-height:1.22;letter-spacing:-.04em;margin:0}.contact-intro h1 em{font-style:normal;color:var(--orange)}.contact-intro-grid p{color:var(--muted);line-height:1.9}.branch-shortcuts{display:flex;gap:28px;margin-top:24px;font-size:14px}.branch-shortcuts a{padding-bottom:10px;border-bottom:1px solid var(--orange)}.branch{padding:68px 4.4vw;display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.65fr);gap:48px;align-items:start;border-bottom:1px solid var(--line);scroll-margin-top:110px}.branch h2{font-size:clamp(36px,3.7vw,58px);line-height:1.25;margin:20px 0 28px;letter-spacing:-.035em}.branch h2 span{display:block;color:var(--muted);font-size:16px;font-weight:400;letter-spacing:0;margin-top:8px}.company-name{font-size:16px;font-weight:600;line-height:1.7}.branch address{font-size:15px;font-style:normal;line-height:1.9;color:#555b61}.branch dl{margin:28px 0}.detail{padding:15px 0;border-top:1px solid var(--line)}.detail dt{font:10px var(--mono);letter-spacing:.13em;color:var(--muted);margin-bottom:10px}.detail dd{margin:0;font-size:15px;line-height:1.8;overflow-wrap:anywhere}.phone-list a{display:block}.detail a:hover{color:var(--orange)}.branch-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px}.map-link{font-size:13px;border-bottom:1px solid var(--line);padding:10px 0}.branch-map{background:#fff;border:1px solid var(--line);min-width:0}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);font:9px var(--mono);letter-spacing:.1em}.map-toolbar button{background:transparent;border:0;cursor:pointer;color:var(--orange);font:12px var(--sans);padding:8px}.branch figure{margin:0}.map-art{position:relative;container-type:inline-size}.map-art img{height:auto;aspect-ratio:1672/941}.map-label{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);background:rgba(255,255,255,.96);color:#24272b;padding:4px 7px;border:1px solid #b9bdc1;box-shadow:0 2px 5px #00000012;font:500 clamp(7px,1.3cqw,13px)/1.4 var(--sans);white-space:nowrap;border-radius:3px}.map-label.office{border-color:var(--orange);background:var(--orange);color:white;font-weight:700}.map-label.rail{border-color:#d73b91}.map-label.water{border-color:#318ca1;color:#1f6d80}.branch figcaption{font-size:12px;line-height:1.8;padding:16px 18px;border-top:1px solid var(--line);color:var(--muted)}.contact-end{background:var(--orange);padding:58px 4.4vw;display:flex;align-items:center;gap:30px;flex-wrap:wrap}.contact-end .section-kicker{color:#15171a;width:100%;margin:0}.contact-end h2{font-size:clamp(30px,4vw,56px);margin:0;letter-spacing:-.04em}.contact-end .pill{margin-left:auto}.map-dialog{padding:0;border:1px solid #bbb;width:96vw;max-width:1600px;height:90svh;max-height:94svh;background:white;color:var(--ink)}.map-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.dialog-toolbar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line);height:65px}.dialog-toolbar h2{font-size:16px;margin:0 auto 0 0}.dialog-toolbar button{cursor:pointer;background:white;border:1px solid var(--line);padding:7px 12px;border-radius:4px}.dialog-scroll{height:calc(100% - 65px);overflow:auto;padding:18px}.dialog-map{width:100%;min-width:650px}.dialog-map .map-label{font-size:clamp(11px,1.3cqw,20px)}a:focus-visible,button:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
@media(max-width:1180px){.contact-page .site-header{grid-template-columns:1fr auto}.contact-page .header-cta{display:none}.branch{gap:26px;grid-template-columns: minmax(240px,.8fr) minmax(0,1.2fr)}}
@media(max-width:800px){.contact-page .site-header{height:72px}.contact-intro{padding:44px 20px}.contact-intro-grid{grid-template-columns:1fr;gap:20px}.branch{padding:42px 20px;grid-template-columns:1fr}.branch-map{grid-row:auto}.map-art{min-width:0}.contact-end{padding:42px 20px}.contact-end .pill{margin-left:0}.dialog-toolbar{gap:5px;padding:10px}.dialog-toolbar h2{font-size:13px}.dialog-toolbar button{padding:7px}.dialog-scroll{padding:0}.contact-page .primary-nav{top:72px}.map-label{font-size:clamp(7px,1.55cqw,13px)}}

/* Contact parallax follows ordinary page scrolling; maps and labels move together. */
@media(min-width:801px) and (prefers-reduced-motion:no-preference){
  .contact-motion .contact-intro{overflow:hidden}
  .contact-motion .contact-intro h1{transform:translate3d(var(--title-x,0px),var(--title-y,0px),0);will-change:transform}
  .contact-motion .contact-intro-grid>div{transform:translate3d(0,var(--intro-y,0px),0);will-change:transform}
  .contact-motion .branch-info{transform:translate3d(0,var(--info-y,0px),0);will-change:transform}
  .contact-motion .branch-map{transform:translate3d(0,var(--map-y,0px),0) rotate(var(--map-angle,0deg));transform-origin:center;will-change:transform}
}

/* Stack each office name directly above its embedded rooftop pin. */
.map-art{padding-top:16px}
.map-content{position:relative}
.map-label.office{top:var(--y);left:var(--x);transform:translate(-50%,-100%);z-index:2}

/* Clickable rooftop markers and cinematic branch detail. */
button.map-label.office{cursor:pointer;font-family:var(--sans)}
button.map-label.office:hover{background:#dc4400}
.building-hotspot{position:absolute;left:var(--hot-x);top:var(--hot-y);transform:translate(-50%,-50%);width:7%;height:13%;min-width:26px;min-height:30px;border:1px solid transparent;border-radius:8px;background:transparent;cursor:zoom-in;z-index:1}
.building-hotspot:hover,.building-hotspot:focus-visible{background:#ff5a1418;border-color:var(--orange)}
.building-hotspot span{position:absolute;left:50%;top:100%;transform:translateX(-50%);white-space:nowrap;background:#15171a;color:white;padding:5px 8px;font-size:11px;opacity:0;pointer-events:none}
.building-hotspot:hover span,.building-hotspot:focus-visible span{opacity:1}
.building-dialog{width:min(96vw,1500px);max-width:96vw;max-height:94svh;padding:0;border:1px solid #ccc;background:#fff;color:var(--ink);overflow:auto}
.building-dialog::backdrop{background:#000c;backdrop-filter:blur(5px)}
.building-bar{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--line)}
.building-bar h2{font-size:18px;margin:0}.building-bar button{cursor:pointer;border:1px solid var(--line);padding:10px 14px;background:#fff;border-radius:4px;font-size:13px}
.building-stage{position:relative;overflow:hidden;height:min(65svh,760px);background:#fff;isolation:isolate}
.building-camera{position:absolute;inset:0;transform-origin:50% 50%}
.building-start,.building-finish{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.building-finish{opacity:0;transition:opacity .65s ease;z-index:1}
.building-dialog.is-arrived .building-finish{opacity:1}
.building-caption{display:flex;align-items:center;gap:20px;padding:18px 22px;border-top:1px solid var(--line);flex-wrap:wrap}
.building-caption p{font-size:14px;margin:0;line-height:1.7;flex:1;min-width:200px}.building-caption span{font-size:11px;color:var(--muted)}
.building-caption a{color:var(--orange);font-size:13px;font-weight:600;white-space:nowrap}
.building-status{margin:0;padding:0 22px 12px;font-size:13px}.building-status:empty{display:none}
@media(max-width:800px){.building-bar{padding:12px;gap:8px}.building-bar h2{font-size:15px}.building-bar button{font-size:12px;padding:9px}.building-stage{height:52svh;min-height:230px}.building-caption{padding:14px;gap:12px}.building-caption p{flex-basis:100%}.map-toolbar>span{font-size:8px;letter-spacing:0;line-height:1.7}}
@media(prefers-reduced-motion:reduce){.building-finish{transition:none}}

.building-finish{background:#fff}
.building-camera{transition:opacity .65s ease}
.building-dialog.is-arrived .building-camera{opacity:0}
@media(prefers-reduced-motion:reduce){.building-camera{transition:none}}

@media(max-width:800px){.building-stage{height:auto;min-height:0;aspect-ratio:1672/941}}
