/* ============================================================
   Peta Kampus interaktif (page 51675 ID / 45647 EN) — dimuat hanya bila konten memuat .uh-campus-map.
   Pasangan assets/campus-map.js + assets/campus-map.svg. Token dari single-article.css (.uh-page):
   --crimson, --ink, --body, --muted, --line, --paper-2, --serif. Krimson hanya untuk pin/item aktif.
   ============================================================ */

.uh-campus-map.is-enhanced > ul.uh-rs-rep{display:none;}

.uh-cm{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);column-gap:clamp(24px,3.5vw,48px);align-items:start;margin:1.4em 0 .6em;}
.uh-cm-main,.uh-cm-side{min-width:0;}
.uh-cm-side{display:flex;flex-direction:column;gap:16px;}

/* ---------- Panggung peta ---------- */
.uh-cm-stage{position:relative;aspect-ratio:2341/2750;overflow:hidden;background:var(--paper-2);border:1px solid var(--line);border-radius:6px;}
.uh-cm-svg{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .3s ease;}
.uh-cm-stage.is-ready .uh-cm-svg{opacity:1;}
.uh-cm-svg .uh-cm-adm{fill:#e6dfd1;stroke:#fbfaf7;stroke-width:.8px;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .2s ease;}
.uh-cm-svg .uh-cm-out{fill:#efebe3;}
.uh-cm-svg .uh-cm-adm.is-on{fill:#d8cdb9;}
.uh-cm-svg .uh-cm-layer{transition:opacity .35s ease;}
.uh-cm-svg .uh-cm-mks{opacity:0;}
.uh-cm-stage[data-view="mks"] .uh-cm-sulsel{opacity:0;}
.uh-cm-stage[data-view="mks"] .uh-cm-mks{opacity:1;}
.uh-cm-svg .uh-cm-inset-sea{fill:#fff;}
.uh-cm-svg .uh-cm-inset-frame{fill:none;stroke:#cdc6b9;stroke-width:1px;vector-effect:non-scaling-stroke;}

.uh-cm-overlay{position:absolute;inset:0;pointer-events:none;}
.uh-cm-overlay > *{position:absolute;transition:opacity .25s ease,visibility 0s linear 0s;}
.uh-cm-stage:not(.is-ready) .uh-cm-overlay{visibility:hidden;}
/* Elemen milik tampilan lain disembunyikan (juga dari urutan tab). */
.uh-cm-stage[data-view="sulsel"] .uh-cm-overlay > [data-view="mks"],
.uh-cm-stage[data-view="mks"] .uh-cm-overlay > [data-view="sulsel"]{opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s;}

/* Label peta (sans kecil, berhalo putih agar terbaca di atas daratan). */
.uh-cm-lbl{transform:translate(-50%,-50%);white-space:nowrap;font-size:12px;line-height:1;color:var(--muted);letter-spacing:.02em;}
.uh-cm-lbl--sea{font-style:italic;color:#8b877f;}
.uh-cm-lbl--land,.uh-cm-lbl--adm{text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:#8b877f;text-shadow:0 0 3px #e6dfd1,0 0 3px #e6dfd1;}

/* Pin = tombol 40×40 berpusat di titik; label di samping ikut bisa diklik. */
.uh-cm-pin{pointer-events:auto;width:40px;height:40px;margin:-20px 0 0 -20px;padding:0;border:0;background:transparent;cursor:pointer;font:inherit;color:var(--ink);-webkit-tap-highlight-color:transparent;}
.uh-cm-dot{position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 2px #fff,0 1px 3px rgba(0,0,0,.3);transition:transform .15s ease,background-color .15s ease;}
.uh-cm-pin.is-field .uh-cm-dot{background:#fff;box-shadow:inset 0 0 0 2px var(--ink),0 0 0 2px #fff,0 1px 3px rgba(0,0,0,.25);}
.uh-cm-lab{position:absolute;top:50%;transform:translateY(-50%);white-space:nowrap;font-size:13px;line-height:1.2;font-weight:600;color:var(--ink);text-shadow:0 0 2px #fff,0 0 3px #fff,0 0 4px #fff;}
.uh-cm-pin--r .uh-cm-lab{left:calc(50% + 11px);}
.uh-cm-pin--l .uh-cm-lab{right:calc(50% + 11px);}
.uh-cm-pin--b .uh-cm-lab{top:calc(50% + 15px);left:50%;transform:translateX(-50%);}
@media (hover:hover){.uh-cm-pin:hover .uh-cm-dot{transform:scale(1.25);}}
.uh-cm-pin.is-hover .uh-cm-dot{transform:scale(1.25);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--crimson);}
.uh-cm-pin.is-active .uh-cm-dot{background:var(--crimson);transform:scale(1.4);box-shadow:0 0 0 2px #fff,0 1px 4px rgba(0,0,0,.35);}
.uh-cm-pin.is-active .uh-cm-dot::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid rgba(165,28,48,.5);animation:uh-cm-pulse 2.2s ease-out infinite;}
.uh-cm-pin.is-active .uh-cm-lab{color:var(--crimson);}
@keyframes uh-cm-pulse{0%{transform:scale(.6);opacity:1;}100%{transform:scale(1.6);opacity:0;}}

/* Kluster Makassar–Gowa: lingkaran dengan tanda + (memperbesar peta). */
.uh-cm-cluster .uh-cm-dot{width:24px;height:24px;margin:-12px 0 0 -12px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--ink),0 0 0 2px #fff,0 1px 3px rgba(0,0,0,.25);}
.uh-cm-cluster .uh-cm-dot::before{content:"";position:absolute;inset:0;background:var(--ink);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7v10M7 12h10' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7v10M7 12h10' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/100% no-repeat;}
.uh-cm-cluster .uh-cm-lab{font-weight:600;}
.uh-cm-pin--b.uh-cm-cluster .uh-cm-lab{top:calc(50% + 17px);}
.uh-cm-cluster.is-active .uh-cm-dot{background:#fff;transform:none;box-shadow:inset 0 0 0 2px var(--crimson),0 0 0 2px #fff;}
.uh-cm-cluster.is-active .uh-cm-dot::before{background:var(--crimson);}
.uh-cm-cluster.is-active .uh-cm-dot::after{display:none;}

.uh-cm-back{position:absolute;left:12px;top:12px;z-index:2;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px 0 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:14px;line-height:1;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.08);}
.uh-cm-back::before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M10 3 5 8l5 5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M10 3 5 8l5 5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.uh-cm-back[hidden]{display:none;}
@media (hover:hover){.uh-cm-back:hover{background:var(--paper-2);}}

.uh-cm-credit{margin:12px 0 0 !important;font-size:13px !important;line-height:1.5 !important;color:var(--muted);}
.uh-art-content .uh-cm-credit a{color:var(--muted);}

/* ---------- Daftar lokasi (panel) ---------- */
.uh-art-content .uh-cm-group{margin:0 0 6px;font-size:14px;line-height:1.4;color:var(--muted);}
.uh-art-content .uh-cm-group.is-field{margin-top:18px;}
.uh-art-content .uh-cm-list ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.uh-art-content .uh-cm-list li{margin:0;padding:0;border-bottom:1px solid var(--line);}
.uh-cm-item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:9px 10px 9px 6px;border:0;background:transparent;text-align:left;font-family:var(--serif);font-size:18px;line-height:1.3;font-weight:500;color:var(--ink);cursor:pointer;transition:background-color .15s ease;}
.uh-cm-mk{flex:none;width:9px;height:9px;border-radius:50%;background:var(--ink);transition:background-color .15s ease,transform .15s ease;}
.uh-cm-item.is-field .uh-cm-mk{background:#fff;box-shadow:inset 0 0 0 2px var(--ink);}
.uh-art-content .uh-cm-group::before{content:"";display:inline-block;width:8px;height:8px;margin:0 8px 1px 0;border-radius:50%;background:var(--ink);vertical-align:middle;}
.uh-art-content .uh-cm-group.is-field::before{background:#fff;box-shadow:inset 0 0 0 2px var(--ink);}
@media (hover:hover){.uh-cm-item:hover{background:var(--paper-2);}}
.uh-cm-item.is-hover{background:var(--paper-2);}
.uh-cm-item.is-active{background:var(--paper-2);font-weight:600;}
.uh-cm-item.is-active .uh-cm-mk{background:var(--crimson);box-shadow:none;transform:scale(1.25);}

/* ---------- Kartu info ---------- */
.uh-cm-card{position:relative;padding:2px 0 2px 18px;border-left:2px solid var(--crimson);font-size:15px;line-height:1.6;color:var(--body);}
.uh-cm-card[data-state="empty"]{border-left-color:var(--line);}
.uh-art-content .uh-cm-card p{margin:0 0 10px;font-size:15px;line-height:1.6;}
.uh-art-content .uh-cm-card .uh-cm-hint{margin:0;color:var(--muted);}
.uh-art-content .uh-cm-card .uh-cm-title{margin:0 44px 8px 0;font-family:var(--serif);font-size:21px;line-height:1.3;font-weight:600;color:var(--ink);}
.uh-cm-more{margin:0 0 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.uh-cm-more > summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;cursor:pointer;font-size:15px;font-weight:600;color:var(--ink);}
.uh-cm-more > summary::-webkit-details-marker{display:none;}
.uh-cm-more > summary::after{content:"+";flex:none;display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--muted);border-radius:50%;font-weight:400;font-size:15px;line-height:1;}
.uh-cm-more[open] > summary::after{content:"\2212";background:var(--ink);border-color:var(--ink);color:#fff;}
.uh-cm-more > summary:focus-visible{outline:2px solid var(--crimson);outline-offset:2px;}
.uh-art-content .uh-cm-more ul.uh-cm-ul{margin:4px 0 12px;}
.uh-art-content .uh-cm-card ul.uh-cm-ul{columns:2;column-gap:20px;list-style:none;margin:0 0 10px;padding:0;font-size:14px;line-height:1.45;}
.uh-art-content .uh-cm-card ul.uh-cm-ul li{break-inside:avoid;margin:0 0 6px;padding-left:12px;position:relative;}
.uh-art-content .uh-cm-card ul.uh-cm-ul li::before{content:"";position:absolute;left:0;top:.62em;width:4px;height:4px;border-radius:50%;background:var(--muted);}
.uh-art-content .uh-cm-card .uh-cm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:14px 0 2px;}
.uh-art-content a.uh-cm-maps{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 16px;border:1px solid var(--ink);border-radius:22px;color:var(--ink);font-size:15px;font-weight:600;line-height:1.25;text-decoration:none;transition:background-color .15s ease,color .15s ease;}
.uh-art-content a.uh-cm-maps::after{content:"";flex:none;width:12px;height:12px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4 2h6v6M10 2 2 10' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4 2h6v6M10 2 2 10' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.uh-art-content a.uh-cm-maps:hover{background:var(--ink);color:#fff;}
.uh-art-content a.uh-cm-goto{display:inline-flex;align-items:center;min-height:40px;font-size:15px;color:var(--crimson);}
.uh-cm-close{position:absolute;top:-6px;right:-4px;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;color:var(--muted);}
.uh-cm-close::before,.uh-cm-close::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;margin:-.75px 0 0 -7px;background:currentColor;transform:rotate(45deg);}
.uh-cm-close::after{transform:rotate(-45deg);}
@media (hover:hover){.uh-cm-close:hover{color:var(--ink);background:var(--paper-2);}}

/* ---------- Bagian di teks: sorotan & tombol "Tampilkan di peta" ---------- */
.uh-campus-loc{position:relative;scroll-margin-top:96px;}
/* Group "flow" WP menolkan margin atas anak pertama (:root :where(.is-layout-flow) > :first-child) →
   kembalikan jarak heading seperti draf statis (single-article.css: h2 1.6em, h3 1.4em). */
.uh-art-content .uh-campus-loc > h2:first-child{margin-top:1.6em;}
.uh-art-content .uh-campus-loc > h3:first-child{margin-top:1.4em;}
.uh-campus-loc.is-active::before{content:"";position:absolute;left:-20px;top:.3em;bottom:.3em;width:2px;background:var(--crimson);}
li.uh-campus-loc.is-active::before{left:-1.6em;top:.15em;bottom:.15em;}
.uh-cm-locate{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 2px;border:0;background:transparent;font:inherit;font-size:15px;color:var(--muted);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;vertical-align:middle;}
.uh-cm-locate::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--line);}
@media (hover:hover){.uh-cm-locate:hover{color:var(--ink);text-decoration-color:currentColor;}}
.uh-art-content .uh-cm-locate-p{margin-top:-.2em;}

.uh-cm-pin:focus-visible,.uh-cm-item:focus-visible,.uh-cm-back:focus-visible,.uh-cm-close:focus-visible,.uh-cm-locate:focus-visible,.uh-art-content a.uh-cm-maps:focus-visible{outline:2px solid var(--crimson);outline-offset:2px;}
.uh-cm-pin:focus-visible{outline-offset:-6px;border-radius:50%;}

/* ---------- Ponsel: peta di atas, info lokasi aktif tepat di bawahnya ---------- */
@media (max-width:781px){
  .uh-cm{display:flex;flex-direction:column;align-items:stretch;gap:16px;}
  .uh-cm-main,.uh-cm-side{display:contents;}
  .uh-cm-stage{order:1;}
  .uh-cm-card{order:2;}
  .uh-cm-list{order:3;}
  .uh-cm-credit{order:4;margin:0 !important;}
  .uh-cm-card{padding:14px 16px;background:var(--paper-2);}
  .uh-cm-card[data-state="empty"]{background:transparent;padding:0 0 0 14px;}
  .uh-cm-close{top:4px;right:4px;}
  .uh-art-content .uh-cm-card .uh-cm-title{font-size:19px;}
  .uh-cm-lab{font-size:12px;}
  .uh-cm-lbl{font-size:11px;}
  .uh-cm-lbl--land,.uh-cm-lbl--adm{font-size:10px;letter-spacing:.12em;}
  .uh-cm-back{left:8px;top:8px;font-size:13px;}
  .uh-campus-loc.is-active::before{left:-12px;}
  li.uh-campus-loc.is-active::before{left:-1.4em;}
}
@media (max-width:420px){
  .uh-art-content .uh-cm-card ul.uh-cm-ul{columns:1;}
}

/* ---------- Netralkan gaya tombol bawaan tema (Astra: button:hover/:focus → latar gelap, teks putih) ---------- */
.uh-cm .uh-cm-pin:is(:hover,:focus,:active){background:transparent;color:var(--ink);border:0;}
.uh-cm .uh-cm-item:is(:hover,:focus,:active){background:transparent;color:var(--ink);border:0;}
.uh-cm .uh-cm-item:is(.is-hover,.is-active){background:var(--paper-2);}
@media (hover:hover){.uh-cm .uh-cm-item:hover{background:var(--paper-2);}}
.uh-cm .uh-cm-close:is(:hover,:focus,:active){background:transparent;color:var(--muted);border:0;}
@media (hover:hover){.uh-cm .uh-cm-close:hover{background:var(--paper-2);color:var(--ink);}}
.uh-cm .uh-cm-back:is(:hover,:focus,:active){background:#fff;color:var(--ink);border-color:var(--line);}
@media (hover:hover){.uh-cm .uh-cm-back:hover{background:var(--paper-2);}}
.uh-campus-loc .uh-cm-locate:is(:hover,:focus,:active){background:transparent;color:var(--muted);border:0;}
@media (hover:hover){.uh-campus-loc .uh-cm-locate:hover{color:var(--ink);text-decoration-color:currentColor;}}

@media (prefers-reduced-motion:reduce){
  .uh-cm-pin.is-active .uh-cm-dot::after{animation:none;opacity:.6;transform:scale(1.2);}
  .uh-cm-svg,.uh-cm-svg .uh-cm-layer,.uh-cm-svg .uh-cm-adm,.uh-cm-overlay > *,.uh-cm-dot,.uh-cm-item,.uh-cm-mk{transition:none !important;}
}
