body[data-city-pilot="lublin-mvp-v1"] {
  --lub-ink: #111827;
  --lub-copy: #56657a;
  --lub-muted: #748196;
  --lub-line: #cfd6df;
  --lub-paper: #ffffff;
  --lub-stone: #f3f1ee;
  --lub-field: #f5f7f9;
  --lub-red: #e83d52;
  --lub-red-soft: #fff0f2;
  background: var(--lub-paper);
  color: var(--lub-ink);
}

body[data-city-pilot="lublin-mvp-v1"] main { overflow: clip; background: var(--lub-paper); }

body[data-city-pilot="lublin-mvp-v1"] #hero-section,
body[data-city-pilot="lublin-mvp-v1"] #przekroj-mvp,
body[data-city-pilot="lublin-mvp-v1"] #evidence-lublin,
body[data-city-pilot="lublin-mvp-v1"] #kalkulator,
body[data-city-pilot="lublin-mvp-v1"] #process-lublin,
body[data-city-pilot="lublin-mvp-v1"] #stack-lublin,
body[data-city-pilot="lublin-mvp-v1"] #faq,
body[data-city-pilot="lublin-mvp-v1"] #contact { scroll-margin-top: 6rem; }

body[data-city-pilot="lublin-mvp-v1"] #footer-container > .grid > div:first-child > .flex {
  min-width: max-content;
  flex-wrap: nowrap;
}

body[data-city-pilot="lublin-mvp-v1"] #footer-container > .grid > div:first-child > .flex span {
  white-space: nowrap;
}

.lub-hero,
.lub-scope,
.lub-evidence,
.lub-delivery,
.lub-stack,
.lub-faq,
.lub-editorial { font-family: "Plus Jakarta Sans", sans-serif; color: var(--lub-ink); }

.lub-shell,
.lub-editorial { width: min(100%, 1168px); margin-inline: auto; }

.lub-hero {
  min-height: min(639px, calc(100svh - 81px));
  padding: 5.25rem 1rem 0;
  background: var(--lub-paper);
}

.lub-hero__index {
  display: flex;
  min-height: 28px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.65rem;
  border-bottom: 1px solid var(--lub-line);
  color: #65738a;
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.115em;
}

.lub-hero__index span:last-child { color: var(--lub-red); }

.lub-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
  min-height: 464px;
  border-bottom: 1px solid var(--lub-line);
}

.lub-hero__copy {
  display: flex;
  grid-column: 2;
  flex-direction: column;
  justify-content: center;
  padding: 1.5rem 0 1.5rem 2.35rem;
}

.lub-hero__copy > p:first-child,
.lub-scope header > p,
.lub-evidence header > p,
.lub-delivery header > p,
.lub-stack__layout > div > p,
.lub-faq header > p {
  margin: 0;
  color: var(--lub-red);
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.115em;
  text-transform: uppercase;
}

.lub-hero__copy h1 {
  max-width: 12ch;
  margin: 0.75rem 0 0;
  font-size: clamp(2.65rem, 3.65vw, 3.48rem);
  font-weight: 800;
  line-height: 0.995;
  letter-spacing: -0.059em;
}

.lub-hero__copy h1 em { display: block; color: var(--lub-red); font-style: normal; }
.lub-hero__copy > p:nth-of-type(2) { max-width: 33rem; margin: 1rem 0 0; color: var(--lub-copy); font-size: 0.88rem; line-height: 1.58; }

