/*
 * Repair depth pass. Deliberately scoped to the repair service template and
 * the apartment/office/commercial repair hub; content and interaction states
 * remain owned by the existing templates and repair-interactions.css.
 */
:where(.service-stage-template, .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"]) {
  --repair-shell: min(85vw, 1440px);
  --repair-gap: clamp(24px, 2.5vw, 48px);
  --repair-rule: color-mix(in srgb, currentColor 24%, transparent);
  --repair-muted: color-mix(in srgb, currentColor 68%, transparent);
}

.service-stage-template > section,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] > section { width: 100%; }
.service-stage-template .public-shell,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .public-shell {
  width: var(--repair-shell);
  max-width: 1440px;
  margin-inline: auto;
}

/* Keep Ivan integrated with the scene while giving each object its own datum. */
.service-stage-template .service-stage-scene,
.service-stage-template .service-stage-visual { isolation: isolate; }
.service-stage-template .service-stage-scene::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, transparent 45%, rgba(11,17,18,.2));
}
.service-stage-template .service-stage-ivan { z-index: 3; filter: drop-shadow(18px 18px 18px rgba(11,17,18,.34)); }
.service-stage-template[data-service="remont-kvartiry-pod-klyuch"] .service-stage-scene { border-radius: 48% 52% 38% 62% / 22% 27% 73% 78%; }
.service-stage-template[data-service="remont-ofisa"] .service-stage-scene { border-radius: 0; outline: 1px solid rgba(210,223,217,.35); outline-offset: -14px; }
.service-stage-template[data-service="remont-ofisa"] .service-stage-scene::before {
  content: ""; position: absolute; inset: 10% 8%; z-index: 2; pointer-events: none;
  background: linear-gradient(90deg, transparent 49.7%, rgba(210,223,217,.55) 50%, transparent 50.3%), linear-gradient(0deg, transparent 49.7%, rgba(210,223,217,.32) 50%, transparent 50.3%);
  background-size: 25% 100%, 100% 25%; opacity: .55;
}
.service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-stage-scene { clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%); }
.service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-stage-scene::before {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: repeating-linear-gradient(135deg, transparent 0 12%, rgba(203,220,53,.23) 12.1% 12.35%, transparent 12.45% 25%);
}

