@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@400;


/* ════ Elementor --content-width 강제 override ════
   elementor-11729의 1b410ef 컨테이너가 800px로 고정되어 있음
   → ACS 관리자 설정값으로 덮어씌움 ════ */
@media(min-width:768px){
  .elementor-11729 .elementor-element.elementor-element-1b410ef {
    --content-width: min(var(--acs-cw, 1080px), 100%) !important;
  }
}
/* ACS 폼이 있는 모든 Elementor 컨테이너 너비 최대화 */
.elementor-element:has(.acs-body) {
  --content-width: 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}
/* :has 미지원 브라우저 폴백 */
.e-con-full .elementor-shortcode,
.e-con .elementor-shortcode {
  width: 100% !important;
  max-width: 100% !important;
}

/* ===== step1 ===== */
400;500;600;700;800&display=swap');

/* ── ACS: Elementor 컨테이너 padding 무력화 (너비 최대화) ── */
.elementor-widget-shortcode .acs-plugin-root,
.elementor-widget .acs-plugin-root {
  width: 100%;
  max-width: 100%;
}
/* Elementor e-con-inner padding/width 제거 - ACS 위젯이 e-con 전체 너비 사용 */
.e-con > .e-con-inner > .elementor-widget-shortcode,
.e-con > .e-con-inner > .elementor-widget > .elementor-widget-container,
.e-con > .e-con-inner > .elementor-widget,
.elementor-column > .elementor-widget-wrap > .elementor-widget-shortcode {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
}
/* e-con-inner 자체 padding도 ACS 영역에서 제거 */
.e-con-inner:has(.acs-body),
.e-con-inner:has(.elementor-shortcode .acs-body) {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --red:#E50213;--red-h:#B8000F;--dark:#10111F;--bg:#F8F9FA;
  --white:#fff;--border:#C0C4CC;--text:#1A1D2E;--sub:#4B5563;
  --green:#10B981;--green-bg:#F0FDF4;--green-border:#86EFAC;
  --card-r:12px;--shadow:0 1px 8px rgba(0,0,0,.06);--cw:100%;
}
/* ACS 전용 컨테이너 - 사이트 body에 영향 없음 */
html,body{height:100%;}
body{background:var(--bg);font-family:'Noto Sans KR',sans-serif;color:var(--text);font-size:19px;display:flex;flex-direction:column;}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes slideIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ── 헤더 ── */
.acs-header{background:var(--dark);padding:0 24px;height:52px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:300;box-shadow:0 2px 12px rgba(0,0,0,.3);flex-shrink:0;}
.logo{display:flex;align-items:center;gap:9px;}
.logo-mark{width:28px;height:28px;background:var(--red);border-radius:6px;display:flex;align-items:center;justify-content:center;}
.logo-name{color:#fff;font-size:20px;font-weight:800;letter-spacing:.3px;}
.logo-name span{color:var(--red);}
.header-badge{background:rgba(229,2,19,.18);border:1px solid rgba(229,2,19,.35);color:#ff7070;font-size:15px;font-weight:600;padding:3px 9px;border-radius:16px;}

/* ── Step 네비 ── */
.step-nav{background:#fff;height:48px;padding:0 24px;display:flex;align-items:center;justify-content:center;position:sticky;top:52px;z-index:299;border-bottom:2px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04);flex-shrink:0;}
.snav-inner{display:flex;align-items:center;max-width:var(--cw);width:100%;}
.snav-item{display:flex;align-items:center;gap:7px;padding:5px 12px;border-radius:8px;cursor:pointer;border:none;background:transparent;font-family:inherit;}
.snav-num{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--sub);flex-shrink:0;}
.snav-txt{font-size:16px;font-weight:600;color:var(--sub);white-space:nowrap;}
.snav-item.active .snav-num{background:var(--red);border-color:var(--red);color:#fff;}
.snav-item.active .snav-txt{color:var(--dark);}
.snav-item.done .snav-num{background:var(--green);border-color:var(--green);color:#fff;font-size:0;}
.snav-item.done .snav-num::after{content:'✓';font-size:15px;}
.snav-item.done .snav-txt{color:var(--green);}
.snav-line{flex:1;height:2px;background:var(--border);max-width:60px;}

/* ── 본문 ── */
.acs-body{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;overflow-x:hidden;padding-bottom:40px;}
.acs-scroll{flex:1;overflow-y:auto;overflow-x:hidden;width:100%;}
.acs-main{max-width:var(--cw);width:100%;margin:0 auto;padding:14px 14px 8px;}
.section-gap{display:flex;flex-direction:column;gap:10px;}

/* ══════════════════════════════════
   슬롯 바 (compact)
══════════════════════════════════ */
.slot-bar-card{background:var(--white);border-radius:var(--card-r);border:1.5px solid var(--border);box-shadow:var(--shadow);padding:9px 14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.slot-bar-label{font-size:14px;font-weight:700;color:var(--sub);white-space:nowrap;letter-spacing:.3px;}
.slot-bar-list{display:flex;align-items:center;gap:5px;flex:1;flex-wrap:wrap;}

/* 슬롯 칩 */
.slot-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px 4px 5px;border-radius:20px;border:1.5px solid var(--border);background:#FAFBFC;font-size:15px;font-weight:600;cursor:default;transition:all .15s;white-space:nowrap;max-width:120px;}
.slot-chip.has-data{border-color:var(--green);background:var(--green-bg);cursor:pointer;}
.slot-chip.has-data:hover{border-color:#059669;background:#DCFCE7;box-shadow:0 0 0 2px rgba(16,185,129,.12);}
.slot-chip-num{width:18px;height:18px;border-radius:50%;background:var(--border);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--sub);flex-shrink:0;}
.slot-chip.has-data .slot-chip-num{background:var(--green);color:#fff;}
.slot-chip-name{font-size:15px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:72px;}
.slot-chip.has-data .slot-chip-name{color:#15803D;}

/* 슬롯 저장 버튼 */
.slot-save-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:7px;border:1.5px solid var(--border);background:#fff;font-size:15px;font-weight:700;color:var(--sub);cursor:pointer;font-family:inherit;transition:all .13s;white-space:nowrap;flex-shrink:0;}
.slot-save-btn:hover{border-color:var(--green);color:var(--green);}

/* 슬롯 드롭다운 */
.slot-dropdown{position:absolute;top:calc(100% + 5px);left:0;min-width:180px;background:#fff;border:1.5px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:500;animation:slideIn .15s ease;overflow:hidden;}
.sd-item{display:flex;align-items:center;gap:9px;padding:9px 12px;cursor:pointer;border:none;background:transparent;font-family:inherit;width:100%;text-align:left;transition:background .1s;}
.sd-item:hover{background:#F8FAFC;}
.sd-item.danger:hover{background:#FFF5F5;}
.sd-icon{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sd-icon.load{background:#EFF6FF;}
.sd-icon.save{background:var(--green-bg);}
.sd-icon.del{background:#FFF5F5;}
.sd-txt{font-size:16px;font-weight:600;color:var(--dark);}
.sd-txt.del{color:#EF4444;}
.sd-divider{height:1px;background:var(--border);}
.slot-chip-wrap{position:relative;}

/* ══════════════════════════════════
   아이템 카드
══════════════════════════════════ */
.item-card{background:var(--white);border-radius:var(--card-r);border:1.5px solid var(--border);box-shadow:var(--shadow);overflow:hidden;animation:fadeIn .25s ease;}
.item-card-head{padding:10px 14px;display:flex;align-items:center;gap:10px;border-bottom:1.5px solid var(--border);background:#FAFBFC;}
.item-num-badge{width:24px;height:24px;border-radius:7px;background:var(--red);color:#fff;font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.item-label-input{flex:1;border:none;background:transparent;font-size:18px;font-weight:700;color:var(--dark);font-family:inherit;outline:none;min-width:0;}
.item-label-input::placeholder{color:#D1D5DB;font-weight:400;}
.item-subtotal{font-size:16px;font-weight:700;color:var(--dark);white-space:nowrap;padding:3px 9px;border-radius:7px;background:#F0F2F5;border:1px solid var(--border);}
.item-subtotal span{color:var(--red);}
.item-collapse-btn{width:26px;height:26px;border-radius:7px;border:1.5px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s;flex-shrink:0;}
.item-collapse-btn:hover{border-color:var(--sub);}
.item-collapse-arrow{transition:transform .2s;}
.item-collapse-btn.collapsed .item-collapse-arrow{transform:rotate(180deg);}
.item-del-btn{width:26px;height:26px;border-radius:7px;border:1.5px solid #FECACA;background:#FFF5F5;color:#EF4444;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:19px;flex-shrink:0;transition:all .12s;}
.item-del-btn:hover{background:#FEE2E2;border-color:#FCA5A5;}
.item-body{padding:14px;}
.item-section{margin-bottom:14px;}
.item-section:last-child{margin-bottom:0;}
.item-sec-label{font-size:15px;font-weight:700;color:var(--sub);margin-bottom:8px;display:flex;align-items:center;gap:5px;letter-spacing:.2px;}
.item-sec-label .dot{width:3px;height:12px;background:var(--red);border-radius:2px;}
.item-sec-label .dot.gray{background:var(--border);}

/* 재료 상세 토글 */
.mat-toggle-head{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:7px 11px;background:#F8FAFC;border-radius:8px;border:1.5px solid var(--border);transition:background .12s;}
.mat-toggle-head:hover{background:#F0F2F5;}
.mat-toggle-txt{font-size:15px;font-weight:700;color:var(--sub);display:flex;align-items:center;gap:5px;}
.mat-toggle-arrow{transition:transform .2s;}
.mat-toggle-head.open .mat-toggle-arrow{transform:rotate(180deg);}
.mat-body{padding-top:10px;display:none;animation:fadeIn .15s ease;}
.mat-body.show{display:flex;flex-wrap:wrap;gap:10px;}

/* 제작 유형 */
.type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.type-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;border:2px solid var(--border);background:#FAFBFC;cursor:pointer;transition:all .15s;text-align:left;font-family:inherit;width:100%;}
.type-btn:hover{border-color:#fca5a5;background:#FFF5F5;}
.type-btn.active{border-color:var(--red);background:linear-gradient(135deg,#FFF5F5,#fff);box-shadow:0 0 0 3px rgba(229,2,19,.07);}
.type-icon{width:34px;height:34px;border-radius:8px;background:#F0F2F5;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.type-btn.active .type-icon{background:rgba(229,2,19,.1);}
.type-name{font-size:16px;font-weight:700;color:var(--dark);}
.type-desc{font-size:14px;color:var(--sub);margin-top:1px;line-height:1.4;}

/* 치수 탭 */
.dim-tabs{display:flex;gap:6px;margin-bottom:10px;}
.dim-tab{flex:1;padding:6px 10px;border-radius:7px;border:1.5px solid var(--border);background:#FAFBFC;font-size:15px;font-weight:600;color:var(--sub);cursor:pointer;transition:all .13s;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:4px;}
.dim-tab.active{background:var(--dark);color:#fff;border-color:var(--dark);}
.dim-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
@media(max-width:520px){.dim-grid{grid-template-columns:1fr 1fr;}}
.dim-field label{font-size:14px;font-weight:600;color:var(--sub);margin-bottom:4px;display:flex;align-items:center;gap:3px;}
.req-dot{width:4px;height:4px;border-radius:50%;background:var(--red);display:inline-block;flex-shrink:0;}
.dim-iw{position:relative;}
.dim-input{width:100%;padding:7px 28px 7px 9px;border-radius:7px;border:1.5px solid var(--border);font-size:18px;font-weight:700;color:var(--dark);font-family:inherit;transition:border .13s;}
.dim-input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(229,2,19,.07);}
.dim-unit{position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--sub);font-weight:600;pointer-events:none;}
.dim-note{font-size:14px;color:var(--sub);background:#F8FAFC;padding:6px 9px;border-radius:6px;margin-top:7px;display:flex;align-items:flex-start;gap:5px;line-height:1.5;}

/* STL 드롭존 */
.stl-dropzone{border:2px dashed #D1D5DB;border-radius:9px;padding:16px;text-align:center;cursor:pointer;transition:all .2s;background:#FAFBFC;display:flex;flex-direction:column;align-items:center;gap:5px;}
.stl-dropzone:hover,.stl-dropzone.drag{border-color:var(--red);background:#FFF5F5;}
.stl-dz-title{font-size:16px;font-weight:700;color:var(--dark);}
.stl-dz-sub{font-size:14px;color:var(--sub);}
.stl-dz-btn{margin-top:3px;padding:5px 14px;border-radius:7px;background:var(--red);color:#fff;border:none;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;}
.stl-viewer-container{border-radius:9px;overflow:hidden;border:1.5px solid var(--border);background:var(--dark);display:none;margin-top:8px;position:relative;width:100%;box-sizing:border-box;}
.stl-viewer-container canvas{display:block;width:100%!important;}
.stl-vh{position:absolute;top:0;left:0;right:0;z-index:10;background:linear-gradient(180deg,rgba(16,17,31,.75) 0%,transparent 100%);padding:7px 11px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;}
.stl-vh-title{color:#fff;font-size:14px;font-weight:600;display:flex;align-items:center;gap:4px;}
.stl-vh-hint{color:rgba(255,255,255,.5);font-size:14px;}
.stl-stats{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap;}
.stl-stat{padding:3px 8px;border-radius:5px;background:#EFF6FF;border:1px solid #BFDBFE;font-size:14px;color:#1D4ED8;font-weight:500;}
.stl-stat.g{background:var(--green-bg);border-color:var(--green-border);color:#15803D;}
.stl-loading{height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--dark);}
.spin-ring{width:24px;height:24px;border:3px solid rgba(229,2,19,.15);border-top-color:var(--red);border-radius:50%;animation:spin .7s linear infinite;}

/* ── 참고 이미지 업로드 ── */
.img-upload-zone{border:2px dashed #D1D5DB;border-radius:9px;padding:12px;cursor:pointer;transition:all .2s;background:#FAFBFC;display:flex;align-items:center;gap:10px;}
.img-upload-zone:hover,.img-upload-zone.drag{border-color:#7C3AED;background:#F5F3FF;}
.img-upload-icon{width:36px;height:36px;border-radius:8px;background:#F3E8FF;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.img-upload-txt .t{font-size:15px;font-weight:700;color:var(--dark);}
.img-upload-txt .s{font-size:14px;color:var(--sub);margin-top:1px;}
.img-upload-btn{margin-left:auto;padding:5px 11px;border-radius:7px;background:#7C3AED;color:#fff;border:none;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0;}
.img-thumbs{display:flex;gap:7px;margin-top:8px;flex-wrap:wrap;}
.img-thumb-wrap{position:relative;width:70px;height:70px;border-radius:8px;overflow:hidden;border:1.5px solid var(--border);background:#F8FAFC;flex-shrink:0;}
.img-thumb-wrap img{width:100%;height:100%;object-fit:cover;}
.img-thumb-del{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;}
.img-thumb-name{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.55);color:#fff;font-size:11px;padding:2px 3px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}
.img-count-badge{font-size:14px;color:#7C3AED;font-weight:600;background:#F5F3FF;border:1px solid #DDD6FE;padding:2px 7px;border-radius:5px;}

/* 옵션 그리드 */
.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
@media(max-width:480px){.opt-grid{grid-template-columns:1fr;}}
.opt-field label{font-size:14px;font-weight:600;color:var(--sub);margin-bottom:4px;display:flex;align-items:center;gap:3px;}
.req{color:var(--red);font-weight:800;}
.sel-wrap{position:relative;}
.sel-wrap::after{content:'';position:absolute;right:9px;top:50%;transform:translateY(-50%) rotate(45deg);width:4px;height:4px;border-right:2px solid var(--sub);border-bottom:2px solid var(--sub);pointer-events:none;}
.sel-wrap select{width:100%;padding:7px 24px 7px 9px;border-radius:7px;border:1.5px solid var(--border);background:#fff;font-size:16px;font-weight:600;color:var(--dark);-webkit-appearance:none;appearance:none;font-family:inherit;cursor:pointer;}
.sel-wrap select:focus{outline:none;border-color:var(--red);}
.num-wrap{display:flex;align-items:center;border:1.5px solid var(--border);border-radius:7px;overflow:hidden;background:#fff;}
.num-btn{width:30px;height:34px;border:none;background:#FAFBFC;font-size:20px;color:var(--sub);cursor:pointer;flex-shrink:0;}
.num-btn:hover{background:#F0F2F5;color:var(--dark);}
.num-input{flex:1;border:none;text-align:center;font-size:18px;font-weight:700;color:var(--dark);background:transparent;font-family:inherit;}
.num-input:focus{outline:none;}
.num-unit{font-size:15px;color:var(--sub);padding-right:8px;font-weight:500;}

/* 색상 슬롯 */
.color-slots-outer{margin-top:8px;padding:10px;background:#FFF5F5;border-radius:8px;border:1px solid rgba(229,2,19,.15);animation:fadeIn .2s ease;}
.color-slots-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.csh-title{font-size:14px;font-weight:700;color:var(--red);}
.csh-note{font-size:14px;color:var(--sub);}
.color-slot{display:grid;grid-template-columns:16px 28px 80px 1fr 28px;gap:5px;align-items:center;margin-bottom:5px;}
.cs-num{font-size:14px;font-weight:700;color:var(--sub);text-align:center;}
.cs-picker{width:28px;height:28px;border:1.5px solid var(--border);border-radius:5px;cursor:pointer;padding:2px;}
.cs-hex{padding:4px 6px;border:1.5px solid var(--border);border-radius:5px;font-size:14px;font-family:monospace;font-weight:600;color:var(--dark);width:80px;}
.cs-hex:focus{outline:none;border-color:var(--red);}
.cs-pantone{width:100%;padding:4px 7px;border:1.5px solid var(--border);border-radius:5px;font-size:14px;color:var(--dark);font-family:inherit;}
.cs-pantone:focus{outline:none;border-color:var(--red);}
.cs-preview{width:28px;height:28px;border-radius:5px;border:1.5px solid var(--border);}

/* 재료 필드 */
.mat-field{min-width:140px;flex:1;}
.mat-field label{font-size:14px;font-weight:600;color:var(--sub);margin-bottom:4px;display:block;}

/* ── 조형물 추가 버튼 ── */
.add-item-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:var(--card-r);border:2px dashed #9CA3AF;background:transparent;font-size:18px;font-weight:700;color:var(--sub);cursor:pointer;transition:all .18s;font-family:inherit;width:100%;}
.add-item-btn:hover{border-color:var(--red);color:var(--red);background:#FFF5F5;}
.add-item-count{font-size:15px;font-weight:400;color:var(--sub);margin-left:4px;}

/* ── 하단 견적 바 ── */
.acs-quote-bar{flex-shrink:0;background:#fff;border-top:2px solid var(--border);box-shadow:0 -3px 14px rgba(0,0,0,.08);}
.qb-price-row{display:flex;align-items:center;padding:10px 16px;cursor:pointer;background:linear-gradient(135deg,var(--dark),#1e2035);flex-wrap:nowrap;overflow:hidden;min-width:0;}
.qb-label{color:rgba(255,255,255,.6);font-size:14px;font-weight:600;letter-spacing:.3px;margin-right:6px;white-space:nowrap;}
.qb-vals{display:flex;align-items:baseline;gap:2px;flex:1;min-width:0;}
.qb-total{font-size:24px;font-weight:800;color:#fff;}
.qb-won{color:rgba(255,255,255,.6);font-size:15px;margin-left:2px;}
.qb-vat{color:rgba(255,255,255,.35);font-size:14px;margin-left:3px;}
.qb-item-badges{display:flex;gap:4px;align-items:center;margin-left:6px;flex-wrap:nowrap;overflow-x:auto;flex-shrink:1;min-width:0;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.qb-item-badge{padding:2px 7px;border-radius:5px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);font-size:14px;font-weight:600;color:rgba(255,255,255,.7);white-space:nowrap;}
.qb-toggle-btn{display:flex;align-items:center;gap:4px;padding:4px 9px;border-radius:6px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.75);font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .12s;font-family:inherit;margin-left:8px;flex-shrink:0;}
.qb-toggle-btn:hover{background:rgba(255,255,255,.2);}
.qb-tarrow{transition:transform .2s;}
.qb-toggle-btn.up .qb-tarrow{transform:rotate(180deg);}
.qb-detail{display:none;max-height:220px;overflow-y:auto;}
.qb-detail.show{display:block;}
.qb-detail-inner{padding:8px 12px;display:flex;flex-direction:column;gap:6px;}
.qb-item-section{border-left:3px solid var(--red);padding-left:9px;}
.qb-item-sec-label{font-size:14px;font-weight:700;color:var(--dark);margin-bottom:4px;display:flex;align-items:center;justify-content:space-between;}
.qb-item-sec-total{font-size:15px;font-weight:800;color:var(--red);}
.qbr{display:flex;align-items:flex-start;gap:6px;padding:4px 7px;border-radius:6px;background:#FAFBFC;font-size:15px;}
.qbr.on{background:#FFF5F5;}
.qbr.dim{opacity:.4;}
.qbr strong{color:var(--dark);font-size:15px;}
.qbr .sub{font-size:14px;color:var(--sub);display:block;margin-top:1px;}
.qb-actions{display:flex;align-items:center;justify-content:space-between;padding:8px 16px 10px;background:#fff;}
.qb-summary-txt{font-size:15px;color:var(--sub);}
.qb-summary-txt strong{color:var(--dark);font-weight:700;}
.btn-save{display:flex;align-items:center;gap:5px;padding:7px 12px;border-radius:8px;border:1.5px solid var(--border);background:#fff;font-size:16px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit;transition:all .15s;}
.btn-save:hover{border-color:var(--green);color:var(--green);}
.btn-save.saved{border-color:var(--green);color:var(--green);background:var(--green-bg);}
.btn-next{display:flex;align-items:center;gap:6px;padding:9px 20px;background:var(--red);color:#fff;border:none;border-radius:9px;font-size:18px;font-weight:700;cursor:pointer;transition:all .18s;font-family:inherit;white-space:nowrap;}
.btn-next:hover{background:var(--red-h);}

/* ── 닉네임 모달 ── */
.modal-overlay{position:fixed;inset:0;background:rgba(16,17,31,.45);z-index:800;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease;}
.nick-modal{background:#fff;border-radius:14px;width:310px;box-shadow:0 16px 48px rgba(0,0,0,.2);overflow:hidden;}
.nm-head{padding:13px 16px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.nm-title{font-size:19px;font-weight:700;color:var(--dark);}
.nm-close{width:26px;height:26px;border:none;background:transparent;cursor:pointer;color:var(--sub);font-size:22px;display:flex;align-items:center;justify-content:center;border-radius:6px;}
.nm-close:hover{background:#F3F4F6;}
.nm-body{padding:14px 16px;}
.nm-label{font-size:15px;font-weight:600;color:var(--sub);margin-bottom:6px;}
.nm-input{width:100%;padding:8px 11px;border:1.5px solid var(--border);border-radius:8px;font-size:18px;font-family:inherit;color:var(--dark);}
.nm-input:focus{outline:none;border-color:var(--green);}
.nm-sub{font-size:15px;color:var(--sub);margin-top:6px;}
.nm-foot{padding:10px 16px 14px;display:flex;gap:8px;justify-content:flex-end;}
.nm-btn{padding:7px 15px;border-radius:7px;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit;border:none;}
.nm-btn.cancel{background:#F3F4F6;color:var(--sub);}
.nm-btn.ok{background:var(--green);color:#fff;}

/* ===== step2 ===== */
400;500;600;700;800&display=swap');

/* ── ACS: Elementor 컨테이너 padding 무력화 (너비 최대화) ── */
.elementor-widget-shortcode .acs-plugin-root,
.elementor-widget .acs-plugin-root {
  width: 100%;
  max-width: 100%;
}
/* Elementor e-con-inner padding/width 제거 - ACS 위젯이 e-con 전체 너비 사용 */
.e-con > .e-con-inner > .elementor-widget-shortcode,
.e-con > .e-con-inner > .elementor-widget > .elementor-widget-container,
.e-con > .e-con-inner > .elementor-widget,
.elementor-column > .elementor-widget-wrap > .elementor-widget-shortcode {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
}
/* e-con-inner 자체 padding도 ACS 영역에서 제거 */
.e-con-inner:has(.acs-body),
.e-con-inner:has(.elementor-shortcode .acs-body) {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --red:#E50213;--red-h:#B8000F;--dark:#10111F;--bg:#F8F9FA;
  --white:#fff;--border:#C0C4CC;--text:#1A1D2E;--sub:#4B5563;
  --green:#10B981;--green-bg:#F0FDF4;--green-border:#86EFAC;
  --card-r:12px;--shadow:0 1px 8px rgba(0,0,0,.06);--cw:100%;
}
/* ACS 전용 컨테이너 - 사이트 body에 영향 없음 */
html,body{height:100%;}
body{background:var(--bg);font-family:'Noto Sans KR',sans-serif;color:var(--text);font-size:19px;display:flex;flex-direction:column;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── 헤더 ── */
.acs-header{background:var(--dark);padding:0 24px;height:52px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:300;box-shadow:0 2px 12px rgba(0,0,0,.3);flex-shrink:0;}
.logo{display:flex;align-items:center;gap:9px;}
.logo-mark{width:28px;height:28px;background:var(--red);border-radius:6px;display:flex;align-items:center;justify-content:center;}
.logo-name{color:#fff;font-size:20px;font-weight:800;letter-spacing:.3px;}
.logo-name span{color:var(--red);}
.header-badge{background:rgba(229,2,19,.18);border:1px solid rgba(229,2,19,.35);color:#ff7070;font-size:15px;font-weight:600;padding:3px 9px;border-radius:16px;}

/* ── Step 네비 ── */
.step-nav{background:#fff;height:48px;padding:0 24px;display:flex;align-items:center;justify-content:center;position:sticky;top:52px;z-index:299;border-bottom:2px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04);flex-shrink:0;}
.snav-inner{display:flex;align-items:center;max-width:var(--cw);width:100%;}
.snav-item{display:flex;align-items:center;gap:7px;padding:5px 12px;border-radius:8px;cursor:pointer;border:none;background:transparent;font-family:inherit;}
.snav-num{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--sub);flex-shrink:0;}
.snav-txt{font-size:16px;font-weight:600;color:var(--sub);white-space:nowrap;}
.snav-item.done .snav-num{background:var(--green);border-color:var(--green);color:#fff;font-size:0;}
.snav-item.done .snav-num::after{content:'✓';font-size:15px;}
.snav-item.done .snav-txt{color:var(--green);}
.snav-item.active .snav-num{background:var(--red);border-color:var(--red);color:#fff;}
.snav-item.active .snav-txt{color:var(--dark);}
.snav-line{flex:1;height:2px;background:var(--border);max-width:60px;}

/* ── 본문 ── */
.acs-body{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;overflow-x:hidden;padding-bottom:40px;}
.acs-scroll{flex:1;overflow-y:auto;overflow-x:hidden;width:100%;}
.acs-main{max-width:var(--cw);width:100%;margin:0 auto;padding:16px 16px 8px;}
.section-gap{display:flex;flex-direction:column;gap:10px;}

/* ── 카드 공통 ── */
.card{background:var(--white);border-radius:var(--card-r);border:1.5px solid var(--border);box-shadow:var(--shadow);overflow:hidden;}
.card-head{padding:10px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1.5px solid var(--border);background:#FAFBFC;}
.card-title{display:flex;align-items:center;gap:6px;font-size:18px;font-weight:700;color:var(--dark);}
.ct-bar{width:3px;height:14px;background:var(--red);border-radius:2px;flex-shrink:0;}
.ct-badge{font-size:14px;font-weight:700;padding:2px 7px;border-radius:7px;background:rgba(229,2,19,.1);color:var(--red);border:1px solid rgba(229,2,19,.2);}
.ct-badge.opt{background:#F0F9FF;color:#0EA5E9;border-color:#BAE6FD;}
.card-body{padding:14px 16px;}

/* ── 자동 입력 배너 ── */
.autofill-banner{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:9px;background:#EFF6FF;border:1.5px solid #BFDBFE;margin-bottom:13px;cursor:pointer;transition:all .12s;}
.autofill-banner:hover{background:#DBEAFE;}
.af-icon{width:28px;height:28px;background:#2563EB;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.af-txt{flex:1;font-size:16px;color:#1D4ED8;font-weight:600;}
.af-txt span{font-size:14px;font-weight:400;color:#3B82F6;display:block;margin-top:1px;}
.af-btn{padding:5px 11px;border-radius:6px;background:#2563EB;color:#fff;border:none;font-size:15px;font-weight:700;cursor:pointer;white-space:nowrap;font-family:inherit;}

/* ── 토글 카드 ── */
.toggle-header{padding:10px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;background:#FAFBFC;user-select:none;}
.toggle-header:hover{background:#F5F7FA;}
.toggle-btn{display:flex;align-items:center;gap:4px;padding:4px 9px;border-radius:6px;border:1px solid var(--border);background:#fff;font-size:15px;font-weight:600;color:var(--sub);cursor:pointer;transition:all .12s;font-family:inherit;}
.toggle-btn:hover{border-color:var(--red);color:var(--red);}
.toggle-arrow{transition:transform .2s;}
.toggle-body{border-top:1.5px solid var(--border);animation:fadeIn .18s ease;}

/* ── 로고 업로드 ── */
.logo-upload-area{display:flex;align-items:center;gap:13px;}
.logo-preview-box{width:80px;height:80px;border-radius:9px;border:2px dashed #9CA3AF;background:#FAFBFC;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;cursor:pointer;transition:all .15s;aspect-ratio:1/1;}
.logo-preview-box:hover{border-color:var(--red);background:#FFF5F5;}
.logo-preview-box img{width:100%;height:100%;object-fit:contain;}
.lp-ph{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--sub);}
.lp-ph span{font-size:14px;}
.logo-upload-right{flex:1;}
.logo-upload-right p{font-size:15px;color:var(--sub);margin-bottom:8px;line-height:1.5;}
.logo-upload-btns{display:flex;gap:7px;}
.lu-btn{padding:6px 12px;border-radius:7px;border:1.5px solid var(--border);background:#fff;font-size:15px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit;transition:all .12s;display:flex;align-items:center;gap:5px;}
.lu-btn:hover{border-color:var(--red);color:var(--red);}
.lu-btn.primary{background:var(--dark);color:#fff;border-color:var(--dark);}
.lu-btn.primary:hover{background:var(--red);border-color:var(--red);}
#logo-file-input{display:none;}
.logo-saved-badge{display:none;font-size:14px;color:#15803D;background:var(--green-bg);border:1px solid var(--green-border);padding:2px 8px;border-radius:6px;align-items:center;gap:3px;margin-top:5px;}
.logo-saved-badge.show{display:inline-flex;}

/* ── 폼 ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
@media(max-width:500px){.form-grid{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:4px;}
.field.full{grid-column:1/-1;}
.field label{font-size:15px;font-weight:600;color:var(--sub);display:flex;align-items:center;gap:3px;}
.req{color:var(--red);font-weight:800;}
.field-tag{font-size:14px;background:#F0F9FF;color:#0EA5E9;border:1px solid #BAE6FD;padding:1px 6px;border-radius:5px;margin-left:2px;}
.inp{width:100%;padding:8px 11px;border:1.5px solid var(--border);border-radius:8px;font-size:18px;font-weight:500;color:var(--dark);background:#fff;font-family:inherit;transition:border .12s;}
.inp:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(229,2,19,.07);}
.inp-hint{font-size:14px;color:var(--sub);}
.inp-error{font-size:14px;color:#EF4444;display:none;}
.inp-error.show{display:block;}

/* ── 주소 ── */
.addr-row{display:flex;gap:7px;margin-bottom:7px;}
.addr-row .inp{flex:1;}
.addr-btn{padding:0 13px;border-radius:8px;border:none;background:var(--dark);color:#fff;font-size:16px;font-weight:700;cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .12s;display:flex;align-items:center;gap:5px;flex-shrink:0;height:38px;}
.addr-btn:hover{background:var(--red);}

/* ── 라디오 카드 ── */
.radio-cards{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.rc{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border-radius:9px;border:1.5px solid var(--border);background:#FAFBFC;cursor:pointer;transition:all .15s;}
.rc:hover{border-color:#fca5a5;background:#FFF8F8;}
.rc.on{border-color:var(--red);background:#FFF5F5;box-shadow:0 0 0 2px rgba(229,2,19,.07);}
.rc input{display:none;}
.rc-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:all .12s;}
.rc.on .rc-dot{border-color:var(--red);}
.rc.on .rc-dot::after{content:'';width:6px;height:6px;border-radius:50%;background:var(--red);display:block;}
.rc-label{font-size:16px;font-weight:700;color:var(--dark);}
.rc-sub{font-size:14px;color:var(--sub);margin-top:1px;}

/* ── 설치 옵션 ── */
.inst-group{padding:11px 16px 0;}
.inst-group-title{font-size:14px;font-weight:700;color:var(--sub);letter-spacing:.5px;text-transform:uppercase;margin-bottom:7px;}
.inst-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:11px;}
@media(max-width:480px){.inst-grid{grid-template-columns:1fr;}}
.inst-item{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border-radius:8px;border:1.5px solid var(--border);background:#FAFBFC;cursor:pointer;transition:all .12s;}
.inst-item:hover{border-color:#fca5a5;background:#FFF8F8;}
.inst-item.on{border-color:var(--red);background:#FFF5F5;}
.inst-item input{display:none;}
.inst-check{width:15px;height:15px;border-radius:4px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .12s;margin-top:1px;}
.inst-item.on .inst-check{background:var(--red);border-color:var(--red);}
.inst-item.on .inst-check::after{content:'';width:7px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px);display:block;}
.inst-item-name{font-size:15px;font-weight:700;color:var(--dark);}
.inst-item-desc{font-size:14px;color:var(--sub);margin-top:1px;}
.inst-item-price{font-size:14px;color:var(--red);font-weight:600;margin-top:2px;}
.inst-divider{height:1px;background:var(--border);margin:0 16px;}

/* ── 파일 업로드 ── */
.file-upload{border:2px dashed #9CA3AF;border-radius:9px;padding:13px;text-align:center;cursor:pointer;transition:all .15s;background:#FAFBFC;}
.file-upload:hover{border-color:var(--red);background:#FFF5F5;}
.file-upload input{display:none;}
.fu-inner{display:flex;flex-direction:column;align-items:center;gap:5px;}
.fu-txt{font-size:15px;color:var(--sub);}
.fu-result{display:none;align-items:center;gap:7px;margin-top:6px;padding:6px 10px;background:var(--green-bg);border:1px solid var(--green-border);border-radius:7px;}
.fu-result.show{display:flex;}
.fu-name{font-size:15px;font-weight:600;color:#15803D;}

/* ── 설치위치 안내 ── */
.inst-loc-hint{font-size:15px;color:var(--sub);margin-bottom:10px;line-height:1.6;padding:8px 10px;background:#F8FAFC;border-radius:8px;border:1px solid var(--border);display:flex;align-items:flex-start;gap:6px;}

/* ── Leaflet 지도 ── */
.inst-map-wrap{position:relative;margin-top:12px;border-radius:10px;overflow:hidden;border:1.5px solid var(--border);background:#F0F2F5;}
#inst-map{height:220px;width:100%;z-index:1;}
.inst-map-loading{position:absolute;inset:0;background:rgba(240,242,245,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;z-index:10;}
.spin-ring{width:22px;height:22px;border:3px solid rgba(229,2,19,.15);border-top-color:var(--red);border-radius:50%;animation:spin .7s linear infinite;}
.inst-dist-row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap;}
.inst-dist-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:8px;background:#EFF6FF;border:1px solid #BFDBFE;font-size:15px;font-weight:600;color:#1D4ED8;}
.inst-dist-badge.has-dist{background:var(--green-bg);border-color:var(--green-border);color:#15803D;}
.inst-freight-result{font-size:16px;font-weight:700;color:var(--dark);}
.inst-freight-result .amt{color:var(--red);}

/* ── 하단 액션 바 ── */
.acs-action-bar{flex-shrink:0;background:#fff;border-top:2px solid var(--border);box-shadow:0 -3px 14px rgba(0,0,0,.08);padding:10px 16px;}
.action-inner{max-width:var(--cw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.btn-prev{display:flex;align-items:center;gap:5px;padding:9px 15px;border-radius:8px;border:1.5px solid var(--border);background:#fff;font-size:16px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit;transition:all .12s;}
.btn-prev:hover{border-color:var(--dark);color:var(--dark);}
.action-center{font-size:15px;color:var(--sub);text-align:center;}
.action-center strong{color:var(--dark);}
.btn-next{display:flex;align-items:center;gap:6px;padding:9px 20px;background:var(--red);color:#fff;border:none;border-radius:9px;font-size:18px;font-weight:700;cursor:pointer;transition:all .18s;font-family:inherit;white-space:nowrap;}
.btn-next:hover{background:var(--red-h);}
.btn-next:disabled{background:#D1D5DB;cursor:not-allowed;}

/* ===== step3 ===== */
400;500;600;700;800;900&display=swap');
600;700&display=swap');

/* ── ACS: Elementor 컨테이너 padding 무력화 (너비 최대화) ── */
.elementor-widget-shortcode .acs-plugin-root,
.elementor-widget .acs-plugin-root {
  width: 100%;
  max-width: 100%;
}
/* Elementor e-con-inner padding/width 제거 - ACS 위젯이 e-con 전체 너비 사용 */
.e-con > .e-con-inner > .elementor-widget-shortcode,
.e-con > .e-con-inner > .elementor-widget > .elementor-widget-container,
.e-con > .e-con-inner > .elementor-widget,
.elementor-column > .elementor-widget-wrap > .elementor-widget-shortcode {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
}
/* e-con-inner 자체 padding도 ACS 영역에서 제거 */
.e-con-inner:has(.acs-body),
.e-con-inner:has(.elementor-shortcode .acs-body) {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --red:#E50213;--dark:#10111F;--bg:#E5E7EB;
  --white:#fff;--border:#C0C4CC;--text:#1A1D2E;--sub:#4B5563;
  --green:#10B981;--green-bg:#F0FDF4;--green-border:#86EFAC;
  --a4:794px;--cw:100%;
}
/* ACS 전용 컨테이너 - 사이트 body에 영향 없음 */
html,body{height:100%;}
body{background:var(--bg);font-family:'Noto Sans KR',sans-serif;color:var(--text);font-size:19px;display:flex;flex-direction:column;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* ─── 헤더 ─── */
.acs-header{background:var(--dark);padding:0 24px;height:52px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:300;box-shadow:0 2px 16px rgba(0,0,0,.3);flex-shrink:0;}
.logo{display:flex;align-items:center;gap:9px;}
.logo-mark{width:28px;height:28px;background:var(--red);border-radius:6px;display:flex;align-items:center;justify-content:center;}
.logo-name{color:#fff;font-size:20px;font-weight:800;}
.logo-name span{color:var(--red);}
.header-badge{background:rgba(229,2,19,.18);border:1px solid rgba(229,2,19,.35);color:#ff7070;font-size:15px;font-weight:600;padding:3px 10px;border-radius:20px;}

/* ─── Step 네비 ─── */
.step-nav{background:#fff;height:48px;padding:0 24px;display:flex;align-items:center;justify-content:center;position:sticky;top:52px;z-index:299;border-bottom:2px solid var(--border);box-shadow:0 1px 6px rgba(0,0,0,.04);flex-shrink:0;}
.snav-inner{display:flex;align-items:center;max-width:var(--cw);width:100%;}
.snav-item{display:flex;align-items:center;gap:7px;padding:5px 12px;border-radius:8px;cursor:pointer;border:none;background:transparent;font-family:inherit;}
.snav-num{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--sub);flex-shrink:0;}
.snav-txt{font-size:16px;font-weight:600;color:var(--sub);}
.snav-item.done .snav-num{background:#10B981;border-color:#10B981;color:#fff;font-size:0;}
.snav-item.done .snav-num::after{content:'✓';font-size:15px;}
.snav-item.done .snav-txt{color:#10B981;}
.snav-item.active .snav-num{background:var(--red);border-color:var(--red);color:#fff;}
.snav-item.active .snav-txt{color:var(--dark);}
.snav-line{flex:1;height:2px;background:var(--border);max-width:60px;}

/* ─── 본문 ─── */
.acs-body{flex:1;overflow-y:auto;}
.page-wrap{max-width:var(--cw);margin:0 auto;padding:20px 16px 130px;}

/* ─── 안내 배너 ─── */
.info-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;background:linear-gradient(135deg,#EFF6FF,#DBEAFE);border:1.5px solid #BFDBFE;margin-bottom:12px;animation:fadeIn .3s ease;}
.ib-icon{width:34px;height:34px;background:#2563EB;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ib-txt{font-size:16px;color:#1D4ED8;line-height:1.6;}
.ib-txt strong{font-weight:700;}

/* ─── 이메일 수신 안내 배너 ─── */
.email-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;background:var(--green-bg);border:1.5px solid var(--green-border);margin-bottom:18px;animation:fadeIn .3s ease .1s both;}
.email-banner-icon{width:32px;height:32px;background:#15803D;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.email-banner-body{flex:1;}
.email-banner-title{font-size:15px;font-weight:700;color:#15803D;margin-bottom:5px;}
.email-chips{display:flex;flex-wrap:wrap;gap:6px;}
.email-chip{display:inline-flex;align-items:center;gap:5px;font-size:15px;font-weight:600;padding:3px 10px;border-radius:16px;border:1px solid;}
.email-chip.rcpt{background:#EFF6FF;color:#1D4ED8;border-color:#BFDBFE;}
.email-chip.admin{background:#FFF5F5;color:#B91C1C;border-color:#FCA5A5;}
.chip-tag{font-size:12px;font-weight:700;opacity:.65;}

/* ═══════════════════════════════════
   A4 견적서 문서
═══════════════════════════════════ */
.doc-stage{background:#C8CDD5;padding:20px;border-radius:12px;display:flex;justify-content:center;margin-bottom:16px;}
.quote-doc{width:var(--a4);background:#fff;box-shadow:0 8px 40px rgba(0,0,0,.22),0 2px 8px rgba(0,0,0,.1);display:flex;flex-direction:column;font-family:'Noto Sans KR',sans-serif;}

.qd-topbar{height:6px;background:linear-gradient(90deg,#10111F 0%,#E50213 55%,#FF6B35 100%);}

.qd-header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 30px 18px;border-bottom:2px solid #F0F2F5;}
.qd-logo-box{width:70px !important;height:70px !important;background:var(--dark);border-radius:7px;display:flex;align-items:center;justify-content:center;margin-bottom:6px;overflow:hidden;aspect-ratio:1/1 !important;flex-shrink:0;}
.qd-logo-box img{width:70px !important;height:70px !important;min-width:70px !important;min-height:70px !important;max-width:70px !important;max-height:70px !important;object-fit:cover !important;object-position:center !important;display:none;}
.qd-logo-box .logo-default{display:flex;align-items:center;gap:5px;}
.qd-logo-box .lm{width:18px;height:18px;background:var(--red);border-radius:4px;display:flex;align-items:center;justify-content:center;}
.qd-logo-box .ln{color:#fff;font-size:16px;font-weight:800;}
.qd-logo-box .ln span{color:var(--red);}
.qd-company-sub{font-size:14px;font-weight:600;color:var(--sub);letter-spacing:.3px;}
.qd-doc-info{text-align:right;}
.qd-doc-title{font-family:'Noto Serif KR',serif;font-size:32px;font-weight:700;color:var(--dark);letter-spacing:-0.5px;line-height:1;margin-bottom:8px;}
.qd-doc-title span{color:var(--red);}
.qd-meta{display:flex;flex-direction:column;gap:2px;align-items:flex-end;}
.qd-meta-row{font-size:14px;color:var(--sub);}
.qd-meta-row strong{color:var(--dark);font-weight:600;}

.qd-top-section{display:grid;grid-template-columns:1fr auto;border-bottom:1.5px solid #F0F2F5;}
.qd-recipient{padding:18px 30px;border-right:1.5px solid #F0F2F5;}
.sec-label{font-size:12px;font-weight:700;color:var(--sub);letter-spacing:.8px;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:4px;}
.sec-label::before{content:'';display:inline-block;width:14px;height:2px;background:var(--red);border-radius:1px;}
.qd-rcpt-name{font-size:24px;font-weight:800;color:var(--dark);margin-bottom:3px;}
.qd-rcpt-name span{color:var(--red);}
.qd-rcpt-sub{font-size:15px;color:var(--sub);line-height:1.6;}
.qd-total-box{padding:18px 26px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;min-width:240px;}
.qd-total-label{font-size:12px;font-weight:700;color:var(--sub);letter-spacing:.6px;text-transform:uppercase;margin-bottom:5px;}
.qd-total-amount{font-size:36px;font-weight:900;color:#111;letter-spacing:-1px;line-height:1;}
.qd-total-won{font-size:18px;color:var(--sub);margin-left:2px;}
.qd-total-vat{font-size:14px;color:var(--sub);margin-top:2px;}
.qd-total-kor{font-size:15px;font-weight:700;color:var(--dark);margin-top:6px;padding:5px 10px;background:#F0F2F5;border:1px solid var(--border);border-radius:5px;text-align:center;}

.qd-body{padding:18px 30px;flex:1;}
.qd-section-title{font-size:12px;font-weight:700;color:var(--sub);letter-spacing:.6px;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:5px;}
.qd-section-title::before{content:'';display:inline-block;width:14px;height:2px;background:var(--red);border-radius:1px;}
table.qd-table{width:100%;border-collapse:collapse;}
table.qd-table thead tr{background:var(--dark);}
table.qd-table thead th{padding:8px 10px;font-size:14px;font-weight:700;color:rgba(255,255,255,.85);text-align:left;letter-spacing:.3px;}
table.qd-table thead th:last-child{text-align:right;}
table.qd-table tbody tr{border-bottom:1px solid #F0F2F5;}
table.qd-table tbody tr:nth-child(even){background:#FAFBFC;}
table.qd-table tbody td{padding:9px 10px;font-size:15px;color:var(--text);vertical-align:middle;}
table.qd-table tbody td:last-child{text-align:right;font-weight:700;color:var(--dark);}
.badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:1px 6px;border-radius:4px;background:#F0F9FF;color:#0369A1;border:1px solid #BAE6FD;margin-left:3px;}
.badge.base{background:#F0FDF4;color:#15803D;border-color:#86EFAC;}
.qd-sub-row td{border-top:2px solid var(--border)!important;font-weight:700!important;color:var(--sub)!important;background:#FAFBFC!important;}
.qd-sub-row td:last-child{color:var(--dark)!important;}
.qd-total-row td{background:linear-gradient(135deg,#FFF5F5,#fff)!important;border-top:2px solid var(--red)!important;}
.qd-total-row td:first-child{font-size:16px!important;font-weight:800!important;color:var(--dark)!important;}
.qd-total-row td:last-child{font-size:20px!important;font-weight:900!important;color:var(--red)!important;}

.qd-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0;}
.qd-info-box{background:#F8FAFC;border:1.5px solid var(--border);border-radius:8px;padding:12px 14px;}
.qd-info-box-title{font-size:12px;font-weight:700;color:var(--sub);letter-spacing:.5px;text-transform:uppercase;margin-bottom:7px;display:flex;align-items:center;gap:4px;}
.qd-info-box-title::before{content:'';width:10px;height:2px;background:var(--red);border-radius:1px;display:inline-block;}
.qd-info-row{display:flex;justify-content:space-between;align-items:flex-start;font-size:14px;padding:3px 0;border-bottom:1px solid #F0F2F5;}
.qd-info-row:last-child{border-bottom:none;}
.qd-info-row .key{color:var(--sub);font-weight:500;}
.qd-info-row .val{color:var(--dark);font-weight:600;text-align:right;max-width:55%;word-break:keep-all;}

.qd-notes{margin:0 30px 16px;background:#F8FAFC;border:1.5px solid var(--border);border-radius:8px;padding:13px 16px;}
.qd-notes-title{font-size:12px;font-weight:700;color:var(--sub);letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;}
.qd-note-item{display:flex;gap:7px;font-size:14px;color:var(--sub);line-height:1.6;margin-bottom:3px;}
.qd-note-item::before{content:'•';color:var(--red);font-weight:700;flex-shrink:0;}

.qd-footer{border-top:2px solid #F0F2F5;background:var(--dark);padding:14px 30px;display:flex;align-items:center;justify-content:space-between;}
.qdf-company{color:rgba(255,255,255,.9);font-size:14px;line-height:1.7;}
.qdf-company strong{font-size:16px;font-weight:800;color:#fff;display:block;margin-bottom:2px;}
.qdf-stamp{width:60px;height:60px;border-radius:50%;border:2.5px solid var(--red);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--red);font-size:11px;font-weight:800;letter-spacing:.3px;opacity:.8;}
.qdf-seal-txt{font-size:18px;font-weight:900;margin-bottom:1px;}

/* ─── 하단 액션 바 ─── */
.action-bar{position:sticky;bottom:0;z-index:200;background:#fff;border-top:2px solid var(--border);box-shadow:0 -4px 20px rgba(0,0,0,.08);padding:10px 16px;flex-shrink:0;}
.action-inner{max-width:var(--cw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.btn-prev{display:flex;align-items:center;gap:5px;padding:9px 14px;border-radius:9px;border:1.5px solid var(--border);background:#fff;font-size:16px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap;}
.btn-prev:hover{border-color:var(--dark);color:var(--dark);}
.btn-cart-save{position:relative;display:flex;align-items:center;gap:6px;padding:9px 14px;border-radius:9px;border:2px solid #059669;background:var(--green-bg);font-size:16px;font-weight:700;color:#15803D;cursor:pointer;font-family:inherit;transition:all .2s;white-space:nowrap;}
.btn-cart-save:hover{background:#DCFCE7;transform:translateY(-1px);}
.btn-cart-list{position:relative;display:flex;align-items:center;gap:5px;padding:9px 13px;border-radius:9px;border:1.5px solid var(--border);background:#fff;font-size:16px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap;}
.btn-cart-list:hover{border-color:#059669;color:#15803D;}
.cart-num{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;background:var(--red);color:#fff;font-size:12px;font-weight:800;border-radius:9px;display:none;align-items:center;justify-content:center;padding:0 4px;border:2px solid #fff;}
.cart-num.show{display:flex;}
.action-mid{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:0;}
.send-note{font-size:15px;color:var(--sub);text-align:center;white-space:nowrap;}
.send-note strong{color:var(--dark);}
.send-email-row{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;}
.se-pill{font-size:14px;font-weight:600;padding:2px 9px;border-radius:12px;border:1px solid;}
.se-pill.rcpt{background:#EFF6FF;color:#1E40AF;border-color:#BFDBFE;}
.se-pill.admin{background:#FFF5F5;color:#B91C1C;border-color:#FCA5A5;}
.btn-send{display:flex;align-items:center;gap:7px;padding:10px 22px;background:linear-gradient(135deg,var(--red) 0%,#B8000F 100%);color:#fff;border:none;border-radius:9px;font-size:18px;font-weight:800;cursor:pointer;transition:all .2s;font-family:inherit;box-shadow:0 4px 14px rgba(229,2,19,.35);white-space:nowrap;}
.btn-send:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(229,2,19,.45);}

/* ─── 모달 공통 ─── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.52);z-index:1000;align-items:center;justify-content:center;}
.modal-overlay.show{display:flex;}

/* ─── 전송 완료 모달 ─── */
.send-modal{background:#fff;border-radius:20px;padding:32px 28px;text-align:center;max-width:380px;width:90%;animation:slideUp .25s ease;box-shadow:0 20px 60px rgba(0,0,0,.3);}
.sm-icon{width:64px;height:64px;background:linear-gradient(135deg,#10B981,#059669);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.sm-title{font-size:26px;font-weight:800;color:var(--dark);margin-bottom:6px;}
.sm-sub{font-size:16px;color:var(--sub);line-height:1.7;margin-bottom:16px;}
.sm-email-box{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;}
.sm-email-row{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;border-radius:9px;border:1.5px solid;}
.sm-email-row.rcpt-row{background:#EFF6FF;border-color:#BFDBFE;}
.sm-email-row.admin-row{background:#FFF5F5;border-color:#FCA5A5;}
.sm-email-label{font-size:14px;font-weight:700;color:var(--sub);}
.sm-email-val{font-size:16px;font-weight:700;}
.sm-email-val.rcpt-c{color:#1D4ED8;}
.sm-email-val.admin-c{color:#B91C1C;}
.sm-close-btn{width:100%;padding:11px;border-radius:9px;background:var(--dark);color:#fff;border:none;font-size:18px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;}
.sm-close-btn:hover{background:#1e2135;}

/* ─── 장바구니 패널 ─── */
.cart-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:950;align-items:flex-end;justify-content:center;}
.cart-overlay.show{display:flex;}
.cart-panel{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:var(--cw);max-height:78vh;display:flex;flex-direction:column;animation:slideUp .28s ease;box-shadow:0 -8px 30px rgba(0,0,0,.18);}
.cart-head{padding:16px 20px 12px;border-bottom:2px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.cart-head-title{font-size:22px;font-weight:800;color:var(--dark);display:flex;align-items:center;gap:8px;}
.cart-head-count{font-size:15px;font-weight:700;background:var(--red);color:#fff;padding:2px 9px;border-radius:10px;}
.cart-head-close{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sub);transition:background .15s;}
.cart-head-close:hover{background:#f5f5f5;}
.cart-body{flex:1;overflow-y:auto;padding:14px 20px;}
.cart-empty{text-align:center;padding:40px 20px;color:var(--sub);}
.cart-empty-emoji{font-size:54px;margin-bottom:10px;}
.cart-empty-msg{font-size:18px;line-height:1.6;}
.ci{background:#F8FAFC;border:1.5px solid var(--border);border-radius:11px;padding:12px 14px;margin-bottom:10px;display:flex;align-items:center;gap:12px;transition:all .15s;}
.ci:hover{border-color:#9CA3AF;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.06);}
.ci-body{flex:1;min-width:0;}
.ci-header{display:flex;align-items:center;gap:7px;margin-bottom:4px;}
.ci-no{font-size:14px;font-weight:700;color:var(--sub);background:#F0F2F5;padding:2px 7px;border-radius:4px;}
.ci-saved{font-size:14px;color:var(--sub);}
.ci-name{font-size:18px;font-weight:700;color:var(--dark);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ci-desc{font-size:15px;color:var(--sub);}
.ci-price{font-size:19px;font-weight:900;color:var(--dark);flex-shrink:0;text-align:right;}
.ci-price small{display:block;font-size:12px;font-weight:500;color:var(--sub);}
.ci-btns{display:flex;flex-direction:column;gap:5px;flex-shrink:0;}
.ci-load-btn,.ci-del-btn{width:30px;height:30px;border-radius:8px;border:1.5px solid;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;}
.ci-load-btn{background:#EFF6FF;border-color:#BFDBFE;color:#1D4ED8;}
.ci-load-btn:hover{background:#DBEAFE;}
.ci-del-btn{background:#FFF5F5;border-color:#FCA5A5;color:#B91C1C;}
.ci-del-btn:hover{background:#FEE2E2;}
.cart-foot{padding:12px 20px;border-top:2px solid var(--border);flex-shrink:0;}
.cart-clear-btn{width:100%;padding:10px;border-radius:9px;border:1.5px solid var(--border);background:#fff;font-size:16px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit;transition:all .15s;}
.cart-clear-btn:hover{border-color:#EF4444;color:#EF4444;background:#FFF5F5;}

/* ─── 토스트 ─── */
.toast{position:fixed;bottom:95px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--dark);color:#fff;padding:10px 18px;border-radius:10px;font-size:16px;font-weight:600;white-space:nowrap;z-index:5000;opacity:0;transition:all .3s ease;pointer-events:none;display:flex;align-items:center;gap:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast-dot{width:8px;height:8px;background:var(--green);border-radius:50%;flex-shrink:0;}

/* ─── 로고 정사각형 출력 (Phase 3-3) ─── */
.acs-logo img,.quote-logo img,.elementor-widget-container img[src*="logo"]{width:80px !important;height:80px !important;object-fit:cover !important;aspect-ratio:1/1 !important;}
.wp-image-11190,.wp-image-11190.attachment-large{width:80px !important;height:80px !important;object-fit:cover !important;aspect-ratio:1/1 !important;}

/* ─── .qd-logo-box img 강제 정사각형 (Phase 3-4 fix) ─── */
.qd-logo-box img,
.qd-logo-box img.wp-image-11190,
#doc-logo-img {
    width: 70px !important;
    height: 70px !important;
    min-width: 70px !important;
    min-height: 70px !important;
    max-width: 70px !important;
    max-height: 70px !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* ══ 반응형: 태블릿/모바일 ══ */
@media (max-width: 768px) {
  :root { --cw: 100% !important; }
  .acs-main {
    padding: 10px 12px 8px !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .snav-inner { max-width: 100% !important; }
  .item-card, .item-card-head, .item-body {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  .section-gap, .items-container { min-width: 0 !important; width: 100% !important; }
}

/* ══ 모바일: Elementor 높이 제약 해제 ══
   Elementor 컨테이너가 viewport 높이로 acs-body를 제한하므로
   모바일에서 flex → block 전환 */
@media (max-width: 600px) {
  /* acs-body: flex column 유지 */
  .acs-body {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    overflow: visible !important;
  }
  /* acs-scroll: 독립 스크롤 (페이지와 분리) */
  .acs-scroll {
    flex: 1 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    height: auto !important;
  }
  /* qb-actions: 화면 하단 고정 */
  .qb-actions {
    position: sticky !important;
    bottom: 0 !important;
    background: #fff !important;
    border-top: 1.5px solid var(--border) !important;
    padding: 10px 14px !important;
    z-index: 300 !important;
    box-shadow: 0 -4px 16px rgba(0,0,0,.10) !important;
  }
  .btn-next {
    flex: 1 !important;
    justify-content: center !important;
    padding: 12px 16px !important;
    font-size: 15px !important;
  }
  /* action-bar */
  .acs-action-bar,
  .action-bar {
    flex-shrink: 0 !important;
    position: sticky !important;
    bottom: 0 !important;
    z-index: 300 !important;
  }
  .acs-quote-bar {
    flex-shrink: 0 !important;
  }
  /* Step2 폼 */
  .form-grid { grid-template-columns: 1fr !important; }
  .radio-cards { grid-template-columns: 1fr !important; }
  .inst-grid { grid-template-columns: 1fr !important; }
  /* Step2 요약 테이블 가로 스크롤 */
  #s1-summary-body {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  /* Step3 견적서 가로 스크롤 */
  .page-wrap { padding: 8px 4px 20px !important; }
  .doc-stage {
    padding: 4px !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
  }
  .quote-doc {
    width: 540px !important;
    min-width: 540px !important;
    font-size: 11px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.12) !important;
  }
  table.qd-table { font-size: 10px !important; }
  .qd-table th, .qd-table td { padding: 4px 5px !important; font-size: 10px !important; }
  .qd-total-amount { font-size: 15px !important; }
  /* Step1 qb-item-badges 숨기기 */
  .qb-item-badges { display: none !important; }
  .qb-summary-txt { display: none !important; }
  /* 하단 버튼 wrap */
  .qb-actions { flex-wrap: wrap !important; gap: 6px !important; }
  .action-inner { flex-wrap: wrap !important; gap: 5px !important; }
}
@media (max-width: 480px) {
  .acs-main { padding: 8px 8px 6px !important; }
  .snav-item span.snav-txt { display: none !important; }
  /* 타입 선택 버튼 세로 배치 */
  .type-grid { grid-template-columns: 1fr 1fr !important; }
  /* 소계 버튼 줄바꿈 방지 */
  .qb-actions > div { flex-wrap: nowrap !important; }
  .btn-save { padding: 8px 10px !important; font-size: 12px !important; }
  /* 입력필드 패딩 */
  .dim-grid { gap: 8px !important; }
  .dim-input { padding: 8px 10px !important; }
}
