/* ───────── 문서(견적서·계획서) 공통 ───────── */
.page {
  position: relative; overflow: hidden; background: #fff; color: #2B2A26;
  font-family: 'Noto Sans KR', sans-serif; box-sizing: border-box; line-height: 1.5;
  -webkit-font-smoothing: antialiased; word-break: keep-all;
}
.page *, .page *::before, .page *::after { box-sizing: border-box; }
.page h1, .page p { margin: 0; }
.a4p { width: 210mm; height: 297mm; }
.a4l { width: 297mm; height: 210mm; }
.fit { display: block; width: 100%; overflow: hidden; white-space: nowrap; }

/* ───────── 견적서 ───────── */
.qt { padding: 58px 50px 0; color: #1f1e1b; font-size: 12.5px; background: #fff; }
.qt-accent { width: 44px; height: 3px; background: #F3D46B; margin: 0 auto 16px; border-radius: 2px; }
.qt-title {
  font-family: 'Noto Serif KR', serif; font-weight: 700; font-size: 30px;
  letter-spacing: .6em; padding-left: .6em; text-align: center; margin-bottom: 36px !important;
}
.qt table { border-collapse: collapse; width: 100%; table-layout: fixed; }
.qt th, .qt td { border: 1px solid #45433d; height: 34px; padding: 0 8px; text-align: center; vertical-align: middle; font-weight: 400; }
.qt th { background: #F7F5EF; font-weight: 500; }
.qt th.v { padding: 0; line-height: 1.45; font-size: 12px; }
.qt td.l { text-align: left; }

.qt-head { display: flex; align-items: center; gap: 22px; margin-bottom: 24px; }
.qt-to { flex: 1; min-width: 0; text-align: center; }
.qt-org { display: flex; align-items: baseline; justify-content: center; gap: 10px; font-size: 16px; }
.qt-org b { display: block; width: auto; max-width: 200px; font-weight: 700; }
.qt-org span { flex: none; }
.qt-contact { margin-top: 6px; color: #4d4a43; }
.qt-date { margin-top: 18px; }
.qt-say { margin-top: 12px; }

.qt-sup { width: 460px !important; flex: none; font-size: 12px; }
.qt-sup th, .qt-sup td { height: 38px; white-space: nowrap; padding: 0 7px; }
.qt-sup .ceo-td { padding: 0 6px; }
.qt-sup .ceo { position: relative; display: block; }
.qt-sup .seal { position: absolute; right: -2px; top: -12px; height: 40px; width: auto; max-width: 48px; opacity: .92; }

.qt-sum { margin-bottom: 10px; }
.qt-sum th, .qt-sum td { height: 44px; font-size: 14px; }
.qt-sum th { font-weight: 700; }
.qt-sum .kor { font-weight: 700; font-size: 15px; letter-spacing: .02em; }
.qt-sum .num { font-weight: 700; font-size: 15px; }

.qt-items th { height: 34px; font-weight: 700; }
.qt-items .sum td { background: #F7F5EF; font-weight: 500; }

.qt-info { margin-top: 14px; }
.qt-info th { font-weight: 500; }
.qt-notes { margin-top: 14px; }
.qt-notes td.l { padding: 9px 12px; line-height: 1.6; height: auto; font-size: 12px; }
.qt-notes th { font-size: 12px; }

.qt-foot {
  position: absolute; left: 50px; right: 50px; bottom: 44px;
  display: flex; justify-content: space-between; align-items: flex-end; gap: 20px;
}
.qt-foot-l { font-size: 11px; color: #5b5850; line-height: 1.7; }
.qt-foot-r { font-size: 12px; letter-spacing: .06em; color: #2B2A26; font-weight: 500; }

/* ───────── 계획서 공통 ───────── */
.pl { background: #FFFDF7; color: #2B2A26; }
.pl .bar { display: inline-block; width: 28px; height: 5px; border-radius: 3px; background: #F3D46B; vertical-align: middle; margin-right: 10px; }
.pl .cat { font-size: 13px; font-weight: 700; letter-spacing: .06em; color: #6E6A60; vertical-align: middle; }
.pl .brand { font-size: 13px; letter-spacing: .05em; font-weight: 500; color: #2B2A26; }
.pl .dim { color: #6E6A60; font-weight: 400; }
.pl .sec-h { font-size: 12.5px; font-weight: 700; color: #6E6A60; letter-spacing: .08em; margin-bottom: 8px; }
.pl .pill { display: inline-block; background: #FBF1CC; border-radius: 999px; padding: 6px 15px; font-size: 13px; font-weight: 600; }
.pl .num {
  flex: none; width: 1.95em; height: 1.95em; border-radius: 50%; background: #F3D46B;
  font-weight: 800; font-size: .82em; display: flex; align-items: center; justify-content: center; margin-top: .05em;
}
.pl .st { display: flex; gap: .7em; align-items: flex-start; line-height: 1.5; }
.ph { position: relative; overflow: hidden; background: #FBF1CC; border-radius: 16px; }
.ph img { position: absolute; max-width: none; max-height: none; display: block; }
.ph.empty { display: flex; align-items: center; justify-content: center; color: #C9B373; font-size: 14px; }
.pfoot { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-top: 1px solid #E6DFCC; }
.pfoot .brand { font-size: 12.5px; }
.pfoot .fee { font-size: 11px; color: #8d887c; }

/* C안 · 사진 크게 */
.pc { display: grid; grid-template-columns: 350px 1fr; grid-template-rows: 1fr 56px; column-gap: 44px; padding: 46px 50px 0; }
.pc-left, .pc-right { display: flex; flex-direction: column; min-height: 0; }
.pc-title { font-size: 40px; font-weight: 800; line-height: 1.22; letter-spacing: -.02em; margin: 20px 0 12px !important; }
.pc-intro { font-size: 15px; color: #6E6A60; line-height: 1.65; margin-bottom: 26px !important; }
.pc-card { background: #FBF1CC; border-radius: 16px; padding: 4px 22px; }
.pc-card .row { display: flex; gap: 14px; padding: 13px 0; border-bottom: 1px solid rgba(43, 42, 38, .08); font-size: 15px; }
.pc-card .row:last-child { border-bottom: 0; }
.pc-card .k { width: 62px; flex: none; color: #6E6A60; font-size: 13px; padding-top: 2px; }
.pc-card .v { font-weight: 600; }
.pl .tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.pl .tag { border: 1.5px solid #2B2A26; border-radius: 999px; padding: 5px 14px; font-size: 13px; font-weight: 500; }
.pc-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; height: 450px; flex: none; margin-bottom: 22px; }
.pc-steps { flex: 1; min-height: 0; overflow: hidden; font-size: 14.5px; padding-bottom: 12px; }
.pc .steps-grid { display: grid; gap: 14px 22px; align-content: start; }
.pc .pfoot { grid-column: 1 / -1; }

/* A안 · 사진 오른쪽 */
.pa { display: grid; grid-template-rows: auto 1fr 54px; padding: 42px 50px 0; }
.pa-top { display: flex; justify-content: space-between; align-items: center; }
.pa-body { display: grid; grid-template-columns: 1fr 330px; gap: 44px; min-height: 0; padding: 24px 0 22px; }
.pa-left { display: flex; flex-direction: column; min-height: 0; }
.pa-title { font-size: 46px; font-weight: 800; line-height: 1.15; letter-spacing: -.02em; margin-bottom: 14px !important; }
.pa-info { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid #2B2A26; border-bottom: 1px solid #E6DFCC; margin: 20px 0 18px; }
.pa-info > div { padding: 10px 12px 11px 0; }
.pa-info .k { font-size: 11.5px; color: #6E6A60; }
.pa-info .v { font-size: 14.5px; font-weight: 600; margin-top: 2px; }
.pa-lower { flex: 1; min-height: 0; overflow: hidden; font-size: 14px; }
.pa-lower .goal { line-height: 1.7; margin-bottom: 1.2em !important; }
.pa-steps .st { padding: .55em 0; border-bottom: 1px dashed #E6DFCC; align-items: center; }
.pa-steps .st:last-child { border-bottom: 0; }
.pa-right { display: grid; grid-template-rows: 1fr 1fr; gap: 16px; min-height: 0; }

/* B안 · 사진 왼쪽 꽉 차게 */
.pb { display: grid; grid-template-columns: 40% 1fr; }
.pb-photos { display: grid; grid-template-rows: 1fr 1fr; position: relative; min-height: 0; }
.pb-photos .ph { border-radius: 0; }
.pb-label { position: absolute; left: 24px; top: 24px; z-index: 2; background: #F3D46B; border-radius: 999px; padding: 7px 16px; font-size: 13px; font-weight: 700; }
.pb-right { display: grid; grid-template-rows: auto auto auto 1fr 54px; padding: 40px 46px 0 44px; min-height: 0; }
.pb-title { font-size: 40px; font-weight: 800; line-height: 1.2; letter-spacing: -.02em; margin: 26px 0 8px !important; }
.pb-sub { font-size: 15px; color: #6E6A60; line-height: 1.6; }
.pb-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 24px; }
.pb-lower { min-height: 0; overflow: hidden; font-size: 14px; padding-bottom: 14px; }
.pb .goal-b { border-left: 4px solid #F3D46B; padding: 2px 0 2px 14px; line-height: 1.7; margin-bottom: 1.4em !important; }
.pb .cards { display: grid; gap: 10px; }
.pb .card { background: #fff; border: 1px solid #E6DFCC; border-radius: 14px; padding: 1em .9em; }
.pb .card .n { font-size: 1.9em; font-weight: 800; color: #D4AA2E; line-height: 1; }
.pb .card .t { font-size: .92em; line-height: 1.5; margin-top: .55em; }