/* Editorial chapters: an editorial ledger, not a two-column dead zone. */
.service-stage-template .service-editorial,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial { position: relative; padding-block: clamp(64px, 9vw, 144px); }
.service-stage-template .service-editorial-grid { display: grid; gap: 0; }
.service-stage-template .service-editorial-grid > article,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--repair-gap);
  min-height: clamp(230px, 25vw, 360px); padding-block: clamp(34px, 5vw, 72px);
  border-top: 1px solid var(--repair-rule); align-items: start;
}
.service-stage-template .service-editorial-grid > article:nth-child(even),
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter--reverse { direction: rtl; }
.service-stage-template .service-editorial-grid > article:nth-child(even) > *,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter--reverse > * { direction: ltr; }
.service-stage-template .service-editorial-grid > article::before,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter::before {
  content: counter(repair-chapter, decimal-leading-zero); counter-increment: repair-chapter;
  grid-column: span 2; font: 12px/1 var(--mono); color: var(--cobalt); letter-spacing: .12em;
}
.service-stage-template .service-editorial-grid { counter-reset: repair-chapter; }
.service-stage-template .service-editorial-grid > article h2,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter h2 { grid-column: span 4; max-width: 12ch; margin: 0; }
.service-stage-template .service-editorial-grid > article p,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-copy { grid-column: 7 / span 5; max-width: 46ch; margin: 0; line-height: 1.65; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-copy p { max-width: 46ch; }
.service-stage-template .service-editorial-grid > article:nth-child(2) { position: relative; }
.service-stage-template .service-editorial-grid > article:nth-child(2)::after,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter:nth-child(2)::after {
  content: ""; grid-column: 1 / -1; grid-row: 2; height: clamp(120px, 15vw, 220px); margin: 30px calc((var(--repair-shell) - 100vw) / 2) -30px;
  background: linear-gradient(90deg, rgba(11,17,18,.68), transparent 55%), url('/images/service-hero/repair-interior-cobalt-20260830.png') center / cover;
  border-block: 1px solid rgba(203,220,53,.5); opacity: .9;
}
.service-stage-template[data-service="remont-ofisa"] .service-editorial-grid > article:nth-child(2)::after { background-image: linear-gradient(90deg, rgba(11,17,18,.7), transparent 55%), url('/images/service-hero/office-fitout-cobalt-20260830.png'); }
.service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-editorial-grid > article:nth-child(2)::after { background-image: linear-gradient(90deg, rgba(11,17,18,.7), transparent 55%), url('/images/service-hero/commercial-fitout-cobalt-20260830.png'); }

/* Five-step semantic datum. */
.service-stage-template .service-process,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-process { width: 100%; max-width: none; padding-block: clamp(72px, 9vw, 136px); background: var(--ink); color: var(--paper); }
.service-stage-template .service-process .public-shell,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-process .public-shell { width: var(--repair-shell); }
.service-stage-template .service-process ol,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-stages { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: 48px; padding: 0; list-style: none; border-top: 1px solid rgba(235,240,234,.26); counter-reset: repair-step; }
.service-stage-template .service-process li,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-stages li { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; min-height: 92px; padding: 18px 0; border-bottom: 1px solid rgba(235,240,234,.26); font: 500 17px/1.45 var(--display); }
.service-stage-template .service-process li::before { content: counter(repair-step, decimal-leading-zero); counter-increment: repair-step; color: var(--laser); font: 12px var(--mono); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-stages li span { margin: 0; color: var(--laser); font: 12px var(--mono); }

/* Price ledger and calculator workbench. */
.service-stage-template .service-price-list,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-prices { width: 100%; padding-block: clamp(72px, 9vw, 136px); background: #e8e6df; }
.service-stage-template .service-price-list .public-shell,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-prices .public-shell { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px var(--repair-gap); }
.service-stage-template .service-price-list .eyebrow,
.service-stage-template .service-price-list h2,
.service-stage-template .service-price-intro { grid-column: span 4; max-width: 40ch; }
.service-stage-template .service-price-list .table-scroll,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-prices .table-scroll { grid-column: 5 / -1; margin: 0; }
.service-stage-template .service-price-list table,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-prices table { width: 100%; border-collapse: collapse; }
.service-stage-template .service-price-list th,
.service-stage-template .service-price-list td,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-prices th,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-prices td { min-height: 52px; padding: 16px 12px; border-bottom: 1px solid #aeb4ae; text-align: left; font-size: 15px; }
.service-stage-template .service-price-list th,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-prices th { font: 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.service-stage-template .hub-price-value,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-price-value { font: 600 16px var(--mono); white-space: nowrap; }
.service-stage-template .service-price-caveat,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-price-caveat { grid-column: 5 / -1; color: var(--muted); font-size: 14px; }
.service-stage-template .service-calculator,
.service-stage-template .service-request,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .calculator-section { width: 100%; background: var(--cobalt); color: #fff; }
.service-stage-template .calculator-grid,
.service-stage-template .repair-calculator-workbench { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--repair-gap); }
.service-stage-template .repair-calculator-sheet,
.service-stage-template .repair-calculator-workbench > :first-child { grid-column: span 5; }
.service-stage-template .repair-calculator-workbench > :last-child { grid-column: span 7; }
.service-stage-template .repair-calculator-sheet,
.service-stage-template .repair-calculator-workbench { background: #f3f0e8; color: var(--ink); }
.service-stage-template [data-repair-copy], .service-stage-template .repair-calculator-sheet { padding: clamp(24px, 3vw, 48px); }
.service-stage-template .repair-calculator-form > [data-repair-lines],
.service-stage-template .repair-calculator-form > [data-repair-total],
.service-stage-template .repair-calculator-form > .repair-calculator-actions,
.service-stage-template .repair-calculator-form > [data-repair-context] { display: none; }
.service-stage-template input:focus-visible,
.service-stage-template button:focus-visible,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] input:focus-visible,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] button:focus-visible,
.service-stage-template a:focus-visible,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] a:focus-visible { outline: 3px solid var(--laser); outline-offset: 4px; }

/* Hub quiz, related index, and the final capture band. */
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness { width: 100%; padding-block: clamp(72px, 9vw, 136px); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness .public-shell { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--repair-gap); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness > .public-shell > :is(.hub-quiz-intro, h2, .lead) { grid-column: span 4; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz { grid-column: 5 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; grid-column: 1 / -1; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz fieldset { min-width: 0; padding: 16px; border: 1px solid rgba(255,255,255,.42); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz label { min-height: 44px; font-size: 15px; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-brief-sheet { grid-column: 1 / -1; padding: 24px; background: #f3f0e8; color: var(--ink); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .service-related-index,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-related { padding-block: clamp(64px, 8vw, 112px); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .service-related-index > *,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-related > .public-shell { border-top: 1px solid var(--repair-rule); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture { width: 100%; padding-block: clamp(82px, 10vw, 152px); background: var(--ink); color: var(--paper); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture .public-shell { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--repair-gap); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture .public-shell > *:first-child { grid-column: span 7; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture h2 { grid-column: span 7; max-width: 12ch; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture p:not(.eyebrow) { grid-column: 8 / -1; align-self: end; max-width: 38ch; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture .button { grid-column: 8 / -1; justify-self: start; }

@media (min-width: 701px) and (max-width: 1100px) {
  :where(.service-stage-template, .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"]) { --repair-shell: 92vw; }
  .service-stage-template .service-editorial-grid > article h2,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter h2 { grid-column: span 5; }
  .service-stage-template .service-editorial-grid > article p,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-copy { grid-column: 7 / span 6; }
}
@media (max-width: 700px) {
  :where(.service-stage-template, .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"]) { --repair-shell: calc(100% - 32px); }
  .service-editorial-grid > article,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter { display: grid; grid-template-columns: 1fr; gap: 16px; min-height: 0; padding-block: 36px; direction: ltr !important; }
  .service-stage-template .service-editorial-grid > article::before,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter::before { grid-column: 1; }
  .service-stage-template .service-editorial-grid > article h2,
  .service-stage-template .service-editorial-grid > article p,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter h2,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-copy { grid-column: 1; max-width: none; }
  .service-stage-template .service-editorial-grid > article:nth-child(2)::after,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter:nth-child(2)::after { margin-inline: -16px; }
  .service-stage-template .service-price-list .public-shell,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-prices .public-shell,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness .public-shell,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture .public-shell { display: block; }
  .service-stage-template .service-price-list .table-scroll,
  .service-stage-template .service-price-caveat { margin-top: 24px; }
  .service-stage-template .service-price-list .table-scroll { overflow: visible; }
  .service-stage-template .service-price-list table,
  .service-stage-template .service-price-list tbody,
  .service-stage-template .service-price-list tr,
  .service-stage-template .service-price-list td { display: block; }
  .service-stage-template .service-price-list table { width: 100%; min-width: 0; border-collapse: separate; border-spacing: 0; }
  .service-stage-template .service-price-list thead {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
  }
  .service-stage-template .service-price-list tr {
    margin-top: 12px; padding: 4px 16px; background: #f3f0e8;
    border-block: 1px solid #aeb4ae;
  }
  .service-stage-template .service-price-list td {
    display: grid; grid-template-columns: minmax(88px, 30%) minmax(0, 1fr);
    gap: 12px; min-height: 0; padding: 12px 0; border-bottom: 1px solid #c7c9c3;
    overflow-wrap: anywhere;
  }
  .service-stage-template .service-price-list td:last-child { border-bottom: 0; }
  .service-stage-template .service-price-list td::before {
    content: attr(data-label); color: #4f5d5a; font: 600 11px/1.35 var(--mono);
    letter-spacing: .06em; text-transform: uppercase;
  }
  .service-stage-template .service-price-list .hub-price-value { white-space: normal; }
  .service-stage-template .repair-calculator-workbench > *, .service-stage-template .repair-calculator-sheet { display: block; margin-top: 16px; }
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz { display: block; margin-top: 28px; }
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-fields { display: block; }
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz fieldset { margin-bottom: 14px; }
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture h2,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture p:not(.eyebrow),
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture .button { margin-top: 24px; }
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture .button { display: inline-flex; }
}

/* Bounded service calculator and hero alignment. */
.service-stage-template .service-stage-hero{width:85vw;max-width:1440px;margin-inline:auto;display:grid;grid-template-columns:4fr 8fr;gap:clamp(32px,4vw,72px);align-items:center}
.service-stage-template .service-stage-scene{border-radius:0;clip-path:none;background:transparent}
.service-stage-template .service-stage-scene::after{background:linear-gradient(90deg,rgba(11,17,18,.92),transparent 48%)}
.service-stage-template[data-service="remont-kvartiry-pod-klyuch"] .service-stage-scene img{object-position:66% 48%!important}
.service-ledger-calculator{width:100%;background:#f3f0e8;color:var(--ink);padding-block:clamp(72px,9vw,136px)}
.service-calculator-ledger{display:grid;grid-template-columns:4fr 8fr;gap:var(--repair-gap)}
.service-calculator-intro{grid-column:span 4}.service-calculator-controls{grid-column:5/-1}
.service-operation-list table{width:100%;border-collapse:collapse}.service-operation-list tr{border-bottom:1px solid #aeb4ae}.service-operation-list td{padding:12px 8px;vertical-align:middle}.service-operation-list td:last-child{white-space:nowrap;color:var(--cobalt);font:600 13px var(--mono)}
.service-operation-list label{display:flex;align-items:center;gap:12px;min-height:48px}.service-operation-list input[type=checkbox]{width:22px;height:22px;accent-color:var(--cobalt)}
.service-operation-list input[type=checkbox]:checked{outline:4px solid var(--laser);outline-offset:2px}
.service-calculator-controls input,.service-calculator-controls textarea{min-height:48px;width:100%;padding:10px 12px;border:1px solid #84908b;background:#fff;color:var(--ink)}
.service-calculator-controls label{display:grid;gap:7px;margin-bottom:14px}.service-calc-result{display:block;margin:20px 0;font:600 18px var(--mono)}
.service-calculator-controls .button-primary{background:var(--cobalt);color:#fff;border-color:var(--cobalt)}.service-calculator-controls .button-primary:hover{background:var(--paper);color:var(--ink);border-color:var(--ink)}.service-calculator-controls .button-primary:focus-visible{outline:3px solid var(--laser);outline-offset:3px}
.service-brief-builder output{display:block;white-space:pre-wrap;margin:16px 0;padding:12px;border-left:4px solid var(--cobalt);background:#fff;min-height:48px}
@media(max-width:700px){.service-stage-template .service-stage-hero{width:100%;display:flex;flex-direction:column;gap:0}.service-stage-template .service-stage-visual{order:-1}.service-stage-template .service-stage-scene{height:clamp(288px,82vw,360px)}.service-stage-template .service-stage-copy{margin-top:-56px;padding:24px 16px 0;background:var(--ink)}.service-calculator-ledger{display:block;width:calc(100% - 32px)}.service-calculator-controls{margin-top:28px}.service-operation-list td{padding:10px 4px}.service-operation-list td:last-child{font-size:11px}}
@media (prefers-reduced-motion: reduce) {
  :where(.service-stage-template, .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"]) *,
  :where(.service-stage-template, .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"]) *::before,
  :where(.service-stage-template, .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"]) *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; }
}

/* Final bounded repair-family alignment: the templates expose full-bleed sections
 * as .public-shell elements, so the section owns the background and its inner
 * content is re-centred without changing markup. */
.service-stage-template .service-editorial,
.service-stage-template .service-process,
.service-stage-template .service-capture,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-process,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture {
  width: 100%; max-width: none; margin-inline: 0;
}
.service-stage-template .service-editorial-grid,
.service-stage-template .service-process > :is(.eyebrow, h2, ol),
.service-stage-template .service-capture > *,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial > .public-shell,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-process > .public-shell,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture > .public-shell {
  width: var(--repair-shell); max-width: 1440px; margin-inline: auto;
}
.service-stage-template .service-editorial-grid { counter-reset: repair-chapter; }
.service-stage-template .service-editorial-media-band {
  grid-row: auto;
  grid-column: 1 / -1; width: 100vw; height: clamp(132px, 16vw, 220px);
  margin-block: 12px 18px; margin-inline: calc((var(--repair-shell) - 100vw) / 2);
  border-block: 1px solid rgba(203,220,53,.5); background-position: center;
  background-size: cover; background-repeat: no-repeat;
}

.service-stage-template .service-editorial-grid > article:nth-child(2)::after {
  content: none !important;
  display: none !important;
}
.service-stage-template .service-editorial-media-band--remont-kvartiry-pod-klyuch { background-image: linear-gradient(90deg, rgba(11,17,18,.64), transparent 58%), url('/images/service-hero/repair-interior-cobalt-20260830.png'); }
.service-stage-template .service-editorial-media-band--remont-ofisa { background-image: linear-gradient(90deg, rgba(11,17,18,.68), transparent 58%), url('/images/service-hero/office-fitout-cobalt-20260830.png'); }
.service-stage-template .service-editorial-media-band--remont-kommercheskogo-pomeshcheniya { background-image: linear-gradient(90deg, rgba(11,17,18,.68), transparent 58%), url('/images/service-hero/commercial-fitout-cobalt-20260830.png'); }

/* Distinct service hero objects; images keep their intrinsic ratio inside a
 * clipped scene and Ivan remains grounded in the scene datum. */
.service-stage-template .service-stage-scene img { object-fit: cover; object-position: center; }
.service-stage-template[data-service="remont-kvartiry-pod-klyuch"] .service-stage-scene { border-radius: 48% 52% 38% 62% / 22% 27% 73% 78%; clip-path: none; }
.service-stage-template[data-service="remont-kvartiry-pod-klyuch"] .service-stage-scene::after { background: none; }
.service-stage-template[data-service="remont-kvartiry-pod-klyuch"] .service-stage-scene img { opacity: 1; mix-blend-mode: normal; object-position: 62% center; }
.service-stage-template[data-service="remont-ofisa"] .service-stage-scene { border-radius: 0; clip-path: none; outline: 1px solid rgba(210,223,217,.35); outline-offset: -14px; }
.service-stage-template[data-service="remont-ofisa"] .service-stage-scene::after { background: linear-gradient(90deg, rgba(11,17,18,.46), transparent 52%); }
.service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-stage-scene { border-radius: 0; clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%); }
.service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-stage-ivan { right: 3%; }

/* The repair calculator is one 5/7 workbench: one live cream sheet and one
 * choice column. Keep all semantic copy/reset controls visible. */
.repair-calculator .repair-calculator-workbench { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--repair-gap); width: var(--repair-shell); max-width: 1440px; margin-inline: auto; background: transparent; }
.repair-calculator .repair-calculator-copy { grid-column: span 5; min-width: 0; display: flex; flex-direction: column; background: #f3f0e8; color: var(--ink); padding: clamp(24px, 3vw, 48px); }
.repair-calculator .repair-calculator-form { grid-column: span 7; min-width: 0; }
.repair-calculator .repair-calculator-sheet { order: 2; padding: 0; background: transparent; }
.repair-calculator .repair-calculator-copy > :not(.repair-calculator-sheet) { order: 1; }
.repair-calculator .repair-calculator-sheet [data-repair-lines],
.repair-calculator .repair-calculator-sheet [data-repair-total],
.repair-calculator .repair-calculator-sheet .repair-calculator-actions,
.repair-calculator .repair-calculator-sheet [data-repair-context] { display: block; }
.repair-calculator .repair-calculator-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.repair-calculator .repair-calculator-context { color: var(--cobalt); }
.repair-calculator .repair-calculator-copy > p:not(.eyebrow) { color: #394443; line-height: 1.6; }
.repair-calculator .repair-calculator-actions { align-items: center; }
.repair-calculator .repair-calculator-actions .button, .service-capture .button, .hub-quiz-actions .button, .hub-quiz-result .button { display: inline-flex; width: fit-content; min-height: 48px; padding-inline: 24px; align-items: center; justify-content: center; }
.repair-calculator .repair-calculator-actions .button { height: 50px; min-height: 50px; max-height: 50px; max-width: 100%; }
.repair-calculator .repair-calculator-actions .button:disabled, .hub-quiz-result .button:disabled { opacity: .72; color: #394443; background: #d6d5cf; }
.service-capture .button { background: var(--laser); color: var(--ink); border: 2px solid var(--laser); }
.service-capture .button:hover, .service-capture .button:focus-visible { background: #fff; color: var(--ink); border-color: #fff; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness-intro { grid-column: span 4; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-fields { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-result { grid-column: 1 / -1; min-height: 180px; padding: 24px; border-left: 6px solid var(--cobalt); background: #f3f0e8; color: var(--ink); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-result[hidden] { display: none !important; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-result output { display: block; white-space: pre-wrap; font: 16px/1.6 var(--sans); color: var(--ink); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-result-note { color: #394443; font: 16px/1.6 var(--sans); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 12px; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial { counter-reset: repair-chapter; }

/* Hub readiness: compact 4/8 composition and a visible result panel. */
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness { padding-block: clamp(64px, 7vw, 104px); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness > .public-shell > :is(.eyebrow, h2, .lead) { grid-column: span 4; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness .hub-quiz { grid-column: 5 / -1; min-width: 0; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-result,
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-result-panel { grid-column: 1 / -1; display: block; min-height: 120px; padding: 20px; background: #f3f0e8; color: var(--ink); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-result output { display: block; color: var(--ink); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-copy-status { color: var(--cobalt); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz > fieldset { grid-column: span 1; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz > :is(button, .hub-quiz-result, .hub-quiz-result-panel) { grid-column: 1 / -1; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz > button { min-width: 0; }

/* Indexed related rows and capture bands remain semantic links, not cards. */
.service-stage-template .service-related { width: var(--repair-shell); max-width: 1440px; margin-inline: auto; padding-block: clamp(64px, 8vw, 112px); }
.service-stage-template .service-related ul { list-style: none; padding: 0; margin: 28px 0 0; border-top: 1px solid var(--repair-rule); }
.service-stage-template .service-related-row { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; align-items: center; min-height: 58px; border-bottom: 1px solid var(--repair-rule); }
.service-stage-template .service-related-index { color: var(--cobalt); font: 12px var(--mono); }
.service-stage-template .service-related-row a { font: 600 17px/1.3 var(--display); }
.service-stage-template .service-capture { padding-block: clamp(72px, 9vw, 136px); padding-inline: 0; background: var(--cobalt); color: var(--ink); }

@media (max-width: 700px) {
  .service-stage-template .service-editorial-grid,
  .service-stage-template .service-process > :is(.eyebrow, h2, ol),
  .service-stage-template .service-capture > *,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial > .public-shell,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-process > .public-shell,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-capture > .public-shell { width: calc(100% - 32px); }
  .service-stage-template .service-editorial-media-band { width: 100vw; margin-inline: calc((100% - 100vw) / 2); }
  .service-stage-template[data-service] .service-stage-scene { width: 100%; max-width: 100vw; }
  .service-stage-template[data-service="remont-ofisa"] .service-stage-ivan,
  .service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-stage-ivan { right: 3%; bottom: 0; width: 38%; max-width: 220px; height: 280px; filter: none; }
  .repair-calculator .repair-calculator-workbench { display: block; width: calc(100% - 32px); }
  .repair-calculator .repair-calculator-form { margin-top: 24px; }
  .service-stage-template[data-service="remont-kvartiry-pod-klyuch"] .service-stage-scene img { object-position: 62% center; }
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz { display: grid; grid-template-columns: 1fr; margin-top: 24px; }
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz > fieldset { grid-column: 1 / -1; }
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-fields { display: grid; grid-template-columns: 1fr; }
  .service-stage-template .service-capture .button { max-width: 100%; white-space: normal; }
}

/* Repair-family hero scenes are composed with Ivan in situ. */
.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"], [data-service="remont-ofisa"], [data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-scene img {
  opacity: 1 !important;
  mix-blend-mode: normal !important;
  object-position: 70% center !important;
}
.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"], [data-service="remont-ofisa"], [data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-scene::after { background: none !important; }
.service-stage-template:is([data-service="remont-ofisa"], [data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-scene::before { background: none !important; opacity: 0 !important; }

/* Capture CTA follows the centered 85vw shell while the section stays full bleed. */
@media (min-width: 701px) {
  .service-stage-template .service-capture > .button {
    width: fit-content;
    max-width: 100%;
    margin-left: max(7.5vw, calc((100vw - 1440px) / 2));
    margin-right: 0;
  }
}

/* A forms-enabled calculator must expose contact as a primary action, not a
 * text link competing with copy/reset. */
.repair-calculator .repair-calculator-actions [data-repair-contact] {
  display: inline-flex;
  min-height: 50px;
  max-width: 100%;
  padding: 12px 24px;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--cobalt);
  background: var(--cobalt);
  color: #fff;
  text-decoration: none;
  line-height: 1.2;
}
.repair-calculator .repair-calculator-actions [data-repair-contact]:hover,
.repair-calculator .repair-calculator-actions [data-repair-contact]:focus-visible {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}

@media (max-width: 700px) {
  .service-stage-template .service-capture > .button {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  .repair-calculator .repair-calculator-actions [data-repair-contact] {
    width: fit-content;
    max-width: 100%;
  }
}
.repair-calculator [data-repair-contact] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 24px;
  border: 1px solid var(--repair-cobalt, #155eef);
  border-radius: 999px;
  background: var(--repair-cobalt, #155eef);
  color: #fff;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.repair-calculator [data-repair-contact]:hover {
  background: var(--repair-laser, #0b4bc4);
  border-color: var(--repair-laser, #0b4bc4);
  color: #fff;
}

.repair-calculator [data-repair-contact]:focus-visible {
  outline: 3px solid var(--repair-laser, #0b4bc4);
  outline-offset: 3px;
}

@media (max-width: 700px) {
  .service-stage-template .service-capture > .button {
    margin-left: 16px;
    margin-right: 16px;
    max-width: calc(100% - 32px);
    box-sizing: border-box;
  }
}
/* Wave 1 unified repair scene overrides. */
.service-stage-template[data-service] .service-stage-visual{background:transparent;border:0;box-shadow:none;filter:none;outline:0}
.service-stage-template[data-service] .service-stage-scene{background:transparent;border:0;box-shadow:none;filter:none;outline:0;isolation:isolate;overflow:hidden;clip-path:ellipse(68% 50% at 64% 50%)}
.service-stage-template[data-service] .service-stage-scene::after{pointer-events:none;background:linear-gradient(90deg,rgba(11,17,18,.86) 0%,rgba(11,17,18,.56) 17%,transparent 38%)}
.service-stage-template[data-service] .service-stage-scene picture,.service-stage-template[data-service] .service-stage-scene img{width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.service-stage-template[data-service] .service-stage-ivan{display:none}
.service-stage-template[data-service="remont-ofisa"] .service-stage-scene::before,.service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-stage-scene::before{display:none}
@media (max-width:1100px) and (min-width:701px){.service-stage-template[data-service] .service-stage-scene::after{background:linear-gradient(90deg,rgba(11,17,18,.94) 0%,rgba(11,17,18,.70) 17%,transparent 52%)}}
@media (max-width:700px){.service-stage-template[data-service] .service-stage-scene{clip-path:ellipse(78% 60% at 58% 50%)}.service-stage-template[data-service] .service-stage-scene::after{background:none}}
/* Final scoped hero geometry. */
.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-hero{width:85vw;max-width:1440px;margin-inline:auto;display:grid;grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);gap:clamp(48px,5vw,96px);align-items:center}
.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-copy{min-width:0;max-width:620px;position:relative;z-index:1}.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-copy h1{max-width:13ch;text-wrap:balance}.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-copy .lead{max-width:42ch}.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-visual{grid-column:2;min-width:0;width:100%;overflow:clip}.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-scene{width:100%;max-width:100%;margin-inline:0;overflow:clip}
@media(max-width:1100px) and (min-width:701px){.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-hero{width:92vw;grid-template-columns:minmax(0,1fr) minmax(430px,1.05fr);gap:max(32px,4vw)}}
@media(max-width:700px){.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-hero{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:24px}.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-copy,.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-visual{width:100%;max-width:none}.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-scene{height:clamp(250px,62vw,300px);object-fit:cover}}

/* Critic pass: at tablet widths each chapter reads continuously before its
 * full-bleed media band; no pseudo-media may cross the chapter seam. */
@media (max-width: 1024px) {
  .service-stage-template .service-editorial-grid > article,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    direction: ltr !important;
    min-height: 0;
    padding-block: 40px;
  }
  .service-editorial-grid > article::after,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter::after { content: none !important; display: none !important; }
  .service-editorial-grid > article > *,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter > * { grid-column: 1; }
  .service-stage-template .service-editorial-grid > article h2,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-chapter h2,
  .service-stage-template .service-editorial-grid > article p,
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-editorial-copy { max-width: 46ch; margin: 0; }
  .service-stage-template .service-editorial-media-band {
    grid-column: 1;
    width: 100%;
    margin: 0;
    min-height: 160px;
  }
}

/* Keep the office prop/hand inside the mask, with a deliberate safe inset. */
.service-stage-template[data-service="remont-ofisa"] .service-stage-scene {
  clip-path: none;
  padding: 24px;
  box-sizing: border-box;
}
.service-stage-template[data-service="remont-ofisa"] .service-stage-scene img { object-position: 62% 50% !important; }

@media (max-width: 700px) {
  .service-stage-template[data-service="remont-ofisa"] .service-stage-scene,
  .service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-stage-scene { clip-path: none; }
  .service-stage-template[data-service="remont-ofisa"] .service-stage-scene img { object-position: 66% 50% !important; }
  .service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-stage-scene img { object-position: 64% 50% !important; }
  body:has(.service-stage-template) header .logo small,
  body:has(.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"]) header .logo small { display: none; }
}


/* P0: repair-family in-situ heroes use the rectangular source frame directly. */
.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-visual {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
}
.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-scene {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  clip-path: none !important;
  outline: 0 !important;
  box-shadow: none !important;
  filter: none !important;
}
.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-scene::before,
.service-stage-template:is([data-service="remont-kvartiry-pod-klyuch"],[data-service="remont-ofisa"],[data-service="remont-kommercheskogo-pomeshcheniya"]) .service-stage-scene::after {
  display: none !important;
  content: none !important;
  background: none !important;
}
.service-stage-template[data-service="remont-kvartiry-pod-klyuch"] .service-stage-scene img { object-position: 62% 50% !important; }
.service-stage-template[data-service="remont-ofisa"] .service-stage-scene img { object-position: 62% 50% !important; }
.service-stage-template[data-service="remont-kommercheskogo-pomeshcheniya"] .service-stage-scene img { object-position: 64% 50% !important; }

/* P0: one server-rendered ledger is both the full price list and calculator. */
.repair-calculator:has([data-repair-ledger]) {
  padding-block: clamp(72px, 8vw, 120px);
  background: #e8e6df;
  color: var(--ink);
}
.repair-calculator:has([data-repair-ledger]) .repair-calculator-workbench {
  display: block;
  width: var(--repair-shell);
  max-width: 1440px;
}
.repair-calculator:has([data-repair-ledger]) .repair-calculator-copy,
.repair-calculator:has([data-repair-ledger]) .repair-calculator-form {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  background: #f3f0e8;
  color: var(--ink);
}
.repair-calculator:has([data-repair-ledger]) .repair-calculator-copy { padding: clamp(24px, 3vw, 48px); }
.repair-calculator:has([data-repair-ledger]) .repair-calculator-copy h2 { max-width: 16ch; }
.repair-calculator:has([data-repair-ledger]) .repair-calculator-form { padding: 0 clamp(24px, 3vw, 48px) clamp(24px, 3vw, 48px); }
.repair-ledger-scroll { overflow-x: auto; }
.repair-ledger { width: 100%; min-width: 960px; border-collapse: collapse; table-layout: fixed; }
.repair-ledger th,
.repair-ledger td { padding: 15px 12px; border: 1px solid #aeb4ae; text-align: left; vertical-align: top; font-size: 14px; line-height: 1.45; }
.repair-ledger th { background: var(--cobalt); color: #fff; font: 11px/1.3 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.repair-ledger th:nth-child(1) { width: 22%; }
.repair-ledger th:nth-child(2) { width: 9%; }
.repair-ledger th:nth-child(3) { width: 13%; }
.repair-ledger th:nth-child(4),
.repair-ledger th:nth-child(5) { width: 28%; }
.repair-ledger tbody tr { background: #f3f0e8; transition: background-color 150ms ease, color 150ms ease; }
.repair-ledger tbody tr:hover,
.repair-ledger tbody tr:focus-within,
.repair-ledger tbody tr:has([data-repair-work]:checked) { background: var(--laser); color: var(--ink); }
.repair-ledger .repair-calculator-choice {
  display: flex;
  min-height: 48px;
  padding: 0;
  border: 0;
  gap: 10px;
  align-items: flex-start;
  background: transparent !important;
  color: inherit !important;
  cursor: pointer;
}
.repair-ledger .repair-calculator-choice span { color: inherit !important; }
.repair-ledger .repair-calculator-choice input { flex: 0 0 20px; width: 20px; height: 20px; margin: 1px 0 0; }
.repair-ledger-price { white-space: nowrap; font: 600 14px/1.4 var(--mono); }
.repair-calculator:has([data-repair-ledger]) .repair-calculator-caveat { margin: 18px 0 0; color: #394443; }
.repair-calculator:has([data-repair-ledger]) .repair-calculator-sheet { margin-top: 28px; color: var(--ink); }
.repair-calculator:has([data-repair-ledger]) .repair-calculator-line input { color: var(--ink); border-color: #69736e; }
.repair-calculator:has([data-repair-ledger]) .repair-calculator-noscript { display: block; margin-top: 20px; color: var(--ink); }

@media (max-width: 700px) {
  .repair-calculator:has([data-repair-ledger]) .repair-calculator-workbench { width: calc(100% - 32px); }
  .repair-calculator:has([data-repair-ledger]) .repair-calculator-copy,
  .repair-calculator:has([data-repair-ledger]) .repair-calculator-form { padding-left: 16px; padding-right: 16px; }
  .repair-ledger-scroll { overflow: visible; }
  .repair-ledger,
  .repair-ledger tbody,
  .repair-ledger tr,
  .repair-ledger td { display: block; width: 100%; min-width: 0; }
  .repair-ledger thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .repair-ledger tbody tr { margin-bottom: 16px; border: 1px solid #aeb4ae; }
  .repair-ledger td {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 10px;
    min-height: 0;
    padding: 11px 12px;
    border: 0;
    border-bottom: 1px solid #c8cbc4;
    overflow-wrap: anywhere;
  }
  .repair-ledger td:last-child { border-bottom: 0; }
  .repair-ledger td::before {
    content: attr(data-label);
    font: 9px/1.3 var(--mono);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #53605e;
  }
  .repair-ledger .repair-calculator-choice { min-height: 44px; }
  .repair-ledger-price { white-space: normal; }
}

/* Sequential repair quiz: one decision per screen. */
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness-intro { grid-column: span 4; align-self: start; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness-intro h2 { max-width: 9ch; }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz-promise { margin-top: 22px; color: var(--laser); font: 11px/1.5 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.hub-page .hub-quiz--stepper { grid-column: auto; display: block; min-width: 0; padding: clamp(22px,3vw,40px); background: #f3f0e8; color: var(--ink); box-shadow: 20px 24px 0 rgba(11,17,18,.18); }
.hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-quiz--stepper { grid-column: 5 / -1; }
.hub-page .hub-quiz--stepper [hidden] { display: none !important; }
.hub-quiz-progress { margin-bottom: clamp(28px,4vw,46px); }
.hub-quiz-progress-copy { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 10px; color: #40504d; font: 11px/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.hub-quiz-progress-track { height: 5px; overflow: hidden; background: #c7cbc2; }
.hub-quiz-progress-track span { display: block; width: 20%; height: 100%; background: var(--cobalt); transition: width .22s ease; }
.hub-page .hub-quiz--stepper .hub-quiz-fields { display: block; }
.hub-page .hub-quiz--stepper .hub-quiz-step { display: block; min-height: 360px; padding: 0; border: 0; }
.hub-quiz-step legend { width: 100%; margin: 0; font: 650 clamp(27px,3vw,42px)/1.05 var(--display); letter-spacing: -.035em; }
.hub-quiz-step legend span { display: block; margin-bottom: 12px; color: var(--cobalt); font: 11px/1 var(--mono); letter-spacing: .12em; }
.hub-quiz-hint { margin: 10px 0 24px; color: #53605e; font-size: 14px; }
.hub-quiz-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.hub-page .hub-quiz-options label { position: relative; display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 12px; align-items: start; min-height: 88px; padding: 16px; border: 1px solid #aeb6ae; background: #fff; cursor: pointer; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.hub-page .hub-quiz-options label:hover { border-color: var(--cobalt); transform: translateY(-2px); }
.hub-page .hub-quiz-options label:has(input:checked) { border-color: var(--cobalt); background: #e7ebff; box-shadow: inset 4px 0 0 var(--cobalt); }
.hub-page .hub-quiz-options input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--cobalt); }
.hub-quiz-options b,.hub-quiz-options small { display: block; }
.hub-quiz-options b { font: 600 16px/1.25 var(--display); }
.hub-quiz-options small { margin-top: 5px; color: #53605e; font: 12px/1.4 var(--body); }
.hub-quiz-area { display: grid !important; gap: 9px !important; max-width: 360px; margin-top: 30px; font: 600 14px var(--display); }
.hub-quiz-area input { width: 100% !important; height: 66px !important; padding: 12px 16px; border: 2px solid #79857e; background: #fff; color: var(--ink); font: 600 24px var(--mono); }
.hub-quiz-area input:focus { border-color: var(--cobalt); outline: 3px solid color-mix(in srgb,var(--cobalt) 30%,transparent); outline-offset: 2px; }
.hub-quiz-unknown { display: flex !important; width: fit-content; margin-top: 18px; cursor: pointer; }
.hub-quiz-unknown input { width: 20px !important; height: 20px !important; accent-color: var(--cobalt); }
.hub-quiz-error { min-height: 22px; margin: 12px 0 4px; color: #7c1f18; font: 600 13px/1.4 var(--body); }
.hub-quiz-navigation,.hub-quiz-result-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.hub-page .hub-quiz--stepper .button { justify-self: auto; min-height: 50px; padding: 12px 18px; border-color: #69736e; color: var(--ink); }
.hub-page .hub-quiz--stepper .button-primary { border-color: var(--cobalt); background: var(--cobalt); color: #fff; }
.hub-page .hub-quiz--stepper .button-primary:hover { border-color: var(--ink); background: var(--ink); color: #fff; }
.hub-quiz-back { order: -1; }
.hub-page .hub-quiz-result { padding: 0; }
.hub-quiz-result h3 { max-width: 13ch; margin: 8px 0 14px; font: 650 clamp(30px,3.5vw,48px)/1 var(--display); letter-spacing: -.04em; }
.hub-quiz-result > p:not(.eyebrow):not(.hub-quiz-copy-status) { max-width: 50ch; color: #40504d; }
.hub-page .hub-quiz-result output { display: block; margin: 24px 0; padding: 18px 20px; border: 1px solid #aeb6ae; border-left: 4px solid var(--cobalt); background: #fff; color: var(--ink); white-space: pre-wrap; font: 12px/1.6 var(--mono); }
.hub-quiz-result-actions .button-primary { flex: 1 1 280px; justify-content: center; text-align: center; }
.hub-quiz-copy-status { min-height: 20px; margin: 12px 0 0; color: #315b21; }
@media (max-width:700px) {
  .hub-page[data-hub="remont-kvartir-i-pomeshcheniy"] .hub-readiness-intro { display: block; }
  .hub-page .hub-quiz--stepper { display: block; width: 100%; margin-top: 30px; padding: 22px 16px; box-shadow: 10px 12px 0 rgba(11,17,18,.18); }
  .hub-page .hub-quiz--stepper .hub-quiz-step { min-height: 0; }
  .hub-quiz-options { grid-template-columns: 1fr; }
  .hub-page .hub-quiz-options label { min-height: 76px; }
  .hub-quiz-navigation .button,.hub-quiz-result-actions .button { flex: 1 1 100%; width: 100%; justify-content: center; text-align: center; }
  .hub-quiz-step legend { font-size: 29px; }
}

.hub-page .hub-quiz-visual{position:relative;height:clamp(130px,13vw,190px);margin:0 0 30px;overflow:hidden;background:var(--ink)}
.hub-page .hub-quiz-visual img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.06)}
.hub-page .hub-quiz-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,17,18,.66),transparent 64%);pointer-events:none}
.hub-page .hub-quiz-visual figcaption{position:absolute;z-index:1;left:16px;bottom:14px;max-width:75%;color:#fff;font:10px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase}
@media(max-width:700px){.hub-page .hub-quiz-visual{height:130px;margin-bottom:24px}}

/* Release audit: bound every generic service hero copy on mobile. */
@media(max-width:700px){.service-stage-template .service-stage-hero{align-items:stretch}.service-stage-template .service-stage-copy{width:100%;min-width:0;max-width:100%;margin-inline:0}}

/* Release audit: WCAG AA service accents on dark and paper surfaces. */
.service-stage-template .service-stage .eyebrow,
.service-stage-template .service-process>.eyebrow,
.service-stage-template .service-cutaway .eyebrow{color:#b9e45a}
.service-stage-template :is(.service-overview,.service-ledger,.service-faq,.service-related) .eyebrow,
.service-stage-template .service-related-index,
.service-stage-template .service-factor-table .eyebrow{color:#2947a3}
.service-stage-template .service-capture,
.service-stage-template .service-capture h2,
.service-stage-template .service-capture p{color:#fff}

/* Release audit: keep long Russian service names readable on narrow screens. */
@media(max-width:700px){.service-stage-template .service-stage-copy h1{font-size:clamp(34px,9.2vw,42px);overflow-wrap:anywhere}}
