:root {
  --oln-ink: #101a2e;
  --oln-copy: #53627a;
  --oln-muted: #748097;
  --oln-red: #e13a4c;
  --oln-blue: #225d91;
  --oln-teal: #2e6c64;
  --oln-paper: #fffdf8;
  --oln-mist: #f4f7f9;
  --oln-line: #d7e0e9;
}

body[data-city-pilot="olsztyn-slot-validator-v2"] { color: var(--oln-ink); background: #fff; }
body[data-city-pilot="olsztyn-slot-validator-v2"] main { overflow: clip; }
body[data-city-pilot="olsztyn-slot-validator-v2"] :is(#kontrakt-slotu, #kalkulator, #odbior, #faq, #contact) { scroll-margin-top: 6rem; }

.oln-page,
.oln-page * { box-sizing: border-box; }
.oln-page { color: var(--oln-ink); font-family: "Plus Jakarta Sans", sans-serif; }
.oln-shell,
.oln-editorial { width: min(calc(100% - 48px), 1180px); margin-inline: auto; }
.oln-page :is(h1, h2, p, figure, dl, ol, ul) { margin-top: 0; }
.oln-page :is(h1, h2, strong, b) { letter-spacing: -.035em; }
.oln-page h1 { margin-bottom: 0; font-size: clamp(3rem, 5.4vw, 5.25rem); font-weight: 750; line-height: .96; text-wrap: balance; }
.oln-page h2 { margin-bottom: 0; font-size: clamp(2rem, 3.5vw, 3.45rem); font-weight: 750; line-height: 1.02; text-wrap: balance; }
.oln-page p { color: var(--oln-copy); font-size: clamp(.98rem, 1.18vw, 1.08rem); line-height: 1.65; }
.oln-page a { text-underline-offset: .22em; }

.oln-kicker { margin-bottom: .8rem; color: var(--oln-red) !important; font-size: .69rem !important; font-weight: 800; letter-spacing: .14em; line-height: 1.35 !important; text-transform: uppercase; }
.oln-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.55rem; }
.oln-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: .7rem; padding: .82rem 1.12rem; border: 1px solid transparent; border-radius: .7rem; font-size: .78rem; font-weight: 800; text-decoration: none; transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease; }
.oln-button:hover { transform: translateY(-1px); }
.oln-button:focus-visible,
.oln-page summary:focus-visible,
.oln-page a:focus-visible { outline: 3px solid rgba(225, 58, 76, .28); outline-offset: 4px; }
.oln-button--solid { color: #fff; background: var(--oln-ink); }
.oln-button--solid:hover { color: #fff; background: var(--oln-red); }
.oln-button--line { color: var(--oln-ink); background: #fff; border-color: var(--oln-line); }
.oln-button--line:hover { color: var(--oln-red); border-color: var(--oln-red); }

.oln-hero { padding: 7.1rem 1rem 1rem; background: radial-gradient(circle at 12% 22%, rgba(225,58,76,.075), transparent 26rem), linear-gradient(rgba(34,93,145,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(34,93,145,.045) 1px, transparent 1px), #f7f9fa; background-size: auto, 34px 34px, 34px 34px, auto; border-bottom: 1px solid var(--oln-line); }
.oln-hero__grid { display: grid; grid-template-columns: minmax(21rem, .83fr) minmax(0, 1.17fr); overflow: hidden; background: rgba(255,255,255,.97); border: 1px solid var(--oln-line); border-radius: 1.25rem; box-shadow: 0 26px 70px rgba(16,26,46,.09); }
.oln-hero__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(2rem, 4.1vw, 3.7rem); }
.oln-hero h1 { max-width: 11.5ch; }
.oln-hero h1 em { display: block; color: var(--oln-red); font-style: normal; }
.oln-lead { max-width: 39rem; margin: 1.25rem 0 0; }
.oln-hero__note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem 1rem; margin-top: auto; padding-top: 1.25rem; border-top: 1px solid var(--oln-line); }
.oln-hero__note strong { color: var(--oln-ink); font-size: .77rem; }
.oln-hero__note span { color: var(--oln-copy); font-size: .72rem; line-height: 1.48; }
.oln-hero__visual { display: grid; min-width: 0; align-self: center; grid-template-rows: auto auto; margin: 1rem; overflow: hidden; background: var(--oln-paper); border: 1px solid var(--oln-line); border-radius: 1rem; }
.oln-hero__visual picture { display: flex; min-width: 0; align-items: center; justify-content: center; padding: .75rem; }
.oln-hero__visual img { display: block; width: 100%; height: auto; max-height: 35rem; object-fit: contain; }
.oln-hero__visual figcaption { display: flex; min-height: 3.4rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.25rem; color: var(--oln-muted); background: #fff; border-top: 1px solid var(--oln-line); font-size: .67rem; line-height: 1.35; }
.oln-hero__visual figcaption strong { color: var(--oln-ink); font-size: .72rem; }

.oln-evidence,
.oln-contract,
.oln-scenario,
.oln-delivery,
.oln-acceptance,
.oln-faq { padding: clamp(2.8rem, 5.4vw, 5rem) 1rem; border-bottom: 1px solid var(--oln-line); }

.oln-evidence { background: var(--oln-mist); }
.oln-evidence__grid { display: grid; grid-template-columns: minmax(18rem, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 6vw, 5.5rem); align-items: start; }
.oln-evidence__body > p { margin-bottom: 1.25rem; }
.oln-evidence__body dl { margin-bottom: 1rem; border-block: 1px solid var(--oln-line); }
.oln-evidence__body dl div { display: grid; grid-template-columns: 8.6rem minmax(0, 1fr); gap: 1rem; padding: 1rem 0; }
.oln-evidence__body dl div + div { border-top: 1px solid var(--oln-line); }
.oln-evidence__body dt { color: var(--oln-red); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.oln-evidence__body dd { margin: 0; color: var(--oln-copy); font-size: .8rem; line-height: 1.55; }
.oln-evidence__body > a { display: inline-flex; min-height: 44px; align-items: center; color: var(--oln-ink); font-size: .74rem; font-weight: 800; }

.oln-contract { background: #fff; }
.oln-contract__grid { display: grid; grid-template-columns: minmax(17rem, .68fr) minmax(0, 1.32fr); gap: clamp(2rem, 5.5vw, 5rem); align-items: center; }
.oln-contract header > p:last-child { max-width: 31rem; margin: 1rem 0 0; }
.oln-stamps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border: 1px solid var(--oln-line); border-radius: 1rem; overflow: hidden; }
.oln-stamps li { display: grid; min-width: 0; grid-template-columns: 2.3rem minmax(0, 1fr); gap: .75rem; padding: 1.15rem; background: var(--oln-paper); }
.oln-stamps li:nth-child(even) { border-left: 1px solid var(--oln-line); }
.oln-stamps li:nth-child(n+3) { border-top: 1px solid var(--oln-line); }
.oln-stamps li > span { color: var(--oln-red); font-size: .7rem; font-weight: 800; }
.oln-stamps strong { display: block; color: var(--oln-ink); font-size: .9rem; }
.oln-stamps p { margin: .3rem 0 0; font-size: .72rem; line-height: 1.48; }
.oln-stamps b { grid-column: 2; color: var(--oln-teal); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }

.oln-scenario { background: #fff; }
.oln-scenario__grid { display: grid; grid-template-columns: minmax(16rem, .68fr) minmax(0, 1.32fr); gap: 2rem 4.2rem; }
.oln-scenario__steps { border-block: 1px solid var(--oln-line); }
.oln-scenario__steps p { display: grid; grid-template-columns: 2.4rem minmax(0, .7fr) minmax(0, 1.3fr); align-items: center; gap: .8rem; margin: 0; padding: 1rem 0; }
.oln-scenario__steps p + p { border-top: 1px solid var(--oln-line); }
.oln-scenario__steps span { color: var(--oln-red); font-size: .68rem; font-weight: 800; }
.oln-scenario__steps strong { color: var(--oln-ink); font-size: .84rem; }
.oln-scenario__steps small { color: var(--oln-copy); font-size: .72rem; line-height: 1.5; }
.oln-scenario aside { display: grid; grid-column: 2; grid-template-columns: 6rem minmax(0, 1fr); gap: 1rem; padding: 1rem 1.1rem; color: #8a3340; background: #fff0f2; border-left: 3px solid var(--oln-red); }
.oln-scenario aside strong { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.oln-scenario aside span { font-size: .76rem; line-height: 1.55; }

.oln-delivery { background: #fff; }
.oln-delivery__grid { display: grid; grid-template-columns: minmax(17rem, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.oln-delivery header > p:last-child { margin: 1rem 0 0; }
.oln-delivery ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border: 1px solid var(--oln-line); border-radius: 1rem; overflow: hidden; }
.oln-delivery li { display: grid; min-width: 0; grid-template-columns: 2rem minmax(0, 1fr); gap: .65rem; padding: 1.1rem; }
.oln-delivery li:nth-child(even) { border-left: 1px solid var(--oln-line); }
.oln-delivery li:nth-child(n+3) { border-top: 1px solid var(--oln-line); }
.oln-delivery li > span { color: var(--oln-red); font-size: .68rem; font-weight: 800; }
.oln-delivery li strong { color: var(--oln-ink); font-size: .82rem; line-height: 1.35; }
.oln-delivery li p { grid-column: 2; margin: .35rem 0 0; font-size: .7rem; line-height: 1.48; }

.oln-acceptance { background: var(--oln-mist); }
.oln-acceptance__grid { display: grid; grid-template-columns: minmax(18rem, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 5vw, 4.5rem); }
.oln-acceptance__body ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-block: 1px solid var(--oln-line); }
.oln-acceptance__body li { display: grid; gap: .3rem; padding: 1rem; }
.oln-acceptance__body li:nth-child(even) { border-left: 1px solid var(--oln-line); }
.oln-acceptance__body li:nth-child(n+3) { border-top: 1px solid var(--oln-line); }
.oln-acceptance__body strong { color: var(--oln-ink); font-size: .8rem; }
.oln-acceptance__body span { color: var(--oln-copy); font-size: .7rem; line-height: 1.5; }
.oln-acceptance__body > p { margin: 1.1rem 0 0; font-size: .76rem; }
.oln-acceptance__body > p b { color: var(--oln-red); }

.oln-faq { background: #fff; }
.oln-faq__grid { display: grid; grid-template-columns: minmax(17rem, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.oln-faq header .oln-button { margin-top: 1.35rem; }
.oln-faq__list { border-block: 1px solid var(--oln-line); }
.oln-faq details + details { border-top: 1px solid var(--oln-line); }
.oln-faq summary { display: grid; min-height: 4.7rem; grid-template-columns: 2.3rem minmax(0, 1fr) 1.4rem; align-items: center; gap: .8rem; padding: .75rem 0; cursor: pointer; list-style: none; }
.oln-faq summary::-webkit-details-marker { display: none; }
.oln-faq summary span { color: var(--oln-red); font-size: .68rem; font-weight: 800; }
.oln-faq summary strong { color: var(--oln-ink); font-size: .84rem; line-height: 1.4; }
.oln-faq summary i { position: relative; width: 1.3rem; height: 1.3rem; border: 1px solid var(--oln-line); border-radius: 50%; }
.oln-faq summary i::before,
.oln-faq summary i::after { position: absolute; top: 50%; left: 50%; width: .52rem; height: 1px; content: ""; background: var(--oln-red); transform: translate(-50%,-50%); }
.oln-faq summary i::after { transform: translate(-50%,-50%) rotate(90deg); }
.oln-faq details[open] summary i::after { display: none; }
.oln-faq details > div { padding: 0 2.2rem 1rem 3.1rem; color: var(--oln-copy); font-size: .76rem; line-height: 1.6; }

.oln-editorial { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 1.35rem; }
.oln-editorial > div { display: grid; gap: .25rem; }
.oln-editorial strong { color: var(--oln-ink); font-size: .72rem; }
.oln-editorial span { color: var(--oln-muted); font-size: .66rem; line-height: 1.45; }
.oln-editorial nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .6rem 1rem; }
.oln-editorial a { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; color: var(--oln-copy); font-size: .69rem; font-weight: 800; }
.oln-editorial a:hover { color: var(--oln-red); }
.oln-nowrap { white-space: nowrap; }

@media (max-width: 1040px) {
  .oln-hero__grid { grid-template-columns: minmax(19rem, .9fr) minmax(0, 1.1fr); }
  .oln-hero__copy { padding: 2.1rem; }
  .oln-contract__grid,
  .oln-delivery__grid,
  .oln-faq__grid { grid-template-columns: minmax(16rem, .8fr) minmax(0, 1.2fr); }
}

@media (max-width: 800px) {
  .oln-shell,
  .oln-editorial { width: min(calc(100% - 32px), 1180px); }
  .oln-page h1 { font-size: clamp(2.65rem, 8.5vw, 4.25rem); }
  .oln-page h2 { font-size: clamp(2rem, 6vw, 3rem); }
  .oln-hero { padding: 5.7rem .75rem .75rem; }
  .oln-hero__grid { grid-template-columns: 1fr; }
  .oln-hero__copy { padding: 2.2rem 1.5rem 1.4rem; }
  .oln-hero h1 { max-width: 13ch; }
  .oln-hero__visual { align-self: stretch; margin: 0; border-width: 1px 0 0; border-radius: 0; }
  .oln-hero__visual picture { min-height: 30rem; padding: .5rem; }
  .oln-hero__visual img { max-height: 30rem; }
  .oln-evidence__grid,
  .oln-contract__grid,
  .oln-scenario__grid,
  .oln-delivery__grid,
  .oln-acceptance__grid,
  .oln-faq__grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .oln-scenario aside { grid-column: 1; }
  .oln-editorial { align-items: flex-start; flex-direction: column; }
  .oln-editorial nav { justify-content: flex-start; }
}

@media (max-width: 520px) {
  .oln-shell,
  .oln-editorial { width: calc(100% - 24px); }
  .oln-page h1 { font-size: clamp(2.35rem, 11.5vw, 3.25rem); line-height: .98; }
  .oln-page h2 { font-size: clamp(1.85rem, 8.4vw, 2.5rem); }
  .oln-hero { padding-inline: .35rem; }
  .oln-hero__grid { border-radius: 1rem; }
  .oln-hero__copy { padding: 1.75rem 1rem 1.2rem; }
  .oln-actions { display: grid; grid-template-columns: 1fr; }
  .oln-button { width: 100%; }
  .oln-hero__note { grid-template-columns: 1fr; gap: .35rem; margin-top: 1.35rem; }
  .oln-hero__visual picture { min-height: 32rem; padding: .25rem; }
  .oln-hero__visual img { max-height: 31rem; }
  .oln-hero__visual figcaption { align-items: flex-start; flex-direction: column; gap: .18rem; }
  .oln-evidence,
  .oln-contract,
  .oln-scenario,
  .oln-delivery,
  .oln-acceptance,
  .oln-faq { padding: 2.6rem .7rem; }
  .oln-evidence__body dl div { grid-template-columns: 1fr; gap: .4rem; }
  .oln-stamps,
  .oln-delivery ol,
  .oln-acceptance__body ul { grid-template-columns: 1fr; }
  .oln-stamps li:nth-child(even),
  .oln-delivery li:nth-child(even),
  .oln-acceptance__body li:nth-child(even) { border-left: 0; }
  .oln-stamps li + li,
  .oln-delivery li + li,
  .oln-acceptance__body li + li { border-top: 1px solid var(--oln-line); }
  .oln-scenario__steps p { grid-template-columns: 2rem minmax(0, 1fr); }
  .oln-scenario__steps small { grid-column: 2; }
  .oln-scenario aside { grid-template-columns: 1fr; gap: .4rem; }
  .oln-faq summary { grid-template-columns: 2rem minmax(0, 1fr) 1.4rem; }
  .oln-faq details > div { padding-right: 0; padding-left: 2.8rem; }
  .oln-editorial { padding-inline: .2rem; }
}

@media (prefers-reduced-motion: reduce) {
  body[data-city-pilot="olsztyn-slot-validator-v2"] *,
  body[data-city-pilot="olsztyn-slot-validator-v2"] *::before,
  body[data-city-pilot="olsztyn-slot-validator-v2"] *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
