/* DF 템플릿 데모 도우미 — 하단바 v1.0.3 */
.dfts{--p:#1d64d8;--pd:#1650b3;--ink:#16191f;--sub:#6b7280;--line:#e6e9ef;font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;letter-spacing:-.01em;color:var(--ink);-webkit-font-smoothing:antialiased}
.dfts *,.dfts *::before,.dfts *::after{box-sizing:border-box}
.dfts a{color:inherit;text-decoration:none}
.dfts button{font:inherit;letter-spacing:inherit;cursor:pointer;margin:0;text-transform:none;line-height:normal}
.dfts .dfts-cta,.dfts .dfts-quickbtn,.dfts .dfts-menu button{font-size:14px!important;font-family:inherit!important}
.dfts svg{display:block;flex:none}
.dfts [hidden]{display:none!important}

/* ===== PC 떠 있는 하단바 ===== */
.dfts-dock{position:fixed;left:50%;bottom:18px;z-index:99980;width:min(1000px,calc(100vw - 300px));transform:translateX(-50%);transition:transform .35s ease,opacity .35s ease}
.dfts-dock.is-hide{transform:translate(-50%,calc(100% + 30px));opacity:0;pointer-events:none}
.dfts-bar{display:flex;align-items:center;gap:6px;height:56px;padding:0 8px;background:rgba(255,255,255,.97);border:1px solid rgba(20,30,50,.06);border-radius:16px;box-shadow:0 10px 34px rgba(16,24,40,.14);backdrop-filter:blur(10px)}
.dfts-cta,.dfts-quickbtn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 15px;border-radius:10px;font-size:14px;font-weight:700;white-space:nowrap;border:0}
.dfts-cta{background:var(--p);color:#fff!important}
.dfts-cta:hover{background:var(--pd)}
.dfts-cta svg,.dfts-quickbtn svg{width:17px;height:17px}
.dfts-quickbtn{background:#f2f4f7;color:var(--ink)}
.dfts-quickbtn:hover{background:#e8ebf0}
.dfts-tel{display:flex;align-items:center;gap:8px;padding:0 14px 0 12px;white-space:nowrap}
.dfts-tel svg{width:17px;height:17px;color:var(--p)}
.dfts-tel span{display:flex;flex-direction:column;line-height:1.15}
.dfts-tel small{font-size:10.5px;color:var(--sub)}
.dfts-tel b{font-size:16px;font-weight:800;letter-spacing:-.02em}
.dfts-menu{display:flex;align-items:center;justify-content:center;flex:1;gap:2px;min-width:0}
.dfts-menu button{display:inline-flex;align-items:center;gap:5px;height:40px;padding:0 12px;border:0;border-radius:10px;background:none;color:#374151;font-size:14px;font-weight:500;white-space:nowrap}
.dfts-menu button svg{width:13px;height:13px;color:#9aa1ad;transition:transform .2s}
.dfts-menu button:hover{background:#f3f5f8}
.dfts-menu button[aria-expanded="true"]{color:var(--p);font-weight:700}
.dfts-menu button[aria-expanded="true"] svg{transform:rotate(180deg);color:var(--p)}
.dfts-tools{display:flex;align-items:center;gap:2px}
.dfts-tools a,.dfts-tools button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:10px;background:none;color:#6b7280}
.dfts-tools a:hover,.dfts-tools button:hover{background:#f3f5f8;color:var(--ink)}
.dfts-tools svg{width:18px;height:18px}
.dfts-sep{width:1px;height:20px;margin:0 4px;background:var(--line)}

/* 메뉴판 패널 */
.dfts-panels{position:absolute;left:0;right:0;bottom:calc(100% + 10px)}
.dfts-panel{display:flex;gap:28px;padding:26px 26px 26px 30px;background:#fff;border:1px solid rgba(20,30,50,.06);border-radius:18px;box-shadow:0 18px 50px rgba(16,24,40,.18);animation:dftsIn .22s ease}
@keyframes dftsIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dfts-intro{flex:0 0 220px;padding-right:26px;border-right:1px solid var(--line)}
.dfts-eye{display:block;margin-bottom:8px;font-size:11.5px;font-weight:700;letter-spacing:.08em;color:var(--p)}
.dfts-intro strong{display:block;font-size:20px;font-weight:800;line-height:1.35;letter-spacing:-.03em;word-break:keep-all}
.dfts-intro p{margin:10px 0 0;font-size:13px;line-height:1.65;color:var(--sub);word-break:keep-all}
.dfts-grid{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-content:start}
.dfts-card{position:relative;display:flex;flex-direction:column;gap:5px;min-height:74px;padding:14px 34px 14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .18s,box-shadow .18s,transform .18s}
.dfts-card b{font-size:14.5px;font-weight:700;line-height:1.3;word-break:keep-all}
.dfts-card span{font-size:12px;line-height:1.45;color:var(--sub);word-break:keep-all}
.dfts-go{position:absolute;right:12px;top:14px;color:#c3c8d1;transition:color .18s,transform .18s}
.dfts-go svg{width:15px;height:15px}
.dfts-card:hover{border-color:var(--p);box-shadow:0 8px 20px rgba(29,100,216,.10);transform:translateY(-1px)}
.dfts-card:hover .dfts-go{color:var(--p);transform:translateX(2px)}

/* 접힌 상태 */
.dfts-unfold{position:fixed;left:50%;bottom:18px;z-index:99980;display:flex;align-items:center;gap:6px;height:38px;padding:0 16px;transform:translateX(-50%);border:0;border-radius:999px;background:#fff;color:var(--ink);font-size:13px;font-weight:700;box-shadow:0 8px 24px rgba(16,24,40,.16)}
.dfts-unfold svg{width:14px;height:14px;color:var(--p)}

/* ===== 모바일 하단바 ===== */
.dfts-mbar{display:none}
.dfts-sheet,.dfts-modal{position:fixed;inset:0;z-index:2147483600}
.dfts-sheet-bg,.dfts-modal-bg{position:absolute;inset:0;background:rgba(10,16,28,.48);animation:dftsFade .2s ease}
@keyframes dftsFade{from{opacity:0}to{opacity:1}}
.dfts-sheet-in{position:absolute;left:0;right:0;bottom:0;max-height:86vh;display:flex;flex-direction:column;background:#fff;border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.2);animation:dftsUp .28s cubic-bezier(.2,.8,.2,1)}
@keyframes dftsUp{from{transform:translateY(100%)}to{transform:none}}
.dfts-sheet-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 10px 22px;border-bottom:1px solid #f0f2f5}
.dfts-sheet-hd b{font-size:16px;font-weight:800}
.dfts-sheet-hd button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:10px;background:#f3f5f8;color:var(--ink)}
.dfts-sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:14px 18px calc(18px + env(safe-area-inset-bottom))}
.dfts-sheet-top{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:6px}
.dfts-sheet-top .dfts-cta,.dfts-sheet-top .dfts-quickbtn{justify-content:center;height:44px}
.dfts-sheet section{margin-top:18px}
.dfts-sheet h3{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--sub)}
.dfts-sgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dfts-scard{position:relative;display:flex;flex-direction:column;gap:2px;padding:10px 26px 10px 12px;border:1px solid var(--line);border-radius:10px}
.dfts-scard b{font-size:13.5px;font-weight:700;line-height:1.3;word-break:keep-all}
.dfts-scard span{font-size:11px;line-height:1.35;color:var(--sub);word-break:keep-all}
.dfts-scard .dfts-go{right:8px;top:11px}
.dfts-scard .dfts-go svg{width:13px;height:13px}
.dfts-sheet-foot{margin:20px 0 4px;font-size:12px;color:var(--sub);text-align:center}
.dfts-sheet-foot a{color:var(--p);font-weight:700}

/* ===== 빠른 상담 팝업 ===== */
.dfts-modal-in{position:absolute;left:50%;top:50%;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow-y:auto;transform:translate(-50%,-50%);padding:30px 28px 24px;background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.28);animation:dftsPop .24s ease}
@keyframes dftsPop{from{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}
.dfts-modal-x{position:absolute;right:14px;top:14px;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:10px;background:#f3f5f8;color:var(--ink)}
.dfts-modal-in h3{margin:0;font-size:22px;font-weight:800;letter-spacing:-.03em}
.dfts-modal-d{margin:6px 0 18px;font-size:13px;line-height:1.6;color:var(--sub)}
.dfts-modal-in label{display:block;margin-bottom:12px}
.dfts-modal-in label>span{display:block;margin-bottom:5px;font-size:12.5px;font-weight:600;color:#374151}
.dfts-modal-in label>span em{font-style:normal;font-weight:400;color:#9aa1ad}
.dfts-modal-in input[type=text],.dfts-modal-in input[type=tel],.dfts-modal-in select,.dfts-modal-in textarea{width:100%;margin:0;padding:10px 12px;border:1px solid #dde1e8;border-radius:10px;background:#fafbfc;font:inherit;font-size:14px;color:var(--ink);box-shadow:none;outline:0;resize:vertical}
.dfts-modal-in input:focus,.dfts-modal-in select:focus,.dfts-modal-in textarea:focus{border-color:var(--p);background:#fff}
.dfts-f2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dfts-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.dfts-modal-in .dfts-agree{display:flex;align-items:center;gap:8px;margin:4px 0 4px;font-size:13px}
.dfts-agree input{width:16px;height:16px;margin:0;accent-color:var(--p)}
.dfts-agree a{color:var(--sub);text-decoration:underline}
.dfts-small{margin:0 0 6px;font-size:11.5px;color:#9aa1ad}
.dfts-err{margin:6px 0;font-size:13px;color:#e5484d}
.dfts-err:empty{display:none}
.dfts-submit{width:100%;height:48px;margin-top:6px;border:0;border-radius:12px;background:var(--p);color:#fff;font-size:15px;font-weight:700}
.dfts-submit:hover{background:var(--pd)}
.dfts-submit:disabled{opacity:.6;cursor:wait}
.dfts-alt{display:block;margin-top:12px;text-align:center;font-size:13px;color:var(--sub)!important}
.dfts-done{padding:26px 0 10px;text-align:center}
.dfts-done i{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:#e9f1ff;color:var(--p);font-style:normal;font-size:26px;font-weight:800}
.dfts-done b{display:block;font-size:17px;font-weight:800}
.dfts-done p{margin:8px 0 0;font-size:13px;color:var(--sub);line-height:1.6}

/* 열려 있는 동안 챗봇·알림 숨김 */
html.dfts-lock{overflow:hidden}
html.dfts-lock .dfcb-root,html.dfts-lock .dfat{display:none!important}
html.dfcb-is-open .dfts-dock,html.dfcb-is-open .dfts-unfold{opacity:0;pointer-events:none}

/* 신청 현황 알림은 하단바와 겹치지 않게 오른쪽 위로 */
.dfat{left:auto!important;right:24px!important;bottom:96px!important}

/* 화면 폭이 좁은 PC — 전화번호부터 줄임 */
@media (max-width:1320px){.dfts-tel small{display:none}.dfts-menu button{padding:0 9px}}
@media (max-width:1180px){.dfts-tel{display:none}.dfts-intro{flex-basis:180px}.dfts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

@media (max-width:1024px){
	.dfts-dock,.dfts-unfold{display:none!important}
	body{padding-bottom:calc(62px + env(safe-area-inset-bottom))!important}
	.dfts-mbar{position:fixed;left:0;right:0;bottom:0;z-index:99980;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;height:calc(62px + env(safe-area-inset-bottom));padding:0 4px env(safe-area-inset-bottom);background:#fff;border-top:1px solid #e9ecf1;box-shadow:0 -6px 20px rgba(16,24,40,.06)}
	.dfts-mbar>a,.dfts-mbar>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:62px;border:0;background:none;color:#4b5563;font-size:11px;font-weight:600}
	.dfts-mbar svg{width:21px;height:21px}
	.dfts-mmenu i{display:grid;place-items:center;width:50px;height:50px;margin-top:-22px;border-radius:50%;background:var(--p);color:#fff;box-shadow:0 8px 18px rgba(29,100,216,.35);border:4px solid #fff}
	.dfts-mmenu i svg{width:22px;height:22px}
	.dfts-mmenu span{margin-top:-2px;color:var(--p)}
	.dfat{left:12px!important;right:12px!important;bottom:calc(176px + env(safe-area-inset-bottom))!important}
}
@media (max-width:420px){.dfts-modal-in{padding:26px 20px 20px}.dfts-f2{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.dfts *{animation:none!important;transition:none!important}}

/* 1.0.4 PC 하단바 아래 여백 — 회사 정보·개인정보처리방침 링크가 가려지지 않게 */
@media (min-width:1025px){body.dfts-on{padding-bottom:104px!important}}
