/* =========================================================
   오시는 길 (about-location) — main.css + about.css 위에 얹는 페이지 전용 스타일
   ========================================================= */

.campus{ background:#fff }
.campus--alt{ background:var(--bg-light) }
.campus .grid{ align-items:start; row-gap:40px }
.campus__map{ grid-column:1 / 8; position:sticky; top:calc(var(--header) + 96px); aspect-ratio:4 / 3.4; border-radius:var(--r-xl); overflow:hidden;
  background:#ECEAF3; box-shadow:0 0 0 1px rgba(18,16,34,.06), 0 40px 80px -48px rgba(47,31,196,.35) }
.campus__map iframe{ display:block; width:100%; height:100%; border:0; filter:grayscale(.35) contrast(1.02) }
.campus--alt .campus__map{ grid-column:6 / 13; grid-row:1 }
.campus__info{ grid-column:9 / 13 }
.campus--alt .campus__info{ grid-column:1 / 5; grid-row:1 }

.campus__tag{ display:inline-flex; padding:6px 14px; border-radius:999px; font-size:16px; font-weight:700; letter-spacing:.08em; color:var(--deep); background:var(--point-light) }
.campus__name{ margin-top:20px; font-size:48px; font-weight:700; line-height:1.2; letter-spacing:-.045em; color:var(--text-strong) }
.campus__name small{ font-size:22px; font-weight:600; color:var(--point); margin-left:6px; letter-spacing:-.02em }
.campus__addr{ margin-top:24px; font-size:20px; font-weight:500; line-height:1.6; color:var(--text-strong); letter-spacing:-.02em }
.campus__addr span{ color:var(--text-sub); font-weight:400 }
.campus__en{ margin-top:10px; font-size:16px; line-height:1.6; color:var(--text-sub) }
.campus__acts{ margin-top:28px; display:flex; flex-wrap:wrap; gap:8px }
.chipbtn{ display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 18px; border-radius:999px; font-size:16px; font-weight:600;
  color:var(--text-strong); background:#fff; box-shadow:inset 0 0 0 1px var(--line-strong); transition:color .3s var(--ease), box-shadow .3s var(--ease), background-color .3s var(--ease) }
.chipbtn:hover{ color:var(--point); box-shadow:inset 0 0 0 1px var(--point) }
button.chipbtn{ background:var(--text-strong); color:#fff; box-shadow:none }
button.chipbtn::before{ content:""; width:16px; height:16px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%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 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E") center/contain no-repeat }
button.chipbtn:hover{ background:var(--point); color:#fff; box-shadow:none }

.ways{ margin-top:48px; border-top:1px solid var(--line-strong) }
.way{ display:grid; grid-template-columns:112px 1fr; gap:16px; padding:28px 0; border-bottom:1px solid var(--line) }
.way dt{ display:flex; align-items:center; gap:10px; align-self:start; font-size:17px; font-weight:700; color:var(--text-strong); line-height:28px }
.way dd{ display:flex; flex-direction:column; gap:8px; font-size:17px; line-height:1.65; color:var(--text-body) }
.way dd p{ display:flex; flex-wrap:wrap; align-items:center; gap:6px }
.way dd b{ font-weight:700; color:var(--text-strong) }
.way dd a{ font-weight:700; color:var(--text-strong); transition:color .3s var(--ease) }
.way dd a:hover{ color:var(--point) }
.way__sub{ font-size:16px; color:var(--text-sub) }
.way__stop{ font-weight:600; color:var(--text-strong) }
.way__stop + .buses{ margin-top:-2px }
.buses + .way__stop{ margin-top:10px }
.buses{ gap:6px !important }
.buses span{ min-width:52px; padding:3px 10px; border-radius:8px; text-align:center; font-size:16px; font-weight:600; font-variant-numeric:tabular-nums;
  color:#1E7A3C; background:#E7F5EC }
.line{ display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; font-size:16px; font-weight:800; color:#fff; line-height:1 }
.line--2{ background:#00A84D }
.line--8{ background:#E6186C }
.line + .line{ margin-left:-2px }
.wi{ width:22px; height:22px; flex:none; background:var(--point);
  -webkit-mask:var(--m) center/contain no-repeat; mask:var(--m) center/contain no-repeat }
.wi--sub{ --m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='14' rx='3'/%3E%3Cpath d='M4 11h16M8 21l2-4M16 21l-2-4'/%3E%3Ccircle cx='8.5' cy='14' r='.5'/%3E%3Ccircle cx='15.5' cy='14' r='.5'/%3E%3C/svg%3E") }
.wi--bus{ --m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='15' rx='2'/%3E%3Cpath d='M4 10h16M7 21v-3M17 21v-3'/%3E%3Ccircle cx='8' cy='14' r='.5'/%3E%3Ccircle cx='16' cy='14' r='.5'/%3E%3C/svg%3E") }
.wi--tel{ --m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") }

@media (max-width:1024px){
  .campus__map,.campus--alt .campus__map{ grid-column:1 / -1; grid-row:auto; position:relative; top:auto; aspect-ratio:16 / 10 }
  .campus__info,.campus--alt .campus__info{ grid-column:1 / -1; grid-row:auto }
  .campus__name{ font-size:40px }
}
@media (max-width:767px){
  .campus .grid{ row-gap:28px }
  .campus__map,.campus--alt .campus__map{ aspect-ratio:1 / 1; border-radius:var(--r-lg) }
  .campus__name{ font-size:32px; margin-top:16px }
  .campus__name small{ font-size:18px }
  .campus__addr{ font-size:18px; margin-top:18px }
  .ways{ margin-top:36px }
  .way{ grid-template-columns:1fr; gap:12px; padding:22px 0 }
  .buses span{ min-width:48px }
}

.page-location .cta{ background:var(--bg-light) }

/* 복사 알림 */
.toast{ position:fixed; left:50%; bottom:32px; z-index:200; translate:-50% 16px; padding:14px 22px; border-radius:999px; font-size:16px; font-weight:600;
  color:#fff; background:var(--text-strong); box-shadow:0 20px 40px -16px rgba(18,16,34,.5); opacity:0; pointer-events:none;
  transition:opacity .35s var(--ease), translate .35s var(--ease) }
.toast.is-on{ opacity:1; translate:-50% 0 }
