/* DF 실적 지도 */
.dfwm{--c:var(--dfwm-c,#1a56db);--ink:#111827;--mut:#6b7280;--line:#e2e5ea;display:grid;grid-template-columns:340px 1fr;gap:40px;align-items:center;max-width:1240px;margin:0 auto;padding:0 20px;font-family:inherit;color:var(--ink);word-break:keep-all}
.dfwm *{box-sizing:border-box}
.dfwm>*{min-width:0}
.dfwm-eye{margin:0 0 10px;font-size:13px;font-weight:600;letter-spacing:.14em;color:var(--c)}
.dfwm-title{margin:0 0 12px;font-size:34px;line-height:1.3;font-weight:300;letter-spacing:-.04em}
.dfwm-title b{font-weight:800;color:var(--c)}
.dfwm-sub{margin:0 0 24px;font-size:15px;line-height:1.6;color:var(--mut)}
.dfwm-regs{display:flex;flex-wrap:wrap;gap:6px}
.dfwm-reg{appearance:none;border:1px solid #d6dae1;background:#fff;border-radius:6px;padding:6px 11px;font:inherit;font-size:13px;color:#374151;cursor:pointer;line-height:1.2;transition:border-color .15s,color .15s}
.dfwm-reg b{font-weight:700;margin-left:2px;color:var(--ink)}
.dfwm-reg:hover{border-color:var(--c);color:var(--c)}
.dfwm-reg.is-on{border-color:var(--c);background:var(--c);color:#fff}.dfwm-reg.is-on b{color:#fff}
.dfwm-tip{margin:16px 0 0;font-size:12px;color:#9ca3af}
.dfwm-mapbox{position:relative;height:var(--dfwm-h,580px);border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#eef1f5}
.dfwm-map{position:absolute;inset:0;background:#eef1f5}
.dfwm-map .leaflet-tile-pane{filter:grayscale(1) contrast(.92) brightness(1.06)}
.dfwm-map .leaflet-control-attribution{font-size:10px;background:rgba(255,255,255,.7)}
.dfwm-map .leaflet-control-zoom{border:1px solid #d6dae1;border-radius:6px;overflow:hidden;box-shadow:none}
.dfwm-map .leaflet-control-zoom a{width:32px;height:32px;line-height:30px;color:#374151;border-color:#e5e7eb}

/* 숫자 동그라미 */
.dfwm-b{background:none;border:0}
.dfwm-b span{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;background:rgba(26,86,219,.88);background:color-mix(in srgb,var(--c) 88%,transparent);color:#fff;border:1px solid rgba(255,255,255,.9);box-shadow:0 0 0 6px rgba(26,86,219,.12);box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 13%,transparent);cursor:pointer;transition:transform .15s;line-height:1.1;text-align:center}
.dfwm-b span:hover{transform:scale(1.06)}
.dfwm-b i{font-style:normal;font-size:10.5px;font-weight:500;opacity:.92;white-space:nowrap}
.dfwm-b b{font-size:15px;font-weight:800}
.dfwm-b.is-sgg span{background:#fff;color:var(--ink);border:1px solid var(--c);box-shadow:0 0 0 4px rgba(26,86,219,.10)}
.dfwm-b.is-sgg b{color:var(--c);font-size:14px}.dfwm-b.is-sgg i{font-size:10px;color:#4b5563}
.dfwm-pin{background:none;border:0}
.dfwm-pin::after{content:"";display:block;width:14px;height:14px;border-radius:50%;background:#9ca3af;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.dfwm-pin.has-l::after{background:var(--c)}

/* 지역 목록 (지도 위 오른쪽) */
.dfwm-list{position:absolute;top:14px;right:14px;bottom:14px;width:300px;z-index:500;background:#fff;border:1px solid #d6dae1;border-radius:10px;display:flex;flex-direction:column;overflow:hidden}
.dfwm-list[hidden]{display:none}
.dfwm-lh{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.dfwm-lh b{font-size:15px}.dfwm-lh span{font-size:12px;color:var(--mut)}
.dfwm-lh button{margin-left:auto;appearance:none;border:0;background:none;font-size:22px;line-height:1;color:#6b7280;cursor:pointer;padding:0 2px}
.dfwm-list ul{list-style:none;margin:0;padding:4px 0;overflow:auto;scrollbar-width:thin;scrollbar-color:#d6dae1 transparent}
.dfwm-list li{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid #f1f3f5}
.dfwm-list li div{flex:1;min-width:0}
.dfwm-list li b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dfwm-list li small{display:block;font-size:12px;color:var(--mut);margin-top:1px}
.dfwm-list li button{appearance:none;border:1px solid var(--c);background:#fff;color:var(--c);border-radius:6px;padding:5px 9px;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
.dfwm-list li button:hover{background:var(--c);color:#fff}

.dfwm-touch{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:450;background:rgba(17,24,39,.72);color:#fff;font-size:12px;padding:6px 12px;border-radius:20px;pointer-events:none;opacity:0;transition:opacity .2s;white-space:nowrap}
.dfwm-touch.is-on{opacity:1}

/* 포트폴리오 창 */
.dfwm-lock,.dfwm-lock body{overflow:hidden}
.dfwm-pop{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center}
.dfwm-pop-bg{position:absolute;inset:0;background:rgba(17,24,39,.55)}
.dfwm-pop-box{position:relative;width:min(1100px,94vw);height:min(86vh,900px);background:#fff;border-radius:12px;overflow:hidden}
.dfwm-pop-box iframe{width:100%;height:100%;border:0;display:block}
.dfwm-pop-x{position:absolute;top:10px;right:10px;z-index:2;width:38px;height:38px;border-radius:50%;border:1px solid #d6dae1;background:#fff;font-size:22px;line-height:1;cursor:pointer;color:#374151}

@media (max-width:1024px){.dfwm{grid-template-columns:280px 1fr;gap:24px}.dfwm-title{font-size:28px}}
@media (max-width:768px){
	.dfwm{grid-template-columns:1fr;gap:18px;padding:0 20px}
	.dfwm-title{font-size:24px}.dfwm-sub{font-size:14px;margin-bottom:14px}
	.dfwm-regs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.dfwm-regs::-webkit-scrollbar{display:none}
	.dfwm-reg{flex:0 0 auto}
	.dfwm-tip{display:none}
	.dfwm-mapbox{height:400px;border-radius:12px}
	.dfwm-list{top:auto;left:10px;right:10px;width:auto;max-height:58%;bottom:10px}
	.dfwm-pop-box{width:100vw;height:100%;border-radius:0}
}

/* 1.1 점 지도 */
.dfwm-dot{background:none;border:0}
.dfwm-dot i{display:block;width:16px;height:16px;border-radius:50%;background:var(--c);border:2px solid #fff;box-shadow:0 0 0 5px rgba(26,86,219,.16),0 1px 3px rgba(0,0,0,.25);box-shadow:0 0 0 5px color-mix(in srgb,var(--c) 16%,transparent),0 1px 3px rgba(0,0,0,.25);cursor:pointer;opacity:0;transform:scale(.3);animation:dfwmIn .5s ease forwards;transition:transform .15s}
.dfwm-dot:hover i{transform:scale(1.35)}
@keyframes dfwmIn{to{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.dfwm-dot i{animation:none;opacity:1;transform:none}}
.dfwm-map .dfwm-lab{display:none;background:#fff;border:1px solid #d6dae1;border-radius:4px;box-shadow:none;padding:2px 6px;font-size:12px;font-weight:600;color:#111827;white-space:nowrap}
.dfwm-map .dfwm-lab::before{display:none}
.dfwm-map.show-lab .dfwm-lab{display:block}
/* 1.2 목록: 상호 + 업종·지역 한 줄, 아래 줄 사이트 주소(링크 없음) */
.dfwm-list li{display:block;padding:10px 14px}
.dfwm-li1{display:flex;align-items:baseline;gap:8px;min-width:0}
.dfwm-li1 b{flex:0 1 auto;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dfwm-li1 small{flex:0 1 auto;font-size:12px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0!important}
.dfwm-li2{margin-top:2px;font-size:12px;color:#9ca3af;user-select:text;word-break:break-all}
/* 1.3 페이지 + 2차 메뉴 (다른 제작 페이지와 같은 모양) */
.dfwm-page{padding:70px 0 90px;background:#fff}
.dfwm-switch{display:block;background:#fff;border-bottom:1px solid #e3e8f0}
.dfwm-switch .dfk-wrap{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px;max-width:1340px;margin:0 auto;padding:14px 30px;scrollbar-width:none}
.dfwm-switch .dfk-wrap::-webkit-scrollbar{display:none}
.dfwm-switch a{display:flex;align-items:center;gap:7px;padding:11px 22px;border-radius:999px;font-size:15px;font-weight:600;line-height:1.7;color:#5b6477;text-decoration:none;transition:.2s}
.dfwm-switch a:hover{color:#16203a}
.dfwm-switch a.is-on{background:#0b1f44;color:#fff}
@media (max-width:767px){.dfwm-page{padding:36px 0 60px}.dfwm-switch .dfk-wrap{overflow-x:auto;gap:2px;padding:10px 20px;flex-wrap:nowrap;justify-content:flex-start}.dfwm-switch a{flex:0 0 auto;padding:9px 14px;font-size:14px}.dfwm-switch .dfp-sw-l{display:none}}
/* 1.3.1 2차 메뉴가 머리 바로 밑에 붙게 (다른 제작 페이지와 같게) */
#main:has(.dfwm-switch){padding-top:0!important}
/* 1.4 대표님 확정 — 상호 10px, 지역 고르면 상호 표시, 지도 넓게, 2차 메뉴 얇게 */
.dfwm-map .dfwm-lab{font-size:10px;padding:1px 4px;line-height:1.35;font-weight:600}
.dfwm[data-lab="1"] .dfwm-lab{display:block}
@media (min-width:1025px){
	.dfwm{max-width:1640px;grid-template-columns:350px 1fr;gap:48px;padding:0 40px 0 clamp(40px,8vw,160px)}
}
.dfwm-switch .dfk-wrap{padding:8px 30px}
.dfwm-switch a{padding:5px 16px;font-size:14px;line-height:1.5}
@media (max-width:767px){.dfwm-switch .dfk-wrap{padding:6px 20px}.dfwm-switch a{padding:5px 12px;font-size:13px}}
/* 1.4.1 휴대폰 — 업체 목록을 지도 위가 아니라 지도 아래로, 지도는 세로로 길게 */
@media (max-width:768px){
	.dfwm-mapbox{height:auto;overflow:visible;border:0;border-radius:0;background:none}
	.dfwm-map{position:relative;inset:auto;height:min(68vh,560px);min-height:380px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
	.dfwm-touch{top:calc(min(68vh,560px) - 44px);bottom:auto}
	.dfwm-list{position:static;width:auto;max-height:340px;margin-top:10px;border-radius:10px}
	.dfwm-list li{padding:9px 14px}
}
/* 1.4.3 휴대폰 상호 이름표는 다시 보이게 (1.4.2에서 숨긴 것 되돌림) */
/* 1.4.4 PC — 좌우 수직 분할: 왼쪽 글, 오른쪽 지도(2차 메뉴 바로 아래부터 화면 끝까지, 오른쪽·아래 여백 없음) */
#main:has(.dfwm-page){padding-bottom:0!important}
@media (min-width:1025px){
	.dfwm-page{padding:0}
	.dfwm{max-width:none;margin:0;grid-template-columns:minmax(380px,40%) 1fr;gap:0;padding:0;align-items:stretch}
	.dfwm-side{padding:60px 60px 60px clamp(40px,8vw,160px);align-self:center}
	.dfwm-mapbox{height:calc(100vh - var(--dfwm-top,165px));min-height:620px;border:0;border-radius:0}
}
/* 1.4.5 PC — 업체 목록 압축(줄 간격 2/3), 높이 지도의 50%·세로 가운데, 확대·축소 단추는 왼쪽 위 */
@media (min-width:1025px){
	.dfwm-list{top:50%;bottom:auto;height:50%;min-height:300px;transform:translateY(-50%);background:rgba(255,255,255,.8);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
	.dfwm-list li{border-bottom-color:rgba(0,0,0,.06)}
	.dfwm-lh{padding:9px 14px}
	.dfwm-list ul{padding:2px 0}
	.dfwm-list li{padding:6px 14px}
	.dfwm-li1{line-height:1.3}
	.dfwm-li2{margin-top:0;line-height:1.3}
	.dfwm-map .leaflet-top.leaflet-left{top:10px;left:10px}
}
/* 1.4.6 PC — 확대·축소 단추 왼쪽 세로 가운데, 목록 폭 90%(300→270px) */
@media (min-width:1025px){
	.dfwm-map .leaflet-top.leaflet-left{top:50%;left:10px;transform:translateY(-50%)}
	.dfwm-map .leaflet-top.leaflet-left .leaflet-control{margin:0}
	.dfwm-list{width:270px}
}
/* 1.4.7 왼쪽 글 — 프리텐다드, 제목 가늘게(「전국 곳곳」만 굵게), 영문·안내 문구 없음, 지역 단추 한 줄 8개, 글 덩어리 오른쪽으로·가운데보다 살짝 위 */
.dfwm-eye,.dfwm-tip{display:none!important}
.dfwm .dfwm-title{font-family:'Pretendard Variable',Pretendard,sans-serif!important;font-weight:200!important;letter-spacing:-.03em;color:#111827}
.dfwm .dfwm-title strong{font-family:inherit!important;font-weight:700!important;color:#111827}
.dfwm .dfwm-title b{font-family:inherit!important;font-weight:700!important}
.dfwm .dfwm-sub{margin-bottom:40px}
@media (min-width:769px){.dfwm-regs{display:grid;grid-template-columns:repeat(8,auto);justify-content:start;gap:6px}.dfwm-reg{text-align:center}}
@media (min-width:1025px){
	.dfwm-side{justify-self:end;width:max-content;max-width:100%;padding:60px 28px 60px 0;transform:translateY(min(0px,calc((434px - 100vh) / 6)))}
}
@media (max-width:768px){.dfwm .dfwm-sub{margin-bottom:20px}}
/* 1.4.8 지역 단추와 지도 사이 3배(28→84px), 설명 글과 단추 사이 2배(40→80px) */
@media (min-width:1025px){.dfwm .dfwm-side{padding-right:84px}.dfwm .dfwm-sub{margin-bottom:80px}}
/* 1.4.9 본문 문단 여백(.post-content p)에 눌리던 것 바로잡음 */
/* 1.4.10 간격 반으로 — 설명 글~단추 80→40px, 단추~지도 84→42px */
@media (min-width:1025px){.dfwm .dfwm-side{padding-right:42px}.dfwm .dfwm-sub{margin-bottom:40px}}
/* 1.4.11 단추~지도 42→84px (설명~단추 40px 그대로) */
@media (min-width:1025px){.dfwm .dfwm-side{padding-right:84px}}