.lub-hero__actions { display: flex; align-items: center; gap: 1.1rem; margin-top: 1.2rem; }
.lub-hero__actions a { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 1.15rem; padding: 0.65rem 1rem; border: 1px solid var(--lub-ink); border-radius: 0.62rem; color: #fff; background: var(--lub-ink); font-size: 0.72rem; font-weight: 800; text-decoration: none; }
.lub-hero__actions a:last-child { padding-inline: 0; border-color: transparent transparent var(--lub-line); border-radius: 0; color: var(--lub-ink); background: transparent; }
.lub-hero__actions a:hover { color: var(--lub-red); }

.lub-hero__visual {
  display: grid;
  grid-column: 1;
  grid-row: 1;
  grid-template-rows: auto 66px;
  height: auto;
  min-width: 0;
  margin: 0;
  border-right: 1px solid var(--lub-line);
  background: var(--lub-field);
}

.lub-hero__visual picture,
.lub-hero__visual img { display: block; width: 100%; height: auto; aspect-ratio: 920 / 560; }
.lub-hero__visual img { object-fit: contain; }
.lub-hero__visual figcaption { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 1.3rem; align-items: center; padding: 0.7rem 1rem; border-top: 1px solid var(--lub-line); background: var(--lub-paper); }
.lub-hero__visual figcaption strong { font-size: 0.76rem; line-height: 1.35; }
.lub-hero__visual figcaption span { color: var(--lub-muted); font-size: 0.71rem; line-height: 1.45; }

.lub-scope { padding: 5.25rem 1rem 2.5rem; border-bottom: 1px solid var(--lub-line); background: var(--lub-stone); }
.lub-scope__layout { display: grid; grid-template-columns: minmax(18rem, 0.72fr) minmax(0, 1.48fr); gap: 2.6rem; align-items: stretch; }
.lub-scope header { display: flex; flex-direction: column; justify-content: center; }
.lub-scope header h2 { max-width: 14ch; margin: 0.8rem 0 0; font-size: clamp(2.08rem, 2.95vw, 2.95rem); font-weight: 800; line-height: 1.015; letter-spacing: -0.056em; }
.lub-scope header > span { display: block; max-width: 25rem; margin-top: 1rem; color: var(--lub-copy); font-size: 0.8rem; line-height: 1.55; }

.lub-scope__contract { overflow: hidden; border: 1px solid #c8c1b9; border-radius: 1.5rem; background: var(--lub-paper); }
.lub-scope__meta { display: grid; grid-template-columns: 10rem 1fr 5.5rem; gap: 1rem; min-height: 52px; align-items: center; padding: 0.75rem 1.2rem 0.55rem 4.3rem; border-bottom: 1px solid var(--lub-line); }
.lub-scope__meta span { color: var(--lub-red); font-size: 0.63rem; font-weight: 800; letter-spacing: 0.1em; }
.lub-scope__meta strong { font-size: 0.71rem; }
.lub-scope__meta i { position: relative; justify-self: end; width: 68px; height: 24px; border: 2px solid #c7bfb5; border-bottom: 0; border-radius: 4rem 4rem 0 0; }
.lub-scope__meta i::before { content: ""; position: absolute; top: -4px; left: 50%; width: 13px; height: 14px; border: 2px solid #a62135; background: var(--lub-red); transform: translateX(-50%); }

.lub-scope__contract dl { display: block; margin: 0; padding: 0.35rem 0; }
.lub-scope__contract dl > div { display: grid; position: relative; grid-template-columns: minmax(10rem, 0.9fr) minmax(12rem, 1.2fr) minmax(11rem, 0.9fr); gap: 1rem; min-height: 64px; align-items: center; padding: 0.68rem 1rem 0.68rem 4rem; border-top: 1px solid var(--lub-line); background: #fff; }
.lub-scope__contract dl > div:last-child { border-bottom: 1px solid var(--lub-line); box-shadow: inset 4px 0 var(--lub-red); }
.lub-scope__contract dl > div::before { content: ""; position: absolute; top: 0; bottom: 0; left: 2rem; width: 1px; background: var(--lub-line); }
.lub-scope__contract dt { display: flex; align-items: center; }
.lub-scope__contract dt span { display: grid; position: absolute; left: 1.28rem; width: 24px; height: 24px; place-items: center; border: 2px solid #a69d93; border-radius: 50% 50% 2px 2px; color: var(--lub-red); background: #fff; font-size: 0; }
.lub-scope__contract dl > div:last-child dt span { border-color: var(--lub-red); background: var(--lub-red-soft); }
.lub-scope__contract dt strong { font-size: 0.84rem; }
.lub-scope__contract dd { margin: 0; color: var(--lub-copy); font-size: 0.75rem; line-height: 1.48; }
.lub-scope__contract small { color: var(--lub-ink); font-size: 0.71rem; font-weight: 750; line-height: 1.4; }
.lub-scope__contract .lublin-scope__outcome { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 1.35rem; min-height: 58px; align-items: center; padding: 0.75rem 1.15rem; border-top: 4px solid var(--lub-red); background: var(--lub-red-soft); }
.lub-scope__contract .lublin-scope__outcome strong { font-size: 0.74rem; }
.lub-scope__contract .lublin-scope__outcome span { color: var(--lub-copy); font-size: 0.72rem; line-height: 1.45; }

.lub-evidence { padding: 2.05rem 1rem; border-bottom: 1px solid var(--lub-line); background: var(--lub-paper); }
.lub-evidence__layout { display: grid; grid-template-columns: minmax(17rem, 1.05fr) minmax(15rem, 0.92fr) minmax(15rem, 0.92fr) minmax(12rem, 0.68fr); border-block: 1px solid var(--lub-line); }
.lub-evidence__layout > * { padding: 1.05rem 1.15rem; }
.lub-evidence__layout > * + * { border-left: 1px solid var(--lub-line); }
.lub-evidence header { padding-left: 0; }
.lub-evidence header h2 { margin: 0.55rem 0 0; font-size: 1.32rem; line-height: 1.16; letter-spacing: -0.035em; }
.lub-evidence article span { color: var(--lub-red); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.lub-evidence article strong { display: block; margin-top: 0.55rem; font-size: 0.75rem; line-height: 1.42; }
.lub-evidence article p { margin: 0.5rem 0 0; color: var(--lub-copy); font-size: 0.7rem; line-height: 1.48; }
.lub-evidence nav { display: grid; align-content: center; gap: 0.25rem; padding-right: 0; }
.lub-evidence nav a { display: flex; min-height: 44px; align-items: center; color: var(--lub-ink); font-size: 0.67rem; font-weight: 800; text-decoration: none; }
.lub-evidence nav a:hover { color: var(--lub-red); }

.lub-delivery { padding: 2.25rem 1rem; border-bottom: 1px solid var(--lub-line); background: var(--lub-paper); }
.lub-delivery__layout { display: grid; grid-template-columns: minmax(18rem, 0.7fr) minmax(0, 1.5fr); gap: 2.7rem; }
.lub-delivery header { display: flex; flex-direction: column; justify-content: center; }
.lub-delivery header h2 { max-width: 13ch; margin: 0.7rem 0 0; font-size: clamp(2.15rem, 3vw, 3rem); font-weight: 800; line-height: 1.01; letter-spacing: -0.057em; }
.lub-delivery header span { max-width: 23rem; margin-top: 0.9rem; color: var(--lub-copy); font-size: 0.78rem; line-height: 1.55; }
.lub-delivery ol { margin: 0; padding: 0; border-top: 1px solid var(--lub-ink); list-style: none; }
.lub-delivery li { display: grid; grid-template-columns: 2.1rem 1fr minmax(10rem, 0.72fr); gap: 0.8rem; min-height: 77px; align-items: center; border-bottom: 1px solid var(--lub-line); }
.lub-delivery li > span { color: var(--lub-red); font-size: 0.64rem; font-weight: 800; }
.lub-delivery li > div { display: grid; grid-template-columns: minmax(9rem, 0.9fr) minmax(12rem, 1.1fr); gap: 0.7rem; align-items: center; }
.lub-delivery li small { color: var(--lub-muted); font-size: 0.58rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.lub-delivery li h3 { margin: 0.2rem 0 0; font-size: 0.78rem; line-height: 1.35; }
.lub-delivery li p { margin: 0; color: var(--lub-copy); font-size: 0.74rem; line-height: 1.45; }
.lub-delivery li > strong { font-size: 0.7rem; line-height: 1.42; }

.lub-stack { padding: 1.25rem 1rem; border-bottom: 1px solid var(--lub-line); background: var(--lub-stone); }
.lub-stack__layout { display: grid; grid-template-columns: minmax(18rem, 0.9fr) minmax(0, 1.35fr); gap: 2rem; align-items: center; }
.lub-stack__layout h2 { max-width: 31rem; margin: 0.4rem 0 0; font-size: 1.05rem; line-height: 1.35; }
.lub-stack ul { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; border-inline: 1px solid var(--lub-line); list-style: none; }
.lub-stack li { display: grid; min-height: 64px; padding: 0.62rem 0.85rem; }
.lub-stack li + li { border-left: 1px solid var(--lub-line); }
.lub-stack li span { color: var(--lub-red); font-size: 0.58rem; font-weight: 800; }
.lub-stack li strong { font-size: 0.73rem; }
.lub-stack li small { color: var(--lub-muted); font-size: 0.62rem; }

.lub-faq { padding: 2.3rem 1rem; border-bottom: 1px solid var(--lub-line); background: var(--lub-field); }
.lub-faq__layout { display: grid; grid-template-columns: minmax(18rem, 0.72fr) minmax(0, 1.48fr); gap: 2.7rem; }
.lub-faq header h2 { max-width: 11ch; margin: 0.7rem 0 0; font-size: clamp(2.25rem, 3.1vw, 3.1rem); font-weight: 800; line-height: 1; letter-spacing: -0.057em; }
.lub-faq header > span { display: block; max-width: 23rem; margin-top: 0.9rem; color: var(--lub-copy); font-size: 0.77rem; line-height: 1.52; }
.lub-faq header a { display: inline-flex; min-height: 44px; align-items: center; gap: 1rem; margin-top: 1rem; padding: 0.6rem 0.95rem; border-radius: 0.55rem; color: #fff; background: var(--lub-ink); font-size: 0.7rem; font-weight: 800; text-decoration: none; }
.lub-faq__list { border-top: 1px solid var(--lub-ink); }
.lub-faq__list details { border-bottom: 1px solid var(--lub-line); }
.lub-faq__list summary { display: grid; min-height: 68px; grid-template-columns: 2.5rem 1fr 2.75rem; align-items: center; cursor: pointer; list-style: none; }
.lub-faq__list summary::-webkit-details-marker { display: none; }
.lub-faq__list summary > span { color: var(--lub-red); font-size: 0.63rem; font-weight: 800; }
.lub-faq__list summary strong { font-size: 0.76rem; line-height: 1.4; }
.lub-faq__list summary i { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--lub-line); border-radius: 50%; }
.lub-faq__list summary i::before { content: "+"; color: var(--lub-red); font-size: 1.1rem; font-style: normal; }
.lub-faq__list details[open] summary i::before { content: "−"; }
.lub-faq__list details > div { padding: 0 2.75rem 1rem 2.5rem; color: var(--lub-copy); font-size: 0.75rem; line-height: 1.55; }

.lub-editorial { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 2rem; padding: 1rem 0; border-bottom: 1px solid var(--lub-line); background: var(--lub-paper); }
.lub-editorial > div { display: grid; gap: 0.25rem; }
.lub-editorial strong { font-size: 0.69rem; }
.lub-editorial span { color: var(--lub-muted); font-size: 0.62rem; }
.lub-editorial nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.3rem 0.75rem; }
.lub-editorial a { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding-inline: 0.35rem; color: var(--lub-ink); font-size: 0.65rem; font-weight: 800; text-decoration: none; }
.lub-editorial a:hover { color: var(--lub-red); }

body[data-city-pilot="lublin-mvp-v1"] #contact { padding-block: 1.7rem !important; }
body[data-city-pilot="lublin-mvp-v1"] a:focus-visible,
body[data-city-pilot="lublin-mvp-v1"] button:focus-visible,
body[data-city-pilot="lublin-mvp-v1"] summary:focus-visible,
body[data-city-pilot="lublin-mvp-v1"] input:focus-visible { outline: 3px solid #1d4ed8; outline-offset: 3px; }

@media (max-width: 900px) {
  .lub-hero { min-height: 0; }
  .lub-scope { padding-top: 2.25rem; }
  .lub-hero__layout,
  .lub-scope__layout,
  .lub-evidence__layout,
  .lub-delivery__layout,
  .lub-stack__layout,
  .lub-faq__layout { grid-template-columns: 1fr; }
  .lub-hero__copy { grid-column: 1; grid-row: 1; padding-left: 0; }
  .lub-hero__visual { grid-column: 1; grid-row: 2; grid-template-rows: auto 66px; height: auto; border-top: 1px solid var(--lub-line); border-right: 0; }
  .lub-hero__visual picture,
  .lub-hero__visual img { height: auto; aspect-ratio: 920 / 560; }
  .lub-scope header h2 { max-width: 18ch; }
  .lub-evidence__layout > * + * { border-top: 1px solid var(--lub-line); border-left: 0; }
  .lub-evidence header { padding-left: 1.15rem; }
  .lub-evidence nav { padding-right: 1.15rem; }
  .lub-delivery header h2,
  .lub-faq header h2 { max-width: 16ch; }
}

@media (max-width: 760px) {
  .lub-hero { padding: 5.45rem 1rem 0; }
  .lub-hero__index { align-items: flex-start; gap: 0.45rem; padding-bottom: 0.55rem; line-height: 1.35; }
  .lub-hero__index span:last-child { max-width: 9rem; text-align: right; }
  .lub-hero__copy { padding: 1.35rem 0 1.5rem; }
  .lub-hero__copy h1 { max-width: 10.7ch; font-size: clamp(2.3rem, 11.4vw, 2.95rem); }
  .lub-hero__copy > p:nth-of-type(2) { font-size: 0.87rem; }
  .lub-hero__actions { align-items: stretch; margin-top: 1.1rem; }
  .lub-hero__actions a { min-height: 48px; }
  .lub-hero__visual { grid-template-rows: auto; min-height: 0; }
  .lub-hero__visual picture,
  .lub-hero__visual img { height: auto; aspect-ratio: 430 / 390; }
  .lub-hero__visual figcaption { display: none; }

  .lub-scope,
  .lub-evidence,
  .lub-delivery,
  .lub-faq { padding: 2.1rem 1rem; }
  .lub-scope__layout,
  .lub-delivery__layout,
  .lub-faq__layout { gap: 1.4rem; }
  .lub-scope header h2 { font-size: 2.3rem; }
  .lub-scope__contract { border-radius: 4.5rem 4.5rem 0.75rem 0.75rem; }
  .lub-scope__meta { grid-template-columns: 1fr 1fr; padding: 1rem 1.2rem 0.55rem 2rem; }
  .lub-scope__meta i { display: none; }
  .lub-scope__contract dl > div { grid-template-columns: 1fr; gap: 0.3rem; min-height: 0; padding: 0.9rem 1rem 0.9rem 4rem; }
  .lub-scope__contract dl > div small { margin-top: 0.12rem; }
  .lub-scope__contract .lublin-scope__outcome { grid-template-columns: 1fr; gap: 0.35rem; }

  .lub-evidence__layout { border-bottom: 0; }
  .lub-evidence__layout > * { padding: 1.05rem 0; }
  .lub-evidence header { padding-left: 0; }
  .lub-evidence nav { padding-right: 0; }

  .lub-delivery header h2,
  .lub-faq header h2 { font-size: 2.45rem; }
  .lub-delivery li { grid-template-columns: 2rem 1fr; gap: 0.6rem; min-height: 0; padding: 0.95rem 0; }
  .lub-delivery li > div { grid-template-columns: 1fr; gap: 0.3rem; }
  .lub-delivery li > div,
  .lub-delivery li > strong { grid-column: 2; }

  .lub-stack { padding: 1.25rem 1rem; }
  .lub-stack__layout { gap: 0.95rem; }
  .lub-stack ul { grid-template-columns: repeat(2, 1fr); }
  .lub-stack li + li { border-left: 0; }
  .lub-stack li:nth-child(even) { border-left: 1px solid var(--lub-line); }
  .lub-stack li:nth-child(n+3) { border-top: 1px solid var(--lub-line); }

  .lub-faq__list summary { grid-template-columns: 2rem 1fr 2.75rem; min-height: 74px; }
  .lub-faq__list details > div { padding: 0 2.75rem 1rem 2rem; }
  .lub-editorial { display: grid; width: calc(100% - 2rem); margin-inline: auto; }
  .lub-editorial nav { justify-content: flex-start; gap: 0 0.65rem; }
}

@media (max-width: 360px) {
  .lub-hero__actions { flex-direction: column; gap: 0.45rem; }
  .lub-hero__actions a:last-child { justify-content: flex-start; }
  .lub-hero__copy h1 { font-size: 2.15rem; }
  .lub-scope header h2,
  .lub-delivery header h2,
  .lub-faq header h2 { font-size: 2.15rem; }
}

@media (prefers-reduced-motion: reduce) {
  body[data-city-pilot="lublin-mvp-v1"] *,
  body[data-city-pilot="lublin-mvp-v1"] *::before,
  body[data-city-pilot="lublin-mvp-v1"] *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
