.contact-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:30px;margin-top:8px;display:grid}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.contact-card{color:var(--ink);border:1px solid var(--line);background:var(--surface);border-radius:20px;flex-direction:column;justify-content:space-between;gap:18px;min-height:150px;padding:22px;text-decoration:none;transition:border-color .2s,transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s;display:flex}.contact-card:hover{border-color:var(--sch,var(--accent));box-shadow:0 22px 40px -28px rgba(var(--shadow-rgb), .4);background:var(--surface);transform:translateY(-2px)}:is(.contact-card:focus-visible,.contact-map:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.contact-card h3{font-family:var(--font-display);color:var(--ink);overflow-wrap:anywhere;margin:0 0 .25em;font-size:1.15rem;font-weight:700}.contact-card .school-sub{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:.92rem;line-height:1.45}.contact-layout .contact-card,.contact-layout .contact-card *{cursor:pointer}.contact-layout .contact-map{aspect-ratio:auto;border:1px solid var(--line);background:var(--surface);min-height:420px;box-shadow:0 20px 44px -30px rgba(var(--shadow-rgb), .4);border-radius:20px;flex-direction:column;padding:0;display:flex;position:sticky;top:110px;overflow:hidden;transform:none}.contact-map-frame{background:var(--bg-soft);border:0;flex:auto;width:100%;height:100%;min-height:320px;display:block}.contact-map-link{border-top:1px solid var(--line);color:var(--ink);cursor:pointer;align-items:center;gap:14px;padding:18px 22px;text-decoration:none;transition:background-color .2s;display:flex}.contact-map-link:hover{background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.contact-map-link:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.contact-map-link .contact-map-pin{width:44px;height:44px}.contact-map-link .contact-map-pin svg{width:22px;height:22px}.contact-map-text{flex-direction:column;gap:2px;min-width:0;display:flex}.contact-map-text b{font-family:var(--font-display);font-size:1.02rem;font-weight:700}.contact-map-text span{color:var(--ink-soft);overflow-wrap:anywhere;font-size:.88rem}@media (max-width:860px){.contact-layout{grid-template-columns:1fr}.contact-layout .contact-map{min-height:0;position:static}.contact-map-frame{flex:none;height:320px;min-height:320px}}@media (max-width:560px){.contact-grid{grid-template-columns:1fr}.contact-card{min-height:0}}