/* V14.0iii-PREVIEW3 - A안 - 폰트 swap 처리 (CLS 개선) */
@font-face { font-family: 'Pretendard'; font-display: swap; src: local('Pretendard'); }
:root {
    /* V14.0vv (B-1) - 럭셔리 미니멀 리브랜드 디자인 토큰 */
    --bg: #F6F3EC;
    --bg-card: #FFFFFF;
    --bg-soft: #F5F2ED;
    --bg-warm: #FFFFFF;
    
    /* 메인: 검정 (이전: 핑크 #f2708f) */
    --primary: #1A1A17;
    --primary-dark: #000000;
    
    /* 액센트: 핑크 (5% 미만 사용) */
    --accent: #f2708f;
    --accent-dark: #ee2d65;
    --accent-soft: #FBE3EA;
    
    /* 보조: 회색 (이전: 라벤더 #A78BDA) */
    --carrot: #7A766C;
    --carrot-light: #6F695E;
    
    --navy: #1A1A17;
    --gold: #C19237;
    
    --text: #1A1A17;
    --text-soft: #7A766C;
    --text-mute: #6F695E;
    --text-disable: #C4C8D2;
    
    --line: #E2DCCF;
    --line-soft: #F0EFE9;
    --sub: #7A766C;   /* Phase 0-1: 보조 텍스트 (데모 톤) */
    --ok: #3B7A57;    /* Phase 0-1: 성공 초록 (의미색) */

    /* Phase 0-2a: 타이포 토큰 (메인 앱은 design-tokens.css 미로드 → style.css에 직접 보유). 폰트 속성만, 레이아웃 무관. */
    --fs-3xs: 0.625rem;   /* 10px */
    --fs-2xs: 0.6875rem;  /* 11px */
    --fs-xs: 0.75rem;     /* 12px */
    --fs-sm: 0.875rem;    /* 14px */
    --fs-base: 1rem;      /* 16px */
    --fs-md: 1.125rem;    /* 18px */
    --fs-lg: 1.25rem;     /* 20px */
    --fs-xl: 1.5rem;      /* 24px */
    --fs-2xl: 2rem;       /* 32px */
    --fw-bold: 800; --fw-semi: 700; --fw-med: 600; --fw-normal: 500;
    --ls-tight: -0.02em; --ls-wide: 0.16em;

    /* B-1: 라운드 통일 (4px 베이스) */
    --radius-sm: 2px;
    --radius: 4px;
    --radius-lg: 8px;
    --radius-pill: 9999px;
    
    /* B-1: 그림자 단순화 */
    --shadow-sm: 0 1px 2px rgba(26,31,54,0.04);
    --shadow: 0 2px 8px rgba(26,31,54,0.06);
    --shadow-md: 0 4px 16px rgba(26,31,54,0.08);
    --shadow-lg: 0 8px 32px rgba(26,31,54,0.12);
    --shadow-pink: 0 4px 16px rgba(26, 31, 54, 0.15);

    /* 모션 (DESIGN 2.0 §8 — 신규 코드는 이 토큰만 사용) (Card AX) */
    --motion-fast: .15s;
    --motion-standard: .25s;
    --motion-slow: .35s;
    --ease-enter: cubic-bezier(.2, .6, .25, 1);

    /* 포커스 (접근성) */
    --focus-ring: 2px solid #1A1A17;

    /* C0 (2026-06-18) 시맨틱 상태색 — design-tokens.css와 1:1 동일값. 메인앱(style.css 단독 로드) 의미색 작업(C2~C4) 선결 토대. 추가만, 기존 시각 무변. */
    --status-success: #2e7d32; --status-success-bg: #e8f5e9;
    --status-info:    #1976d2; --status-info-bg:    #e3f2fd;
    --status-warning: #b8860b; --status-warning-bg: #fff8e1;
    --status-danger:  #c62828; --status-danger-bg:  #ffebee;
    --status-progress:#00838f; --status-progress-bg:#e0f7fa;
    --status-complete:#e65100; --status-complete-bg:#fff3e0;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    background: var(--bg);
    color: var(--text);
    font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    font-weight: 400;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    padding-bottom: 100px;
}

/* =================== HEADER =================== */
/* V14.0vv (B-1) - 헤더 그라디언트 → 솔리드 흰 (Aesop/Sezane 톤) */
.header {
    background: #eb6694;   /* 픽스v2: 모바일 헤더 전체 핑크 띠(PC는 아래 @min-width:641 에서 display:none) */
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid var(--line);
    box-shadow: none;
}

/* V11.48 - wrapper로 가운데 정렬 (안정적 방식) */
.header-inner {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem 1.5rem 1rem;
    max-width: 1240px;
    margin: 0 auto;
}

/* V14.0aaa - 마스코트 축소 (44 → 32px) */
/* V15.0j - 임팩트 강화 (32 → 48px) + 살짝 흔들림 애니메이션 */
/* V22r 카드C⑤ 전신 96×96 → 얼굴 세로형(rabbit-photo.png) 높이 기준 축소, 폭 비율 자동 */
.rabbit-mascot {
    width: auto;
    height: 52px;
    flex-shrink: 0;
    object-fit: contain;
    filter: drop-shadow(0 2px 4px rgba(200, 69, 44, 0.2));
    transition: transform 0.3s ease;
}
.rabbit-mascot:hover {
    transform: rotate(-5deg) scale(1.05);
}
@keyframes rabbit-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-7px); }
}
.rabbit-mascot {
    animation: rabbit-bounce 3s ease-in-out infinite;
}

/* SPEC v2: 로고는 #pr-userbar 좌측으로 이동. 헤더행은 모바일 햄버거 전용 → PC에선 빈 바라 숨김.
   (기존 .rabbit-mascot/.wm-*/.header-wordmark/.header-logo* 규칙은 미사용 방치) */
@media (min-width: 641px) {
  .header { display: none; }
  /* 지시서v4: PC 1240 중앙정렬은 index 인라인 .pr-userbar-inner 래퍼가 담당(검증된 catnav 패턴). 옛 calc padding(fix①, 미작동) 제거. */
}

.header-text {
    flex: 1;
    min-width: 0;
}

/* 작업카드 AL: 헤더 우측 장바구니 아이콘(.header-text flex:1이 우측 끝으로 밀어냄). 항상 표시, 배지는 카운트>0일 때만 */
.hdr-cart {
    position: relative; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px;
    border: none; background: transparent;
    color: var(--primary, #1A1A17); cursor: pointer; border-radius: 8px;
}
.hdr-cart:hover { background: var(--bg-soft, #F5F2ED); }
.hdr-cart svg { width: 28px; height: 28px; }
.hdr-cart-badge {
    position: absolute; top: 2px; right: 2px;
    min-width: 16px; height: 16px; padding: 0 4px; box-sizing: border-box;
    background: var(--accent-dark, #ee2d65); color: #fff;
    font-size: 11px; font-weight: 700; line-height: 16px; text-align: center;
    border-radius: 8px;
}
.hdr-cart-badge[hidden] { display: none; }

/* V14.0aaa+ 사장님 피드백 - 프린트래빗 브랜드 메인 (TomorrOW 제거) */
.header-wordmark {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
}
.wm-main {
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: #1A1A17;
    line-height: 1.2;
    display: block;
}
.wm-main .wm-accent {
    color: #ee2d65;
    font-weight: 800;
}
/* V14.0fff++ - 헤더 정체성 부제 (사업 영역 명시) */
.wm-sub {
    display: block;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    font-weight: 500;
    letter-spacing: 0.06em;
    margin-top: 0.25rem;
    line-height: 1.3;
    word-break: keep-all;
}

/* 헤더 - 문의 접수 메일 안내 (정중한 표현) */
.header-mail {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin-top: 8px;
    padding: 7px 10px 7px 11px;
    background: white;
    border: 1px solid rgba(26, 31, 54, 0.25);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    font-weight: 500;
    color: var(--text);
    text-decoration: none;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
    max-width: 100%;
    /* V17.0T - button 태그 호환 (a → button 전환 후 동일 시각 유지) */
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    width: auto;
}
.header-mail:hover {
    background: #FFF8FB;
    border-color: var(--primary);
    transform: translateY(-1px);
}
.header-mail:active { transform: translateY(0); }
.header-mail-icon {
    font-size: var(--fs-sm);
    flex-shrink: 0;
    margin-top: 1px;
}
.header-mail-text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}
.header-mail-msg {
    color: var(--text-soft);
    font-weight: 500;
    line-height: 1.35;
    word-break: keep-all;
    font-size: var(--fs-2xs);
}
.header-mail-addr {
    color: var(--primary);
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: -0.01em;
    font-size: var(--fs-2xs);
}

@media (max-width: 380px) {
    .header-mail {
        padding: 6px 9px;
    }
    .header-mail-msg { font-size: var(--fs-3xs); }
    .header-mail-addr { font-size: var(--fs-3xs); }
}

.header-badge {
    background: white;
    border-radius: 8px;
    padding: 0.25rem 0.6rem;
    font-size: var(--fs-3xs);
    font-weight: 700;
    color: var(--primary);
    letter-spacing: 0.05em;
    box-shadow: var(--shadow-sm);
}


/* ===== V22q 카테고리 내비 (구 .print-gallery-* 대체) ===== */
/* sticky: 헤더 높이만큼 내려간 지점에 고정. --pr-header-h 는 JS(§2-6)가 세팅.
   데스크톱(헤더 sticky)=헤더높이 / 모바일(헤더 relative)=0 으로 자동 계산됨. */
.pr-catnav { background: var(--bg-card); border-bottom: 1px solid var(--line);
  position: sticky; top: var(--pr-header-h, 0px); z-index: 90; box-shadow: var(--shadow); }
.pr-catnav-inner { max-width: 1240px; margin: 0 auto; padding: .7rem 1rem .35rem; }
/* V22r 카드C③ .pr-catnav-head 안내문 제거됨 (요소 삭제) */

/* 1단 그룹 */
.pr-catnav-tier1 { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.pr-cn-g { appearance: none; border: 1px solid transparent; background: transparent; font-family: inherit;
  font-size: var(--fs-sm); font-weight: 700; color: var(--text-soft); letter-spacing: -.01em;
  padding: .5rem .95rem; border-radius: var(--radius-pill); cursor: pointer; white-space: nowrap;
  transition: background .16s ease, color .16s ease; }
.pr-cn-g:hover { color: var(--text); background: var(--bg-soft); }
.pr-cn-g.on { background: var(--primary); color: #fff; }
.pr-cn-g:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pr-cn-sep { width: 1px; height: 18px; background: var(--line); margin: 0 .15rem; }

/* 2단 상품 — 줄바꿈(전부 보임), 데스크톱/모바일 동일(방식 A) */
.pr-catnav-tier2 { display: flex; flex-wrap: wrap; gap: .1rem .2rem; padding: .5rem 0 .15rem;
  border-top: 1px solid var(--line-soft); margin-top: .5rem; }
.pr-cn-c { appearance: none; border: none; background: transparent; font-family: inherit; cursor: pointer;
  display: flex; flex-direction: column; gap: 1px; align-items: flex-start;
  padding: .45rem .7rem; border-radius: var(--radius); position: relative;
  transition: background .14s ease; animation: prCnRise .3s ease both; }
.pr-cn-c .t { font-size: var(--fs-sm); font-weight: 600; color: var(--text); letter-spacing: -.01em; white-space: nowrap; }
.pr-cn-c .s { font-size: var(--fs-3xs); color: var(--text-mute); white-space: nowrap; }
.pr-cn-c::after { content: ""; position: absolute; left: .7rem; right: .7rem; bottom: .28rem; height: 2px;
  background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .18s ease; border-radius: 2px; }
.pr-cn-c:hover { background: var(--bg-soft); }
.pr-cn-c:hover::after { transform: scaleX(1); }
.pr-cn-c:hover .t { color: var(--accent); }
.pr-cn-c:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
/* 작업카드 V: 2차 카테고리 선택 활성 상태(accent 강조 + 상시 밑줄). hover와 구분되되 조화. */
.pr-cn-c.on { background: var(--accent-soft); }
.pr-cn-c.on .t { color: var(--accent); font-weight: 700; }
.pr-cn-c.on .s { color: var(--accent-dark); }
.pr-cn-c.on::after { transform: scaleX(1); }
@keyframes prCnRise { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .pr-cn-c { animation: none; } }

/* 캐럿(모바일 전용 '상품 펼치기') — 데스크톱 숨김 */
.pr-cn-caret { display: none; border: none; background: transparent; font-family: inherit;
  font-size: var(--fs-2xs); color: var(--text-mute); cursor: pointer; padding: .3rem .4rem; margin-left: auto; align-self: center; }

/* ── 옵션2: 모바일에서 1단(그룹)만 고정, 2단은 스크롤 시 숨김 / 그룹·캐럿 탭 시 재노출 ── */
@media (max-width: 640px) {
  /* V22r 카드C④ 1단(그룹) 1줄 보장: 패딩·폰트 축소 + 구분선 숨김 + 캐럿은 compact일 때만 */
  .pr-catnav-inner { padding: .45rem .7rem .3rem; }          /* C⑥ 모바일 내비 패딩 축소 */
  .pr-catnav-tier1 { gap: .25rem; flex-wrap: wrap; }
  .pr-cn-g { font-size: var(--fs-sm); padding: .38rem .6rem; }
  .pr-cn-sep { display: none; }                              /* C④ 모바일 구분선 숨김(폭 확보) */
  .pr-cn-caret { display: none; }                            /* C④ 평소엔 숨김 */
  .pr-catnav.compact .pr-cn-caret { display: inline-block; } /* C④ compact일 때만 노출 */
  .pr-catnav.compact .pr-catnav-tier2 { display: none; }     /* 2단 숨김 → 폼 공간 확보 */
  .pr-catnav.compact.open .pr-catnav-tier2 { display: flex; } /* 그룹/캐럿 탭 → 2단 재노출 */
  .pr-catnav.compact .pr-catnav-tier1 { gap: .2rem; }
}

/* V22q 클릭 점프 가려짐 방지: sticky 스택(헤더+내비) 높이만큼 스크롤 목표에 여백 */
#v14-progress { scroll-margin-top: calc(var(--pr-header-h, 0px) + 96px); }

/* ============ V22s 카드E 모바일 햄버거+서랍 (PC는 전부 display:none = 픽셀 불변) ============ */
/* 햄버거 버튼: 기본(PC) 숨김 */
.pr-hb { display: none; align-items: center; justify-content: center; width: 40px; height: 40px;
  margin-left: -6px; padding: 0; border: none; background: transparent; color: #fff;   /* 픽스v2: 핑크 띠 위 흰 햄버거(PC 숨김, 모바일만) */
  cursor: pointer; border-radius: 8px; flex-shrink: 0; }
.pr-hb:hover { background: var(--bg-soft); }
.pr-hb:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

/* 백드롭 + 서랍: 기본(PC) 숨김. 모바일에서 display 부여 */
.pr-drawer-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.45);
  z-index: 1199; opacity: 0; pointer-events: none; transition: opacity .22s ease; }
.pr-drawer { display: none; position: fixed; top: 0; left: 0; bottom: 0; width: 84%; max-width: 320px;
  background: var(--bg-card); z-index: 1200; box-shadow: 2px 0 18px rgba(0,0,0,.18);
  transform: translateX(-100%); transition: transform .26s cubic-bezier(.4,0,.2,1);
  flex-direction: column; }
.pr-drawer-head { display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 1.1rem; border-bottom: 1px solid var(--line); flex-shrink: 0; }
.pr-drawer-title { font-size: var(--fs-base); font-weight: 700; color: var(--text); letter-spacing: -.01em; }
.pr-drawer-x { border: none; background: transparent; font-size: 1.2rem; line-height: 1; color: var(--text-soft);
  cursor: pointer; padding: .25rem .45rem; border-radius: 6px; }
.pr-drawer-x:hover { background: var(--bg-soft); color: var(--text); }
.pr-drawer-list { list-style: none; margin: 0; padding: .3rem 0; overflow-y: auto;
  -webkit-overflow-scrolling: touch; flex: 1; }
.pr-drawer-list li { margin: 0; }
.pr-dw-item { display: flex; align-items: center; gap: .7rem; width: 100%; text-align: left;
  border: none; background: transparent; font-family: inherit; cursor: pointer;
  padding: .8rem 1.1rem; color: var(--text); border-bottom: 1px solid var(--line-soft); }
.pr-dw-item:hover, .pr-dw-item:active { background: var(--bg-soft); }
.pr-dw-ic { display: inline-flex; color: var(--text-mute); flex-shrink: 0; }
.pr-dw-t { flex: 1; font-size: var(--fs-base); font-weight: 600; letter-spacing: -.01em; }
.pr-dw-ch { color: var(--text-mute); font-size: 1.1rem; line-height: 1; }

/* ── 모바일(≤640px) 전용: 햄버거 노출 · 2단 내비 숨김 · 헤더 한 줄 · 부제 숨김 ── */
@media (max-width: 640px) {
  .pr-hb { display: inline-flex; }                 /* 햄버거 표시 */
  .pr-drawer-backdrop.open { display: block; opacity: 1; pointer-events: auto; }
  .pr-drawer { display: flex; }                    /* 서랍 항상 렌더(화면밖) → .open 시 슬라이드 */
  .pr-drawer.open { transform: none; }
  #pr-catnav { display: none; }                    /* B-1 2단 내비 숨김 (DOM/JS 보존, PC는 표시) */
  .wm-sub { display: none; }                        /* B-2 부제 숨김 */
  .wm-main { font-size: 1.05rem; }                  /* B-2 컴팩트 */
  /* B-2 헤더(픽스v3): 1행=☰·로고·(여백)·장바구니 / 2행=문의하기·주문문의조회·카카오·네이버.
     #pr-userbar를 display:contents로 박스 해제 → 자식(로고·cart·문의·actions)이 .header-inner flex에 직접 참여.
     ::after(flex-basis:100%)로 1행 종료를 강제 → 버튼은 확실히 2행. JS 이동·#pr-userbar-actions id 보존. */
  .header-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 7px 12px; }
  #pr-userbar { display: contents; }
  .pr-userbar-inner { display: contents; }   /* 지시서v4: 래퍼도 해제 → 손주(로고·cart·문의·actions)가 .header-inner flex로 직접 참여(2행 레이아웃 유지) */
  #pr-hamburger { order: 1; }
  .pr-userbar-logo { order: 2; }
  .pr-userbar-logo img { height: 40px; }
  #hdr-cart { order: 3; margin-left: auto; color: #fff; }
  .header-inner::after { content: ''; order: 4; flex: 1 0 100%; height: 0; }   /* 1행 강제 종료 → 버튼 2행 */
  .pr-btn-inquiry { order: 5; }
  #pr-userbar-actions { order: 6; display: flex; justify-content: flex-end; align-items: center; gap: 5px; flex-wrap: wrap; }
  /* 헤더행에선 인사말·등급배지 숨김(공간 확보, 마이페이지서 확인) — 기존 유지 */
  #pr-userbar .pr-greeting,
  #pr-userbar #pr-userbar-actions > span[style*="background"] { display: none; }
  #pr-userbar .pr-btn { padding: 3px 7px; font-size: var(--fs-2xs); border-radius: 0; white-space: nowrap; }
}

/* =================== LAYOUT =================== */
.container {
    max-width: 480px;
    margin: 0 auto;
    padding: 1rem;
}

@media (min-width: 980px) {
    .container {
        max-width: 1240px;
        display: grid;
        grid-template-columns: 1.4fr 1fr;
        gap: 1rem;
        align-items: start;
        padding: 0.7rem 1rem;
    }
    
    /* 좌측 폼 영역 — 2열 카드 그리드 */
    .form-card-section {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem;
        align-content: start;
    }
    
    /* 카드 압축 */
    .form-card-section .card {
        padding: 0.65rem 0.8rem;
        margin-bottom: 0;
        border-radius: 8px;
    }
    
    /* 카드 타이틀 축소 */
    .form-card-section .card-title {
        font-size: var(--fs-xs);
        margin-bottom: 0.45rem;
        gap: 0.4rem;
    }
    .form-card-section .card-title-num {
        width: 18px;
        height: 18px;
        font-size: var(--fs-3xs);
    }
    
    /* 필드 간격 축소 */
    .form-card-section .field {
        margin-bottom: 0.5rem;
    }
    .form-card-section .field-name {
        font-size: var(--fs-2xs);
    }
    .form-card-section .field-hint {
        font-size: var(--fs-3xs);
    }
    .form-card-section .field-label {
        margin-bottom: 0.3rem;
    }
    
    /* chip 패딩 축소 */
    .form-card-section .chip label {
        padding: 0.4rem 0.35rem;
        font-size: var(--fs-2xs);
        min-height: 32px;
    }
    .form-card-section .size-chip label {
        padding: 0.3rem 0;
        min-height: 28px;
        font-size: var(--fs-3xs);
    }
    
    /* 셀렉트 / 입력 패딩 축소 */
    .form-card-section select {
        padding: 0.5rem 2rem 0.5rem 0.7rem;
        font-size: var(--fs-xs);
    }
    .form-card-section .number-input {
        height: 44px;          /* V21g: 데스크탑 ± 버튼 확대에 맞춰 행 높이 통일 */
        padding: 0 0.4rem;
    }
    .form-card-section .number-input input {
        font-size: var(--fs-base);
    }
    .form-card-section .number-stepper {
        width: 44px;           /* V21g: 28→44px (데스크탑 터치/클릭 타깃 확대) */
        height: 44px;          /* V21g: 36→44px */
        font-size: 1.15rem;
    }
    .form-card-section .number-suffix {
        font-size: var(--fs-2xs);
    }
    .form-card-section .number-quick button {
        padding: 0.5rem 0.7rem;
        font-size: var(--fs-xs);
        border-radius: 4px;
        min-height: 44px;
    }
    .form-card-section .number-quick {
        margin-top: 0.35rem;
        gap: 4px;
    }
    
    /* 표지 코팅 미니 UI 컴팩트 */
    .form-card-section .cover-coating-mini {
        padding: 0.5rem 0.7rem;
        margin-top: 0.6rem;
    }
    .form-card-section .mini-label {
        font-size: var(--fs-2xs);
    }
    .form-card-section .mini-chip span {
        padding: 0.35rem 0.55rem;
        font-size: var(--fs-2xs);
    }
    
    /* 표지 체크 라벨 컴팩트 */
    .form-card-section .check-item {
        padding: 0.55rem 0.75rem;
    }
    .form-card-section .check-label {
        font-size: var(--fs-xs);
    }
    .form-card-section .check-price {
        font-size: var(--fs-3xs);
    }
    
    /* 접지 방식 컴팩트 */
    .form-card-section .fold-style-row {
        margin-top: 0.6rem;
        padding-top: 0.6rem;
    }
    .form-card-section .fold-style-label {
        font-size: var(--fs-2xs);
        margin-bottom: 0.4rem;
    }
    .form-card-section .fold-chip span {
        padding: 0.4rem 0.4rem;
        font-size: var(--fs-2xs);
    }
    
    /* 자동 힌트 / 두께 컴팩트 */
    .form-card-section .auto-hint {
        padding: 0.45rem 0.65rem;
        font-size: var(--fs-3xs);
        margin-top: 0.4rem;
    }
    .form-card-section .thickness-info {
        padding: 0.5rem 0.7rem;
        margin-top: 0.4rem;
        font-size: var(--fs-2xs);
    }
    .form-card-section .thickness-info .thickness-value {
        font-size: var(--fs-sm);
    }
    .form-card-section .thickness-info .thickness-detail {
        font-size: var(--fs-3xs);
    }
    
    /* 헤더 컴팩트 */
    .header {
        padding: 0.55rem 1rem;
        position: relative;
    }
    /* V22r 카드C⑥ 헤더 내부 상하 패딩 축소 (이메일박스 제거 후 여백 정리) */
    .header-inner {
        padding: 0.5rem 1rem;
        gap: 0.55rem;
    }
    /* V22r 카드C⑤+⑥ 모바일 로고 추가 축소 */
    .rabbit-mascot {
        width: auto;
        height: 46px;
    }
    .header-title {
        font-size: var(--fs-base);
    }
    .header-subtitle {
        font-size: var(--fs-base);
    }
    .header-badge {
        font-size: var(--fs-3xs);
        padding: 0.2rem 0.5rem;
    }
    
    /* 푸터 - 컴팩트 표시 (사업자정보 의무) */
    .footer {
        padding: 1.2rem 1rem 0.85rem;
        font-size: var(--fs-3xs);
    }
    .footer-brand {
        margin-bottom: 0.7rem;
        padding-bottom: 0.6rem;
    }
    .footer-brand-name {
        font-size: var(--fs-xs);
    }
    .footer-tag {
        font-size: var(--fs-3xs);
    }
    .footer-info {
        gap: 0.2rem;
        margin-bottom: 0.6rem;
    }
    .footer-label {
        font-size: var(--fs-3xs);
    }
    .footer-row-mute {
        font-size: var(--fs-3xs);
    }
    .footer-copy {
        font-size: var(--fs-3xs);
        padding-top: 0.5rem;
    }
    
    body {
        padding-bottom: 0;
    }
    
    /* 데스크톱 - 주문 안내 컴팩트 */
    .order-info {
        max-width: 1240px;
        padding: 0 1rem;
        margin-top: 0.4rem;
    }
    .order-info-inner {
        padding: 0.7rem 1rem;
        margin-bottom: 0.4rem;
        display: grid;
        grid-template-columns: minmax(180px, 240px) minmax(220px, 280px) 1fr;
        gap: 0.85rem;
        align-items: center;
    }
    .order-info-top {
        margin-bottom: 0;
    }
    .order-info-icon {
        font-size: 1.1rem;
    }
    .order-info-title strong {
        font-size: var(--fs-xs);
    }
    .order-info-sub {
        font-size: var(--fs-3xs);
    }
    .order-info-mail {
        margin-bottom: 0;
        padding: 0.45rem 0.75rem;
    }
    .order-info-mail .mail-addr {
        font-size: var(--fs-xs);
    }
    .order-info-checklist {
        padding: 0.45rem 0.75rem;
    }
    .checklist-title {
        font-size: var(--fs-3xs);
        margin-bottom: 0.25rem;
    }
    /* 데스크톱은 체크리스트를 가로로 (한 줄에 2개씩) */
    .checklist-items {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.15rem 0.6rem;
    }
    .checklist-items span {
        font-size: var(--fs-3xs);
        line-height: 1.3;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    
    /* 데스크톱 - 주의사항 박스 컴팩트 + 가로 3열 */
    .order-info-warning {
        margin-top: 0.4rem;
        padding: 0.6rem 0.9rem;
    }
    .order-info-warning .warning-title {
        font-size: var(--fs-2xs);
        margin-bottom: 0.3rem;
    }
    .order-info-warning .warning-items {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 0.2rem 1rem;
    }
    .order-info-warning .warning-items li {
        font-size: var(--fs-3xs);
        line-height: 1.45;
    }
    
    /* 카드 1 (인쇄물 종류) — 6개 chip 위해 2칸 차지 */
    .form-card-section > .card:first-child {
        grid-column: 1 / -1;
    }
    
    /* V16.0c hotfix (2026-05-14) - 사장님 결정: 표지 흑백 제거로 컨텐츠 줄어 단일 컬럼 가능 */
    /* (이전 .cover-card { grid-column: 1/-1 } 룰 폐기) */
    
    /* 후가공 카드 — 만약 표시되면 2칸 */
    .form-card-section > #postprocess-section {
        grid-column: 1 / -1;
    }
    
    /* 견적 패널 컴팩트 */
    .quote-card {
        padding: 1rem;
        border-radius: 8px;
    }
    .quote-header-bar {
        margin-bottom: 0.75rem;
    }
    .quote-header-title {
        font-size: var(--fs-xs);
    }
    .staff-lock-btn {
        width: 26px;
        height: 26px;
        font-size: var(--fs-xs);
    }
    .spec-list {
        padding: 0.6rem 0.8rem;
        margin-bottom: 0.7rem;
    }
    .spec-item {
        padding: 0.25rem 0;
        font-size: var(--fs-2xs);
    }
    .total-block {
        padding: 0.85rem 1rem;
        border-radius: 8px;
    }
    .total-amount {
        font-size: 1.7rem;
    }
    .action-btns {
        margin-top: 0.7rem;
        gap: 6px;
    }
    .btn {
        padding: 0.65rem 0.9rem;
        font-size: var(--fs-sm);
    }
}

/* =================== ORDER INFO (헤더 직후 안내) =================== */
.order-info {
    max-width: 480px;
    margin: 0 auto;
    padding: 0 1rem;
}
.order-info-inner {
    background: #FFFFFF;
    border: 1px solid rgba(26, 31, 54, 0.25);
    border-radius: 8px;
    padding: 0.85rem 1rem;
    margin-bottom: 0.5rem;
}
.order-info-top {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.6rem;
}
.order-info-icon {
    font-size: 1.3rem;
}
.order-info-title {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    line-height: 1.3;
}
.order-info-title strong {
    font-size: var(--fs-sm);
    color: var(--text);
    font-weight: 700;
}
.order-info-sub {
    font-size: var(--fs-2xs);
    color: var(--text-soft);
}
.order-info-mail {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 0.75rem;
    background: white;
    border-radius: 8px;
    border: 1px solid var(--line);
    margin-bottom: 0.6rem;
}
.order-info-mail .mail-icon { font-size: var(--fs-sm); }
.order-info-mail .mail-addr {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--carrot);
    font-family: 'Pretendard', monospace;
    letter-spacing: 0.01em;
    user-select: all;
}
.order-info-checklist {
    padding: 0.5rem 0.75rem;
    background: rgba(255,255,255,0.6);
    border-radius: 8px;
}
.checklist-title {
    font-size: var(--fs-2xs);
    font-weight: 700;
    color: var(--text);
    margin-bottom: 0.35rem;
}
.checklist-items {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.checklist-items span {
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.4;
}
/* V11.63 접수기준일 안내 */
.checklist-note {
    margin-top: 0.45rem;
    padding-top: 0.4rem;
    border-top: 1px dashed rgba(0, 0, 0, 0.08);
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.5;
}
.checklist-note strong {
    color: var(--text);
    font-weight: 700;
}

/* 인쇄 시 주의사항 박스 - 회색 차분 톤 */
.order-info-warning {
    margin-top: 0.6rem;
    padding: 0.85rem 1rem;
    background: var(--bg-card);
    border-radius: 8px;
    border: 1px solid var(--line);
}

/* V14.0iii-PREVIEW3 - 파일 업로더 (R2 직접 업로드) */
.file-uploader {
    margin: 0.85rem 0;
    padding: 1rem 1rem 0.85rem;
    background: #fff;
    border: 1px solid #e5e0d8;
    border-radius: 10px;
}
/* V14.0iii-PREVIEW3 - 결제 단계용 (배경 투명) */
.checkout-section .file-uploader {
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
}
/* 결제 섹션 "선택" 배지 */
.checkout-section-optional {
    display: inline-block;
    background: #f4f1ec;
    color: #888;
    font-size: 0.65rem;
    font-weight: 500;
    padding: 1px 7px;
    border-radius: 4px;
    margin-left: 0.4rem;
    vertical-align: middle;
    letter-spacing: 0;
}
.file-uploader-header {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-bottom: 0.85rem;
}
.file-uploader-icon {
    font-size: 1.2rem;
    flex-shrink: 0;
}
.file-uploader-title {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: #2a2826;
    letter-spacing: -0.015em;
    margin-bottom: 0.2rem;
}
.file-uploader-badge {
    display: inline-block;
    background: #f4f1ec;
    color: #888;
    font-size: var(--fs-3xs);
    font-weight: 500;
    padding: 1px 6px;
    border-radius: 4px;
    margin-left: 0.3rem;
    vertical-align: middle;
}
.file-uploader-sub {
    font-size: var(--fs-2xs);
    color: #6b6660;
    line-height: 1.4;
}
.file-drop-zone {
    border: 2px dashed #d8d3ca;
    border-radius: 8px;
    padding: 1.4rem 1rem;
    text-align: center;
    background: #F6F3EC;
    transition: border-color 0.2s, background 0.2s;
    cursor: pointer;
}
.file-drop-zone:hover,
.file-drop-zone.dragover {
    border-color: #f2708f;
    background: var(--accent-soft);
}
.file-drop-text {
    font-size: var(--fs-sm);
    color: #6b6660;
    line-height: 1.7;
}
.file-drop-text strong {
    color: #2a2826;
    font-weight: 600;
}
.file-select-btn {
    display: inline-block;
    margin-top: 0.4rem;
    background: #2a2826;
    color: #fff;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 999px;
    font-size: var(--fs-xs);
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, transform 0.15s;
    font-family: inherit;
    letter-spacing: -0.01em;
}
.file-select-btn:hover {
    background: #f2708f;
}
.file-select-btn:active {
    transform: scale(0.97);
}
.file-list {
    margin-top: 0.7rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.file-list:empty {
    margin-top: 0;
}
.file-item {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.7rem 0.85rem;
    background: #F6F3EC;
    border: 1px solid #ebe6dd;
    border-radius: 6px;
    font-size: var(--fs-xs);
    color: #2a2826;
}
.file-item-icon {
    font-size: var(--fs-base);
    flex-shrink: 0;
}
.file-item-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}
.file-item-name {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.3;
}
.file-item-meta {
    font-size: var(--fs-2xs);
    color: #888;
    display: flex;
    gap: 0.5rem;
    align-items: center;
}
.file-item-status {
    font-weight: 600;
}
.file-item-status.uploading { color: #f2708f; }
.file-item-status.success { color: var(--status-success); }
.file-item-status.error { color: var(--status-danger); }
.file-item-progress {
    width: 100%;
    height: 3px;
    background: #ece8df;
    border-radius: 2px;
    overflow: hidden;
    margin-top: 0.25rem;
}
.file-item-progress-bar {
    height: 100%;
    background: #f2708f;
    transition: width 0.2s;
    width: 0%;
}
.file-item-remove {
    background: transparent;
    border: none;
    color: #aaa;
    font-size: var(--fs-base);
    cursor: pointer;
    padding: 0.2rem 0.45rem;
    border-radius: 4px;
    transition: background 0.15s, color 0.15s;
    line-height: 1;
    flex-shrink: 0;
}
.file-item-remove:hover {
    background: var(--status-danger-bg);
    color: var(--status-danger);
}
.file-uploader-note {
    margin-top: 0.7rem;
    font-size: var(--fs-2xs);
    color: #999;
    line-height: 1.5;
    text-align: center;
}

@media (max-width: 480px) {
    .file-drop-zone { padding: 1.1rem 0.7rem; }
    .file-drop-text { font-size: var(--fs-xs); }
    .file-uploader-header { gap: 0.55rem; }
}
.order-info-warning .warning-title {
    font-size: var(--fs-xs);
    font-weight: 700;
    color: #5a564f;
    margin-bottom: 0.45rem;
    letter-spacing: -0.01em;
}
.order-info-warning .warning-items {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.order-info-warning .warning-items li {
    position: relative;
    padding-left: 0.85rem;
    font-size: var(--fs-2xs);
    line-height: 1.55;
    color: #6b6760;
}
.order-info-warning .warning-items li::before {
    content: '•';
    position: absolute;
    left: 0.2rem;
    color: #9a9489;
    font-weight: 700;
}

/* =================== CARD =================== */
/* V14.0yy (B-4) + V14.0aaa - 카드 정제: 럭셔리 미니멀 (여백 풍부, 라운드 단정) */
.card {
    background: var(--bg-card);
    border-radius: 8px;
    padding: 1.75rem 1.5rem;
    margin-bottom: 1.75rem;
    box-shadow: var(--shadow-sm);
    transition: box-shadow 0.2s;
    /* 자동 스크롤 시 상단 여백 (헤더에 붙지 않게) */
    scroll-margin-top: 1rem;
}

.card-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--fs-base);
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 1.5rem;
    letter-spacing: -0.01em;
}

/* =================== 주문하기 버튼 + 안내 카드 =================== */
.btn-order {
    width: 100%;
    padding: 1.05rem 1rem;
    background: #1A1A17;
    color: white;
    border: none;
    border-radius: 4px;
    font-family: inherit;
    font-size: var(--fs-base);
    font-weight: 800;
    cursor: pointer;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    box-shadow: 0 2px 8px rgba(26,31,54,0.15);
    margin-top: 0.5rem;
    letter-spacing: -0.01em;
}
.btn-order:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(26, 31, 54, 0.45); }
.btn-order:active { transform: translateY(0); }
.btn-order:disabled {
    background: var(--text-mute);
    cursor: not-allowed;
    box-shadow: none;
    opacity: 0.6;
}

.order-notice {
    font-size: var(--fs-2xs);
    color: var(--text-mute);
    text-align: center;
    margin-top: 0.45rem;
    margin-bottom: 0.25rem;
    line-height: 1.4;
    word-break: keep-all;
}

.order-confirm-card {
    background: #FFFFFF;
    border: 2px solid var(--primary);
    border-radius: 8px;
    padding: 1.5rem 1.25rem;
    margin-top: 1rem;
    box-shadow: 0 8px 24px rgba(26, 31, 54, 0.15);
    scroll-margin-top: 1rem;
    animation: orderCardIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes orderCardIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   Card BK (2026-06-14) - 완료 화면 영수증화. receipt-on(app.js 안내카드 표시 지점에서
   #order-confirm-card에 부여) 하위에서만 동작. 롤백 = class 제거 → 현행 100% 원복.
   색 전부 2.0 토큰 · 종이톤 배경 + 절취선(점선) + 잉크 상단바 · 평면 원칙(찢긴 가장자리 등 미사용).
   ============================================================ */
.order-confirm-card.receipt-on {
    background: var(--bg-soft, #F5F2ED);           /* 종이 질감 */
    border: 1px solid var(--line);                  /* 굵은 테두리 → 헤어라인 */
    border-top: 3px solid var(--text);              /* 상단 잉크 바(영수증 머리) */
    box-shadow: 0 2px 8px rgba(26,26,23,0.08);      /* 그림자 절제 */
}
/* 절취선 강화: 섹션 사이 점선 구분 */
.order-confirm-card.receipt-on .order-section {
    border-top: 1px dashed var(--line);
    padding-top: 0.9rem;
}
.order-confirm-card.receipt-on .order-section:first-of-type { border-top: none; }
/* 기존 헤더 절취선(2px dashed)을 영수증 팔레트로 톤 정합 */
.order-confirm-card.receipt-on .order-success-header { border-bottom-color: var(--line); }
/* 주문번호 = 영수증 번호 느낌(모노·레터스페이싱) */
.order-confirm-card.receipt-on .order-success-no {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}
/* 사양 요약 = 영수증 품목 정렬(점선 리더, 해당 마크업 있을 때만 적용) */
.order-confirm-card.receipt-on .order-spec-box .summary-row {
    border-bottom: 1px dotted var(--line-soft, #F0EFE9);
    padding: 4px 0;
}
.order-success-header {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding-bottom: 1rem;
    border-bottom: 2px dashed rgba(26, 31, 54, 0.3);
    margin-bottom: 1.25rem;
}
.order-success-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    flex-shrink: 0;
    box-shadow: 0 4px 10px rgba(26, 31, 54, 0.35);
}
.order-success-title {
    font-size: var(--fs-md);
    font-weight: 800;
    color: var(--text);
    line-height: 1.3;
}
.order-success-no {
    font-size: var(--fs-xs);
    color: var(--text-soft);
    margin-top: 0.2rem;
    font-weight: 500;
}
.order-success-no span {
    color: var(--primary);
    font-weight: 700;
    letter-spacing: 0.02em;
}
.order-section { margin-bottom: 1.1rem; }
.order-section-title {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text);
    margin-bottom: 0.5rem;
}
.order-spec-box {
    background: white;
    border-radius: 8px;
    padding: 0.85rem 1rem;
    font-size: var(--fs-xs);
    line-height: 1.7;
    color: var(--text);
    border: 1px solid rgba(26, 31, 54, 0.15);
}
.order-spec-box .summary-row {
    display: flex;
    justify-content: space-between;
    padding: 0.15rem 0;
}
.order-spec-box .summary-key { color: var(--text-soft); font-weight: 500; }
.order-spec-box .summary-val { color: var(--text); font-weight: 600; text-align: right; }
.order-spec-box .total-row {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--line);
    font-weight: 700;
}
.order-spec-box .total-row .summary-val { color: var(--primary); font-size: 1rem; }
/* Phase 0-2a: 할인 행 강조 (절약 강조) — 폰트만, 색은 인라인 var() 유지 */
.order-spec-box .discount-row .summary-key,
.order-spec-box .discount-row .summary-val { font-size: var(--fs-sm); font-weight: 700; }

/* 다중 견적 - 항목별 표시 */
.multi-spec-item {
    padding: 0.55rem 0;
    border-bottom: 1px dashed var(--line);
}
.multi-spec-item:last-of-type { border-bottom: none; }
.multi-spec-head {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}
.multi-spec-no {
    background: var(--carrot);
    color: white;
    padding: 1px 7px;
    border-radius: 4px;
    font-size: var(--fs-2xs);
    font-weight: 700;
    flex-shrink: 0;
}
.multi-spec-cat {
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--text);
    flex: 1;
    min-width: 0;
    word-break: keep-all;
}
.multi-spec-price {
    font-size: var(--fs-xs);   /* Phase 0-2a: 항목별 가격 — 작게 */
    font-weight: 600;
    color: var(--primary);
    flex-shrink: 0;
}
.multi-spec-detail {
    margin-top: 0.25rem;
    margin-left: 1.5rem;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.5;
    word-break: keep-all;
}

/* 다중 견적 - 입력 중 표시 배지 */
.multi-badge {
    display: inline-block;
    background: var(--carrot);
    color: white;
    padding: 1px 7px;
    border-radius: 4px;
    font-size: var(--fs-3xs);
    font-weight: 700;
    margin-left: 0.4rem;
    vertical-align: middle;
}
.payment-list { display: flex; flex-direction: column; gap: 0.5rem; }
.payment-item {
    background: white;
    border-radius: 8px;
    padding: 0.7rem 0.85rem;
    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
    border: 1px solid rgba(26, 31, 54, 0.15);
}
.payment-num {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--carrot);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 0.1rem;
}
.payment-content { flex: 1; min-width: 0; }
.payment-name { font-size: 0.82rem; font-weight: 700; color: var(--text); margin-bottom: 0.2rem; }
.payment-detail { font-size: 0.74rem; line-height: 1.5; color: var(--text-soft); word-break: keep-all; }
.payment-note {
    display: block;
    margin-top: 0.4rem;
    padding: 0.35rem 0.55rem;
    background: rgba(26, 31, 54, 0.1);
    border-radius: 4px;
    font-size: 0.7rem;
    color: var(--carrot);
}
.payment-note strong { color: var(--primary); font-weight: 700; }
.placeholder-info {
    background: var(--bg-card);
    color: var(--status-warning);
    padding: 1px 6px;
    border-radius: 4px;
    font-weight: 600;
    font-size: var(--fs-2xs);
}
.schedule-box {
    background: white;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    font-size: var(--fs-sm);
    color: var(--text);
    border: 1px solid rgba(26, 31, 54, 0.15);
}
.schedule-box strong { color: var(--primary); font-weight: 800; }
.schedule-note { margin-top: 0.3rem; font-size: var(--fs-2xs); color: var(--text-soft); }
.schedule-hours {
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px dashed var(--line);
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.schedule-hours .hours-row {
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.4;
}
/* 디자인 포함 주문 일정 경고 */
.schedule-design-warn {
    margin-top: 0.55rem;
    padding: 0.55rem 0.75rem;
    background: var(--bg-card);
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    line-height: 1.55;
    color: var(--status-warning);
    word-break: keep-all;
}
.schedule-design-warn strong { color: var(--status-warning); font-weight: 700; }
.contact-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
}
.contact-btn {
    background: white;
    border: 1px solid rgba(26, 31, 54, 0.25);
    border-radius: 8px;
    padding: 0.85rem 0.65rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--text);
    cursor: pointer;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    font-family: inherit;
}
.contact-btn:hover {
    border-color: var(--primary);
    box-shadow: 0 2px 8px rgba(26, 31, 54, 0.15);
    transform: translateY(-1px);
}
.contact-btn:active { transform: translateY(0); }
.contact-btn-disabled {
    opacity: 0.55;
    background: var(--bg-soft);
}
.contact-btn-disabled:hover {
    opacity: 0.7;
    border-color: var(--line);
    box-shadow: none;
    transform: none;
}
.contact-icon { font-size: 1.1rem; flex-shrink: 0; }
.contact-text { font-size: var(--fs-xs); font-weight: 700; line-height: 1.3; text-align: left; }
.contact-text small {
    display: block;
    font-size: var(--fs-3xs);
    font-weight: 500;
    color: var(--text-soft);
    margin-top: 0.15rem;
}
/* 주문완료 빠른연락: 보조 역할 — 더 작고 연하게 (Card AF) */
.contact-grid.is-secondary { gap: 0.4rem; max-width: 460px; margin: 0 auto; }
.contact-grid.is-secondary .contact-icon { display: none; }
.contact-grid.is-secondary .contact-btn { padding: 0.55rem 0.7rem; background: var(--bg-soft); border-color: var(--line); justify-content: center; }
.contact-grid.is-secondary .contact-btn:hover { border-color: var(--text-soft); box-shadow: none; transform: none; }
.contact-grid.is-secondary .contact-text { font-size: var(--fs-2xs); color: var(--text-soft); text-align: center; }
.contact-grid.is-secondary .contact-text small { font-size: var(--fs-3xs); }
.email-status {
    margin: 0.75rem 0;
    padding: 0.6rem 0.85rem;
    border-radius: 8px;
    font-size: var(--fs-xs);
    text-align: center;
    display: none;
}
.email-status.success {
    display: block;
    background: var(--bg-card);
    color: var(--status-success);
    border: 1px solid var(--line);
}
.email-status.error {
    display: block;
    background: var(--bg-card);
    color: var(--status-warning);
    border: 1px solid var(--line);
}
.email-status.sending {
    display: block;
    background: #F0F0F8;
    color: var(--text-soft);
}
.btn-order-close {
    width: 100%;
    padding: 0.75rem;
    background: white;
    color: var(--text-soft);
    border: 1px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-sm);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    margin-top: 0.85rem;
}
.btn-order-close:hover { background: var(--bg-soft); color: var(--text); }

