@charset "utf-8";

/* 내용관리 */
#ctt { background:#fff; }
.ctt_admin { display:none; text-align:right; }
#ctt header h1 { position:absolute; font-size:0; line-height:0; overflow:hidden; }
#ctt_con img { max-width:100%; height:auto; }

/* =========================================================
   Location
========================================================= */
.location_page { width:100%; background:#fff; overflow:hidden; }
.location_section { padding:clamp(60px, 6vw, 100px) 0 clamp(130px, 14vw, 240px); position:relative; }
.location_section::before { content:''; width:clamp(240px, 25vw, 430px); aspect-ratio:1 / 1; background-image:radial-gradient(circle, rgba(0,60,172,0.1) 0 clamp(2px, 0.18vw, 3px), transparent clamp(2.5px, 0.22vw, 4px)); background-size:clamp(12px, 1vw, 18px) clamp(12px, 1vw, 18px); -webkit-mask-image:radial-gradient(circle at left bottom, #000 0, transparent 70%); mask-image:radial-gradient(circle at left bottom, #000 0, transparent 70%); position:absolute; bottom:0; left:0; pointer-events:none; }
.location_inner { width:min(calc(100% - 60px), 1200px); margin:0 auto; position:relative; z-index:1; }
.location_heading { margin-bottom:clamp(35px, 4vw, 60px); overflow:hidden; position:relative; }
.location_heading::after { content:'LOCATION'; font-size:clamp(70px, 10vw, 150px); font-weight:800; line-height:0.8; color:rgba(0,60,172,0.035); letter-spacing:-0.05em; position:absolute; right:0; bottom:0; pointer-events:none; }
.location_label, .location_heading h2 { position:relative; z-index:1; }
.location_label { display:block; margin-bottom:clamp(10px, 1vw, 16px); font-size:clamp(12px, 0.9vw, 15px); font-weight:700; line-height:1; color:#003cac; }
.location_heading h2 { font-size:clamp(24px, 2.5vw, 38px); font-weight:700; line-height:1.4; color:#111; letter-spacing:-0.05em; word-break:keep-all; }

/* 카카오 지도 */
.location_map { width:100%; max-width:1200px; margin:0 auto; overflow:hidden; background:#f2f2f2; position:relative; z-index:1; }
.location_map .contact_map { width:100% !important; }
.location_map .wrap_map { height:clamp(400px, 50vw, 600px) !important; }
.location_map .wrap_controllers { display:none; }
.location_map .cont { display:none; }

/* 위치 정보 */
.location_information { display:grid; grid-template-columns:minmax(0, 1fr) clamp(260px, 23vw, 310px); gap:clamp(12px, 1.5vw, 20px); margin-top:20px; padding:clamp(15px, 3vw, 35px); border-top:1px solid #0756d6; background:#f1f6fc; position:relative; z-index:2; }
.location_detail { padding:clamp(30px, 3vw, 45px) clamp(35px, 4vw, 60px); border:1px solid #e1e5eb; border-radius:clamp(10px, 1vw, 15px); background:#fff; }
.location_company { padding-bottom:clamp(20px, 2vw, 30px); border-bottom:1px solid #e4e7ec; }
.location_company img { display:block; width:clamp(120px, 10vw, 160px); height:auto; }

/* 위치 상세 정보 */
.location_info_list { margin:clamp(20px, 2vw, 30px) 0 0; padding:0; }
.location_info_item { display:grid; grid-template-columns:clamp(48px, 5vw, 70px) minmax(0, 1fr); align-items:baseline; margin:0; }
.location_info_item + .location_info_item { margin-top:clamp(15px, 1.5vw, 22px); }
.location_info_item dt { font-size:clamp(12px, 1.6vw, 18px); font-weight:700; line-height:1.5; color:#003cac; }
.location_info_item dd { display:inline-flex; flex-wrap:wrap; align-items:center; min-width:0; margin:0; font-size:clamp(12px, 1.6vw, 18px); font-weight:500; line-height:1.5; color:#444; letter-spacing:-0.04em; word-break:keep-all; }
.location_info_item dd > span:not(.subway_line) { margin-left:5px; color:#555; }
.location_info_item a { color:#444; }
.location_info_item a:hover { color:#003cac; }
.subway_line { display:inline-flex; align-items:center; justify-content:center; min-width:clamp(48px, 4.5vw, 65px); min-height:clamp(23px, 2vw, 28px); margin-right:clamp(8px, 1vw, 14px); padding:0 10px; border-radius:100px; background:#003cac; font-size:clamp(11px, 1vw, 14px); font-weight:600; line-height:1; color:#fff; vertical-align:middle; }

/* 지도 바로가기 */
.location_map_links { display:flex; flex-direction:column; gap:clamp(10px, 1vw, 14px); }
.location_map_link { display:flex; flex-grow:1; align-items:center; min-width:0; min-height:clamp(90px, 7vw, 105px); padding:clamp(15px, 1.5vw, 22px); border:1px solid #e1e5eb; border-radius:clamp(10px, 1vw, 15px); background:#fff; color:#222; transition:border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease; }
.location_map_link:hover { border-color:rgba(0,60,172,0.3); box-shadow:0 10px 24px rgba(20,45,80,0.1); transform:translateY(-3px); }
.map_service_icon { display:flex; align-items:center; justify-content:center; flex:0 0 clamp(34px, 3vw, 44px); width:clamp(34px, 3vw, 44px); height:clamp(34px, 3vw, 44px); margin-right:clamp(12px, 1.3vw, 18px); border-radius:50%; font-size:clamp(18px, 1.6vw, 22px); font-weight:800; line-height:1; }
.map_service_text { display:flex; flex-direction:column; min-width:0; }
.map_service_text small { margin-bottom:clamp(3px, 0.4vw, 6px); font-size:clamp(9px, 0.8vw, 11px); font-weight:500; line-height:1; color:#777; }
.map_service_text strong { font-size:clamp(14px, 1.3vw, 18px); font-weight:600; line-height:1.3; color:#222; white-space:nowrap; }
.map_link_icon { display:flex; flex:0 0 clamp(17px, 1.5vw, 21px); width:clamp(17px, 1.5vw, 21px); height:clamp(17px, 1.5vw, 21px); margin-left:auto; color:#aaa; transition:color 0.2s ease; }
.map_link_icon svg { display:block; width:100%; height:100%; }
.location_map_link:hover .map_link_icon { color:#003cac; }

/* 반응형 */
@media (max-width:980px) {
	.location_information { grid-template-columns:1fr; }
	.location_map_links { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); }
	.location_map_link { min-height:85px; }
}

@media (max-width:760px) {
	.location_detail { padding:clamp(20px, 5vw, 30px); }
}

@media (max-width:650px) {
	.location_heading::after { display:none; }
	.location_info_item dd > span:not(.subway_line) { display:block; width:100%; margin-left:0; }
	.location_map_links { grid-template-columns:1fr; }
	.location_map_link { min-height:75px; padding:15px 18px; }
	.location_map_link:hover { transform:none; }
}

@media (max-width:540px) {
	.location_section { padding-top:50px; }
	.location_map .wrap_map { height:400px !important; }
	.location_info_item { grid-template-columns:45px minmax(0, 1fr); }
	.subway_line { min-width:44px; min-height:16px; margin-right:5px; font-size:10px; }
}