/* Документ КП — A4 альбомная, 1123×794 px */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap; src: url(../fonts/manrope-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap; src: url(../fonts/manrope-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C4, U+2113; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap; src: url(../fonts/manrope-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

.kp-doc {
  --k-bg: #ebe8e3;
  --k-card: #ffffff;
  --k-soft: #f4f2ee;
  --k-ink: #1d1916;
  --k-ink2: #4f4741;
  --k-muted: #958c84;
  --k-line: #e4dfd8;
  --k-dark: #1d1916;
  --k-accent: #a47e5f;
  font-family: 'Manrope', system-ui, sans-serif;
  color: var(--k-ink);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'tnum' 0;
}
.kp-doc * { box-sizing: border-box; margin: 0; padding: 0; }
.kp-doc a { color: inherit; text-decoration: none; }
.kp-doc ul { list-style: none; }

.kp-page {
  position: relative;
  width: 1123px; height: 794px;
  background: var(--k-bg);
  overflow: hidden;
  padding: 34px 40px 52px;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.md-logo { display: block; }
.bgimg { position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat; }
.bgimg-av { background-size: cover; background-position: center; }
.ic { flex: none; }
.pf {
  position: absolute; left: 40px; right: 40px; bottom: 20px;
  display: flex; justify-content: space-between;
  font-size: 10px; letter-spacing: .04em; color: var(--k-muted);
}
.pf span:nth-child(2) { position: absolute; left: 50%; transform: translateX(-50%); }

.chip {
  display: inline-flex; align-items: center; height: 28px; padding: 0 13px;
  border-radius: 99px; font-size: 11.5px; font-weight: 500; letter-spacing: .01em;
  background: rgba(255,255,255,.92); color: var(--k-ink); white-space: nowrap;
}
.chip.light { background: var(--k-card); border: 1px solid var(--k-line); }
.chip.glass { background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.22); }

.kbtn {
  display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 14px;
  border-radius: 99px; font-size: 11.5px; font-weight: 600;
  background: var(--k-card); color: var(--k-ink); border: 1px solid var(--k-line);
  white-space: nowrap;
}
.kbtn.dark { background: var(--k-dark); color: #fff; border-color: var(--k-dark); }

/* ---------- обложка ---------- */
.cover { padding: 0; background: #2a2420; color: #fff; }
.cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cover-shade { position: absolute; inset: 0; background:
  linear-gradient(180deg, rgba(20,16,13,.55) 0%, rgba(20,16,13,0) 26%, rgba(20,16,13,0) 45%, rgba(20,16,13,.78) 100%); }
.cover.no-photo .cover-shade { background: radial-gradient(120% 90% at 85% 10%, #4a3f37 0%, #1d1916 70%); }
.cover-top { position: absolute; top: 34px; left: 40px; right: 40px; display: flex; justify-content: space-between; align-items: flex-start; }
.cover-logo { width: 86px; color: #fff; }
.cover .chips { display: flex; gap: 8px; }
.cover-main { position: absolute; left: 40px; bottom: 96px; max-width: 690px; }
.eyebrow { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; opacity: .85; margin-bottom: 14px; }
.cover-client { font-size: 30px; font-weight: 300; letter-spacing: -.01em; margin-bottom: 4px; }
.cover-title { font-size: 96px; line-height: .95; font-weight: 300; letter-spacing: -.045em; }
.cover-title.long { font-size: 66px; line-height: 1; }
.cover-obj { display: flex; align-items: center; gap: 6px; margin-top: 18px; font-size: 13px; opacity: .9; }
.cover-card {
  position: absolute; right: 40px; bottom: 96px; width: 300px;
  background: rgba(255,255,255,.96); color: var(--k-ink);
  border-radius: 20px; padding: 18px 18px 16px;
}
.cc-label { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--k-muted); margin-bottom: 10px; }
.cc-row { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--k-soft); display: grid; place-items: center; font-size: 18px; font-weight: 500; object-fit: cover; }
.cc-name { font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
.cc-phone { font-size: 13px; color: var(--k-ink2); margin-top: 2px; }
.cc-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.cc-btns .kbtn { height: 30px; padding: 0 11px; font-size: 11px; }
.cover-foot { position: absolute; left: 40px; right: 40px; bottom: 30px; display: flex; gap: 34px; font-size: 11.5px; opacity: .92; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.25); }
.cover-foot b { font-weight: 600; margin-right: 4px; }

/* ---------- общие заголовки ---------- */
.ph-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 26px; }
.ph-head h2 { font-size: 44px; line-height: 1.02; font-weight: 300; letter-spacing: -.035em; }
.ph-head .indent { display: inline-block; padding-left: 120px; }
.head-logo { width: 48px; color: var(--k-ink); }

/* ---------- о компании ---------- */
.usp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; height: 560px; }
.usp { background: var(--k-card); border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; }
.usp-img { position: relative; height: 330px; }
.usp-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.usp-n { position: absolute; top: 14px; left: 14px; background: rgba(255,255,255,.92); border-radius: 99px; height: 26px; padding: 0 10px; font-size: 11px; font-weight: 600; display: grid; place-items: center; }
.usp-body { padding: 18px 18px 20px; }
.usp h3 { font-size: 17px; line-height: 1.2; font-weight: 600; letter-spacing: -.015em; margin-bottom: 10px; }
.usp p { font-size: 12.5px; line-height: 1.5; color: var(--k-ink2); }
.usp.dark { background: var(--k-dark); color: #fff; padding: 22px; justify-content: space-between; }
.usp.dark h3 { font-size: 22px; font-weight: 400; margin-bottom: 22px; }
.addr { display: flex; flex-direction: column; gap: 3px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.16); font-size: 12px; }
.addr b { font-size: 13px; }
.addr span { opacity: .75; line-height: 1.4; }

/* ---------- помещение ---------- */
.room-head { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: start; margin-bottom: 20px; min-height: 76px; }
.rh-num { font-size: 76px; line-height: .8; font-weight: 300; letter-spacing: -.06em; color: var(--k-ink); }
.rh-title h2 { font-size: 36px; line-height: 1.05; font-weight: 400; letter-spacing: -.03em; }
.rh-title h2 .sub { font-size: 22px; color: var(--k-muted); font-weight: 300; }
.rh-title p { font-size: 13px; line-height: 1.45; color: var(--k-ink2); margin-top: 8px; max-width: 640px; }
.rh-side { display: flex; align-items: center; gap: 14px; }

.room-body { display: grid; grid-template-columns: 1fr 424px; gap: 14px; height: 612px; }
.room.cont .room-body, .room.gallery .room-body { display: none; }

.pgrid { display: grid; gap: 10px; height: 612px; min-width: 0; }
.pg0, .pg1 { grid-template: 1fr / 1fr; }
.pg2 { grid-template: 1fr 1fr / 1fr; }
.pg3 { grid-template: 1.55fr 1fr / 1fr 1fr; }
.pg3 .p0 { grid-column: 1 / 3; }
.ph { position: relative; border-radius: 20px; overflow: hidden; background: var(--k-soft); min-height: 0; }
.ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ph-empty { display: grid; place-items: center; border: 1.5px dashed #d4cdc4; background: transparent; }
.ph-empty span { font-size: 13px; color: var(--k-muted); }

.spec-card { background: var(--k-card); border-radius: 22px; padding: 20px 22px; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.spec-title { display: flex; justify-content: space-between; align-items: center; font-size: 19px; font-weight: 500; letter-spacing: -.02em; padding-bottom: 12px; border-bottom: 1px solid var(--k-line); margin-bottom: 4px; }
.spec-col { flex: 1; min-height: 0; }
.sg { padding-top: 9px; }
.sg-t { font-size: 10px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--k-accent); margin-bottom: 2px; }
.sg-t span { color: var(--k-muted); font-weight: 500; letter-spacing: .06em; text-transform: none; }
.sg li { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; border-bottom: 1px solid var(--k-soft); font-size: 12.5px; line-height: 1.32; }
.sg li:last-child { border-bottom: 0; }
.sg .nm { flex: 1; }
.sg .nm em { display: block; font-style: normal; font-size: 11px; color: var(--k-muted); margin-top: 1px; }
.sg .q { color: var(--k-muted); white-space: nowrap; font-size: 11.5px; }
.spec-more { font-size: 11px; color: var(--k-muted); padding-top: 8px; }
.spec-total { margin-top: auto; display: flex; justify-content: space-between; align-items: baseline; background: var(--k-dark); color: #fff; border-radius: 16px; padding: 16px 18px; margin-left: -8px; margin-right: -8px; margin-bottom: -6px; }
.spec-total span { font-size: 12px; opacity: .7; letter-spacing: .04em; }
.spec-total b { font-size: 26px; font-weight: 400; letter-spacing: -.03em; }
.muted { color: var(--k-muted); font-size: 13px; padding-top: 14px; }

.spec-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; height: 612px; }
.spec-cols .spec-card { padding-top: 10px; }

.gal { display: grid; gap: 12px; height: 612px; }
.gal1 { grid-template: 1fr / 1fr; }
.gal2 { grid-template: 1fr / 1fr 1fr; }
.gal3 { grid-template: 1fr 1fr / 1.4fr 1fr; }
.gal3 .ph:first-child { grid-row: 1 / 3; }
.gal4 { grid-template: 1fr 1fr / 1fr 1fr; }

.with-bar .spec-cols, .room.gallery.with-bar .gal { height: 530px; }
.spec-cols > .gal { height: auto; min-height: 0; }
.room-total-bar { margin-top: 12px; height: 70px; display: flex; justify-content: space-between; align-items: center; background: var(--k-dark); color: #fff; border-radius: 18px; padding: 0 26px; }
.room-total-bar span { font-size: 13px; opacity: .72; letter-spacing: .03em; }
.room-total-bar b { font-size: 30px; font-weight: 400; letter-spacing: -.03em; }

/* ---------- варианты ---------- */
.var-grid { display: grid; gap: 14px; height: 560px; }
.var-grid.v2 { grid-template-columns: 1fr 1fr; }
.var-grid.v3 { grid-template-columns: repeat(3, 1fr); }
.var-grid.v4, .var-grid.v5 { grid-template-columns: repeat(4, 1fr); }
.var { background: var(--k-card); border-radius: 22px; padding: 24px; display: flex; flex-direction: column; }
.var.rec { background: var(--k-dark); color: #fff; }
.var-top { display: flex; justify-content: space-between; align-items: center; }
.var-name { font-size: 28px; font-weight: 400; letter-spacing: -.03em; }
.var-sub { font-size: 12px; color: var(--k-muted); margin: 8px 0 16px; }
.var.rec .var-sub { color: rgba(255,255,255,.6); }
.var ul li { font-size: 12.5px; line-height: 1.35; padding: 7px 0 7px 18px; border-top: 1px solid var(--k-line); position: relative; }
.var.rec ul li { border-color: rgba(255,255,255,.14); }
.var ul li::before { content: ''; position: absolute; left: 2px; top: 13px; width: 6px; height: 6px; border-radius: 50%; background: var(--k-accent); }
.var ul li.gone { color: var(--k-muted); text-decoration: line-through; }
.var ul li.gone::before { background: var(--k-line); }
.var-price { margin-top: auto; padding-top: 16px; }
.var-price s { display: block; font-size: 14px; opacity: .55; }
.var-price b { font-size: 36px; font-weight: 400; letter-spacing: -.035em; }

/* ---------- итог ---------- */
.final-grid { display: grid; grid-template-columns: 380px 1fr; gap: 14px; height: 708px; }
.total-card { background: var(--k-dark); color: #fff; border-radius: 26px; padding: 26px; display: flex; flex-direction: column; }
.tc-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 34px; }
.tc-logo { width: 54px; color: #fff; }
.total-card h2 { font-size: 46px; line-height: 1; font-weight: 300; letter-spacing: -.04em; margin-bottom: 26px; }
.tc-rooms li { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.14); font-size: 13.5px; }
.tc-rooms li b { font-weight: 500; white-space: nowrap; }
.tc-sum { margin-top: auto; }
.tc-old { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.tc-old s { font-size: 18px; opacity: .55; }
.tc-old .chip { height: 24px; background: var(--k-accent); color: #fff; }
.tc-total { font-size: 54px; font-weight: 300; letter-spacing: -.045em; line-height: 1.05; white-space: nowrap; }
.tc-note { font-size: 11.5px; opacity: .6; margin-top: 10px; }

.final-right { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.steps-card { background: var(--k-card); border-radius: 26px; padding: 22px 24px; flex: 1; }
.steps-card h3, .contact-card h3 { font-size: 26px; font-weight: 400; letter-spacing: -.03em; margin-bottom: 14px; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.step { background: var(--k-soft); border-radius: 16px; padding: 14px 15px; }
.st-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; padding-bottom: 9px; border-bottom: 1px solid var(--k-line); margin-bottom: 9px; }
.st-h span { font-size: 13px; font-weight: 600; line-height: 1.25; }
.st-h b { font-size: 20px; font-weight: 300; letter-spacing: -.04em; line-height: 1; }
.step p { font-size: 11.5px; line-height: 1.45; color: var(--k-ink2); }
.contact-card { background: var(--k-card); border-radius: 26px; padding: 22px 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.contact-card h3 { margin-bottom: 6px; }
.ct-left p { font-size: 12.5px; color: var(--k-ink2); line-height: 1.45; }
.ct-phone { font-size: 22px; font-weight: 500; letter-spacing: -.02em; margin: 10px 0 12px; }
.btn-row { display: flex; gap: 6px; }
.btn-row.wrap { flex-wrap: wrap; }
.ct-right { display: flex; flex-direction: column; justify-content: space-between; gap: 14px; }
.ct-addr { display: flex; flex-direction: column; gap: 8px; font-size: 12px; color: var(--k-ink2); }
.ct-addr a { display: flex; align-items: center; gap: 6px; }
.ct-addr b { color: var(--k-ink); }

/* ---------- печать ---------- */
@page { size: A4 landscape; margin: 0; }
@media print {
  .kp-page { width: 297mm; height: 210mm; break-after: page; page-break-after: always; }
}