/* 네이버지도 링크 */
.map-link {
    display: inline-block;
    margin-top: 0.5rem;
    padding: 0.4rem 0.7rem;
    background: #03C75A;
    color: white;
    text-decoration: none;
    border-radius: 8px;
    font-size: var(--fs-2xs);
    font-weight: 700;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
}
.map-link:hover { transform: translateY(-1px); box-shadow: 0 2px 6px rgba(3,199,90,0.4); }

/* FAQ 섹션 */
.faq-section {
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
    margin: 0.85rem 0;
}
.faq-section > summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
    padding: 0.75rem 1rem;
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    position: relative;
}
.faq-section > summary::-webkit-details-marker { display: none; }
.faq-section > summary::marker { display: none; content: ''; }
.faq-section > summary::after {
    content: '▼';
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: var(--fs-2xs);
    color: var(--text-mute);
    transition: transform 0.2s;
}
.faq-section[open] > summary::after { transform: translateY(-50%) rotate(180deg); }
.faq-list {
    padding: 0 1rem 0.85rem;
    border-top: 1px dashed var(--line);
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-top: 0.4rem;
}
.faq-item {
    background: var(--bg-soft);
    border-radius: 8px;
    overflow: hidden;
}
.faq-item > summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
    padding: 0.6rem 0.85rem;
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--text);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    position: relative;
    padding-right: 2rem;
    line-height: 1.4;
}
.faq-item > summary::-webkit-details-marker { display: none; }
.faq-item > summary::marker { display: none; content: ''; }
.faq-item > summary::before {
    content: 'Q';
    color: var(--primary);
    font-weight: 800;
    margin-right: 0.4rem;
}
.faq-item > summary::after {
    content: '+';
    position: absolute;
    right: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: var(--fs-base);
    color: var(--text-mute);
    transition: transform 0.2s;
}
.faq-item[open] > summary::after { transform: translateY(-50%) rotate(45deg); }
.faq-answer {
    padding: 0 0.85rem 0.65rem 1.6rem;
    font-size: var(--fs-2xs);
    line-height: 1.7;
    color: var(--text-soft);
    word-break: keep-all;
    position: relative;
}
.faq-answer::before {
    content: 'A';
    position: absolute;
    left: 0.85rem;
    top: 0;
    color: var(--carrot);
    font-weight: 800;
    font-size: var(--fs-xs);
}
.faq-answer strong { color: var(--text); font-weight: 700; }

/* =================== 사양 확정 카드 =================== */
.confirm-card {
    background: #FFFFFF;
    border: 2px solid rgba(26, 31, 54, 0.25);
    scroll-margin-top: 1rem;
}
.confirm-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text);
}
.confirm-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 700;
}
.confirm-body {
    background: white;
    border-radius: 8px;
    padding: 0.85rem 1rem;
    margin-bottom: 0.85rem;
}
.confirm-summary {
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--text-soft);
    padding-bottom: 0.65rem;
    margin-bottom: 0.65rem;
    border-bottom: 1px dashed var(--line);
    word-break: keep-all;
}
.confirm-summary .summary-row {
    display: flex;
    justify-content: space-between;
    padding: 0.15rem 0;
}
.confirm-summary .summary-key {
    color: var(--text-soft);
    font-weight: 500;
}
.confirm-summary .summary-val {
    color: var(--text);
    font-weight: 600;
    text-align: right;
}
.confirm-summary .confirm-empty {
    color: var(--text-mute);
    font-style: italic;
}
.confirm-price-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.confirm-price-label {
    font-size: 0.8rem;
    color: var(--text-soft);
    font-weight: 600;
}
.confirm-price-value {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--primary);
    letter-spacing: -0.02em;
}
.btn-confirm {
    width: 100%;
    padding: 0.95rem 1rem;
    background: var(--primary);
    color: white;
    border: none;
    border-radius: 4px;
    font-family: inherit;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    box-shadow: 0 4px 12px rgba(26, 31, 54, 0.25);
}
.btn-confirm:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(26, 31, 54, 0.35);
}
.btn-confirm:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(26, 31, 54, 0.25);
}
.btn-confirm:disabled {
    background: var(--text-mute);
    cursor: not-allowed;
    box-shadow: none;
    opacity: 0.6;
}

/* 펼침/접힘 카드 (details 기반) - 모바일 호환성 강화 */
.card-collapsible {
    /* card 스타일 그대로 상속 */
    scroll-margin-top: 1rem;
}
.card-collapsible > summary.card-title {
    cursor: pointer;
    list-style: none;
    user-select: none;
    /* iOS Safari의 list-item display 강제 무효화 */
    display: flex;
    align-items: center;
    gap: 0.5rem;
    /* 모바일 터치 시 회색 하이라이트 제거 */
    -webkit-tap-highlight-color: transparent;
    /* iOS 더블탭 줌 방지 + 빠른 반응 */
    touch-action: manipulation;
    transition: margin 0.15s;
}
/* WebKit (Chrome, Safari, 안드로이드) 마커 제거 */
.card-collapsible > summary.card-title::-webkit-details-marker {
    display: none;
}
/* Firefox + 신형 Safari 마커 제거 */
.card-collapsible > summary.card-title::marker {
    display: none;
    content: '';
}
.card-collapsible:not([open]) > summary.card-title {
    margin-bottom: 0;
}
.card-collapsible .collapse-arrow {
    margin-left: auto;
    font-size: var(--fs-xs);
    color: var(--text-mute);
    transition: transform 0.2s, color 0.2s;
}
.card-collapsible[open] .collapse-arrow {
    transform: rotate(180deg);
    color: var(--primary);
}
/* 터치 디바이스에서 hover 효과 무시 */
@media (hover: hover) {
    .card-collapsible > summary.card-title:hover .collapse-arrow {
        color: var(--primary);
    }
}
/* 활성 상태(터치 중) 피드백 */
.card-collapsible > summary.card-title:active .collapse-arrow {
    color: var(--primary);
    transform: scale(0.9);
}

.card-title-emoji {
    font-size: 1.1rem;
}

.card-title-num {
    width: 22px;
    height: 22px;
    background: var(--bg-warm);
    color: var(--text);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-2xs);
    font-weight: 800;
}
/* V21N-13 - 카드 제목 번호 배지 전체 숨김(비연속 번호 정리, 순수 장식·기능 무관). 되돌리려면 이 규칙 제거 */
.card-title-num { display: none !important; }

/* =================== FIELDS =================== */
.field {
    margin-bottom: 1.1rem;
}
.field:last-child { margin-bottom: 0; }

.field-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.field-name {
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text);
}

.field-hint {
    font-size: var(--fs-2xs);
    color: var(--text-mute);
    font-weight: 500;
}

/* CHIP GROUP */
.chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.chip-row + .chip-row {
    margin-top: 0.5rem;
}

/* 카테고리 그룹 구분선 */
.category-divider {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.7rem 0 0.4rem;
    color: var(--text-mute);
    font-size: var(--fs-2xs);
    font-weight: 600;
}
.category-divider::before,
.category-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--line);
}
.category-divider span {
    padding: 0 0.3rem;
}

/* 대형 전용 카드 */
.large-only-card .field {
    margin-bottom: 0.85rem;
}

.large-banner-info {
    padding: 0.7rem 0.85rem;
    background: var(--bg-warm);
    border-radius: 8px;
    border: 1px solid var(--line);
    margin-bottom: 0.6rem;
}
.large-banner-info .info-row {
    font-size: var(--fs-xs);
    color: var(--text-soft);
    line-height: 1.6;
}
.large-banner-info .info-row strong {
    color: var(--text);
    font-weight: 700;
}
.large-banner-info .info-mute {
    color: var(--text-mute);
    font-size: var(--fs-2xs);
}

.large-notice {
    padding: 0.55rem 0.75rem;
    background: rgba(255,255,255,0.8);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.5;
    margin-top: 0.5rem;
}
.large-notice:empty { display: none; }
.large-notice strong {
    color: var(--primary);
}

/* 디지털다이컷 - 가로/세로 입력 */
.dimension-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.dimension-row input[type="number"] {
    flex: 1;
    padding: 0.55rem 0.7rem;
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-base);
    color: var(--text);
    outline: none;
    text-align: center;
    -moz-appearance: textfield;
}
.dimension-row input::-webkit-outer-spin-button,
.dimension-row input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.dimension-row input:focus {
    border-color: var(--primary);
    background: var(--bg-warm);
}
.dim-x {
    color: var(--text-mute);
    font-weight: 600;
    font-size: var(--fs-sm);
}
.dim-unit {
    color: var(--text-soft);
    font-size: var(--fs-xs);
    font-weight: 600;
    padding-left: 0.25rem;
}

/* 다이컷 미리보기 */
.diecut-preview {
    margin-top: 0.5rem;
    padding: 0.55rem 0.75rem;
    background: #FFFFFF;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.5;
}
.diecut-preview:empty { display: none; }
.diecut-preview strong {
    color: var(--carrot);
    font-weight: 700;
}
.diecut-preview .preview-error {
    color: var(--status-danger);
    font-weight: 600;
}

/* =================== 명함 / 인쇄No 카드 공통 =================== */
.card-spec-info {
    margin-bottom: 0.85rem;
    padding: 0.7rem 0.85rem;
    background: var(--bg-warm);
    border-radius: 8px;
    border: 1px solid var(--line);
}
.card-spec-info .spec-row {
    font-size: var(--fs-xs);
    color: var(--text-soft);
    line-height: 1.7;
}
.card-spec-info .spec-row strong {
    color: var(--text);
    font-weight: 700;
}
.card-spec-info .spec-row-note {
    margin-top: 0.4rem;
    padding-top: 0.4rem;
    border-top: 1px dashed var(--line);
    font-size: var(--fs-2xs);
    color: var(--carrot);
}
.card-spec-info .spec-row-note strong {
    color: var(--primary);
}

/* 구매확정 버튼 (다른 인쇄물 추가 옆) */
.btn-row-add {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
}
@media (max-width: 380px) {
    .btn-row-add {
        grid-template-columns: 1fr;
    }
}
.btn-finalize {
    width: 100%;
    padding: 1rem 1rem;
    background: linear-gradient(180deg, #2C3454 0%, #1A1A17 100%);
    color: white;
    border: none;
    border-radius: 10px;
    font-family: inherit;
    font-size: var(--fs-md);
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    box-shadow: 0 4px 14px rgba(26, 31, 54, 0.35), inset 0 1px 0 rgba(255,255,255,0.12);
    line-height: 1.3;
    word-break: keep-all;
    letter-spacing: 0.3px;
}
.btn-finalize:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(26, 31, 54, 0.5), inset 0 1px 0 rgba(255,255,255,0.16);
}
.btn-finalize:active { transform: translateY(0) scale(0.99); box-shadow: 0 3px 10px rgba(26, 31, 54, 0.3), inset 0 1px 0 rgba(255,255,255,0.08); }
.btn-finalize:disabled {
    background: var(--text-mute);
    cursor: not-allowed;
    box-shadow: none;
    opacity: 0.6;
}

/* 추가 후 add-btn 작게 */
.btn-row-add .btn-add {
    margin-bottom: 0;
    padding: 0.85rem 0.65rem;
    font-size: var(--fs-sm);
    line-height: 1.3;
    word-break: keep-all;
}

/* "+ 다른 인쇄물 추가" 버튼 안내 */
.add-btn-hint {
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    text-align: center;
    margin-top: 0.4rem;
    margin-bottom: 0.6rem;
    line-height: 1.5;
    padding: 0.55rem 0.7rem;
    background: rgba(26, 31, 54, 0.08);
    border-radius: 8px;
    word-break: keep-all;
}
/* SPEC checkout 신뢰 배지 (#finalize-btn 아래). 토큰만·별색 금지. --paper 미정의→--bg-soft 폴백 */
.pay-trust {
    font-size: var(--fs-xs);
    color: var(--text-soft);
    background: var(--paper, var(--bg-soft));
    text-align: center;
    padding: 8px 12px;
    margin-top: 8px;
    border-radius: 0;
}
.add-btn-hint strong {
    color: var(--carrot);
    font-weight: 700;
}

/* 디자인 의뢰 - 인쇄 통합 안내 */
.design-combo-info {
    background: #FFFFFF;
    border: 1px solid rgba(26, 31, 54, 0.2);
    border-radius: 8px;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
}
.design-combo-info .combo-line {
    font-size: var(--fs-sm);
    color: var(--text);
    margin-bottom: 0.5rem;
    font-weight: 600;
}
.design-combo-info .combo-steps {
    font-size: var(--fs-2xs);
    line-height: 1.7;
    color: var(--text-soft);
    word-break: keep-all;
}
.design-combo-info .step-num {
    display: inline-flex;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--carrot);
    color: white;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-3xs);
    font-weight: 700;
    margin: 0 2px 0 4px;
    vertical-align: middle;
}
.design-combo-info strong {
    color: var(--primary);
    font-weight: 700;
}

/* 디자인 의뢰 - 포트폴리오 / 의뢰 절차 */
.portfolio-info {
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
    margin-bottom: 1rem;
}
.portfolio-info > summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
    padding: 0.7rem 1rem;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    position: relative;
}
.portfolio-info > summary::-webkit-details-marker { display: none; }
.portfolio-info > summary::marker { display: none; content: ''; }
.portfolio-info > summary::after {
    content: '▼';
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: var(--fs-2xs);
    color: var(--text-mute);
    transition: transform 0.2s;
}
.portfolio-info[open] > summary::after { transform: translateY(-50%) rotate(180deg); }
.portfolio-inner {
    padding: 0 1rem 1rem;
    border-top: 1px dashed var(--line);
    margin-top: 0.4rem;
}
.portfolio-section { margin-top: 0.85rem; }
.portfolio-title {
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--text);
    margin-bottom: 0.45rem;
}
.portfolio-steps, .portfolio-notes {
    margin: 0;
    padding-left: 1.1rem;
    font-size: var(--fs-2xs);
    line-height: 1.7;
    color: var(--text-soft);
}
.portfolio-steps li, .portfolio-notes li { word-break: keep-all; }
.portfolio-coming .portfolio-placeholder {
    background: var(--bg-soft);
    border-radius: 8px;
    padding: 1rem 0.75rem;
    text-align: center;
    font-size: var(--fs-xs);
    color: var(--text-soft);
    line-height: 1.6;
}
.portfolio-coming .portfolio-placeholder small {
    font-size: var(--fs-2xs);
    color: var(--text-mute);
}

/* ============================================== */
/* 풀스크린 입력 모달 (다중 주문 시)              */
/* ============================================== */

/* wrapper: 일반 모드는 그대로, 모달 모드는 풀스크린 */
.form-modal-wrapper {
    position: relative;
}

/* 모달 헤더/푸터 - 일반 모드에서는 숨김 */
.form-modal-header,
.form-modal-footer {
    display: none;
}

/* 모달 모드 활성화 */
.form-modal-wrapper.modal-active {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: var(--bg);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    animation: modalSlideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
}
@keyframes modalSlideUp {
    from { transform: translateY(100%); opacity: 0.8; }
    to { transform: translateY(0); opacity: 1; }
}

/* 모달 헤더 표시 (modal-active일 때만) */
.form-modal-wrapper.modal-active .form-modal-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: white;
    border-bottom: 1px solid var(--line);
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}
.form-modal-close {
    width: 38px;
    height: 38px;
    border: none;
    background: var(--bg-soft);
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: var(--text);
    flex-shrink: 0;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
.form-modal-close:hover { background: var(--bg-warm); }
.form-modal-title {
    flex: 1;
    min-width: 0;
}
.form-modal-title-text {
    display: block;
    font-size: var(--fs-base);
    font-weight: 800;
    color: var(--text);
    line-height: 1.2;
}
.form-modal-subtitle {
    display: block;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    margin-top: 1px;
}
.form-modal-spacer {
    width: 38px;
    flex-shrink: 0;
}

/* 모달 본문 (form-card-section)을 스크롤 영역으로 */
.form-modal-wrapper.modal-active > section.form-card-section {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: 100px;  /* 푸터 가림 방지 */
}

/* 모달 모드일 때 사양 확정 카드 숨김 (대신 푸터 사용) */
.form-modal-wrapper.modal-active .confirm-card {
    display: none !important;
}

/* 모달 푸터 표시 (modal-active일 때만) */
.form-modal-wrapper.modal-active .form-modal-footer {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 0.5rem;
    padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom));
    background: white;
    border-top: 1px solid var(--line);
    position: sticky;
    bottom: 0;
    z-index: 10;
    box-shadow: 0 -2px 12px rgba(0,0,0,0.06);
}
.form-modal-btn {
    padding: 0.95rem 1rem;
    border: none;
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-sm);
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    letter-spacing: -0.01em;
}
.form-modal-btn-cancel {
    background: var(--bg-soft);
    color: var(--text-soft);
}
.form-modal-btn-cancel:hover { background: var(--bg-warm); color: var(--text); }
.form-modal-btn-add {
    background: #1A1A17;
    color: white;
    box-shadow: 0 4px 12px rgba(26, 31, 54, 0.3);
}
.form-modal-btn-add:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(26, 31, 54, 0.4);
}
.form-modal-btn-add:active { transform: translateY(0); }
.form-modal-btn-add:disabled {
    background: var(--text-mute);
    cursor: not-allowed;
    box-shadow: none;
    opacity: 0.6;
}

/* 모달 모드일 때 body 스크롤 잠금 */
body.modal-open {
    overflow: hidden;
}

/* V11.52 - PC에서 모달 콘텐츠 폭을 메인 페이지 좌측 폼 영역과 동일하게 (≈800px) */
@media (min-width: 980px) {
    .form-modal-wrapper.modal-active > .form-modal-header,
    .form-modal-wrapper.modal-active > section.form-card-section,
    .form-modal-wrapper.modal-active > .form-modal-footer {
        max-width: 800px;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
        box-sizing: border-box;
    }
}

/* ============================================== */
/* 플로팅 버튼 (Quick Actions)                    */
/* ============================================== */
.fab-container {
    position: fixed;
    right: 1rem;
    bottom: calc(1rem + env(safe-area-inset-bottom));
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    z-index: 100;
    pointer-events: none;
}
.fab-btn {
    pointer-events: auto;
    width: 48px;
    height: 48px;
    border: none;
    border-radius: 50%;
    background: white;
    color: var(--text);
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    opacity: 0;
    transform: scale(0.8);
    pointer-events: none;
}
.fab-btn.show {
    opacity: 1;
    transform: scale(1);
    pointer-events: auto;
}
.fab-btn:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 20px rgba(0,0,0,0.2);
}
.fab-btn:active { transform: scale(0.95); }

/* 주요 FAB - 누적 항목 보기 (있을 때만) */
.fab-cart {
    background: var(--text);
    color: white;
    width: 56px;
    height: 56px;
    position: relative;
    box-shadow: 0 4px 18px rgba(26, 31, 54, 0.4);
}
.fab-cart-icon {
    width: 26px;
    height: 26px;
    color: white;
}
.fab-cart-badge {
    position: absolute;
    top: -2px;
    right: -2px;
    background: var(--accent);
    color: white;
    font-size: 0.65rem;
    font-weight: 800;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    padding: 0 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid white;
    line-height: 1;
}

@media (min-width: 769px) {
    .fab-container {
        right: 1.5rem;
        bottom: 1.5rem;
    }
}

/* 입력 필드 오류 표시 (이메일 형식 등) */
.recipient-input input.input-error {
    border-color: var(--status-danger) !important;
    background: var(--bg-card) !important;
}
.recipient-details input.input-error {
    border-color: var(--status-danger) !important;
    background: var(--bg-card) !important;
}
.input-error-msg {
    font-size: var(--fs-2xs);
    color: var(--status-danger);
    margin-top: 4px;
    margin-bottom: 4px;
    padding: 4px 8px;
    background: var(--bg-card);
    border-radius: 4px;
    border: 1px solid var(--line);
    line-height: 1.4;
    word-break: keep-all;
}

/* ============================================== */
/* 가산금액 미리보기 (납기 변경 시 즉시 표시)        */
/* ============================================== */
.rush-preview {
    margin-top: 0.65rem;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.25s;
}
.rush-preview-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 0.85rem;
    font-size: var(--fs-sm);
    font-weight: 600;
}
/* 표준 일정 (가산 없음) */
#rush-preview-standard {
    background: #F5FAF6;
    border: 1px solid rgba(80,180,120,0.2);
    color: #2D7A4E;
}
.rush-preview-icon {
    font-size: var(--fs-base);
    flex-shrink: 0;
}
.rush-preview-text {
    flex: 1;
    word-break: keep-all;
}
/* 빠른 납기 (가산 발생) - 부드러운 안내 톤 */
.rush-preview-rush {
    background: var(--bg-soft);
    border: 1px solid var(--line);
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
    padding: 0.75rem 0.85rem;
    animation: rushFadeIn 0.25s ease-out;
}
@keyframes rushFadeIn {
    0% { opacity: 0; transform: translateY(-2px); }
    100% { opacity: 1; transform: translateY(0); }
}
.rush-preview-head {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}
.rush-preview-label {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.01em;
}
.rush-preview-amount-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.4rem 0.55rem;
    background: white;
    border-radius: 8px;
    border: 1px solid var(--line);
}
.rush-preview-amount-label {
    font-size: var(--fs-xs);
    color: var(--text-soft);
    font-weight: 500;
}
.rush-preview-amount {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.01em;
}

/* ============================================== */
/* 최종 결제 금액 (주문하기 버튼 위)                */
/* ============================================== */
.final-payment {
    background: white;
    border: 2px solid var(--primary);
    border-radius: 8px;
    padding: 1rem 1.1rem;
    margin-bottom: 1rem;
    box-shadow: 0 4px 14px rgba(26, 31, 54, 0.12);
}
.final-payment-title {
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 0.7rem;
    letter-spacing: -0.01em;
}
.final-payment-rows {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 0.65rem;
}
.final-payment-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.82rem;
    color: var(--text);
    padding: 0.25rem 0;
}
.final-payment-row.discount {
    color: #2D7A4E;
    font-weight: 700;
}
.final-payment-row.rush {
    color: var(--text);
    font-weight: 600;
}
.final-payment-row.shipping {
    color: var(--text-soft);
}
.final-payment-row-label {
    flex: 1;
    word-break: keep-all;
}
.final-payment-row-value {
    font-weight: 700;
    flex-shrink: 0;
}
.final-payment-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.7rem 0;
    border-top: 2px dashed var(--line);
    margin-top: 0.3rem;
}
.final-payment-total-label {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--text);
}
.final-payment-total-amount {
    font-size: 1.45rem;
    font-weight: var(--fw-bold);
    color: var(--primary);
    letter-spacing: -0.02em;
}

/* ============================================== */
/* 트러스트 시그널 - 안전 결제 배지                 */
/* ============================================== */
.trust-badge {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.85rem 0.95rem;
    background: #F5FAF6;
    border: 1.5px solid rgba(80,180,120,0.25);
    border-radius: 8px;
    margin-bottom: 0.85rem;
}
.trust-badge-icon {
    font-size: 1.5rem;
    line-height: 1;
    flex-shrink: 0;
    margin-top: 1px;
}
.trust-badge-content {
    flex: 1;
    min-width: 0;
    line-height: 1.45;
}
.trust-badge-title {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: #2D7A4E;
    margin-bottom: 3px;
}
.trust-badge-detail {
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    word-break: keep-all;
}
.trust-badge-detail strong {
    color: var(--text);
    font-weight: 700;
}

/* ============================================== */
/* 3단계 진행 표시 (담기 → 결제 → 완료)            */
/* ============================================== */
.progress-steps {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    padding: 0.85rem 0.5rem;
    margin-bottom: 0.85rem;
    background: #FFFFFF;
    border-radius: 8px;
}
.progress-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
    transition: all 0.3s;
}
.progress-step-circle {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: white;
    border: 2px solid var(--line);
    color: var(--text-mute);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-sm);
    font-weight: 800;
    transition: all 0.3s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.progress-step-label {
    font-size: var(--fs-2xs);
    font-weight: 600;
    color: var(--text-mute);
    transition: color 0.3s;
    letter-spacing: -0.02em;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.progress-step-label .step-icon {
    width: 14px;
    height: 14px;
    color: inherit;
    margin-bottom: 1px;
}
.progress-step.active .progress-step-label {
    font-weight: 800;
    font-size: var(--fs-xs);
}

/* 활성 단계 (현재 단계) */
.progress-step.active .progress-step-circle {
    background: #1A1A17;
    border-color: var(--primary);
    color: white;
    box-shadow: 0 4px 12px rgba(26, 31, 54, 0.35);
    transform: scale(1.1);
}
.progress-step.active .progress-step-label {
    color: var(--primary);
    font-weight: 800;
}

/* 완료 단계 */
.progress-step.done .progress-step-circle {
    background: var(--carrot);
    border-color: var(--carrot);
    color: white;
    box-shadow: 0 2px 8px rgba(26, 31, 54, 0.3);
}
.progress-step.done .progress-step-circle::before {
    content: '✓';
    font-size: var(--fs-base);
}
.progress-step.done .progress-step-circle {
    font-size: 0;  /* 숫자 숨기고 ✓만 표시 */
}
.progress-step.done .progress-step-label {
    color: var(--carrot);
    font-weight: 700;
}

/* 연결선 */
.progress-step-line {
    flex: 1;
    height: 2px;
    background: var(--line);
    border-radius: 4px;
    transition: background 0.3s;
    max-width: 60px;
    margin-bottom: 1.1rem;  /* circle과 align */
}
.progress-step-line.done {
    background: #1A1A17;
}

@media (max-width: 380px) {
    .progress-steps {
        padding: 0.65rem 0.3rem;
    }
    .progress-step-circle {
        width: 28px;
        height: 28px;
        font-size: var(--fs-xs);
    }
    .progress-step-label {
        font-size: var(--fs-3xs);
    }
    .progress-step-line {
        max-width: 40px;
    }
}

/* ============================================== */
/* 2단계 구조 - 담기/결제 분리                    */
/* ============================================== */
.stage-section {
    transition: opacity 0.25s;
}

/* V14.0ccc - 결제 모드 헤더: 검정 배경 (Apple Pay 톤, Rachel Park ex-Apple 권장) */
.checkout-header {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 1rem 1.25rem;
    background: #1A1A17;
    border: none;
    border-radius: 8px;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 16px rgba(26, 31, 54, 0.18);
}
.checkout-back-btn {
    flex-shrink: 0;
    padding: 0.5rem 0.75rem;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 4px;
    color: #FFFFFF;
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    word-break: keep-all;
}
.checkout-back-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: #FFFFFF;
    transform: translateX(-2px);
}
.checkout-step-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.checkout-step-badge {
    display: inline-block;
    width: fit-content;
    background: var(--accent);
    color: white;
    font-size: 0.62rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 4px;
    letter-spacing: 0.04em;
}
.checkout-step-text {
    font-size: 0.92rem;
    font-weight: 700;
    color: #FFFFFF;
    letter-spacing: -0.01em;
}

/* 담은 항목 요약 (결제 화면 상단) */
.checkout-summary {
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 1rem;
    box-shadow: var(--shadow-sm);
}
.checkout-summary-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 0.65rem;
}
.checkout-summary-list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 0.65rem;
}
.checkout-summary-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.55rem;
    background: var(--bg-soft);
    border-radius: 8px;
    font-size: 0.78rem;
    line-height: 1.4;
}
.checkout-summary-item-no {
    background: var(--primary);
    color: white;
    font-size: 0.62rem;
    font-weight: 800;
    padding: 1px 6px;
    border-radius: 4px;
    flex-shrink: 0;
}
.checkout-summary-item-text {
    flex: 1;
    min-width: 0;
    color: var(--text);
    word-break: keep-all;
    line-height: 1.3;
}
.checkout-summary-item-price {
    font-weight: 700;
    color: var(--primary);
    flex-shrink: 0;
    font-size: 0.8rem;
}
.checkout-summary-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.65rem;
    border-top: 1px dashed var(--line);
    font-weight: 700;
}
.checkout-summary-total span:first-child {
    color: var(--text);
    font-size: 0.92rem;
}
.checkout-summary-total span:last-child {
    color: var(--primary);
    font-size: 1.1rem;
    font-weight: 800;
}

/* 결제 모드 섹션 */
.checkout-section {
    margin-bottom: 1.1rem;
}
.checkout-section-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 0.55rem;
    padding-left: 0.2rem;
}

/* ============================================== */
/* 미니 장바구니 패널 (담은 항목 빠른 보기)        */
/* ============================================== */
.cart-panel-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0);
    z-index: 200;
    pointer-events: none;
    transition: background 0.3s;
}
.cart-panel-overlay.show {
    pointer-events: auto;
    background: rgba(0,0,0,0.45);
}

.cart-panel {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: min(420px, 90vw);
    background: var(--bg);
    box-shadow: -8px 0 24px rgba(0,0,0,0.15);
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
    -webkit-overflow-scrolling: touch;
}
.cart-panel-overlay.show .cart-panel {
    transform: translateX(0);
}

@media (max-width: 480px) {
    .cart-panel {
        width: 100%;
    }
}

/* 헤더 */
.cart-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
    background: white;
    border-bottom: 1px solid var(--line);
    flex-shrink: 0;
}
.cart-panel-title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--text);
    line-height: 1.2;
}
.cart-panel-subtitle {
    font-size: 0.78rem;
    color: var(--text-soft);
    margin-top: 2px;
}
.cart-panel-close {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--bg-soft);
    color: var(--text);
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.3rem;
    line-height: 1;
    flex-shrink: 0;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
.cart-panel-close:hover { background: var(--bg-warm); }

/* 본문 */
.cart-panel-body {
    flex: 1;
    overflow-y: auto;
    padding: 0.85rem 1rem;
}
.cart-empty {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--text-mute);
    font-size: 0.85rem;
}
.cart-empty-icon {
    font-size: 2.5rem;
    display: block;
    margin-bottom: 0.5rem;
    opacity: 0.5;
}

/* 항목 */
.cart-item {
    background: white;
    border-radius: 8px;
    padding: 0.75rem 0.85rem;
    margin-bottom: 0.5rem;
    box-shadow: var(--shadow-sm);
    position: relative;
    transition: all 0.15s;
}
.cart-item:hover { box-shadow: var(--shadow); }

.cart-item-head {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.3rem;
}
.cart-item-no {
    background: var(--primary);
    color: white;
    font-size: 0.62rem;
    font-weight: 800;
    padding: 1px 6px;
    border-radius: 4px;
    flex-shrink: 0;
}
.cart-item-cat {
    flex: 1;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text);
    word-break: keep-all;
    line-height: 1.3;
}
.cart-item-remove {
    width: 26px;
    height: 26px;
    border: none;
    background: var(--bg-soft);
    color: var(--text-soft);
    border-radius: 50%;
    cursor: pointer;
    font-size: 0.95rem;
    line-height: 1;
    flex-shrink: 0;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
.cart-item-remove:hover {
    background: var(--status-danger-bg);
    color: var(--primary);
}
.cart-item-spec {
    font-size: 0.7rem;
    color: var(--text-soft);
    line-height: 1.5;
    margin-bottom: 0.35rem;
    margin-left: 0;
    word-break: keep-all;
}
.cart-item-price {
    font-size: 0.92rem;
    font-weight: 800;
    color: var(--primary);
    text-align: right;
}

/* 푸터 */
.cart-panel-footer {
    border-top: 1px solid var(--line);
    background: white;
    padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom));
    flex-shrink: 0;
}
.cart-panel-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    margin-bottom: 0.65rem;
    border-bottom: 1px dashed var(--line);
}
.cart-panel-total-label {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text);
}
.cart-panel-total-amount {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--primary);
}
.cart-panel-actions {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 0.5rem;
}
.cart-panel-btn {
    padding: 0.85rem 0.65rem;
    border: none;
    border-radius: 8px;
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    line-height: 1.3;
    word-break: keep-all;
}
.cart-panel-btn-add {
    background: var(--bg-soft);
    color: var(--text);
}
.cart-panel-btn-add:hover { background: var(--bg-warm); }
.cart-panel-btn-confirm {
    background: #1A1A17;
    color: white;
    box-shadow: 0 4px 10px rgba(26, 31, 54, 0.3);
}
.cart-panel-btn-confirm:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(26, 31, 54, 0.4);
}
.cart-panel-btn-confirm:active { transform: translateY(0); }

/* 카테고리별 추천 용지 가이드 */
.paper-recommendation {
    background: #FFF8FA;
    border: 1px solid rgba(26, 31, 54, 0.2);
    border-radius: 8px;
    padding: 0.6rem 0.85rem;
    margin-bottom: 0.85rem;
    font-size: var(--fs-2xs);
    line-height: 1.5;
    color: var(--text-soft);
    word-break: keep-all;
}
.paper-recommendation strong { color: var(--primary); font-weight: 700; }

/* 결정 가이드 (인쇄No 카테고리 선택 가이드) */
.bindonly-guide {
    background: #FFFFFF;
    border: 1px solid rgba(26, 31, 54, 0.25);
    border-radius: 8px;
    padding: 0.85rem 1rem;
    margin-top: 0.85rem;
    margin-bottom: 0.5rem;
}
.bindonly-guide .guide-title {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text);
    margin-bottom: 0.55rem;
}
.bindonly-guide .guide-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.bindonly-guide .guide-item {
    background: white;
    border-radius: 8px;
    padding: 0.5rem 0.7rem;
    font-size: var(--fs-2xs);
    line-height: 1.5;
    color: var(--text-soft);
    word-break: keep-all;
}
.bindonly-guide .guide-q { display: block; }
.bindonly-guide .guide-a {
    display: block;
    color: var(--text);
    margin-top: 2px;
}
.bindonly-guide .guide-a strong { color: var(--primary); }

/* 인쇄No - 안내사항 펼침/접힘 */
.bindonly-notice {
    margin-top: 0.7rem;
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
}
.bindonly-notice summary {
    padding: 0.65rem 0.85rem;
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--primary);
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: background 0.15s;
}
.bindonly-notice summary::-webkit-details-marker { display: none; }
.bindonly-notice summary::after {
    content: '▼';
    float: right;
    font-size: var(--fs-3xs);
    color: var(--text-mute);
    transition: transform 0.2s;
    margin-top: 0.1rem;
}
.bindonly-notice[open] summary::after { transform: rotate(180deg); }
.bindonly-notice summary:hover { background: var(--bg-warm); }
.bindonly-notice-inner {
    padding: 0.7rem 0.9rem 0.85rem;
    border-top: 1px solid var(--line);
    background: #f9f8f6;
}
.bindonly-notice-inner ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.bindonly-notice-inner li {
    position: relative;
    padding-left: 0.85rem;
    font-size: var(--fs-2xs);
    line-height: 1.55;
    color: #6b6760;
}
.bindonly-notice-inner li::before {
    content: '•';
    position: absolute;
    left: 0.2rem;
    color: #9a9489;
    font-weight: 700;
}
.bindonly-notice-inner li strong {
    color: var(--primary);
    font-weight: 700;
}

/* =================== 디자인 의뢰 카드 =================== */

/* 통합 펼치기 박스 */
.design-details {
    margin-top: 0.7rem;
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
}
.design-details summary {
    padding: 0.7rem 0.9rem;
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--primary);
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: background 0.15s;
}
.design-details summary::-webkit-details-marker {
    display: none;
}
.design-details summary::after {
    content: '▼';
    float: right;
    font-size: var(--fs-3xs);
    color: var(--text-mute);
    transition: transform 0.2s;
}
.design-details[open] summary::after {
    transform: rotate(180deg);
}
.design-details summary:hover {
    background: var(--bg-warm);
}
.design-details-inner {
    padding: 0.7rem 0.9rem 0.85rem;
    border-top: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

/* 섹션 블록 (안내사항 / 작업 흐름) */
.design-section-block {
    background: #f9f8f6;
    border-radius: 8px;
    padding: 0.7rem 0.85rem;
}
.design-section-title {
    font-size: var(--fs-2xs);
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 0.5rem;
    letter-spacing: -0.01em;
}

/* 안내사항 리스트 */
.design-notice-items {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.design-notice-items li {
    position: relative;
    padding-left: 0.85rem;
    font-size: var(--fs-2xs);
    line-height: 1.55;
    color: #6b6760;
}
.design-notice-items li::before {
    content: '•';
    position: absolute;
    left: 0.2rem;
    color: #9a9489;
    font-weight: 700;
}

/* Work Process 단계 */
.process-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.process-step {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 0.5rem;
    align-items: start;
    font-size: var(--fs-2xs);
    line-height: 1.55;
    color: var(--text-soft);
    padding-bottom: 0.5rem;
    border-bottom: 1px dashed var(--line);
}
.process-step:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
.process-step .step-num {
    font-weight: 700;
    color: var(--primary);
    font-size: var(--fs-2xs);
    letter-spacing: -0.01em;
}
.process-step .step-desc {
    color: var(--text-soft);
}
.process-step .step-desc strong {
    color: var(--primary);
    font-weight: 700;
}
.process-step .step-desc em {
    color: var(--text-mute);
    font-style: normal;
    font-size: var(--fs-2xs);
}

.chip {
    flex: 1 1 calc(50% - 6px);
    min-width: 0;
    position: relative;
}

@media (min-width: 480px) {
    .chip-row.three-col .chip { flex: 1 1 calc(33.333% - 6px); }
    .chip-row.two-col .chip { flex: 1 1 calc(50% - 3px); }
}

.chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.chip label {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.85rem 0.5rem;
    background: var(--bg-card);   /* Phase 1-1: 데모 톤 — 흰 카드 */
    border: 1.5px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text-soft);
    transition: all 0.15s ease;
    text-align: center;
    user-select: none;
    line-height: 1.2;
    min-height: 44px;
    height: 100%;
    box-sizing: border-box;
    gap: 4px;
}
/* V14.0bbb - 카테고리 라인 SVG 아이콘 */
.cat-icon {
    width: 24px;
    height: 24px;
    color: var(--text-soft);
    margin-bottom: 0.35rem;
    flex-shrink: 0;
    transition: color 0.15s ease;
}
.chip:hover .cat-icon { color: var(--text); }
.chip input:checked + label .cat-icon { color: white; }

.chip label .chip-hint {
    font-size: var(--fs-3xs);
    font-weight: 500;
    color: var(--text-mute);
    line-height: 1.3;
    word-break: keep-all;
}
.chip input:checked + label .chip-hint {
    color: rgba(255,255,255,0.85);
}

.chip label:active { transform: scale(0.97); }
.chip label:hover { background: var(--bg-warm); color: var(--text); border-color: var(--accent); }   /* Phase 1-1: hover 시 버밀리언 테두리(pnu처럼) */

.chip input:checked + label {
    background: var(--primary);   /* Phase 1-1: 선택 = 잉크 (회색 아님) */
    color: white;
    border-color: var(--primary);
    box-shadow: none;
}

/* SIZE GRID — 7개 */
.size-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.size-chip { 
    position: relative; 
    flex: 1 1 calc(14.28% - 5px);
    min-width: 50px;
}
.size-chip input { position: absolute; opacity: 0; }
.size-chip label {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 0;
    background: var(--bg-card);   /* Phase 1-1: 데모 톤 — 흰 카드 */
    border: 1.5px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
    font-size: var(--fs-2xs);
    font-weight: 700;
    color: var(--text-soft);
    transition: all 0.15s;
    min-height: 38px;
}
.size-chip label:active { transform: scale(0.96); }
.size-chip label:hover { border-color: var(--accent); }   /* Phase 1-1: hover 버밀리언 테두리 */
.size-chip input:checked + label {
    background: var(--primary);   /* Phase 1-1: 선택 = 잉크 (회색 carrot 아님) */
    color: white;
    border-color: var(--primary);
    box-shadow: none;
}

/* 숨김 처리된 규격 (중철 시 A3/B4) */
.size-chip.hidden {
    display: none;
}

/* SELECT */
.select-wrap {
    position: relative;
}

select {
    width: 100%;
    padding: 0.85rem 2.5rem 0.85rem 1rem;
    background: var(--bg-card);   /* Phase 1-1: 데모 톤 — 흰 카드 + 라인 테두리 */
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font-family: inherit;
    font-size: var(--fs-base);
    font-weight: 600;
    color: var(--text);
    appearance: none;
    cursor: pointer;
    transition: all 0.15s;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231A1A17' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
}

select:focus {
    outline: none;
    background-color: var(--bg-warm);
    border-color: var(--primary);
}

select:disabled {
    color: var(--text-mute);
    background-color: var(--bg-soft);
    cursor: not-allowed;
    opacity: 0.6;
}

/* NUMBER INPUT */
.number-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}

.number-stepper {
    width: 36px;
    height: 48px;
    border: 1.5px solid var(--line);   /* Phase 1-1: 데모 톤 — 흰 카드 + 라인 (width/height 불변, box-sizing:border-box) */
    background: var(--bg-card);
    border-radius: 10px;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--primary);
    cursor: pointer;
    transition: all 0.15s;
    flex-shrink: 0;
}

.number-stepper:active { transform: scale(0.94); }
.number-stepper:hover { background: var(--bg-soft); border-color: var(--accent); }   /* Phase 1-1: hover 페이퍼톤 + 버밀리언 테두리 */

.number-input {
    flex: 1;
    display: flex;
    align-items: center;
    background: var(--bg-soft);
    border-radius: 8px;
    padding: 0 0.8rem;
    height: 48px;
}

.number-input input {
    flex: 1;
    background: transparent;
    border: none;
    font-family: inherit;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--text);
    outline: none;
    text-align: center;
    -moz-appearance: textfield;
    width: 100%;
    min-width: 0;
}

.number-input input::-webkit-outer-spin-button,
.number-input input::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

.number-suffix {
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text-soft);
    flex-shrink: 0;
}

.number-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 0.6rem;
}

.number-quick button {
    padding: 0.6rem 0.85rem;
    background: white;
    border: 1.5px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text-soft);
    cursor: pointer;
    transition: all 0.15s;
    min-height: 44px;
}

.number-quick button:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.number-quick button:active { transform: scale(0.95); }

/* CHECKBOX (후가공) */
.checkbox-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.check-item {
    display: flex;
    align-items: center;
    padding: 0.75rem 0.9rem;
    background: var(--bg-soft);
    border: 1.5px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    gap: 0.6rem;
}

.check-item:hover { background: var(--bg-warm); }
.check-item:active { transform: scale(0.99); }

.check-item input {
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
    flex-shrink: 0;
}

.check-item:has(input:checked) {
    background: var(--bg-warm);
    border-color: var(--primary);
}

.check-label {
    flex: 1;
    font-size: var(--fs-sm);
    font-weight: 500;
}

.check-item:has(input:checked) .check-label { font-weight: 700; }

.check-price {
    font-size: var(--fs-2xs);
    color: var(--text-mute);
    font-weight: 500;
}
/* V21N-13 - 표지 필수 포함 고정 안내 (체크박스 토글 대신 정적 표시) */
.check-item-locked {
    cursor: default;
}
.check-item-locked:hover { background: var(--bg-warm); }
.check-item-locked:active { transform: none; }
.cover-fixed-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--primary);
    color: #fff;
    border-radius: 5px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

/* BINDING ROW */
.binding-row {
    display: none;
}
.binding-row.active { display: block; }

/* COPIES + PAGES ROW (제본 카테고리만 표시) */
.copies-row,
.pages-row {
    display: none;
    padding-bottom: 1.1rem;
    border-bottom: 1px dashed var(--line);
    margin-bottom: 1.1rem;
}
.copies-row.active,
.pages-row.active {
    display: block;
}

/* COVER CARD (중철/무선 제본만 표시) */
.cover-card {
    display: none;
}
.cover-card.active {
    display: block;
}

/* 표지 옵션 영역 (체크박스 OFF 시 숨김) */
#cover-options {
    transition: opacity 0.2s;
}
.cover-card:has(#cover-enabled:not(:checked)) #cover-options {
    display: none;
}

/* 표지 코팅 미니 UI */
.cover-coating-mini {
    margin-top: 1rem;
    padding: 0.75rem 0.9rem;
    background: var(--bg-soft);
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

/* 접지 방식 선택 (리플렛만) */
.fold-style-row {
    display: none;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px dashed var(--line);
}
.fold-style-row.active {
    display: block;
}
.fold-style-label {
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text);
    margin-bottom: 0.6rem;
}
.fold-chips {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.fold-chip {
    flex: 1 1 calc(33.333% - 6px);
    min-width: 90px;
    position: relative;
    cursor: pointer;
}
.fold-chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.fold-chip span {
    display: block;
    padding: 0.55rem 0.5rem;
    text-align: center;
    background: var(--bg-soft);
    border: 1.5px solid transparent;
    border-radius: 8px;
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--text-soft);
    transition: all 0.15s;
}
.fold-chip:active span { transform: scale(0.97); }
.fold-chip:hover span { background: var(--bg-warm); color: var(--text); }
.fold-chip input:checked + span {
    background: var(--carrot);
    color: white;
    border-color: var(--carrot);
    box-shadow: 0 4px 12px rgba(26, 31, 54, 0.2);
}

.mini-label {
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--text);
    flex-shrink: 0;
}

.mini-chips {
    display: flex;
    gap: 4px;
    flex: 1;
    justify-content: flex-end;
}

.mini-chip {
    position: relative;
    cursor: pointer;
}

.mini-chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.mini-chip span {
    display: inline-block;
    padding: 0.35rem 0.7rem;
    background: white;
    border: 1.5px solid var(--line);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    font-weight: 600;
    color: var(--text-soft);
    transition: all 0.15s;
}

.mini-chip:active span { transform: scale(0.95); }
.mini-chip:hover span { border-color: var(--primary); color: var(--primary); }

.mini-chip input:checked + span {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
}

/* 매수 필드 (제본 시 숨김) */
#quantity-field.hidden {
    display: none;
}

/* 자동 계산 힌트 */
.auto-hint {
    margin-top: 0.5rem;
    padding: 0.55rem 0.75rem;
    background: var(--bg-warm);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    color: var(--primary-dark);
    font-weight: 500;
    line-height: 1.5;
}
.auto-hint .auto-num {
    font-weight: 700;
    color: var(--primary);
    font-variant-numeric: tabular-nums;
}

/* 두께 미리보기 */
.thickness-info {
    margin-top: 0.5rem;
    padding: 0.7rem 0.9rem;
    background: #FFFFFF;
    border: 1px solid var(--line);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: var(--fs-xs);
    color: var(--text);
}
.thickness-info .thickness-label {
    font-weight: 600;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.thickness-info .thickness-value {
    font-weight: 800;
    color: var(--carrot);
    font-variant-numeric: tabular-nums;
    font-size: var(--fs-base);
}
.thickness-info .thickness-detail {
    font-size: var(--fs-2xs);
    color: var(--text-mute);
    font-weight: 500;
}

/* =================== QUOTE PANEL =================== */

.quote-section {
    margin-top: 1rem;
}

@media (min-width: 980px) {
    .quote-section {
        margin-top: 0;
        position: sticky;
        top: 100px;
        max-height: calc(100vh - 120px);
        overflow-y: auto;
    }
}

.quote-card {
    background: #FFFFFF;
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: var(--shadow-lg);
    position: relative;
    overflow: hidden;
}

.quote-card::before {
    content: '';
    position: absolute;
    top: -30px;
    right: -30px;
    width: 100px;
    height: 100px;
    background: transparent;
    border-radius: 50%;
}

.quote-header-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.25rem;
}

.quote-header-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--fs-sm);
    font-weight: 800;
    color: var(--navy);
}

.quote-header-emoji {
    font-size: 1.1rem;
}

.staff-lock-btn {
    width: 30px;
    height: 30px;
    background: var(--bg-soft);
    border: 1px solid var(--line);
    border-radius: 50%;
    font-size: var(--fs-sm);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: all 0.15s;
    color: var(--text-soft);
    position: relative;
    z-index: 10;
    pointer-events: auto;
    user-select: none;
    -webkit-tap-highlight-color: rgba(26, 31, 54, 0.2);
}
.staff-lock-btn:hover {
    background: var(--bg-warm);
    border-color: var(--primary);
}
.staff-mode .staff-lock-btn {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
}

/* SPEC LIST */
.spec-list {
    background: white;
    border-radius: 8px;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
    box-shadow: var(--shadow-sm);
}

/* 받는 분 입력 */
.recipient-input {
    margin-bottom: 0.75rem;
}
.recipient-input input {
    width: 100%;
    padding: 0.65rem 0.85rem;
    background: white;
    border: 1.5px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-base);
    color: var(--text);
    outline: none;
    transition: all 0.15s;
}
.recipient-input input:focus {
    border-color: var(--primary);
    background: var(--bg-warm);
}
.recipient-input input::placeholder {
    color: var(--text-mute);
    font-size: var(--fs-sm);
}
/* 연락처 - 필수 입력 강조 */
.recipient-input #recipient-name {
    border-color: rgba(26, 31, 54, 0.35);
    background: #FFFFFF;
}
.recipient-input #recipient-name:focus {
    border-color: var(--primary);
    background: var(--bg-warm);
}
.recipient-input #recipient-name::placeholder {
    color: var(--primary);
    font-weight: 600;
}
.recipient-input #recipient-name:not(:placeholder-shown) {
    border-color: var(--line);
    background: white;
}
.recipient-input #recipient-name + #recipient-phone {
    margin-top: 0.45rem;
    border-color: rgba(26, 31, 54, 0.35);
    background: #FFFFFF;
}
.recipient-input #recipient-phone:focus {
    border-color: var(--primary);
    background: var(--bg-warm);
}
.recipient-input #recipient-phone::placeholder {
    color: var(--primary);
    font-weight: 600;
}
.recipient-input #recipient-phone:not(:placeholder-shown) {
    border-color: var(--line);
    background: white;
}
/* V21N-13 - 필수 입력 빨간 별표(*) 표시 (래퍼로 input 감싸 별표 오버레이) */
.recipient-input .req-field {
    position: relative;
    margin-bottom: 0.5rem;
}
.recipient-input .req-field input {
    padding-right: 1.9rem; /* 별표와 입력값 겹침 방지 */
}
.recipient-input .req-field .req-star {
    position: absolute;
    right: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--status-danger);
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1;
    pointer-events: none;
}

/* 상세정보 토글 버튼 */
.recipient-toggle {
    margin-top: 0.4rem;
    padding: 0.3rem 0.7rem;
    background: transparent;
    border: 1px dashed var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-2xs);
    font-weight: 600;
    color: var(--text-soft);
    cursor: pointer;
    transition: all 0.15s;
}
.recipient-toggle:hover {
    border-color: var(--primary);
    color: var(--primary);
}
.recipient-toggle.active {
    border-style: solid;
    border-color: var(--primary);
    color: var(--primary);
    background: var(--bg-warm);
}

/* 상세정보 입력 영역 (항상 표시) */
.recipient-details {
    display: flex;
    margin-top: 0.5rem;
    padding: 0.65rem;
    background: var(--bg-soft);
    border-radius: 8px;
    gap: 0.4rem;
    flex-direction: column;
}
.recipient-details input {
    padding: 0.5rem 0.75rem;
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-base);
    color: var(--text);
    outline: none;
    transition: all 0.15s;
}
.recipient-details input:focus {
    border-color: var(--primary);
}
.recipient-details input::placeholder {
    color: var(--text-mute);
    font-size: var(--fs-sm);
}

/* 받는 분 - 펼침/접힘 박스 */
.recipient-collapsible {
    margin-top: 0.5rem;
    background: var(--bg-soft);
    border-radius: 8px;
    overflow: hidden;
}
.recipient-collapsible summary {
    padding: 0.55rem 0.85rem;
    font-size: var(--fs-2xs);
    font-weight: 600;
    color: var(--text-soft);
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: background 0.15s;
}
.recipient-collapsible summary::-webkit-details-marker {
    display: none;
}
.recipient-collapsible summary::after {
    content: '▼';
    float: right;
    font-size: var(--fs-3xs);
    color: var(--text-mute);
    transition: transform 0.2s;
    margin-top: 0.15rem;
}
.recipient-collapsible[open] summary {
    color: var(--primary);
    border-bottom: 1px dashed var(--line);
}
.recipient-collapsible[open] summary::after {
    transform: rotate(180deg);
    color: var(--primary);
}
.recipient-collapsible summary:hover {
    background: rgba(255,255,255,0.5);
}
.recipient-collapsible .recipient-details {
    margin-top: 0;
    border-radius: 0;
    background: transparent;
}

/* 일정/택배 영역 (항상 표시) */
.schedule-input {
    margin-bottom: 0.75rem;
}
.schedule-details {
    display: flex;
    margin-top: 0.5rem;
    padding: 0.65rem;
    background: var(--bg-soft);
    border-radius: 8px;
    flex-direction: column;
    gap: 0.5rem;
}

.schedule-details .date-row {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.schedule-details .date-row label {
    flex: 1;
    min-width: 120px;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    font-weight: 600;
}
.schedule-details input[type="date"],
.schedule-details input[type="text"] {
    padding: 0.5rem 0.75rem;
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-base);
    color: var(--text);
    outline: none;
}
.schedule-details input:focus { border-color: var(--primary); }

/* 안내 문구 (표준 제작일 안내) */
.schedule-notice {
    padding: 0.5rem 0.75rem;
    background: var(--bg-warm);
    border: 1px solid var(--line);
    border-radius: 4px;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.5;
    font-weight: 500;
}

/* 영업일 정보 박스 (직원 검증용) */
.biz-days-info {
    padding: 0.5rem 0.75rem;
    background: white;
    border-radius: 8px;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.5;
    display: none;
}
.biz-days-info.show { display: block; }
.biz-days-info.rush { 
    background: #FFFFFF;
    border: 1px solid var(--line);
}
/* 가산 금액 부분은 직원 모드에서만 표시 */
.biz-days-info .rush-amount-wrap { display: none; }
.staff-mode .biz-days-info .rush-amount-wrap { display: inline; }
.biz-days-info .rush-label {
    font-weight: 700;
    color: var(--carrot);
}
.biz-days-info .rush-amount {
    color: var(--primary);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* 택배 신청 체크 */
/* 배송 방법 선택 */
.delivery-method {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.ship-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
    cursor: pointer;
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--text);
    transition: all 0.15s;
}
.ship-toggle:has(input:checked) {
    border-color: var(--primary);
    background: var(--bg-warm);
}
.ship-toggle input[type="checkbox"],
.ship-toggle input[type="radio"] {
    width: 16px;
    height: 16px;
    accent-color: var(--primary);
    cursor: pointer;
}

.ship-fields {
    display: none;
    flex-direction: column;
    gap: 0.4rem;
}
.ship-fields.active { display: flex; }

/* V17.0AN - ship 필드 input 높이 통일 (.recipient-input input과 동일) */
.ship-fields input {
    width: 100%;
    padding: 0.65rem 0.85rem;
    background: white;
    border: 1.5px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-sm);
}
.ship-fields input:focus {
    border-color: var(--primary);
    outline: none;
}

.ship-notice {
    margin-top: 0.2rem;
    padding: 0.55rem 0.75rem;
    background: var(--bg-card);
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    line-height: 1.55;
    color: var(--text-soft);
}
.ship-notice:empty { display: none; }
.ship-notice strong {
    color: var(--carrot);
    font-weight: 700;
}

.spec-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.35rem 0;
    font-size: var(--fs-sm);
}

.spec-item:not(:last-child) {
    border-bottom: 1px dashed var(--line-soft);
}

.spec-key {
    color: var(--text-soft);
    font-weight: 500;
}

.spec-val {
    color: var(--text);
    font-weight: 700;
    text-align: right;
}

/* 수량 항목 강조 */
.spec-item.spec-quantity {
    border-bottom: none;
    margin-top: 0.15rem;
    padding-top: 0.5rem;
    border-top: 2px solid var(--primary);
}
.spec-item.spec-quantity .spec-key {
    color: var(--primary);
    font-weight: 700;
}
.spec-item.spec-quantity .spec-val {
    color: var(--primary);
    font-weight: 800;
    font-size: var(--fs-sm);
}

/* COST BREAKDOWN (상세) */
.cost-breakdown {
    background: rgba(255,255,255,0.6);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    border: 1px solid var(--line);
    display: none;  /* 일반 모드에서는 숨김 */
}
.staff-mode .cost-breakdown {
    display: block;  /* 직원 모드에서만 표시 */
}

.cost-line {
    display: flex;
    justify-content: space-between;
    padding: 0.25rem 0;
    font-size: var(--fs-sm);
}

.cost-name { color: var(--text-soft); }
.cost-amount {
    font-weight: 600;
    color: var(--text);
    font-variant-numeric: tabular-nums;
}

/* 가산/택배 line - 강조 */
.cost-line.cost-rush {
    margin-top: 0.4rem;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--line);
}
.cost-line.cost-rush .cost-name {
    color: var(--carrot);
    font-weight: 700;
}
.cost-line.cost-rush .cost-amount {
    color: var(--carrot);
    font-weight: 700;
}
.cost-line.cost-ship .cost-name {
    color: var(--primary);
    font-weight: 600;
}
.cost-line.cost-ship .cost-amount {
    color: var(--primary);
    font-weight: 700;
}

/* TOTAL */
.total-block {
    background: var(--navy);
    color: white;
    border-radius: 8px;
    padding: 1.25rem;
    margin-top: 0.5rem;
    box-shadow: var(--shadow-md);
}

.total-label {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.7);
    font-weight: 600;
    margin-bottom: 0.25rem;
    letter-spacing: 0.05em;
}

.total-amount-wrap {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.total-amount {
    font-size: 2.1rem;
    font-weight: 800;
    color: white;
    line-height: 1;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
}
/* Phase 0-2b: 할인 있을 때 위계 반전 — 총 견적(정가)은 작게+취소선+흐리게, 할인 적용 금액이 정점 */
.total-block.has-discount .total-amount {
    font-size: var(--fs-md);
    font-weight: 600;
    color: rgba(255,255,255,0.5);
    text-decoration: line-through;
    letter-spacing: -0.02em;
}

.total-currency {
    font-size: 0.95rem;
    font-weight: 600;
    color: rgba(255,255,255,0.8);
    margin-left: 0.2rem;
}

.total-unit {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.6);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* =================== EMPTY / ERROR =================== */
.empty-state {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--text-mute);
}

.empty-rabbit {
    font-size: 3rem;
    margin-bottom: 0.5rem;
    display: inline-block;
    animation: bounce 2s infinite;
}

.empty-text {
    font-size: var(--fs-sm);
    color: var(--text-soft);
    font-weight: 500;
}

.validation-msg {
    background: var(--bg-card);
    border: 1px solid var(--line);
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: var(--fs-sm);
    color: var(--primary-dark);
    font-weight: 600;
    border-radius: 8px;
}

.validation-msg:empty { display: none; }

/* =================== ITEMS LIST (다건) =================== */
.items-list {
    margin: 1rem 0;
}

.item-row {
    background: white;
    border-radius: 8px;
    padding: 0.85rem 1rem;
    margin-bottom: 8px;
    box-shadow: var(--shadow-sm);
    position: relative;
    transition: all 0.2s;
    border: 1.5px solid transparent;
}

.item-row:hover { box-shadow: var(--shadow); }

/* 중복 카테고리 강조 (#9) */
.item-row-dup {
    border-color: var(--status-warning);
    background: #FFFFFF;
}
.item-dup-badge {
    background: var(--status-warning);
    color: #1A1A17;
    font-size: var(--fs-3xs);
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 4px;
    margin-left: 0.35rem;
    vertical-align: middle;
}

.item-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.3rem;
    gap: 0.4rem;
}

.item-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--primary);
    color: white;
    font-size: var(--fs-3xs);
    font-weight: 800;
    padding: 0.15rem 0.5rem;
    border-radius: 8px;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

/* 항목 작업 버튼 그룹 */
.item-actions {
    display: flex;
    gap: 4px;
    margin-left: auto;
}
.item-action {
    background: var(--bg-soft);
    border: none;
    color: var(--text-soft);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    cursor: pointer;
    font-size: var(--fs-sm);
    line-height: 1;
    transition: all 0.15s;
    font-weight: 600;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.item-edit:hover { background: #E0F0FF; color: #0066CC; }
.item-copy:hover { background: #F0E5FF; color: #6B3FA0; }
.item-remove {
    background: var(--bg-soft);
    border: none;
    color: var(--text-soft);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    cursor: pointer;
    font-size: var(--fs-base);
    line-height: 1;
    transition: all 0.15s;
    font-weight: 600;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.item-remove:hover {
    background: var(--status-danger-bg);
    color: var(--primary);
}

/* 전체 비우기 버튼 (#8) */
.items-clear-all {
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.6rem;
    background: white;
    border: 1.5px dashed rgba(26, 31, 54, 0.3);
    border-radius: 8px;
    color: var(--primary);
    font-family: inherit;
    font-size: var(--fs-xs);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
.items-clear-all:hover {
    background: #FFF0F4;
    border-color: var(--primary);
}

/* 추가 모드 배너 (#6, #7) */
.add-mode-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    background: #FFFFFF;
    border: 1.5px solid rgba(26, 31, 54, 0.35);
    border-radius: 8px;
    padding: 0.65rem 0.9rem;
    margin-bottom: 0.85rem;
    animation: addModeIn 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes addModeIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}
.add-mode-info {
    flex: 1;
    min-width: 0;
    font-size: var(--fs-xs);
    color: var(--text);
    line-height: 1.4;
}
.add-mode-info strong {
    color: var(--carrot);
    font-weight: 700;
}
.add-mode-info #add-mode-count {
    display: block;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    font-weight: 500;
    margin-top: 1px;
}
.add-mode-cancel {
    background: white;
    border: 1px solid rgba(26, 31, 54, 0.35);
    color: var(--primary);
    padding: 0.4rem 0.7rem;
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-2xs);
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    flex-shrink: 0;
    word-break: keep-all;
}
.add-mode-cancel:hover {
    background: #FFF0F4;
    transform: translateY(-1px);
}

/* PDF 발급 안내 (#12) */
.pdf-hint {
    margin-top: 0.4rem;
    margin-bottom: 0.55rem;
    padding: 0.5rem 0.75rem;
    background: rgba(26, 31, 54, 0.08);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.5;
    word-break: keep-all;
    text-align: center;
}
.pdf-hint strong {
    color: var(--carrot);
    font-weight: 700;
}

/* V11.40 - Stage 1 안내: 거래명세서는 주문 후 발행 */
.quote-stage-note {
    margin-top: 0.4rem;
    padding: 0.5rem 0.8rem;
    background: var(--bg-soft);
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.5;
    word-break: keep-all;
    text-align: center;
}
.quote-stage-note strong {
    color: var(--primary-dark);
    font-weight: 700;
}

/* V11.40 - 주문 완료 후 문서 다운로드 섹션 */
.order-doc-section {
    background: #FFFFFF;
    border: 1px solid var(--line-soft);
}
.order-doc-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem;
    margin-top: 0.5rem;
}
.order-doc-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    padding: 0.85rem 0.6rem;
    background: white;
    border: 1.5px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    min-height: 88px;
    text-align: center;
}
.order-doc-btn:hover {
    border-color: var(--primary);
    background: var(--bg-warm);
    transform: translateY(-1px);
    box-shadow: var(--shadow);
}
.order-doc-btn:active { transform: translateY(0); }
.order-doc-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}
.order-doc-icon {
    font-size: 1.4rem;
    line-height: 1;
    margin-bottom: 0.15rem;
}
.order-doc-label {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text);
}
.order-doc-sub {
    font-size: var(--fs-2xs);
    color: var(--text-mute);
    line-height: 1.3;
    word-break: keep-all;
}
.order-doc-hint {
    margin-top: 0.6rem;
    padding: 0.5rem 0.75rem;
    background: rgba(193,146,55,0.08);
    border-radius: 8px;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    line-height: 1.5;
    word-break: keep-all;
    text-align: center;
}
.order-doc-hint strong {
    color: var(--gold);
    font-weight: 700;
}

@media (max-width: 380px) {
    .order-doc-btn { min-height: 76px; padding: 0.7rem 0.5rem; }
    .order-doc-label { font-size: var(--fs-xs); }
    .order-doc-sub { font-size: var(--fs-3xs); }
    .order-doc-icon { font-size: 1.2rem; }
}

/* 다중 견적 시 이번 항목 카드 강조 (#3) */
.total-block-multi {
    background: #1A1A17 !important;
    border: 2px dashed rgba(26, 31, 54, 0.5);
}
.total-multi-hint {
    margin-top: 0.7rem;
    padding-top: 0.6rem;
    border-top: 1px dashed rgba(255,255,255,0.15);
    font-size: 0.7rem;
    color: rgba(255,255,255,0.75);
    line-height: 1.5;
    word-break: keep-all;
}
.total-multi-hint strong {
    color: #FFB6D5;
    font-weight: 700;
}

.item-spec {
    font-size: var(--fs-xs);
    color: var(--text-soft);
    line-height: 1.4;
    margin-bottom: 0.4rem;
}

.item-amount-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

.item-amount {
    font-size: var(--fs-base);
    font-weight: 800;
    color: var(--navy);
    font-variant-numeric: tabular-nums;
}

.item-unit {
    font-size: var(--fs-2xs);
    color: var(--text-mute);
    font-variant-numeric: tabular-nums;
}

/* GRAND TOTAL */
.grand-total {
    background: #1A1A17;
    color: white;
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin: 1rem 0 0.5rem;
    box-shadow: 0 8px 24px rgba(26, 31, 54, 0.3);
}

.grand-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.grand-total-label {
    font-size: 0.85rem;
    font-weight: 700;
    opacity: 0.95;
}

.grand-total-amount {
    font-size: 1.6rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

/* =================== ACTIONS =================== */
.action-btns {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 1rem;
}

.btn {
    padding: 0.9rem 1rem;
    border: none;
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-sm);
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
    text-align: center;
    letter-spacing: -0.01em;
}

.btn:active { transform: scale(0.98); }

.btn-add {
    background: white;
    color: var(--primary);
    border: 2px dashed var(--primary);
}

.btn-add:hover {
    background: var(--bg-warm);
}

.btn-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
/* V20.5 - 단일 버튼만 있는 행은 풀폭 (add-btn 제거 후 결제하기·PDF 등 정렬) */
.btn-row > button:only-child {
    grid-column: 1 / -1;
}

.btn-secondary {
    background: white;
    color: var(--text);
    border: 1.5px solid var(--text);
    box-shadow: none;
    font-weight: 700;
}

.btn-secondary:hover {
    background: var(--text);
    color: white;
}

.btn-primary {
    background: var(--primary);
    color: white;
    box-shadow: var(--shadow-pink);
}

.btn-primary:hover {
    background: var(--primary-dark);
}

/* =================== FOOTER =================== */
.footer {
    max-width: 1240px;
    margin: 0 auto;
    padding: 2rem 1rem 1.5rem;
    font-size: var(--fs-2xs);
    color: var(--text-mute);
    line-height: 1.6;
}

.footer-brand {
    text-align: center;
    margin-bottom: 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--line);
}
.footer-brand-name {
    display: block;
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text-soft);
    margin-bottom: 0.2rem;
}
.footer-tag {
    font-size: var(--fs-2xs);
    color: var(--text-mute);
}

.footer-info {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.85rem;
    text-align: center;
}

/* 카드AP: 사업자 의무표시 접기 (기본 닫힘, 탭하여 펼침) */
.footer-legal { border-top: 1px solid var(--line-soft, #F0EFE9); }
.footer-legal-summary {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    padding: 14px 16px; cursor: pointer; list-style: none;
    font-size: var(--fs-xs); color: var(--text-soft, #7A766C); user-select: none;
}
.footer-legal-summary::-webkit-details-marker { display: none; }
.footer-legal-name { font-weight: 600; color: var(--text, #1A1A17); }
.footer-legal-hint { color: var(--text-mute, #6F695E); }
.footer-legal-caret { font-size: var(--fs-2xs); transition: transform .2s ease; }
.footer-legal[open] .footer-legal-caret { transform: rotate(180deg); }
.footer-legal[open] .footer-legal-summary { padding-bottom: 6px; }
@media (prefers-reduced-motion: reduce) { .footer-legal-caret { transition: none; } }

.footer-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    gap: 0.35rem;
    line-height: 1.6;
}
.footer-row-mute {
    color: var(--text-disable);
    font-size: var(--fs-2xs);
}

.footer-label {
    font-weight: 600;
    color: var(--text-soft);
    font-size: var(--fs-3xs);
}
.footer-row-mute .footer-label {
    color: var(--text-mute);
}
.footer-val {
    color: var(--text-soft);
    font-weight: 500;
}
.footer-sep {
    color: var(--line);
    margin: 0 0.15rem;
}

.footer-copy {
    text-align: center;
    font-size: var(--fs-3xs);
    color: var(--text-mute);
    padding-top: 0.7rem;
    border-top: 1px solid var(--line);
}

/* V11.55 영업시간 자동 표시 박스 */
.footer-hours {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    background: #FFFFFF;
    border: 1px solid var(--accent-soft);
    border-radius: 8px;
    padding: 0.65rem 0.9rem;
    margin: 0 auto 0.85rem;
    max-width: 480px;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
}
.footer-hours-status {
    font-weight: 700;
    font-size: var(--fs-xs);
    white-space: nowrap;
    padding: 2px 8px;
    border-radius: 8px;
    transition: all 0.2s ease;
}
.footer-hours-status.open {
    color: var(--status-success);
    background: rgba(0, 166, 90, 0.1);
}
.footer-hours-status.closed {
    color: var(--status-danger);
    background: rgba(220, 53, 69, 0.1);
}
.footer-hours-status.loading {
    color: var(--text-mute);
    background: rgba(110, 120, 145, 0.1);
}
.footer-hours-text {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.5rem;
    align-items: center;
    justify-content: center;
}
.footer-hours-text strong {
    color: var(--text);   /* C0: 미정의 --text-1 → 동값 --text(#1A1A17) */
    font-weight: 600;
}
.footer-hours-sep {
    color: #d4a8b8;
    user-select: none;
}
.footer-hours-off {
    color: #C2185B;
    font-weight: 500;
}
@media (max-width: 480px) {
    .footer-hours {
        font-size: var(--fs-2xs);
        padding: 0.55rem 0.75rem;
        gap: 0.4rem 0.6rem;
    }
    .footer-hours-status {
        font-size: var(--fs-2xs);
    }
}

/* V11.57 매장 위치 안내 박스 */
/* V21N 매장 안내: 전용 about 페이지로 가는 단일 링크 카드 (주소·전화 중복 제거) */
.footer-location {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    background: #FFFFFF;
    border: 1px solid var(--accent-soft);
    border-radius: 8px;
    padding: 0.85rem 1rem;
    margin: 0 auto 0.85rem;
    max-width: 480px;
    text-align: left;
    text-decoration: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
}
.footer-location:hover {
    border-color: var(--brand, #03C75A);
    box-shadow: 0 2px 8px rgba(3, 199, 90, 0.12);
}
.footer-location:active { transform: scale(0.99); }
.footer-location-main {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-width: 0;
}
.footer-location-icon {
    font-size: 1.15rem;
    flex-shrink: 0;
}
.footer-location-text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}
.footer-location-title {
    font-weight: 700;
    font-size: var(--fs-sm);
    color: var(--text);   /* C0: 미정의 --text-1 → 동값 --text(#1A1A17) */
}
.footer-location-sub {
    font-size: var(--fs-2xs);
    color: var(--text-soft);
}
.footer-location-arrow {
    flex-shrink: 0;
    font-size: 1.05rem;
    color: var(--brand, #03C75A);
    opacity: 0.85;
}
@media (max-width: 480px) {
    .footer-location {
        padding: 0.75rem 0.85rem;
    }
    .footer-location-sub {
        font-size: var(--fs-2xs);
    }
}

/* =================== TOAST =================== */
.toast {
    position: fixed;
    bottom: calc(1.5rem + env(safe-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%) translateY(120px);
    background: var(--navy);
    color: white;
    padding: 0.85rem 1.5rem;
    border-radius: 8px;
    font-size: var(--fs-sm);
    font-weight: 600;
    z-index: 9999;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: var(--shadow-lg);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    max-width: 90vw;
}

.toast.show { transform: translateX(-50%) translateY(0); }

/* V14.0fff++ - 주문 접수 확인 모달 (Aesop 톤 미니멀) */
.order-confirm-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(26, 31, 54, 0.55);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    opacity: 0;
    transition: opacity 0.25s ease;
}
.order-confirm-modal-overlay.show {
    opacity: 1;
}
.order-confirm-modal {
    background: white;
    border-radius: 8px;
    padding: 2rem 1.75rem 1.5rem;
    max-width: 360px;
    width: 100%;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
    text-align: center;
    transform: translateY(10px);
    transition: transform 0.25s ease;
}
.order-confirm-modal-overlay.show .order-confirm-modal {
    transform: translateY(0);
}
.order-confirm-modal-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 1rem;
    background: var(--bg-soft);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text);
}
.order-confirm-modal-icon svg {
    width: 28px;
    height: 28px;
}
.order-confirm-modal-title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 0.5rem;
    letter-spacing: -0.02em;
}
.order-confirm-modal-text {
    font-size: 0.82rem;
    color: var(--text-soft);
    line-height: 1.55;
    margin-bottom: 1.5rem;
}
.order-confirm-modal-btns {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 0.5rem;
}
.order-confirm-modal-btn {
    padding: 0.85rem 1rem;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s ease;
    border: none;
}
.order-confirm-modal-cancel {
    background: white;
    color: var(--text);
    border: 1.5px solid var(--text);
}
.order-confirm-modal-cancel:hover {
    background: var(--bg-soft);
}
.order-confirm-modal-ok {
    background: var(--text);
    color: white;
}
.order-confirm-modal-ok:hover {
    background: #2a3148;
}
.order-confirm-modal-ok:active {
    transform: scale(0.98);
}

/* =================== TERMS MODAL (이용약관·개인정보·환불정책) =================== */
.terms-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(26, 31, 54, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 10000;
    display: none;
    opacity: 0;
    transition: opacity 0.2s ease;
    padding: env(safe-area-inset-top) 0 env(safe-area-inset-bottom);
}
.terms-modal-overlay.show {
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
}
.terms-modal-container {
    background: var(--bg-card);
    border-radius: 8px;
    width: calc(100% - 2rem);
    max-width: 560px;
    max-height: calc(100vh - 4rem);
    max-height: calc(100dvh - 4rem);
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    transform: translateY(20px);
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.terms-modal-overlay.show .terms-modal-container {
    transform: translateY(0);
}
.terms-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.2rem;
    background: white;
    border-bottom: 1px solid var(--line);
    flex-shrink: 0;
}
.terms-modal-title {
    font-size: var(--fs-md);
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.01em;
}
.terms-modal-close {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--bg-soft);
    border-radius: 50%;
    color: var(--text-soft);
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent;
    transition: all 0.15s;
    flex-shrink: 0;
}
.terms-modal-close:hover {
    background: var(--bg-warm);
    color: var(--text);
}
.terms-modal-close:active { transform: scale(0.92); }

.terms-modal-body {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 1.2rem 1.3rem 1.5rem;
    font-size: var(--fs-sm);
    line-height: 1.65;
    color: var(--text);
}
.terms-modal-body h3 {
    font-size: var(--fs-base);
    font-weight: 800;
    color: var(--primary-dark);
    margin: 1.2rem 0 0.5rem;
    padding-bottom: 0.3rem;
    border-bottom: 1.5px solid var(--line-soft);
}
.terms-modal-body h3:first-child { margin-top: 0; }
.terms-modal-body h4 {
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--text);
    margin: 0.85rem 0 0.3rem;
}
.terms-modal-body p {
    margin: 0.4rem 0;
    color: var(--text-soft);
    word-break: keep-all;
}
.terms-modal-body ul, .terms-modal-body ol {
    padding-left: 1.3rem;
    margin: 0.4rem 0;
    color: var(--text-soft);
}
.terms-modal-body li {
    margin: 0.25rem 0;
    word-break: keep-all;
}
.terms-modal-body .terms-effective {
    margin-top: 1.5rem;
    padding: 0.7rem 0.9rem;
    background: var(--bg-soft);
    border-radius: 8px;
    font-size: var(--fs-sm);
    color: var(--text-mute);
    text-align: center;
}

body.terms-modal-open {
    overflow: hidden;
}

/* =================== QUOTE RECIPIENT MODAL (견적서 받는 분 정보) =================== */
.quote-recipient-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(26, 31, 54, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 10000;
    display: none;
    opacity: 0;
    transition: opacity 0.2s ease;
    padding: env(safe-area-inset-top) 0 env(safe-area-inset-bottom);
}
.quote-recipient-modal-overlay.show {
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
}
.quote-recipient-modal-container {
    background: var(--bg-card);
    border-radius: 8px;
    width: calc(100% - 2rem);
    max-width: 460px;
    max-height: calc(100vh - 4rem);
    max-height: calc(100dvh - 4rem);
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    transform: translateY(20px);
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.quote-recipient-modal-overlay.show .quote-recipient-modal-container {
    transform: translateY(0);
}
.quote-recipient-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.2rem;
    background: #FFFFFF;
    border-bottom: 1px solid var(--line);
    flex-shrink: 0;
}
.quote-recipient-modal-title {
    font-size: var(--fs-md);
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.01em;
}
.quote-recipient-modal-close {
    width: 36px;
    height: 36px;
    border: none;
    background: white;
    border-radius: 50%;
    color: var(--text-soft);
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent;
    transition: all 0.15s;
    flex-shrink: 0;
}
.quote-recipient-modal-close:hover {
    background: var(--bg-soft);
    color: var(--text);
}
.quote-recipient-modal-close:active { transform: scale(0.92); }

.quote-recipient-modal-body {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 1.1rem 1.2rem 1.2rem;
}

.quote-recipient-hint {
    padding: 0.65rem 0.85rem;
    margin-bottom: 0.9rem;
    background: var(--bg-card);
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: var(--fs-xs);
    color: var(--text-soft);
    line-height: 1.55;
    word-break: keep-all;
}

.quote-recipient-form {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.quote-recipient-field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.quote-recipient-field label {
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--text-soft);
    padding-left: 0.15rem;
}

.quote-required {
    color: var(--primary-dark);
    font-weight: 700;
    margin-left: 0.2rem;
    font-size: var(--fs-2xs);
}

.quote-recipient-field input {
    width: 100%;
    padding: 0.65rem 0.85rem;
    background: white;
    border: 1.5px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-base);
    color: var(--text);
    outline: none;
    transition: all 0.15s;
}
.quote-recipient-field input:focus {
    border-color: var(--primary);
    background: var(--bg-warm);
}
.quote-recipient-field input::placeholder {
    color: var(--text-mute);
    font-size: var(--fs-sm);
}
.quote-recipient-field input.input-error {
    border-color: var(--primary);
    background: var(--status-danger-bg);
    animation: quoteRecipientShake 0.4s cubic-bezier(.36,.07,.19,.97);
}

@keyframes quoteRecipientShake {
    10%, 90% { transform: translateX(-1px); }
    20%, 80% { transform: translateX(2px); }
    30%, 50%, 70% { transform: translateX(-3px); }
    40%, 60% { transform: translateX(3px); }
}

.quote-recipient-actions {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 0.6rem;
    margin-top: 1.2rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--line-soft);
}

.quote-recipient-btn {
    padding: 0.85rem 0.7rem;
    border: none;
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-sm);
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    min-height: 48px;
    word-break: keep-all;
}

.quote-recipient-btn-secondary {
    background: white;
    color: var(--text-soft);
    border: 1.5px solid var(--line);
}
.quote-recipient-btn-secondary:hover {
    background: var(--bg-soft);
    color: var(--text);
}
.quote-recipient-btn-secondary:active { transform: scale(0.98); }

.quote-recipient-btn-primary {
    background: #1A1A17;
    color: white;
    box-shadow: 0 4px 12px rgba(26, 31, 54, 0.30);
}
.quote-recipient-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(26, 31, 54, 0.40);
}
.quote-recipient-btn-primary:active {
    transform: translateY(0);
}

body.quote-recipient-modal-open {
    overflow: hidden;
}

@media (max-width: 380px) {
    .quote-recipient-modal-title { font-size: var(--fs-base); }
    .quote-recipient-hint { font-size: var(--fs-2xs); padding: 0.55rem 0.75rem; }
    .quote-recipient-field label { font-size: var(--fs-2xs); }
    .quote-recipient-btn { font-size: var(--fs-sm); padding: 0.75rem 0.5rem; }
}

/* 푸터 약관 링크 */
.footer-policy {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.4rem 0.85rem;
    padding: 0.75rem 1rem 0;
    margin-top: 0.5rem;
    border-top: 1px solid var(--line-soft);
}
.footer-policy button {
    background: transparent;
    border: none;
    padding: 0.4rem 0.2rem;
    font-family: inherit;
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--text-soft);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--text-disable);
    -webkit-tap-highlight-color: transparent;
    min-height: 32px;
    transition: color 0.15s;
}
.footer-policy button:hover { color: var(--primary-dark); }
.footer-policy button:active { transform: scale(0.97); }
.footer-policy .policy-sep {
    color: var(--text-disable);
    align-self: center;
    font-size: var(--fs-2xs);
}

@media (max-width: 380px) {
    .terms-modal-body { font-size: var(--fs-sm); padding: 1rem 1.1rem 1.3rem; }
    .terms-modal-title { font-size: var(--fs-base); }
    .footer-policy button { font-size: var(--fs-2xs); }
}

/* =================== SIMPLE MODE =================== */
/* 가산 라인 - 직원 모드에서만 표시 */
.cost-line.cost-rush { display: none; }
.staff-mode .cost-line.cost-rush { display: flex; }

/* =================== ANIMATIONS =================== */
@keyframes bounce {
    0%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-8px); }
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.item-row { animation: fadeUp 0.25s ease; }

/* =================== QUOTE PDF (인쇄 시만 표시) =================== */
.quote-pdf {
    display: none;
    background: white;
    color: black;
    font-family: 'Pretendard', 'Malgun Gothic', sans-serif;
    padding: 12mm 14mm;
    width: 210mm;
    box-sizing: border-box;
    line-height: 1.4;
}

.pdf-header {
    position: relative;
    margin-bottom: 0.7rem;
    padding-bottom: 0.6rem;
    border-bottom: 2.5px solid #000;
}

/* V14.0iii-PREVIEW3 - E - 견적서 헤더에 브랜드 라인 추가 */
.pdf-header::before {
    content: 'PRINTRABBIT · 프린트래빗 인쇄제본';
    display: block;
    text-align: center;
    font-size: var(--fs-3xs);
    letter-spacing: 0.25em;
    color: #888;
    margin-bottom: 0.35rem;
    font-weight: 600;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.pdf-quote-no {
    position: absolute;
    top: 0;
    left: 0;
    font-size: var(--fs-2xs);
    font-style: italic;
    color: #555;
    text-decoration: underline;
}

.pdf-title {
    text-align: center;
    font-size: 1.9rem;
    font-weight: 800;
    letter-spacing: 0.5em;
    margin: 0;
    padding: 0.7rem 0 0.5rem;
    color: black;
}

/* V14.0iii-PREVIEW3 - E - 타이틀 옆 영문 부제 */
.pdf-title::after {
    content: ' · QUOTATION';
    font-size: 0.55em;
    font-weight: 400;
    letter-spacing: 0.15em;
    color: #888;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.pdf-meta-top {
    text-align: center;
    margin-bottom: 0.7rem;
}

.pdf-date {
    font-size: var(--fs-sm);
    color: black;
    margin-bottom: 0.3rem;
}

.pdf-greeting {
    font-size: var(--fs-xs);
    color: #333;
}

/* V14.0iii-PREVIEW3 - 견적서 납기 요청일 라인 */
.pdf-pickup-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.6rem;
    padding: 0.45rem 0.8rem;
    margin: 0.5rem auto 0.8rem;
    background: #faf8f5;
    border: 1px solid #e5e0d8;
    border-radius: 4px;
    width: fit-content;
}
.pdf-pickup-label {
    font-size: var(--fs-2xs);
    color: #666;
    font-weight: 600;
    letter-spacing: 0.05em;
}
.pdf-pickup-date {
    font-size: var(--fs-sm);
    color: #2a2826;
    font-weight: 700;
}

.pdf-meta {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    margin-bottom: 0.8rem;
    gap: 0.7rem;
}

.pdf-meta-side {
    flex: 1;
    width: 50%;
}

.pdf-supplier {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-2xs);
    border: 1px solid black;
    height: 100%;
}

.pdf-supplier th {
    background: #f0f0f0;
    border: 1px solid black;
    padding: 0.3rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.2em;
}

.pdf-supplier td {
    border: 1px solid black;
    padding: 0.35rem 0.5rem;
    vertical-align: middle;
}

.pdf-supplier td.key {
    background: #f8f8f8;
    text-align: center;
    width: 30%;
    font-weight: 600;
    font-size: var(--fs-2xs);
}

.pdf-supplier td.val {
    text-align: left;
    line-height: 1.3;
    min-height: 1.5em;
}

.pdf-supplier .brand {
    font-size: var(--fs-3xs);
    color: #555;
}

.pdf-supplier .seal {
    /* V11.41 - 직인 이미지 적용 */
    display: inline-block;
    width: 44px;
    height: 44px;
    background-image: url("data:image/png;base64,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");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
    margin-left: 0.4rem;
    text-indent: -9999px;
    overflow: hidden;
    /* 인쇄 시 색상 보존 */
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    color-adjust: exact;
}

.pdf-total-box {
    border-top: 2.5px solid black;
    border-bottom: 2.5px solid black;
    padding: 0.65rem 0.8rem;
    margin: 0.5rem 0 0.7rem;
    display: flex;
    align-items: baseline;
    gap: 1rem;
    background: #fafafa;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.pdf-total-label {
    font-size: 1.1rem;
    font-weight: 800;
}

.pdf-total-amount {
    font-size: 1.5rem;
    font-weight: 800;
    color: black;
    font-variant-numeric: tabular-nums;
    flex: 1;
}

/* V14.0iii-PREVIEW3 - E - 합계금액에 ₩ 기호 추가 */
.pdf-total-amount::before {
    content: '₩ ';
    color: #444;
    font-weight: 600;
    margin-right: 0.15em;
}

.pdf-total-vat {
    font-size: 0.78rem;
    color: #333;
}

.pdf-section-title {
    font-size: var(--fs-sm);
    font-weight: 700;
    margin: 0.7rem 0 0.3rem;
    padding-bottom: 0.2rem;
    border-bottom: 1px solid #888;
}

.pdf-item-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-2xs);
    margin-bottom: 0.5rem;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
}

.pdf-item-table td {
    padding: 0.3rem 0.55rem;
    border-bottom: 1px solid #ddd;
    vertical-align: top;
}

.pdf-item-table td.key {
    background: #f8f8f8;
    width: 25%;
    text-align: center;
    font-weight: 600;
    border-right: 1px solid #ddd;
}

.pdf-item-table td.val {
    line-height: 1.4;
}

.pdf-item-divider {
    border-top: 1.5px solid black;
    margin: 0.3rem 0;
}

.pdf-item-header {
    background: #f0f0f0;
    padding: 0.3rem 0.6rem;
    font-weight: 700;
    font-size: var(--fs-xs);
    border-top: 1px solid black;
    border-bottom: 1px solid #888;
}

.pdf-notes {
    margin-top: 0.9rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid #ddd;
    background: #f7f7f5;
    border-radius: 4px;
    font-size: var(--fs-3xs);
    line-height: 1.55;
    color: #333;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* V14.0iii-PREVIEW3 - E - 견적서 푸터 라인 (PDF 하단 브랜드 마크) */
.pdf-notes::after {
    content: 'order.printrabbit.co.kr · 0507-1379-5487 · 경기 화성시 효행구 봉담읍 와우안길 18 2층 1호';
    display: block;
    margin-top: 0.55rem;
    padding-top: 0.45rem;
    border-top: 1px solid #ddd;
    text-align: center;
    font-size: var(--fs-3xs);
    color: #888;
    letter-spacing: 0.05em;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* =================== DELIVERY NOTE PDF =================== */
.delivery-pdf {
    display: none;
    background: white;
    color: black;
    font-family: 'Pretendard', 'Malgun Gothic', sans-serif;
    padding: 12mm 14mm;
    width: 210mm;
    box-sizing: border-box;
    line-height: 1.4;
}

.dl-title {
    text-align: center;
    font-size: var(--fs-xl);
    font-weight: 800;
    margin: 0 0 0.8rem;
    padding-bottom: 0.4rem;
    border-bottom: 2px solid black;
    color: black;
    position: relative;
}

/* V14.0iii-PREVIEW3 - E - 거래명세서 헤더 브랜드 라인 */
.dl-title::before {
    content: 'PRINTRABBIT · 프린트래빗 인쇄제본';
    display: block;
    text-align: center;
    font-size: 0.42em;
    letter-spacing: 0.25em;
    color: #888;
    margin-bottom: 0.35rem;
    font-weight: 600;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.dl-title::after {
    content: ' · DELIVERY NOTE';
    font-size: 0.45em;
    font-weight: 400;
    letter-spacing: 0.15em;
    color: #888;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.dl-section {
    font-size: var(--fs-sm);
    font-weight: 700;
    margin: 0.7rem 0 0.3rem;
    padding-left: 0.2rem;
}

.dl-party {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-2xs);
    border: 1px solid black;
    margin-bottom: 0.3rem;
}

.dl-party td {
    border: 1px solid black;
    padding: 0.28rem 0.55rem;
    vertical-align: middle;
}

.dl-party td.key {
    background: #f5f5f5;
    text-align: center;
    width: 12%;
    font-weight: 600;
    font-size: var(--fs-2xs);
}

.dl-party td.val {
    text-align: left;
    width: 38%;
    line-height: 1.4;
}

.dl-party .brand {
    font-size: var(--fs-2xs);
    color: #555;
}

.dl-party .seal {
    /* V11.41 - 직인 이미지 적용 */
    display: inline-block;
    width: 40px;
    height: 40px;
    background-image: url("data:image/png;base64,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");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
    margin-left: 0.4rem;
    text-indent: -9999px;
    overflow: hidden;
    /* 인쇄 시 색상 보존 */
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    color-adjust: exact;
}

.dl-summary {
    display: flex;
    border: 1px solid black;
    margin-bottom: 0.4rem;
}

.dl-sum-cell {
    flex: 1;
    display: flex;
    align-items: center;
    border-right: 1px solid black;
}
.dl-sum-cell:last-child { border-right: none; }

.dl-sum-label {
    background: #f5f5f5;
    padding: 0.5rem 0.6rem;
    font-weight: 700;
    font-size: var(--fs-2xs);
    width: 35%;
    text-align: center;
    border-right: 1px solid black;
}

.dl-sum-value {
    flex: 1;
    text-align: right;
    padding: 0.5rem 0.7rem;
    font-size: var(--fs-sm);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.dl-sum-total .dl-sum-value {
    color: black;
    font-size: 0.95rem;
    font-weight: 800;
}

.dl-items {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-2xs);
    border: 1px solid black;
    margin-bottom: 0.4rem;
    table-layout: fixed;  /* 컬럼 너비 고정 */
}

/* 컬럼 너비 + 정렬 명시 (6컬럼: 거래일자/품목/규격/수량/공급가액/세액) */
.dl-items .col-date   { width: 14%; text-align: center; }
.dl-items .col-item   { width: 36%; text-align: left; line-height: 1.3; }
.dl-items .col-size   { width: 12%; text-align: center; }
.dl-items .col-qty    { width: 12%; text-align: center; }
.dl-items .col-supply { width: 14%; text-align: right; padding-right: 0.6rem; font-weight: 600; }
.dl-items .col-vat    { width: 12%; text-align: right; padding-right: 0.6rem; font-weight: 600; }

.dl-items th {
    background: #f5f5f5;
    border: 1px solid black;
    padding: 0.3rem 0.4rem;
    font-weight: 700;
    text-align: center;
    font-size: var(--fs-3xs);
}

.dl-items td {
    border: 1px solid black;
    padding: 0.32rem 0.4rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
    font-size: var(--fs-3xs);
}

.dl-notes {
    margin-top: 0.7rem;
    padding-top: 0.4rem;
    border-top: 1px solid #aaa;
    font-size: var(--fs-3xs);
    line-height: 1.5;
    color: #333;
    position: relative;
}

.dl-note {
    margin-bottom: 0.15rem;
}

.dl-issued {
    text-align: right;
    margin-top: 0.3rem;
    font-size: var(--fs-2xs);
    font-weight: 600;
}

.pdf-note {
    margin-bottom: 0.15rem;
}


/* PRINT — 견적서 또는 거래명세서 인쇄 (V11.42 - 1페이지 강제) */
@media print {
    @page {
        size: A4;
        margin: 0;
    }
    html, body {
        background: white;
        padding: 0;
        margin: 0;
        font-size: var(--fs-base);  /* V21N-7: 인쇄(견적서·명세서)는 16px 고정 — 화면 17px 확대가 PDF rem 폰트에 영향 주지 않도록 rem 기준점 원복 */
        /* V15.0at - height/overflow 제거: 콘텐츠가 자연스럽게 다중 페이지로 흐름 */
    }
    /* V14.0iii-PREVIEW3 - 인쇄 시 body 직접 자식 모두 숨김 (미래 추가 영역 자동 대응) */
    body > *:not(.quote-pdf):not(.delivery-pdf):not(script):not(style):not(noscript) {
        display: none !important;
    }
    /* 기본은 둘 다 숨김 (body 클래스로 한쪽만 노출) */
    .quote-pdf,
    .delivery-pdf {
        display: none !important;
    }
    /* 견적서 모드 - V15.0at 자동 페이지 분할 허용 (옛 1페이지 강제 제거) */
    body.print-quote .quote-pdf {
        display: block !important;
        width: 210mm;
        padding: 10mm 12mm;
        margin: 0;
        box-sizing: border-box;
        /* height/overflow/page-break-inside 제거: 자연스러운 페이지 분할 */
    }
    /* 거래명세서 모드 - 1페이지 강제 */
    body.print-delivery .delivery-pdf {
        display: block !important;
        width: 210mm;
        height: 297mm;
        max-height: 297mm;
        padding: 10mm 12mm;
        margin: 0;
        box-sizing: border-box;
        overflow: hidden;
        page-break-inside: avoid;
        transform-origin: top left;
    }
    /* 페이지 분할 방지 (각 섹션 단위) */
    .pdf-header,
    .pdf-meta,
    .pdf-total-box,
    .pdf-notes,
    .dl-party,
    .dl-summary,
    .dl-items,
    .dl-shipping,
    .dl-notes {
        page-break-inside: avoid;
        break-inside: avoid;
    }
    /* V15.0at - 견적서 표 행 단위로만 분할 방지 (표 자체는 자연 분할 허용) */
    .pdf-items-table thead {
        display: table-header-group;  /* 매 페이지 헤더 자동 반복 */
    }
    .pdf-items-table tr.pdf-item-row {
        page-break-inside: avoid;
        break-inside: avoid;
    }
    /* V15.0at - 인쇄 시 안내 문구 컴팩트 (적은 항목 1페이지 들어가도록) */
    .pdf-notes {
        margin-top: 5mm !important;
        font-size: 7.5pt !important;
        line-height: 1.4 !important;
    }
    .pdf-notes .pdf-note {
        margin: 1mm 0 !important;
    }
    /* V15.0av - 견적서 인쇄 모드 전체 컴팩트화 (1페이지 fit) */
    body.print-quote .quote-pdf {
        padding: 8mm 10mm !important;  /* 12 14 → 8 10 */
        font-size: 9pt !important;
    }
    body.print-quote .pdf-header {
        margin-bottom: 4mm !important;  /* 0.7rem → 4mm */
        padding-bottom: 3mm !important;
    }
    body.print-quote .pdf-title {
        font-size: 1.6rem !important;
    }
    body.print-quote .pdf-meta-top,
    body.print-quote .pdf-pickup-row {
        font-size: 9pt !important;
        margin: 2mm 0 !important;
    }
    body.print-quote .pdf-supplier td,
    body.print-quote .pdf-recipient td {
        padding: 1.5mm 2mm !important;  /* 0.35rem 0.5rem → 1.5mm 2mm */
        font-size: 9pt !important;
    }
    body.print-quote .pdf-supplier td.key,
    body.print-quote .pdf-recipient td.key {
        font-size: 8.5pt !important;
        width: 22% !important;  /* 30% → 22% */
    }
    body.print-quote .pdf-supplier .brand {
        font-size: 7.5pt !important;
    }
    body.print-quote .pdf-supplier .seal {
        width: 32px !important;
        height: 32px !important;
    }
    body.print-quote .pdf-total-box {
        padding: 3mm 4mm !important;
        margin: 3mm 0 !important;
    }
    body.print-quote .pdf-total-label {
        font-size: 11pt !important;
    }
    body.print-quote .pdf-total-amount {
        font-size: 15pt !important;
    }
    body.print-quote .pdf-section-title {
        font-size: 10pt !important;
        margin: 3mm 0 1mm !important;
    }
    body.print-quote .pdf-items-table {
        font-size: 8.5pt !important;
    }
    body.print-quote .pdf-items-table thead th {
        padding: 2mm 1.5mm !important;
        font-size: 8pt !important;
    }
    body.print-quote .pdf-items-table td {
        padding: 2mm 1.5mm !important;
    }
    body.print-quote .pdf-items-table .sub-line {
        font-size: 7.5pt !important;
    }
}

/* V15.0at - 견적서 항목 표 (거래명세서 스타일, 자동 페이지 분할 지원) */
.pdf-items-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 6mm;
    font-size: 9.5pt;
}
.pdf-items-table thead th {
    background: #f5f5f5;
    border: 1px solid #999;
    padding: 4mm 2mm;
    font-size: 9pt;
    font-weight: 700;
    text-align: center;
    color: #333;
}
.pdf-items-table td {
    border: 1px solid #ccc;
    padding: 3mm 2mm;
    vertical-align: top;
    line-height: 1.4;
}
.pdf-items-table .pcol-no { width: 10mm; text-align: center; font-weight: 600; }
.pdf-items-table .pcol-item { width: 30mm; font-weight: 600; }
.pdf-items-table .pcol-size { width: 22mm; text-align: center; }
.pdf-items-table .pcol-qty { width: 18mm; text-align: center; }
.pdf-items-table .pcol-ink { width: 18mm; text-align: center; }
.pdf-items-table .pcol-paper { width: auto; font-size: 9pt; }
.pdf-items-table .pcol-subtotal { width: 28mm; text-align: right; }
.pdf-items-table .sub-line {
    color: #666;
    font-size: 8.5pt;
}
/* ===========================================================
   V14 - 슬라이딩 UI 외부 레이어 (V11.67 카드 동작 무관)
   =========================================================== */

/* 진행 인디케이터 */
.v14-progress {
    position: sticky; top: 0;
    background: #FFFFFF;
    border-bottom: 1px solid var(--accent-soft);
    z-index: 50;
    padding: 0.65rem 1rem 0.7rem;
    box-shadow: 0 1px 4px rgba(26, 31, 54, 0.08);
}
.v14-progress-inner {
    max-width: 480px; margin: 0 auto;
    display: flex; align-items: center; gap: 0.2rem;
}
.v14-step {
    display: flex; flex-direction: column; align-items: center;
    gap: 0.25rem; flex-shrink: 0; transition: transform 0.3s ease;
}
.v14-step-circle {
    width: 26px; height: 26px; border-radius: 50%;
    background: #E8E8E8; color: #6B7280;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: var(--fs-xs); font-weight: 700; line-height: 1;
    transition: all 0.3s ease;
}
.v14-step.active .v14-step-circle {
    background: #1A1A17; color: #FFFFFF; transform: scale(1.1);
    box-shadow: 0 0 0 4px rgba(26, 31, 54, 0.18);
    animation: v14Pulse 2s ease-in-out infinite;
}
.v14-step.done .v14-step-circle { background: #1A1A17; color: #FFFFFF; }
.v14-step.done .v14-step-circle::before { content: '✓'; font-size: var(--fs-base); }
.v14-step.done .v14-step-num { display: none; }
.v14-step-label {
    font-size: var(--fs-3xs); color: #6B7280; font-weight: 500;
    transition: color 0.3s ease; white-space: nowrap;
}
.v14-step.active .v14-step-label { color: #1A1A17; font-weight: 700; }
.v14-step.done .v14-step-label { color: #1A1A17; font-weight: 600; }
.v14-line {
    flex: 1; height: 2px; background: #E8E8E8;
    transition: background 0.4s ease;
    margin-bottom: 0.95rem; min-width: 12px;
}
.v14-line.done { background: #1A1A17; }
@keyframes v14Pulse {
    0%, 100% { box-shadow: 0 0 0 4px rgba(26, 31, 54, 0.18); }
    50% { box-shadow: 0 0 0 7px rgba(26, 31, 54, 0); }
}
@media (min-width: 768px) {
    .v14-progress-inner { max-width: 600px; gap: 0.4rem; }
    .v14-step-circle { width: 30px; height: 30px; font-size: var(--fs-sm); }
    .v14-step-label { font-size: var(--fs-xs); }
}
/* V21N-8 (2026-06-03) - 소형폰 단계바 살짝 축소: 전역 18px(이상) 확대에서도 4단계가 360px에 여유있게 들어가도록 */
@media (max-width: 400px) {
    .v14-progress-inner { gap: 0.1rem; }
    .v14-step { gap: 0.18rem; }
    .v14-step-circle { width: 23px; height: 23px; font-size: var(--fs-2xs); }
    .v14-step-label { font-size: var(--fs-3xs); }
    .v14-line { min-width: 6px; margin-bottom: 0.8rem; }
}

/* V21N-9 (2026-06-03) - PC STEP1(제품 선택) 패널 넓힘(컨테이너 900px → 카드 ~862px) + 3열 유지 → 카드 큼직, PC 좌우여백↓.
   데스크톱(≥980px)·STEP1 한정이라 모바일/태블릿(<980px)·PC STEP2~4 전부 무영향. (≥980px의 .container 2단 그리드를 STEP1에서만 단일컬럼으로 덮음) */
@media (min-width: 980px) {
    body.v14-step-1 .container { max-width: 900px !important; display: block !important; grid-template-columns: none !important; }
    body.v14-step-1 #form-modal-wrapper { max-width: none !important; width: 100% !important; }
    body.v14-step-1 #category-card { max-width: none !important; width: 100% !important; }
    body.v14-step-1 .form-card-section { display: block !important; max-width: none !important; }
}

/* V21N-10 (2026-06-03) - PC STEP2(인쇄사양) 폭 확대(1240→1520px) + 폼 카드 빈공간 정리(2단 다단 패킹).
   2열 그리드는 행 높이가 큰 카드에 맞춰져 짧은 카드 아래 빈 공간이 생김 → column 방식으로 카드가 위로 채워지게.
   데스크톱(≥980px)·STEP2 한정 → 모바일/태블릿·PC STEP1/3/4 전부 무영향. */
@media (min-width: 980px) {
    body.v14-step-2 .container,
    body.v14-step-3 .container { max-width: 1520px !important; grid-template-columns: 2fr 1fr !important; } /* V21N-13 균등3열: 좌측폼 2fr(내부 2단 → 각 ~33%) + 결제 1fr(~33%) + (Z-2e) step3도 동일 레이아웃 → 담기 시 우측 CTA만 교체 */
    body.v14-step-2 .form-card-section,
    body.v14-step-3 .form-card-section { display: block !important; column-count: 2 !important; column-gap: 0.6rem !important; }
    body.v14-step-2 .form-card-section > *,
    body.v14-step-3 .form-card-section > * { break-inside: avoid !important; -webkit-column-break-inside: avoid !important; width: 100% !important; margin: 0 0 0.6rem 0 !important; }
}

/* STEP 별 영역 표시/숨김 (V11.67 .active/.hidden과 무관) */
body.v14-step-1 #form-modal-wrapper > section.form-card-section > *:not(#category-card),
body.v14-step-1 #form-modal-wrapper > .form-modal-footer,
body.v14-step-1 .quote-section,
body.v14-step-1 #final-payment,
body.v14-step-1 .order-info,
body.v14-step-1 .footer { display: none !important; }

body.v14-step-2 #category-card,
body.v14-step-2 #confirm-section,
body.v14-step-2 #final-payment,
body.v14-step-2 .order-info,
body.v14-step-2 .footer { display: none !important; }

/* V14.0ddd (C 옵션) - STEP 2 카드 슬라이더 모드: 한 번에 한 카드만 (김태훈, Hiroshi Saito 권장) */
body.v14-step-2.v14-slider-mode .form-card-section .card:not(.v14-card-active) {
    display: none !important;
}
body.v14-step-2.v14-slider-mode .form-card-section .card.v14-card-active {
    display: block !important;
}

/* V14.0ddd-3 - 슬라이드 방향 애니메이션 (forward: 우→왼 진입, backward: 왼→오 진입) */
.v14-card-active.v14-slide-forward {
    animation: v14CardSlideForward 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.v14-card-active.v14-slide-backward {
    animation: v14CardSlideBackward 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes v14CardSlideForward {
    from { opacity: 0; transform: translateX(24px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes v14CardSlideBackward {
    from { opacity: 0; transform: translateX(-24px); }
    to { opacity: 1; transform: translateX(0); }
}

/* V14.0ddd-2 - 카드 검증 실패 시 흔들림 + 빨간 보더 */
.v14-card-warn {
    animation: v14CardShake 0.4s ease-in-out !important;
    box-shadow: 0 0 0 2px #f2708f, 0 4px 16px rgba(200, 69, 44, 0.15) !important;
}
@keyframes v14CardShake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-5px); }
    40% { transform: translateX(5px); }
    60% { transform: translateX(-3px); }
    80% { transform: translateX(3px); }
}

/* V14.0ddd - sub-step 진행률 인디케이터 */
.v14-substep-indicator {
    display: none !important;  /* V14.0fff++ - 슬라이더 모드 비활성화로 인디케이터도 숨김 */
    text-align: center;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    margin: 0 0 1.25rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
}
body.v14-step-2.v14-slider-mode .v14-substep-indicator { display: block; }

.v14-substep-indicator .substep-dots {
    display: inline-flex;
    gap: 0.4rem;
    margin: 0.4rem auto 0;
    justify-content: center;
}
.v14-substep-indicator .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--line);
    transition: all 0.3s ease;
}
.v14-substep-indicator .dot.done { background: var(--carrot); }
.v14-substep-indicator .dot.active { background: #1A1A17; transform: scale(1.4); }

/* 작업카드 Z-2c (2026-06-10): step3 좌측 폼 유지(#form-modal-wrapper 숨김 제거) →
   담기 시 골격(2열 [폼|레일]) 그대로, 우측 레일 CTA만 담기→결제하기 교체(Approach B).
   단, step2와 동일 골격이 되도록 #category-card는 step2처럼 step3에서도 숨김(주문내역 단계에
   카테고리 선택 카드 재노출 방지 — 좌측은 사양 입력 폼만). */
/* 작업카드 Z-2d (2026-06-10): step3에서 폼 안의 확인카드(#confirm-section "사양 확인 후 담기")와
   담기 footer(#form-modal-footer)도 숨김 — 우측 견적패널(사양요약+합계+결제하기)과 중복인 col2 제거.
   step2가 #confirm-section을 숨기던 패턴(L6279)을 step3에도 적용 → [좌 사양폼 | 우 견적결과+결제하기] 2열. */
body.v14-step-3 #category-card,
body.v14-step-3 #confirm-section,
body.v14-step-3 #form-modal-footer,
body.v14-step-3 #final-payment,
body.v14-step-3 .order-info,
body.v14-step-3 .footer { display: none !important; }

body.v14-step-4 #form-modal-wrapper,
body.v14-step-4 .quote-section { display: none !important; }

/* ── 작업카드 Z Phase2 (2026-06-10): 전진 UI 단일화 — 현 클러스터 중심.
      display-only. 로직/가격/결제핸들러/누적(savedQuotes·addCurrentToList)·300만게이트 전부 무변경.
      step2 전진=담기 단독, step3 전진=결제하기 단독, PDF는 step3 보조로만 노출. ── */
/* (1) 중복 안내문 제거 — 새 단일 CTA 동선에서 문구가 오히려 혼선(담기→…→결제하기) */
.add-btn-hint { display: none !important; }
/* (2) step2: 결제하기·PDF 숨김 → 전진 CTA는 '장바구니에 담기' 하나 (담기 성공 시 자동 step3) */
body.v14-step-2 #finalize-btn,
body.v14-step-2 #pdf-btn,
body.v14-step-2 #pdf-hint { display: none !important; }
/* (3) step3: 담기 숨김 → 전진 CTA는 '결제하기' 하나. PDF(견적서)는 이 단계에만 보조 노출.
      담기를 숨기면 IntersectionObserver가 '담기 화면이탈'로 오판해 모바일 #cart-sticky-bar
      프록시가 step3에 뜰 수 있어 함께 억제(has-sticky-cart 클래스 잔존은 Card V 챗버튼 오프셋만
      영향, 무해 — Phase 3에서 보조바 단일화 시 정리). */
body.v14-step-3 .cart-cta-wrapper,
body.v14-step-3 #cart-sticky-bar { display: none !important; }

/* ── 작업카드 Z-2c (2026-06-10): Z-2b의 step3 전용 레이아웃 재배치 제거 ──
   사장님 Approach B = 담기 시 '페이지 넘어간' 느낌 없이 step2와 동일 골격(.container 2열 [폼|레일]) 유지하고
   우측 레일 CTA만 담기→결제하기 교체(Phase2). step3 좌 폼 유지는 위 Z-2c(A). 따라서 Z-2b의
   step3 .container 1열화·.quote-section static·#stage-cart-grid 2열 블록을 제거(통째 무력화).
   #stage-cart-grid HTML 래퍼는 그대로 둠 — grid 규칙이 없으면 기본 block이라 우측 레일 안에서
   세로 스택(요약→항목→총합계→CTA), 무해. */

/* 페이지 하단 sticky nav */
.v14-nav {
    position: sticky; bottom: 0; left: 0; right: 0;
    display: flex; gap: 0.5rem;
    padding: 0.85rem 1rem max(0.85rem, env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 1px solid var(--accent-soft);
    z-index: 40;
    box-shadow: 0 -2px 12px rgba(26, 31, 54, 0.08);
}
.v14-nav-inner {
    display: flex; gap: 0.5rem;
    max-width: 480px; margin: 0 auto; width: 100%;
}
.v14-btn {
    padding: 0.95rem 1rem; border-radius: 4px;
    font-size: var(--fs-base); font-weight: 600;
    cursor: pointer; transition: all 0.25s ease;
    border: none; font-family: inherit;
    -webkit-tap-highlight-color: transparent;
}
.v14-btn-prev {
    flex: 0 0 35%; background: #F5F5F5;
    color: #555; border: 1px solid #E5E5E5;
    /* V14.0ss - 텍스트 wrap 방지 (폭 0일 때 글자 단위 wrap → 높이 폭발 방지) */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.v14-btn-prev:active { background: #EBEBEB; }
.v14-btn-next {
    flex: 1; background: #1A1A17;
    color: white;
    box-shadow: 0 2px 8px rgba(26, 31, 54, 0.15);
    letter-spacing: 0.02em;
}
.v14-btn-next:active {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(26, 31, 54, 0.2);
}
/* V14.0hh - 카테고리 미선택 시 next 버튼 disabled 시각 */
.v14-btn-next:disabled,
.v14-btn-next.v14-btn-disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    background: #DDDDDD !important;
    box-shadow: none !important;
    color: #999 !important;
    transform: none !important;
}
@media (min-width: 768px) {
    .v14-nav-inner { max-width: 600px; gap: 0.75rem; }
    /* V14.0hh - STEP 1 단독 next 버튼이라 더 컴팩트 (768+ 모든 PC 사이즈) */
    /* V14.0pp - 480px → 360px 더 컴팩트 (사장님 시각 평가 반영) */
    /* V14.0qq - 360 → 720 (B 변형 시도) → V14.0rr 360 회귀 (사장님 큼 인식 유지) */
    /* V14.0rr - 카드는 720px 유지(카테고리 가독성), nav만 360px (시각적 컴팩트) */
    body.v14-step-1 .v14-nav-inner { max-width: 360px !important; }
    body.v14-step-1 .v14-btn-next { max-width: 360px !important; }
    /* V14.0mm - specificity 더 강화 (body.v14-mode.v14-step-1 = 0,0,3,0) */
    body.v14-mode.v14-step-1 .v14-nav-inner {
        max-width: 360px !important;
        width: 360px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    body.v14-mode.v14-step-1 .v14-btn-next {
        flex: 0 0 360px !important;
        width: 360px !important;
        max-width: 360px !important;
    }
    /* V14.0oo - 부모(.v14-nav) padding으로 콘텐츠 영역 자체를 360px로 강제 */
    /* nav-inner/next 폭 제어 모두 실패 시 최후의 안전망 (부모부터 차단) */
    body.v14-mode.v14-step-1 .v14-nav {
        padding-left: max(1rem, calc((100% - 360px) / 2)) !important;
        padding-right: max(1rem, calc((100% - 360px) / 2)) !important;
    }
}

/* V14.0dd - PC 980px+ STEP 1: nav 영역 너무 넓어지지 않도록 폭 명시 */
@media (min-width: 980px) {
    .v14-nav-inner { max-width: 600px; }
    body.v14-step-1 .v14-nav-inner { max-width: 360px; }
    body.v14-step-1 .v14-btn-next { max-width: 480px; }
}
body.v14-mode .v14-step.done,
body.v14-mode .v14-step.active { cursor: pointer; }

/* V14.0bb - 접지 방식 미리보기 도식 */
.fold-preview {
    margin-top: 0.9rem;
    padding: 0.7rem 0.5rem;
    background: #FFFFFF;
    border: 1px dashed var(--accent-soft);
    border-radius: 4px;
    text-align: center;
    transition: opacity 0.2s ease;
    min-height: 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.fold-preview:empty {
    display: none;
}
.fold-preview svg {
    max-width: 100%;
    height: auto;
    display: block;
}
.fold-preview-caption {
    font-size: var(--fs-2xs);
    color: #888;
    margin-top: 0.4rem;
    line-height: 1.4;
}

/* V14.0q - 차단된 액션 버튼 (체크박스 미체크 시) */
.v14-btn-blocked {
    opacity: 0.55 !important;
    filter: grayscale(0.4);
    cursor: not-allowed !important;
    position: relative;
}
.v14-btn-blocked::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0.7rem;
    transform: translateY(-50%);
    font-size: var(--fs-sm);
    pointer-events: none;
}

/* V14.0r - 누적 직후 일시 disabled (이중 클릭 방지) */
.v14-btn-recently-clicked {
    opacity: 0.6 !important;
    cursor: wait !important;
    pointer-events: none;
}

/* V14.0p - 담기 버튼 (메인 액션, 가장 위) */
.btn-cart-add-v14 {
    width: 100%;
    padding: 1rem 1rem;
    margin-bottom: 0.55rem;
    background: #1A1A17;
    color: white;
    border: none;
    border-radius: 10px;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(26, 31, 54, 0.35);
    transition: all 0.2s ease;
    font-family: inherit;
    -webkit-tap-highlight-color: transparent;
}
.btn-cart-add-v14:hover {
    box-shadow: 0 6px 18px rgba(26, 31, 54, 0.45);
    transform: translateY(-1px);
}
.btn-cart-add-v14:active {
    transform: translateY(0) scale(0.99);
    box-shadow: 0 3px 10px rgba(26, 31, 54, 0.3);
}
.btn-cart-add-v14:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: 0 2px 8px rgba(26, 31, 54, 0.2);
}

/* V14.0p - 담기 후 짧은 펄스 피드백 */
@keyframes cart-add-feedback {
    0% { transform: scale(1); box-shadow: 0 4px 14px rgba(26, 31, 54, 0.35); }
    30% { transform: scale(1.02); box-shadow: 0 6px 24px rgba(26, 31, 54, 0.6); }
    100% { transform: scale(1); box-shadow: 0 4px 14px rgba(26, 31, 54, 0.35); }
}
.btn-cart-add-v14.feedback {
    animation: cart-add-feedback 0.4s ease-out;
}

/* V14.0p - 담기 토스트 */
.cart-add-toast-v14 {
    position: fixed;
    bottom: 6rem;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: rgba(45, 122, 78, 0.95);
    color: white;
    padding: 0.75rem 1.4rem;
    border-radius: 4px;
    font-size: 0.9rem;
    font-weight: 600;
    box-shadow: 0 4px 16px rgba(0,0,0,0.2);
    z-index: 200;
    opacity: 0;
    pointer-events: none;
    transition: all 0.3s ease;
}
.cart-add-toast-v14.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}


   사용: 클래스 추가만으로 즉시 강조
   .v14-attention-pulse  → 부드러운 박동 글로우 (지속)
   .v14-attention-arrow  → 옆에 튀기는 화살표 (지속)
   .v14-attention-shake  → 좌우 흔들림 (1회, JS로 2초 후 자동 해제)
   .v14-attention-wiggle → 좌우 작은 진동 (지속, 절제됨)
   =========================================================== */

/* A. Pulse glow - 부드러운 박동 */
@keyframes v14-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(26, 31, 54, 0.45); }
    50% { box-shadow: 0 0 0 10px rgba(26, 31, 54, 0); }
}
.v14-attention-pulse {
    animation: v14-pulse 1.6s ease-in-out infinite;
    border-radius: inherit;
}

/* B. Arrow bounce - 옆에 화살표 점프 */
.v14-attention-arrow {
    position: relative;
}
.v14-attention-arrow::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -2.2rem;
    transform: translateY(-50%);
    font-size: 1.2rem;
    animation: v14-arrow-bounce 0.8s ease-in-out infinite;
    pointer-events: none;
    z-index: 5;
}
@keyframes v14-arrow-bounce {
    0%, 100% { transform: translateY(-50%) translateX(0); }
    50% { transform: translateY(-50%) translateX(-6px); }
}

/* 모바일에서는 화살표를 아래쪽으로 (가로 공간 부족) */
@media (max-width: 767px) {
    .v14-attention-arrow::after {
        content: '';
        top: -1.6rem;
        right: 1rem;
        transform: none;
    }
    @keyframes v14-arrow-bounce {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(-4px); }
    }
}

/* C. Shake - 1회 흔들림 (검증 실패) */
@keyframes v14-shake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-7px); }
    40% { transform: translateX(7px); }
    60% { transform: translateX(-5px); }
    80% { transform: translateX(5px); }
}
.v14-attention-shake {
    animation: v14-shake 0.5s ease-in-out;
}

/* D. Wiggle - 절제된 좌우 진동 (지속) */
@keyframes v14-wiggle {
    0%, 92%, 100% { transform: rotate(0deg); }
    94% { transform: rotate(-1deg); }
    96% { transform: rotate(1deg); }
    98% { transform: rotate(-1deg); }
}
.v14-attention-wiggle {
    animation: v14-wiggle 3s ease-in-out infinite;
}


.schedule-confirm-check {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 0.6rem;
    padding: 0.65rem 0.85rem;
    background: white;
    border: 1.5px solid #E2DCCF;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}
.schedule-confirm-check:active {
    transform: scale(0.99);
}
.schedule-confirm-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--accent);
    cursor: pointer;
    flex-shrink: 0;
}
.schedule-confirm-text {
    font-size: 0.85rem;
    color: #555;
    font-weight: 500;
    line-height: 1.4;
}
.schedule-confirm-text strong {
    color: var(--text);
    font-weight: 700;
}
/* 체크된 상태 */
.schedule-confirm-check.checked {
    background: rgba(26, 31, 54, 0.08);
    border-color: var(--accent);
}
.schedule-confirm-check.checked .schedule-confirm-text {
    color: #2D2D2D;
    font-weight: 600;
}
/* 미체크 + 검증 실패 시 강조 */
.schedule-confirm-check.warn {
    animation: scheduleShake 0.4s ease-in-out;
    border-color: var(--status-warning);
    background: rgba(200, 69, 44, 0.08);
    box-shadow: 0 0 0 4px rgba(200, 69, 44, 0.15);
}

/* V14.0k - 할인 라인 강조 (대형 카테고리) */
.cost-line.cost-discount {
    color: #2D7A4E;
    font-weight: 700;
    background: rgba(45, 122, 78, 0.06);
    border-radius: 4px;
    padding: 0.35rem 0.6rem;
    margin: 0.2rem 0;
}
.cost-line.cost-discount .cost-name {
    color: #2D7A4E;
}
.cost-line.cost-discount .cost-amount {
    color: #2D7A4E;
}


.cost-line.cost-discount {
    color: #2D7A4E;
    font-weight: 700;
    background: rgba(45, 122, 78, 0.06);
    border-radius: 4px;
    padding: 0.35rem 0.6rem;
    margin: 0.2rem 0;
}
.cost-line.cost-discount .cost-name {
    color: #2D7A4E;
}
.cost-line.cost-discount .cost-amount {
    color: #2D7A4E;
}

/* V14.0g - PC 화면 STEP 1 중앙 정렬 (980px+) */
/* V14.0qq - 768+로 확장 (작은 PC 창에서도 카드와 nav 동일 폭으로 일관성 확보) */
@media (min-width: 768px) {
    /* STEP 1: 단일 컬럼 + 중앙 정렬 */
    body.v14-step-1 .container {
        grid-template-columns: 1fr !important;
        max-width: 720px !important;
    }
    body.v14-step-1 .form-card-section {
        grid-template-columns: 1fr !important;
        max-width: 720px;
        margin: 0 auto;
    }
    body.v14-step-1 #category-card {
        max-width: 720px;
        margin: 0 auto;
    }
    
    /* STEP 4: 결제 화면도 중앙 정렬 (일관성) */
    body.v14-step-4 .container {
        grid-template-columns: 1fr !important;
        max-width: 720px !important;
    }
}

/* V14.0j - 장바구니 FAB을 v14-nav 위로 올림 (가려짐 방지) */
body.v14-mode .fab-container {
    bottom: calc(5.5rem + env(safe-area-inset-bottom)) !important;
}
@media (min-width: 769px) {
    body.v14-mode .fab-container {
        bottom: 6rem !important;
    }
}

/* ===========================================================
   V14.0c - 일정 카드 (STEP 2) + checkout 표시 스타일
   V14.0i - 여백 축소
   =========================================================== */
.schedule-card-v14 {
    background: #FFFFFF;
    border: 2px solid var(--accent-soft);
    border-radius: 8px;
    padding: 0.85rem;
    margin-bottom: 0.7rem;
    box-shadow: 0 2px 10px rgba(26, 31, 54, 0.06);
}
.schedule-card-v14 .card-title {
    margin-bottom: 0.55rem;
    color: #2D2D2D;
    font-weight: 700;
    font-size: var(--fs-base);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.schedule-card-v14 .card-title-num {
    background: #ee2d65;
    color: white;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-sm);
    flex-shrink: 0;
}
/* V14.0i - V11.67 schedule-input의 margin-bottom 제거 (카드 내부에서) */
.schedule-card-v14 .schedule-input {
    margin-bottom: 0;
}
.schedule-card-v14 .schedule-notice {
    background: var(--bg-card);
    border: 1px solid var(--line);
    padding: 0.55rem 0.75rem;
    border-radius: 4px;
    font-size: var(--fs-sm);
    color: #555;
    line-height: 1.45;
    margin-top: 0.55rem;
}
/* V14.0i - 모바일에서 date-row 컴팩트하게 */
.schedule-card-v14 .date-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
}
/* V14.0ff - 일정 카드 라벨/입력 디자인 정돈 */
/* V14.0fff++ - 라벨 강조 (사용자 인지 명확) + SVG 아이콘 정렬 */
.schedule-card-v14 .date-row label {
    flex: unset;
    min-width: unset;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.01em;
}
.schedule-card-v14 .date-row .date-row-label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.schedule-card-v14 .date-row .date-icon {
    width: 14px;
    height: 14px;
    color: var(--text-soft);
    flex-shrink: 0;
}
.schedule-card-v14 .date-row input[type="date"] {
    padding: 0.55rem 0.65rem;
    background: white;
    border: 1px solid #E5E5E5;
    border-radius: 4px;
    font-family: inherit;
    font-size: var(--fs-base);
    font-weight: 600;
    color: #2D2D2D;
    outline: none;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.15s ease;
}
.schedule-card-v14 .date-row input[type="date"]:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(26, 31, 54, 0.12);
}
@media (max-width: 480px) {
    .schedule-card-v14 .date-row input[type="date"] {
        font-size: var(--fs-base);  /* iOS zoom 방지 */
    }
}

/* checkout-section 내 일정 고정 표시 */
.schedule-display {
    background: #F8F8F8;
    border: 1px solid #E5E5E5;
    border-radius: 4px;
    padding: 0.95rem 1rem;
    margin-bottom: 0.75rem;
}
.schedule-display-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.45rem 0;
    border-bottom: 1px dashed #E0E0E0;
}
.schedule-display-row:last-of-type { border-bottom: none; }
.schedule-display-label {
    font-size: var(--fs-sm);
    color: #666;
    font-weight: 500;
}
.schedule-display-value {
    font-size: var(--fs-base);
    color: #2D2D2D;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
/* V14.0fff++ - schedule-edit-btn CSS 제거 (사장님 결정: 일정 수정 버튼 삭제됨) */

/* V14.0d - 검증 실패 시 일정 카드 강조 (흔들림 + 빨간 테두리) */
.schedule-card-v14.schedule-card-warn {
    animation: scheduleShake 0.4s ease-in-out;
    border-color: #f2708f;
    box-shadow: 0 0 0 4px rgba(200, 69, 44, 0.15);
}
@keyframes scheduleShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-6px); }
    75% { transform: translateX(6px); }
}
.schedule-card-v14 input[type="date"]:invalid,
.schedule-card-v14 input[type="date"]:placeholder-shown {
    /* 빈 값일 때 강조 */
}
.schedule-card-v14 input[type="date"]:not([value]):not(:focus),
.schedule-card-v14 input#pickup-date:not(:focus) {
    border-color: #E2DCCF;
}
/* ============================================ */
/* V14.0www — 페르소나 테스트 발견 사항 개선     */
/* ============================================ */

/* #B02·B12: 본문 텍스트 베이스 — V21N-8(2026-06-03) 16→19px 전역 +18.75% (rem 기반 비례확대: 글자·버튼·카드·입력·여백 동시 ↑, "더 꽉찬" 구매화면/노년층 가독성). 모바일·PC 공통. Playwright 검증: 데스크톱·390·360 가로 오버플로 0(소형폰 단계바는 @media max-width:400px 축소로 여유). 견적서·명세서 인쇄는 @media print에서 16px로 고정(레이아웃 보존) */
html { font-size: 17px; } /* V22w 카드I#1: 19→17px 전역 (rem 비례 축소, line-height 유지) */
body { font-size: 17px; line-height: 1.6; }
p, span, td, li, label, dd, dt { font-size: inherit; }
/* 작은 텍스트도 14px 최소 */
.small, small, [class*="small-text"], [class*="caption"] { font-size: var(--fs-sm) !important; }
/* 14px 미만 직접 지정된 텍스트 보정 */
[style*="font-size: 11px"], [style*="font-size:11px"],
[style*="font-size: 12px"], [style*="font-size:12px"],
[style*="font-size: 13px"], [style*="font-size:13px"] {
  font-size: var(--fs-sm) !important;
}

/* V22r 카드C① .pr-skip-link CSS 제거 (요소 삭제와 함께) */

/* #B11: 모션 민감 사용자 보호 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================ */
/* V14.0yyy — 장바구니 UI 개선 (A+C 통합)        */
/* ============================================ */

/* [담기] 버튼 분홍 강조 (회색→분홍) */
.btn-cart-add-v14 {
  background: transparent !important;
  color: #1A1A17 !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.3px;
  box-shadow: none;
  border: 2px solid #1A1A17 !important;
}
.btn-cart-add-v14:hover {
  background: rgba(26, 26, 23, 0.06) !important;
  box-shadow: none !important;
  transform: translateY(-1px);
}
.btn-cart-add-v14:disabled {
  opacity: 0.5 !important;
  background: transparent !important;
  border-color: #BBB !important;
  box-shadow: none !important;
}

/* V22w 카드I#3: 맥동 글로우 제거(ⓐ) — pulse-empty 클래스가 붙어도 시각 효과 없음. 버튼 기본형·hover는 유지. */
.btn-cart-add-v14.pulse-empty {
  animation: none;
}
@media (prefers-reduced-motion: reduce) {
  .btn-cart-add-v14.pulse-empty { animation: none; }
}

/* A-1(수정): 담기 차단 시 회색 비활성 시각 — 라벨은 "장바구니에 담기" 고정, disabled 속성은 안 씀(클릭으로 일정 안내).
   2클래스 !important 라 기본 잉크아웃라인(.btn-cart-add-v14)·일반 .v14-btn-blocked(투명도)보다 우선. */
.btn-cart-add-v14.v14-btn-blocked {
  background: #ECE8E0 !important;
  color: #A29C92 !important;
  border-color: #D9D5CC !important;
  box-shadow: none !important;
  opacity: 1 !important;
  filter: none !important;
  cursor: not-allowed !important;
}
.btn-cart-add-v14.v14-btn-blocked:hover {
  background: #ECE8E0 !important;
  transform: none !important;
}

/* 담기 버튼 + 묶음 세트 드롭다운 wrapper */
.cart-cta-wrapper {
  display: flex;
  gap: 8px;
  align-items: stretch;
  margin-bottom: 0.55rem;
}
.cart-cta-wrapper .btn-cart-add-v14 {
  flex: 1;
  margin-bottom: 0 !important;
}
.cart-multiplier-select {
  flex: 0 0 auto;
  width: auto;
  min-width: 80px;
  padding: 0 14px;
  border: 2px solid #f2708f;
  border-radius: 10px;
  background: #fff;
  color: #1A1A17;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FF6B9D'%3e%3cpath d='M7 10l5 5 5-5z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 8px center;
  padding-right: 30px;
}
.cart-multiplier-select:focus {
  outline: 3px solid rgba(200, 69, 44, 0.3);
}
.cart-multiplier-select.active-multi {
  background-color: var(--accent-soft);
  border-color: #d33;
  color: #d33;
}
.cart-multiplier-hint {
  font-size: 0.78rem;
  color: #888;
  margin: -2px 0 12px;
  padding: 0 4px;
}
.cart-multiplier-hint.highlight {
  color: #d33;
  font-weight: 600;
}

/* 모바일에서 sticky bottom — 스크롤 무관 항상 보임 */
@media (max-width: 768px) {
  .stage-section .action-btns {
    position: relative;
  }
  /* 모바일 화면 하단에 고정된 mini cart bar (사양 입력 후 이동 시 항상 노출) */
  #cart-sticky-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-top: 1px solid #f0d0dc;
    padding: 10px 12px;
    z-index: 800;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
    display: none;
  }
  #cart-sticky-bar.show { display: block; }
  #cart-sticky-bar .sticky-cart-btn {
    width: 100%;
    padding: 12px;
    background: linear-gradient(135deg, #f2708f 0%, #f2708f 100%);
    color: #fff;
    font-weight: 700;
    border: none;
    border-radius: 8px;
    font-size: 0.95rem;
    box-shadow: 0 2px 10px rgba(200, 69, 44, 0.3);
    cursor: pointer;
  }
  #cart-sticky-bar .sticky-cart-info {
    text-align: center;
    font-size: 0.8rem;
    color: #666;
    margin-bottom: 6px;
  }
  /* sticky bar 표시 시 페이지 하단 padding 추가 (콘텐츠 가림 방지) */
  body.has-sticky-cart {
    padding-bottom: 80px !important;
  }
}

/* =================== V15.0ab — 네이버 검수 대응 =================== */
/* 모든 STEP에서 footer 표시 (전상법 표시 의무 충족, 검수자 페이지 어디서든 4항목 확인 가능) */
/* 기존 v14-step-1/2/3에서 footer를 display:none 처리하던 규칙을 override */
body.v14-step-1 .footer,
body.v14-step-2 .footer,
body.v14-step-3 .footer {
  display: block !important;
}

/* =================== V15.0ad — 묶음 세트 입력 (stepper) =================== */
/* 기존 select를 number input + 증감 버튼으로 변경 (자유 입력 1~99) */

/* V16.0c hotfix (2026-05-14) - 사장님 발견: 묶음 카드 가로 전체 → 빈 여백. grid-column 1/-1 룰 제거. 카드 너비는 inline max-width 460px 유지. */
.cart-multiplier-stepper {
  display: inline-flex;
  align-items: stretch;
  border: 1.5px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  height: 44px;
  flex-shrink: 0;
}
.cart-multiplier-stepper .cart-multiplier-btn {
  width: 36px;
  border: none;
  background: #fafafa;
  font-size: 1.2rem;
  font-weight: 600;
  color: #333;
  cursor: pointer;
  user-select: none;
  transition: background 0.15s;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.cart-multiplier-stepper .cart-multiplier-btn:hover {
  background: #f0f0f0;
}
.cart-multiplier-stepper .cart-multiplier-btn:active {
  background: #e8e8e8;
}
.cart-multiplier-stepper .cart-multiplier-input {
  width: 52px;
  border: none;
  border-left: 1px solid #eee;
  border-right: 1px solid #eee;
  text-align: center;
  font-size: 1rem;
  font-weight: 600;
  color: #222;
  background: #fff;
  -moz-appearance: textfield;
  appearance: textfield;
  padding: 0;
}
.cart-multiplier-stepper .cart-multiplier-input::-webkit-outer-spin-button,
.cart-multiplier-stepper .cart-multiplier-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.cart-multiplier-stepper .cart-multiplier-input:focus {
  outline: 2px solid #f2708f;
  outline-offset: -2px;
}
/* 묶음 활성 상태 (×2 이상) */
.cart-multiplier-input.active-multi {
  color: #f2708f;
  background: var(--accent-soft);
}
.cart-multiplier-stepper:has(.active-multi) {
  border-color: #f2708f;
}

/* V15.0bd - 가격 박스 묶음 적용 시 보더만 강조 (미니멀 컨셉 정합) */
.total-block-bundle {
  border: 2px solid var(--primary) !important;
}
/* multi와 동시 적용 시 - multi(다크 네이비)가 배경, bundle은 보더만 */
.total-block-multi.total-block-bundle {
  background: var(--primary) !important;
  border: 2px solid var(--accent) !important;
}
.bundle-badge {
  display: inline-block;
  background: var(--accent);
  color: #fff;
  font-size: var(--fs-2xs);
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  margin-left: 6px;
  vertical-align: middle;
}
.total-set-breakdown {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--line);
  font-size: 0.85rem;
  color: var(--text-soft);
  text-align: center;
  font-weight: 500;
}


/* ============================================================
   V15.0bh - PDF 미리보기 (캔버스 크게 + 정보/알림 가로 일렬)
============================================================ */
.pdf-preview-slot { margin-top: 0.4rem; width: 100%; }
.pdf-preview-slot:empty { display: none; }

.pdf-preview-loading,
.pdf-preview-note {
    padding: 12px 14px;
    background: var(--bg-soft, #F5F2ED);
    border: 1px solid var(--line, #E2DCCF);
    border-radius: var(--radius, 4px);
    font-size: var(--fs-xs);
    color: var(--text-soft, #7A766C);
    text-align: center;
}

.pdf-preview-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
    background: var(--bg-soft, #F5F2ED);
    border: 1px solid var(--line, #E2DCCF);
    border-radius: var(--radius, 4px);
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(0,0,0,0.04));
}

/* 캔버스 - 크게 (메인 시각 요소) */
.pdf-preview-canvas-wrap {
    background: #fff;
    border: 1px solid var(--line, #E2DCCF);
    border-radius: var(--radius, 4px);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(0,0,0,0.04));
}
.pdf-preview-canvas {
    width: 100%;
    height: auto;
    display: block;
    max-height: 700px;
    object-fit: contain;
}

/* 정보 카드 - 가로 일렬 */
.pdf-preview-info {
    display: flex;
    flex-direction: row;
    gap: 10px;
    flex-wrap: wrap;
}
.pdf-info-card {
    flex: 1 1 160px;
    min-width: 140px;
    background: #fff;
    border: 1px solid var(--line, #E2DCCF);
    border-radius: var(--radius, 4px);
    padding: 10px 12px;
}
.pdf-info-label {
    font-size: var(--fs-2xs);
    color: var(--text-soft, #7A766C);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
}
.pdf-info-value {
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--text, #1A1A17);
    line-height: 1.2;
}
.pdf-info-value-sm { font-size: var(--fs-base); }
.pdf-info-unit {
    font-size: var(--fs-xs);
    font-weight: 400;
    color: var(--text-soft, #7A766C);
    margin-left: 4px;
}
.pdf-info-sub {
    font-size: var(--fs-2xs);
    color: var(--text-mute, #6F695E);
    margin-top: 2px;
}

.pdf-quantity-hint {
    padding: 10px 12px;
    background: var(--bg-soft, #F5F2ED);
    border: 1px solid var(--line);
    border-radius: 0 var(--radius, 4px) var(--radius, 4px) 0;
    font-size: var(--fs-xs);
    color: var(--text, #1A1A17);
}

/* 알림 카드 - 가로 일렬 (반응형) */
.pdf-alerts {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
}

.pdf-preview-alert {
    display: flex;
    gap: 10px;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid var(--line, #E2DCCF);
    border-radius: var(--radius, 4px);
    flex: 1 1 240px;
    min-width: 200px;
    max-width: 100%;
}
.pdf-preview-alert.level-ok { border-left-color: var(--text-soft, #7A766C); }
.pdf-preview-alert.level-info { border-left-color: var(--text-mute, #6F695E); }
.pdf-preview-alert.level-warn { border-left-color: var(--primary, #1A1A17); background: var(--bg-soft, #F5F2ED); }
.pdf-preview-alert.level-danger { border-left-color: var(--status-danger); background: var(--bg-soft, #F5F2ED); }

.pdf-alert-badge {
    flex-shrink: 0;
    font-size: var(--fs-2xs);
    font-weight: 600;
    color: var(--text-soft, #7A766C);
    padding-top: 1px;
}
.pdf-preview-alert.level-danger .pdf-alert-badge { color: var(--status-danger); }

.pdf-alert-body { flex: 1; min-width: 0; }
.pdf-alert-title {
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text, #1A1A17);
    margin-bottom: 2px;
}
.pdf-alert-desc {
    font-size: var(--fs-2xs);
    color: var(--text-soft, #7A766C);
    line-height: 1.5;
}

@media (max-width: 600px) {
    .pdf-preview-grid { padding: 10px; gap: 10px; }
    .pdf-preview-canvas-wrap { max-height: 500px; }
    .pdf-info-value { font-size: 1.2rem; }
    .pdf-preview-alert { flex: 1 1 100%; min-width: 0; }
}

/* ============================================================
   V15.0bn - 비규격 사이즈 입력 (메모리 #30 미니멀)
============================================================ */
.size-chip-custom label {
    border-style: dashed !important;
    border-color: var(--text-soft, #7A766C) !important;
}
.size-chip-custom input:checked + label {
    border-style: solid !important;
    border-color: var(--primary, #1A1A17) !important;
    background: var(--primary, #1A1A17) !important;
    color: #fff !important;
}

.custom-size-row {
    margin-top: 12px;
    padding: 14px;
    background: var(--bg-soft, #F5F2ED);
    border: 1px solid var(--line, #E2DCCF);
    border-radius: var(--radius, 4px);
}
.custom-size-inputs {
    display: flex;
    align-items: center;
    gap: 8px;
}
.custom-size-input {
    width: 90px;
    padding: 8px 10px;
    font-size: var(--fs-base);
    text-align: center;
    border: 1px solid var(--line, #E2DCCF);
    border-radius: var(--radius, 4px);
    background: #fff;
    color: var(--text, #1A1A17);
}
.custom-size-input:focus {
    outline: none;
    border-color: var(--primary, #1A1A17);
}
.custom-size-x {
    font-size: var(--fs-base);
    color: var(--text-soft, #7A766C);
}
.custom-size-unit {
    font-size: var(--fs-sm);
    color: var(--text-soft, #7A766C);
}
.custom-size-info {
    margin-top: 10px;
    font-size: var(--fs-xs);
    color: var(--text-soft, #7A766C);
    line-height: 1.6;
}
.custom-size-info.error {
    color: var(--accent, #f2708f);
}
.custom-size-info .info-row {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    border-bottom: 1px dashed var(--line, #E2DCCF);
}
.custom-size-info .info-row:last-child {
    border-bottom: none;
}
.custom-size-info .info-label {
    color: var(--text-mute, #6F695E);
}
.custom-size-info .info-value {
    color: var(--text, #1A1A17);
    font-weight: 500;
}
.custom-size-suggest {
    margin-top: 8px;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 0 var(--radius, 4px) var(--radius, 4px) 0;
    font-size: var(--fs-xs);
}
.custom-size-suggest-action {
    margin-top: 6px;
    padding: 4px 10px;
    background: var(--primary, #1A1A17);
    color: #fff;
    border: none;
    border-radius: var(--radius, 4px);
    font-size: var(--fs-2xs);
    cursor: pointer;
}
.custom-size-suggest-action:hover {
    background: var(--accent, #f2708f);
}
.custom-bleed-guide {
    margin-top: 10px;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid var(--line, #E2DCCF);
    border-radius: var(--radius, 4px);
    font-size: var(--fs-2xs);
    color: var(--text-soft, #7A766C);
    line-height: 1.6;
}

@media (max-width: 600px) {
    .custom-size-input { width: 75px; }
}

/* =================== V21f 런칭 수정 (2026-05-30) =================== */
/* [B] C1/M5 - 주문 직전 필수값 인라인 검증 오류 표시 */
.field-error {
    display: none;
    color: var(--status-danger, #c62828);
    font-size: var(--fs-sm);
    line-height: 1.4;
    margin: 4px 2px 2px;
}
.field-error.show { display: block; }
.recipient-input input.input-error,
input.input-error {
    border: 1.5px solid var(--status-danger, #c62828) !important;
    background: var(--bg-card) !important;
}
.recipient-input input.input-error:focus {
    outline: 2px solid var(--status-danger, #c62828);
    outline-offset: 1px;
}

/* [C] M2 - 파일 규격 사전 안내 (업로드 영역) */
.upload-spec-guide {
    margin: 8px 0 4px;
    padding: 9px 12px;
    background: var(--status-info-bg, #e3f2fd);
    border: 1px solid #b6d4f0;
    border-radius: 8px;
    font-size: var(--fs-sm);
    line-height: 1.55;
    color: #234;
}
.upload-spec-guide strong { color: var(--accent-dark, #ee2d65); }
.upload-spec-guide .upload-spec-sep { color: #9bb; margin: 0 5px; }

/* [E] M4 - 터치 타깃 최소 44px 보정 (메인 수량 스테퍼·묶음 버튼) */
.number-stepper { width: 44px; }
.cart-multiplier-stepper .cart-multiplier-btn { width: 44px; min-height: 44px; }
/* 주: .form-card-section .number-stepper(28×36) 컴팩트 데스크탑 2열 변형은 레이아웃 오버플로우 방지를 위해 유지 — 변경요약 참조 */

/* =====================================================
   PHASE A (?ui=new) — 무선(perfect) 새 견적 UI
   승인 데모 재현: 점진노출 아코디언 + 상단 점프칩 + PC 2단 우측 sticky 요약
   + 책등 시각화 + 종이 색칩 스와치 + 종속 재검증 토스트.
   팔레트: 종이톤 #F6F3EC · 잉크 #1A1A17 · 주홍 #f2708f (booklet-demo / pattern-demo-3)
   ===================================================== */
#perfect-new-ui {
    --pnu-paper: #F6F3EC; --pnu-ink: #1A1A17; --pnu-accent: #f2708f;
    --pnu-line: #E2DCCF; --pnu-sub: #7A766C; --pnu-card: #FFFFFF; --pnu-ok: #3B7A57;
    color: var(--pnu-ink); margin: 2px 0 16px;
}
#perfect-new-ui * { box-sizing: border-box; }
#perfect-new-ui .pnu-eyebrow { font-size: var(--fs-2xs); letter-spacing: .16em; color: var(--pnu-accent); font-weight: 700; text-transform: uppercase; }
/* Phase 1-3 명함: 고정 스펙줄(규격·용지) — 단계 아님 */
#perfect-new-ui .pnu-fixed-spec { margin: 8px 0 2px; font-size: var(--fs-sm); color: var(--pnu-sub); }   /* C0: 미정의 --pnu-ink-soft → 동값 로컬토큰 --pnu-sub(#7A766C) */
#perfect-new-ui .pnu-fixed-spec strong { color: var(--pnu-ink); font-weight: 700; }
/* 상단 점프 칩 */
#perfect-new-ui .pnu-chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0 14px; }
#perfect-new-ui .pnu-chip-b {
    display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
    border: 1.5px solid var(--pnu-line); background: var(--pnu-card); border-radius: 20px;
    padding: 6px 12px; font-size: var(--fs-sm); font-weight: 700; color: var(--pnu-ink);
    font-family: inherit; transition: .14s;
}
#perfect-new-ui .pnu-chip-b:hover { border-color: var(--pnu-accent); color: var(--pnu-accent); }
#perfect-new-ui .pnu-chip-b span { color: var(--pnu-sub); font-weight: 600; }
#perfect-new-ui .pnu-chip-b .pnu-pen { font-size: var(--fs-3xs); }
/* [B] 좌측 공백 제거 (CSS 충돌 해결).
   STEP2는 `body.v14-step-2 .form-card-section { column-count:2 !important }`(6265) 다단 레이아웃 →
   새 UI(긴 아코디언)가 한 단만 채워 옆 단이 비어 가운데 공백 발생. grid-template-columns로는 못 이김(다른 속성).
   → 같은 속성 column-count를 더 높은 특이도로 1로 덮고, pnu일 때 .container를 좁혀 [새UI 좌][견적 우] 2열로. */
@media (min-width: 980px) {
    body.v14-step-2.pnu-active .form-card-section,
    body.v14-step-3.pnu-active .form-card-section { column-count: 1 !important; }
    body.v14-step-2.pnu-active .container,
    body.v14-step-3.pnu-active .container { max-width: 1200px !important; grid-template-columns: 1.4fr 1fr !important; } /* (Z-2f) step3도 step2와 동일 pnu 렌더 → 가운데 여백 제거 + 담기 시 카드만 교체 */
}
/* PHASE A 모바일(<768px): 새 UI는 슬라이더가 아닌 전폭 세로 스크롤 단일열. 우측 견적은 그 아래로 stack.
   (슬라이더는 현재 비활성이지만 v14StartSliderMode 게이트로 이중보장.) 전부 body.pnu-active 한정 → 다른 카테고리 무영향. */
@media (max-width: 767px) {
    body.v14-step-2.pnu-active .form-card-section { display: block !important; column-count: 1 !important; }
    body.v14-step-2.pnu-active #perfect-new-ui { width: 100%; }
    body.v14-step-2.pnu-active #perfect-new-ui .pnu-swatches { grid-template-columns: repeat(3, 1fr); }
    body.v14-step-2.pnu-active .quote-section { margin-top: 1rem; }   /* 견적 패널 → 새 UI 아래 stack */
}
/* (B) 모바일 하단 슬림 가격바 — max-width:767px + body.v14-step-2.pnu-active 일 때만 표시. 데스크톱·타카테고리 무영향. */
#pnu-mobile-bar { display: none; }
@media (max-width: 767px) {
    body.v14-step-2.pnu-active #pnu-mobile-bar {
        display: flex; align-items: center; gap: 12px;
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
        background: #1A1A17; color: #fff;
        padding: 9px 14px calc(9px + env(safe-area-inset-bottom));
        box-shadow: 0 -4px 20px rgba(0,0,0,.18);
    }
    body.v14-step-2.pnu-active #pnu-mobile-bar .pnu-mbar-info { flex: 0 1 auto; min-width: 0; line-height: 1.15; }
    body.v14-step-2.pnu-active #pnu-mobile-bar .pnu-mbar-label { display: block; font-size: var(--fs-3xs); color: #C9C3B6; font-weight: 500; }
    body.v14-step-2.pnu-active #pnu-mobile-bar .pnu-mbar-total { font-size: 18px; font-weight: 800; letter-spacing: -.01em; }
    body.v14-step-2.pnu-active #pnu-mbar-slot { flex: 1 1 auto; display: flex; }
    /* 이동된 담기 버튼: 바 안에서 전폭·적정 높이. (A-1 수정: 라벨 고정 "장바구니에 담기"라 줄바꿈 거의 없음) */
    body.v14-step-2.pnu-active #pnu-mbar-slot .btn-cart-add-v14 {
        width: 100%; margin: 0; padding: 11px 14px; border-radius: 11px;
        font-size: 14px; font-weight: 800; line-height: 1.2; white-space: normal;
    }
    /* 모바일 하단바: 활성 담기 = 액센트 솔리드. 차단(v14-btn-blocked)은 :not으로 제외 → A-1 회색 비활성 유지. 데스크톱 패널 아웃라인 불변. */
    body.v14-step-2.pnu-active #pnu-mbar-slot .btn-cart-add-v14:not(.v14-btn-blocked) {
        background: #f2708f !important; color: #fff !important; border-color: #f2708f !important;
    }
    body.v14-step-2.pnu-active #pnu-mbar-slot .btn-cart-add-v14:not(.v14-btn-blocked):hover,
    body.v14-step-2.pnu-active #pnu-mbar-slot .btn-cart-add-v14:not(.v14-btn-blocked):active {
        background: #ee2d65 !important; border-color: #ee2d65 !important;
    }
    /* 패널 내 중복 액션 숨김(담기 wrapper·결제하기·PDF·힌트·안내). 상세항목·합계는 그대로 stack 유지. */
    body.v14-step-2.pnu-active .quote-section .cart-cta-wrapper,
    body.v14-step-2.pnu-active .quote-section #finalize-btn,
    body.v14-step-2.pnu-active .quote-section #pdf-btn,
    body.v14-step-2.pnu-active .quote-section .add-btn-hint,
    body.v14-step-2.pnu-active .quote-section #pdf-hint,
    body.v14-step-2.pnu-active .quote-section .quote-stage-note { display: none !important; }
    /* 본문이 고정바에 안 가리게 하단 여백 확보 */
    body.v14-step-2.pnu-active { padding-bottom: 78px; }
}
#perfect-new-ui { width: 100%; }
#perfect-new-ui .pnu-steps { display: flex; flex-direction: column; gap: 10px; margin-bottom: 10px; }
/* ⑦ 일정 단계 (자유 아코디언 — 영속 호스트, _pnuOpen===6일 때만 본문 표시) */
#perfect-new-ui .pnu-step7 .pnu-st-body { display: none; padding: 4px 15px 16px; }
#perfect-new-ui .pnu-step7.open .pnu-st-body { display: block; }
/* ⑦ 안의 일정카드: 새 UI 톤에 맞춰 군더더기 테두리 제거(카드 안 카드 방지) */
#perfect-new-ui #pnu-sched-mount > .schedule-card-v14 { border: none; padding: 0; margin: 0; box-shadow: none; background: transparent; }
/* 단계 카드(아코디언) */
#perfect-new-ui .pnu-st { border: 1.5px solid var(--pnu-line); border-radius: 14px; background: var(--pnu-card); overflow: hidden; transition: .16s; }
#perfect-new-ui .pnu-st.locked { opacity: .42; background: transparent; border-style: dashed; }
#perfect-new-ui .pnu-st.open { border-color: var(--pnu-ink); box-shadow: 0 4px 18px rgba(26,26,23,.06); }
#perfect-new-ui .pnu-st-head { display: flex; align-items: center; gap: 10px; padding: 14px 15px; cursor: pointer; border-radius: 13px; transition: background .14s; }
#perfect-new-ui .pnu-st.locked .pnu-st-head { cursor: default; }
#perfect-new-ui .pnu-st-num {
    width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--pnu-line);
    display: grid; place-items: center; font-size: var(--fs-2xs); font-weight: 800; color: var(--pnu-sub); flex: none;
}
#perfect-new-ui .pnu-st.done .pnu-st-num { background: var(--pnu-ink); border-color: var(--pnu-ink); color: #fff; }
#perfect-new-ui .pnu-st.open .pnu-st-num { border-color: var(--pnu-ink); color: var(--pnu-ink); }
#perfect-new-ui .pnu-st-txt { flex: 1; min-width: 0; }
#perfect-new-ui .pnu-st-label { font-size: var(--fs-sm); font-weight: 800; letter-spacing: -.01em; }
#perfect-new-ui .pnu-st-val { font-size: var(--fs-sm); color: var(--pnu-accent); font-weight: 600; margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#perfect-new-ui .pnu-st-chev { font-size: var(--fs-base); color: var(--pnu-ink); flex: none; }   /* Phase 0-5: 화살표 크고 또렷 */
#perfect-new-ui .pnu-st-edit { font-size: var(--fs-sm); color: var(--pnu-ink); font-weight: 700; flex: none; }   /* Phase 0-5: "변경" 진하게 */
/* Phase 0-5: 헤더 클릭 어포던스 — hover 시 배경 + 화살표/변경 버밀리언. (시각만, 레이아웃·동작 무변) */
#perfect-new-ui .pnu-st:not(.locked) .pnu-st-head:hover { background: var(--pnu-paper); }
#perfect-new-ui .pnu-st:not(.locked) .pnu-st-head:hover .pnu-st-chev,
#perfect-new-ui .pnu-st:not(.locked) .pnu-st-head:hover .pnu-st-edit { color: var(--pnu-accent); }
#perfect-new-ui .pnu-st-body { padding: 0 15px 16px; }
/* 비접힘(카드형) — 디자인: 종류·옵션·일정을 한 카드에 차곡 펼침(접기/체브론/변경 제거, 단계 간 간격 정리). #pnu-steps(.pnu-flat)=카드 상단, #pnu-step7(.pnu-flat)=카드 하단으로 이어붙임. */
#perfect-new-ui .pnu-steps.pnu-flat { gap: 0; margin-bottom: 0; border: 1.5px solid var(--pnu-line); border-bottom: none; border-radius: 14px 14px 0 0; background: var(--pnu-card); overflow: hidden; }
#perfect-new-ui .pnu-steps.pnu-flat .pnu-st { border: none; border-radius: 0; box-shadow: none; background: transparent; border-bottom: 1px solid var(--pnu-line); }
#perfect-new-ui .pnu-st.pnu-flat { border: 1.5px solid var(--pnu-line); border-top: none; border-radius: 0 0 14px 14px; box-shadow: none; background: var(--pnu-card); }
#perfect-new-ui .pnu-flat .pnu-st-head, #perfect-new-ui .pnu-st.pnu-flat .pnu-st-head { cursor: default; }

/* ============================================================
   Card BH (2026-06-14) - STEP2 사양 몰입: 완료 흐림 / 현재 또렷.
   immersion-on(app.js _pnuRenderSteps에서 #perfect-new-ui에 부여) 하위에서만 동작.
   롤백 = class 제거 → 아래 규칙 전부 비활성 → 현행 100% 원복.
   blur 미사용(가독·접근성) · opacity만 · hover/탭 복귀로 답답함 해소 · flat은 전 단계 open이라 영향 적음.
   ============================================================ */
/* 완료 단계: 요약칩처럼 흐리게(시선 분산 차단) */
#perfect-new-ui.immersion-on .pnu-st.done {
    opacity: .55;
    transition: opacity .25s ease;
}
#perfect-new-ui.immersion-on .pnu-st.done:hover { opacity: 1; }   /* 다시 보고 싶으면 hover 복귀 */
/* 대기 단계(미래): 옅은 고스트. :not(.locked)로 기존 locked(.42) 딤은 보존 */
#perfect-new-ui.immersion-on .pnu-st:not(.open):not(.done):not(.locked) {
    opacity: .72;
    transition: opacity .25s ease;
}
#perfect-new-ui.immersion-on .pnu-st:not(.open):not(.done):not(.locked):hover { opacity: 1; }
/* 현재 단계(.open)는 규칙 없음 → 그대로 또렷 */
/* reduced-motion: 단계 전환 트랜지션 제거(흐림 자체는 유지) */
@media (prefers-reduced-motion: reduce) {
    #perfect-new-ui.immersion-on .pnu-st.done,
    #perfect-new-ui.immersion-on .pnu-st:not(.open):not(.done):not(.locked) { transition: none; }
}
#perfect-new-ui .pnu-flat .pnu-st-head:hover, #perfect-new-ui .pnu-st.pnu-flat .pnu-st-head:hover { background: transparent; }
#perfect-new-ui .pnu-flat .pnu-st-chev, #perfect-new-ui .pnu-flat .pnu-st-edit,
#perfect-new-ui .pnu-st.pnu-flat .pnu-st-chev, #perfect-new-ui .pnu-st.pnu-flat .pnu-st-edit { display: none; }
#perfect-new-ui .pnu-flat .pnu-st-num, #perfect-new-ui .pnu-st.pnu-flat .pnu-st-num { opacity: .55; }
#perfect-new-ui .pnu-step7.pnu-flat .pnu-st-body { display: block; }
#perfect-new-ui .pnu-sublabel { font-size: var(--fs-2xs); font-weight: 700; color: var(--pnu-sub); margin: 13px 0 8px; }
#perfect-new-ui .pnu-sublabel:first-child { margin-top: 2px; }
#perfect-new-ui .pnu-hint { font-size: var(--fs-2xs); font-weight: 500; color: var(--pnu-sub); }
/* 종이 색칩 스와치 */
#perfect-new-ui .pnu-swatches { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
@media (min-width: 460px) { #perfect-new-ui .pnu-swatches { grid-template-columns: repeat(6, 1fr); } }
#perfect-new-ui .pnu-sw-paper { cursor: pointer; border: 1.5px solid var(--pnu-line); border-radius: 11px; background: var(--pnu-card); padding: 8px; text-align: center; font-family: inherit; transition: .14s; }
#perfect-new-ui .pnu-sw-paper:hover { border-color: #C7BFAE; transform: translateY(-2px); }
#perfect-new-ui .pnu-sw-paper.is-on { border-color: var(--pnu-ink); box-shadow: 0 0 0 1.5px var(--pnu-ink); }
#perfect-new-ui .pnu-sw-paper .pnu-chip { display: block; height: 26px; border-radius: 6px; margin-bottom: 6px; }
#perfect-new-ui .pnu-sw-paper .pnu-nm { font-size: var(--fs-2xs); font-weight: 700; color: var(--pnu-ink); }
/* 일반 버튼 (규격·도수·평량·코팅) */
#perfect-new-ui .pnu-btns { display: flex; gap: 8px; flex-wrap: wrap; }
#perfect-new-ui .pnu-bb { cursor: pointer; border: 1.5px solid var(--pnu-line); background: var(--pnu-card); border-radius: 11px; padding: 10px 15px; font-size: var(--fs-sm); font-weight: 700; font-family: inherit; color: var(--pnu-ink); transition: .14s; min-height: 44px; }
#perfect-new-ui .pnu-bb:hover { border-color: #C7BFAE; }
#perfect-new-ui .pnu-bb.is-on { background: var(--pnu-ink); color: #fff; border-color: var(--pnu-ink); }
#perfect-new-ui .pnu-bb small { display: block; font-size: var(--fs-3xs); color: var(--pnu-sub); font-weight: 600; margin-top: 1px; }
#perfect-new-ui .pnu-bb.is-on small { color: #C9C4BA; }
/* 비규격 */
#perfect-new-ui .pnu-custom { display: flex; align-items: center; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
#perfect-new-ui .pnu-custom input { width: 86px; padding: 10px 12px; border: 1.5px solid var(--pnu-line); border-radius: 10px; font-size: var(--fs-sm); font-family: inherit; min-height: 44px; }
#perfect-new-ui .pnu-x, #perfect-new-ui .pnu-unit { color: var(--pnu-sub); font-size: var(--fs-sm); }
/* 스텝퍼 */
#perfect-new-ui .pnu-stepper { display: flex; align-items: center; border: 1.5px solid var(--pnu-line); border-radius: 11px; overflow: hidden; width: fit-content; }
#perfect-new-ui .pnu-step-btn { width: 44px; height: 44px; border: none; background: var(--pnu-card); font-size: 20px; line-height: 1; cursor: pointer; color: var(--pnu-ink); font-family: inherit; }
#perfect-new-ui .pnu-step-btn:hover { background: var(--pnu-paper); }
#perfect-new-ui .pnu-num { width: 84px; height: 44px; border: none; border-left: 1.5px solid var(--pnu-line); border-right: 1.5px solid var(--pnu-line); text-align: center; font-size: var(--fs-base); font-weight: 800; font-family: inherit; }
#perfect-new-ui .pnu-step-suffix { display: none; }
#perfect-new-ui .pnu-pgnote { font-size: var(--fs-2xs); color: var(--pnu-sub); margin-top: 7px; }
#perfect-new-ui .pnu-quick { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
#perfect-new-ui .pnu-quick button { border: 1px solid var(--pnu-line); background: var(--pnu-card); color: var(--pnu-sub); border-radius: 8px; padding: 7px 11px; font-size: var(--fs-2xs); font-weight: 600; font-family: inherit; cursor: pointer; }
#perfect-new-ui .pnu-quick button:hover { border-color: var(--pnu-accent); color: var(--pnu-accent); }
/* 다음/완료 버튼 */
#perfect-new-ui .pnu-next { margin-top: 14px; background: none; border: none; color: var(--pnu-accent); font-size: var(--fs-sm); font-weight: 800; font-family: inherit; cursor: pointer; padding: 4px 0; }
/* 책등 텍스트 (도식 제거 — 내지 단계 안). 가격·할인·합계는 우측 #quote-panel(정본)이 담당. */
#perfect-new-ui .pnu-spine-line { font-size: 12px; font-weight: 700; color: var(--pnu-ok); margin-top: 12px; }
#perfect-new-ui .pnu-spine-line:empty { display: none; }
/* 묶음 세트 스텝퍼 (부수 단계 내 통합) — .pnu-stepper 재사용 */
#perfect-new-ui .pnu-multi { margin-top: 2px; }
/* 토스트 (종속 재검증 안내) */
#perfect-new-ui .pnu-toast { position: fixed; left: 50%; bottom: 90px; transform: translateX(-50%) translateY(10px); background: var(--pnu-ink); color: #fff; font-size: var(--fs-sm); font-weight: 600; padding: 10px 16px; border-radius: 10px; opacity: 0; pointer-events: none; transition: .25s; box-shadow: 0 6px 20px rgba(0,0,0,.2); max-width: 90%; text-align: center; z-index: 60; }
#perfect-new-ui .pnu-toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ============================================================
   V22u 카드G — 메인 하단 단계별 표시 (step1 풀 / step2·3·4 집중)
   step2/3/4(body.v14-step-2/-3/-4)에서 하단 마케팅/내비 군더더기만 CSS로 숨김.
   step1은 규칙 미적용 = 현행 풀 푸터 유지. HTML/JS 무수정.
   남김: .footer-info(사업자정보) / .footer-policy 법적버튼(약관·개인정보·환불) / .footer-copy(카피라이트).
   ============================================================ */
/* 블록 전체 숨김 */
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .footer-hours,
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .footer-products-seo,
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .site-nav,
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .seo-content,
/* .footer-policy 내부 선택 숨김: 블로그·FAQ·쿠키설정 + 인접 구분자(·) */
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .footer-policy a[href="/blog/"],
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .footer-policy a[href="/faq.html"],
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .footer-policy a[href="/blog/"] + .policy-sep,
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .footer-policy a[href="/faq.html"] + .policy-sep,
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .footer-policy #pr-cc-foot,
body:is(.v14-step-2, .v14-step-3, .v14-step-4) .footer-policy .policy-sep:has(+ #pr-cc-foot) {
    display: none !important;
}

/* ============================================================
   V22w 카드I — 타이포(17px, 위) + 다듬기
   #4 다이컷 단면전용 용지(artSticker/yupoSticker) → "컬러 양면" 칩 완전 숨김(견고).
      prSyncDiecutSide가 body.dc-single-only 토글. 인라인 대신 !important로 재렌더/PNU 단계에도 유실 없음.
   ============================================================ */
body.dc-single-only .chip:has(#dc-double) { display: none !important; }
/* V22x 보강: PNU(단계별 UI) 다이컷 인쇄도수 "컬러 양면" 버튼도 숨김 (렌더 필터 백스톱) */
body.dc-single-only .pnu-bb[data-pnu-group="dc-side"][data-pnu-val="double"] { display: none !important; }

/* #2 17px 적용 후 잔여 넘침 국소 정리 — 견적패널·하단바·액션버튼만 1줄 보장(말줄임 금지) */
.total-amount, .total-unit { white-space: nowrap; }
.v14-btn-prev, .v14-btn-next { white-space: nowrap; }
.confirm-price-row, .confirm-price-value, .confirm-price-label { white-space: nowrap; }
.pnu-mbar-info, .pnu-mbar-total, .pnu-mbar-label { white-space: nowrap; }

/* =================== Card AN — STEP1 카테고리 3×5 이미지카드 그리드 =================== */
/* 흐름 구동용 라디오(.cat-legacy-chips) 시각 숨김. DOM 보존 — jumpToCategory가 programmatic으로 체크/change.
   display:none 라도 radio.checked 세팅·dispatchEvent는 정상 동작(검증경로). 색은 전부 디자인토큰. */
.cat-legacy-chips { display: none; }

.cat-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));  /* minmax(0,1fr): 셀 min-content 아래로도 축소 허용 → 좁은 화면 넘침 방지(1fr 단독은 min=auto라 넘침) */
    gap: 1px;                       /* 1px gap = 헤어라인 격자(배경이 비침) */
    background: var(--line);
    border: 1px solid var(--line);
    border-radius: 3px;
    overflow: hidden;
    max-width: 760px;               /* PC 과대 카드 방지 */
    margin: 0 auto;
}
.cat-cell {
    position: relative;
    background: var(--bg-card);
    border: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    min-width: 0;                   /* grid item이 콘텐츠 min-size 아래로 축소되도록(넘침 방지 보강) */
    display: flex;
    flex-direction: column;
    padding: 0;
    text-align: center;
    font-family: inherit;
    color: inherit;
    transition: background .22s ease, color .22s ease;
}
.cat-cell-media {
    aspect-ratio: 1 / 1;
    background: var(--bg-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.cat-cell-media svg {
    width: 30px; height: 30px;
    stroke: var(--text-soft);
    stroke-width: 1.4;
    fill: none;
    transition: stroke .22s ease;
}
/* 카드AT: 카테고리 타일 사진 (15장 공통 규약) */
.cat-cell-media img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
}
/* 카드AO-2: 잉크 틴트 레이어(사진·아이콘 공통) — hover/누름 시에만 보임 */
.cat-cell-media::after {
    content: '';
    position: absolute; inset: 0;
    background: var(--primary);
    opacity: 0;
    transition: opacity .22s ease;
    pointer-events: none;
}
.cat-cell-cap { position: relative; padding: 10px 8px 12px; transition: background .22s ease, color .22s ease; }
.cat-cell-name {
    display: block;
    font-size: var(--fs-sm);
    font-weight: var(--fw-med, 600);
    letter-spacing: -.01em;
}
.cat-cell-desc {
    display: block;
    font-size: var(--fs-2xs);
    color: var(--text-soft);
    margin-top: 2px;
}
/* 핑크 액센트 라인 — hover/선택 시에만(사이트 토큰 #ee2d65). 핑크는 이 1곳뿐. */
.cat-acc {
    position: absolute; left: 0; top: 0;
    height: 2px; width: 100%;
    background: var(--accent-dark);
    transform: scaleX(0); transform-origin: left;
    transition: transform .3s ease;
}
/* 카드AO-2: 전체 반응 hover — PC 전용(@media로 터치 sticky-hover 차단) */
@media (hover: hover) and (pointer: fine) {
    .cat-cell:hover .cat-cell-cap { background: var(--primary); color: #fff; }
    .cat-cell:hover .cat-cell-desc { color: rgba(255, 255, 255, .66); }
    .cat-cell:hover .cat-acc { transform: scaleX(1); }
    .cat-cell:hover .cat-cell-media::after { opacity: .07; }
    .cat-cell:hover .cat-cell-media svg { stroke: var(--text); }
}
/* 누르는 순간(터치·클릭 공통) — 동일 반응, 즉시 적용 */
.cat-cell:active .cat-cell-cap { background: var(--primary); color: #fff; transition: none; }
.cat-cell:active .cat-cell-desc { color: rgba(255, 255, 255, .66); }
.cat-cell:active .cat-acc { transform: scaleX(1); transition: none; }
.cat-cell:active .cat-cell-media::after { opacity: .09; transition: none; }
.cat-cell:active .cat-cell-media svg { stroke: var(--text); }
/* 카드AO-2: 선택 복귀 표시 = ✓배지만. 링·캡션반전은 hover/:active로 이동(클릭 즉시 STEP2라 복귀는 드묾).
   미디어(사진/아이콘)는 안 가림. */
.cat-cell.is-active::after {
    content: '✓';
    position: absolute; top: 8px; right: 8px;
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--primary); color: #fff;
    font-size: var(--fs-sm); font-weight: 700; line-height: 22px; text-align: center;
    z-index: 2; pointer-events: none;
}
.cat-cell:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
@media (prefers-reduced-motion: reduce) {
    .cat-acc, .cat-cell, .cat-cell-cap, .cat-cell-media::after { transition: none; }
}
/* 카드AV-2: 제본 방향 안내 — 참고 정보 톤(과강조 금지, 작고 옅게) */
.binding-notice {
    border: 1px solid var(--line-soft, #F0EFE9);
    background: transparent;
    border-radius: var(--radius, 4px);
    padding: 8px 11px;
    margin: 0 0 12px;
    font-size: var(--fs-2xs);
    line-height: 1.5;
    color: var(--text-mute, #6F695E);
}
.binding-notice p { margin: 0; }
.binding-notice .bn-label { font-weight: 600; color: var(--text-soft, #7A766C); margin-right: 8px; }
.binding-notice b { font-weight: 600; color: var(--accent-dark, #ee2d65); }
/* Card CC - 제본방향 선택 칩 */
.binding-notice .bind-dir-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.binding-notice .bind-dir-chip { flex: 1 1 calc(50% - 4px); min-width: 110px; margin: 0; }
.binding-notice .bind-dir-chip input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.binding-notice .bind-dir-chip > span { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 11px 8px; border: 1px solid var(--line, #E2DCCF); border-radius: 8px; background: #fff; color: var(--text, #1A1A17); font-size: var(--fs-sm); font-weight: 600; cursor: pointer; transition: border-color .15s, background .15s, color .15s; text-align: center; }
.binding-notice .bind-dir-chip small { font-size: var(--fs-2xs); font-weight: 600; color: var(--text-mute, #6F695E); }
.binding-notice .bind-dir-chip input:checked + span { border-color: var(--accent-dark, #ee2d65); background: var(--bg-soft, #F5F2ED); color: var(--accent-dark, #ee2d65); }
.binding-notice .bind-dir-chip input:checked + span small { color: var(--accent-dark, #ee2d65); }
.binding-notice .bind-dir-chip input:focus-visible + span { outline: 2px solid var(--accent-dark, #ee2d65); outline-offset: 2px; }
/* 모바일: 엣지투엣지(#category-card 좌우 패딩 1.5rem 상쇄) + 설명 숨김 + 아이콘 축소 */
@media (max-width: 600px) {
    .cat-grid {
        max-width: none;
        margin-left: -1.5rem; margin-right: -1.5rem;
        border-left: none; border-right: none;
        border-radius: 0;
    }
    .cat-cell-desc { display: none; }
    .cat-cell-name { font-size: var(--fs-2xs); }
    .cat-cell-media svg { width: 26px; height: 26px; }
    .cat-cell-cap { padding: 8px 6px 10px; }
    .cat-cell.is-active::after { width: 18px; height: 18px; top: 6px; right: 6px; font-size: var(--fs-2xs); line-height: 18px; }
}
