/* ===== Diia e-Ukraine fonts ===== */
/* real families for our own overrides */
@font-face{font-family:"e-Ukraine";src:url(/fonts/e-ukraine/e-Ukraine-Light.woff) format("woff");font-weight:300;font-display:swap}
@font-face{font-family:"e-Ukraine";src:url(/fonts/e-ukraine/e-Ukraine-Regular.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"e-Ukraine";src:url(/fonts/e-ukraine/e-Ukraine-Medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"e-Ukraine";src:url(/fonts/e-ukraine/e-Ukraine-Bold.woff) format("woff");font-weight:600 900;font-display:swap}
@font-face{font-family:"e-UkraineHead";src:url(/fonts/e-ukraine/e-UkraineHead-Light.woff) format("woff");font-weight:300;font-display:swap}
@font-face{font-family:"e-UkraineHead";src:url(/fonts/e-ukraine/e-UkraineHead-Regular.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"e-UkraineHead";src:url(/fonts/e-ukraine/e-UkraineHead-Medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"e-UkraineHead";src:url(/fonts/e-ukraine/e-UkraineHead-Bold.woff) format("woff");font-weight:600 900;font-display:swap}
/* remap the families the template already uses -> e-Ukraine (keeps icon fonts intact) */
@font-face{font-family:"Playfair Display";src:url(/fonts/e-ukraine/e-UkraineHead-Regular.woff) format("woff");font-weight:100 400;font-display:swap}
@font-face{font-family:"Playfair Display";src:url(/fonts/e-ukraine/e-UkraineHead-Medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Playfair Display";src:url(/fonts/e-ukraine/e-UkraineHead-Bold.woff) format("woff");font-weight:600 900;font-display:swap}
@font-face{font-family:"Manrope";src:url(/fonts/e-ukraine/e-Ukraine-Light.woff) format("woff");font-weight:100 300;font-display:swap}
@font-face{font-family:"Manrope";src:url(/fonts/e-ukraine/e-Ukraine-Regular.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Manrope";src:url(/fonts/e-ukraine/e-Ukraine-Medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Manrope";src:url(/fonts/e-ukraine/e-Ukraine-Bold.woff) format("woff");font-weight:600 900;font-display:swap}
/* replace the body serif (Georgia) with e-Ukraine via inheritance */
body{ font-family:"e-Ukraine","Manrope",Arial,sans-serif !important; }
h1,h2,h3,h4,h5,h6,.kp-cat-title,.post-title,.entry-title,.section-title{
  font-family:"e-UkraineHead","e-Ukraine",sans-serif !important; }
.post-content,.post-content p,.post-content li,.article p,.lead,.excerpt,.post-subtitle{
  font-family:"e-Ukraine",sans-serif !important; }

/* demo overrides: language switcher removed everywhere; socials/hamburger
   hidden on desktop (hamburger is used on mobile). */
.light-select-container,
.scroll-header .select-container,
.selected-container{ display:none !important; }
@media (min-width: 992px){
  .socials,
  .ic-three-lines,
  .scroll-header .hamburger{ visibility:hidden !important; display:none !important; }
}

/* demo: article table of contents */
.demo-toc{border:1px solid #e2e2e2;border-left:4px solid #c61f40;background:#faf7f8;padding:16px 20px;margin:0 0 28px;font-family:"Manrope",Arial,sans-serif}
.demo-toc-title{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:#c61f40;margin-bottom:10px}
.demo-toc ol{margin:0;padding-left:20px}
.demo-toc li{margin:5px 0;font-size:15px}
.demo-toc a{color:#111;text-decoration:none}
.demo-toc a:hover{color:#c61f40;text-decoration:underline}

/* demo: article 3-column layout — narrow sticky left rail (ToC + share),
   flexible content, right rail. Overrides the template grid that mis-sizes
   the left column in this static build. */
@media (min-width: 992px){
  .hv-d .post-content-block{ flex-wrap:nowrap !important; align-items:flex-start; gap:28px; }
  .hv-d .post-content-block > .sidebar-start{ flex:0 0 210px !important; max-width:210px !important;
    position:sticky; top:72px; height:max-content; }
  .hv-d .post-content-block > .post-content{ flex:1 1 auto !important; max-width:none !important; }
  .hv-d .post-content-block > .sidebar-end{ flex:0 0 300px !important; max-width:300px !important; }
}
.sidebar-start .demo-toc{ margin:0 0 20px; }
.sidebar-start .demo-toc ol{ padding-left:18px }
.sidebar-start .demo-toc li{ font-size:14px }

/* demo: remove search trigger icon */
.ic-loop, img.search, .header-search-icon, .header-search-icon-open{ display:none !important; }

/* demo: Kyiv weather widget in the top-right of the masthead */
.kp-weather-col{ display:flex !important; justify-content:flex-end; align-items:center; }
.kp-weather{ display:inline-flex; align-items:center; gap:9px;
  font-family:"Manrope",Arial,sans-serif; white-space:nowrap; }
.kp-weather-ico{ font-size:28px; line-height:1; }
.kp-weather-info{ display:flex; flex-direction:column; line-height:1.05; }
.kp-weather-city{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#777; }
.kp-weather-temp{ font-size:19px; font-weight:800; color:#111; }
.kp-weather-cond{ font-size:12px; color:#777; max-width:90px; white-space:normal; }
@media (max-width: 767px){ .kp-weather-col{ display:none !important; } }

/* demo: section/category page title */
.kp-cat-title{ font-family:"Playfair Display",georgia,serif; font-weight:700;
  font-size:42px; text-align:center; margin:26px 0 8px; }
.kp-cat-title + .kp-cat-rule{ width:70px; height:3px; background:#c61f40;
  margin:0 auto 24px; }

/* demo: header = the condensed black bar at all widths */
header{ display:none !important; }
body{ padding-top:60px; }
.scroll-header{ position:fixed !important; top:0 !important; }
/* mobile: own section menu opened by the hamburger (fixed, so not clipped) */
.kp-mobile-menu{ display:none; }
@media (max-width: 991px){
  .scroll-header .hamburger{ display:flex !important; visibility:visible !important;
    align-items:center; cursor:pointer; }
  .scroll-header nav{ display:none !important; }   /* hide template nav on mobile */
  .kp-mobile-menu{ position:fixed; left:0; right:0; background:#111; z-index:9776;
    display:none; max-height:calc(100vh - 56px); overflow:auto; border-top:1px solid #333;
    box-shadow:0 8px 20px rgba(0,0,0,.4); }
  .kp-mobile-menu.open{ display:block; }
  .kp-mobile-menu a{ display:block; color:#fff; font-family:"e-Ukraine",sans-serif;
    font-size:16px; padding:14px 22px; border-bottom:1px solid #222; text-decoration:none; }
  .kp-mobile-menu a:active{ background:#c61f40; }
}

/* demo: compact footer, no logo */
footer{ padding-top:16px !important; padding-bottom:12px !important; }
footer .footer-logo{ display:none !important; }

/* demo: real share buttons (left rail of articles) */
.kp-share{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px; }
.kp-share-label{ width:100%; font-family:"e-Ukraine",sans-serif; font-size:12px; font-weight:600;
  letter-spacing:.04em; color:#666; margin-bottom:2px; }
.kp-sh{ width:38px; height:38px; border-radius:50%; display:inline-flex; align-items:center;
  justify-content:center; background:#f0f0f0; color:#222; border:none; cursor:pointer; padding:0;
  transition:background .15s,color .15s; }
.kp-sh svg{ width:19px; height:19px; fill:currentColor; }
.kp-sh.cp svg{ fill:none; }
.kp-sh:hover{ color:#fff; }
.kp-sh.fb:hover{ background:#1877f2; }
.kp-sh.tw:hover{ background:#000; }
.kp-sh.tg:hover{ background:#29a9eb; }
.kp-sh.ln:hover{ background:#0a66c2; }
.kp-sh.cp:hover{ background:#c61f40; }
.kp-sh.cp.done{ background:#2e9e5b; color:#fff; }

/* ===== article-3 hero-image variants ===== */
.hv-cap{ font-family:"e-Ukraine",sans-serif; }
/* A — full-bleed hero on top */
.hv-a .post-header-image{ margin:0 0 26px; }
.hv-a .post-img-featured-container{ width:100vw; position:relative; left:50%; transform:translateX(-50%); }
.hv-a .post-header-image img{ width:100%; height:440px; object-fit:cover; display:block; }
.hv-a .hv-cap{ max-width:1180px; margin:10px auto 0; padding:0 20px; font-size:13px; color:#777; }
/* B — cover hero with overlaid title */
.hv-b .hv-hero{ position:relative; width:100vw; left:50%; transform:translateX(-50%);
  min-height:540px; display:flex; align-items:flex-end; overflow:hidden; margin:0 0 28px; }
.hv-b .hv-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hv-b .hv-hero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.25) 55%, rgba(0,0,0,.08) 100%); }
.hv-b .hv-hero-inner{ position:relative; z-index:2; max-width:1180px; width:100%;
  margin:0 auto; padding:0 20px 44px; color:#fff; }
.hv-b .hv-hero-inner .post-header-title, .hv-b .hv-hero-inner .post-header-title *{ color:#fff !important; }
.hv-b .hv-hero-inner .post-label-and-topic a, .hv-b .hv-hero-inner .post-label-and-topic span{ color:#fff !important; }
.hv-b .single-article{ padding-top:0 !important; }
/* C — inset framed image with caption */
.hv-c .post-img-featured-container{ max-width:820px; margin:10px auto 0; }
.hv-c .post-header-image img{ width:100%; height:auto; border-radius:12px;
  box-shadow:0 12px 34px rgba(0,0,0,.18); display:block; }
.hv-c .hv-cap{ max-width:820px; margin:12px auto 0; font-size:13px; color:#777;
  font-style:italic; text-align:center; }

/* D — hero photo at the width of the text column, side rails scroll alongside */
.hv-d .hv-inline{ margin:0 0 24px; }
.hv-d .hv-inline .post-img-featured-container{ width:100%; margin:0; }
.hv-d .hv-inline img{ width:100%; height:auto; max-height:460px; object-fit:cover;
  display:block; border-radius:8px; }
.hv-d .hv-inline .hv-cap{ font-family:"e-Ukraine",sans-serif; font-size:13px; color:#777;
  font-style:italic; margin-top:8px; }

/* article header spans the full layout width (title, Коротко, tags, byline) */
.hv-d .post-label-and-topic > [class*="col"],
.hv-d .post-header-title > [class*="col"],
.hv-d .post-header-info > [class*="col"]{
  flex:0 0 100% !important; max-width:100% !important; margin-left:0 !important; }
.hv-d .post-header-title, .hv-d .post-header-title *{ text-align:left !important; }
.hv-d .post-label-and-topic{ justify-content:flex-start !important; }
.hv-d .post-label-and-topic > [class*="col"]{ text-align:left !important; }

/* mobile menu: a bit more breathing room */
@media (max-width: 991px){
  .kp-mobile-menu{ padding:6px 0; }
  .kp-mobile-menu a{ padding:17px 24px !important; line-height:1.35; }
}

/* article: remove the big inner side padding so image/text fill the column
   (closes the empty gaps between content and the side rails) */
.hv-d .post-content{ padding-left:0 !important; padding-right:0 !important; }
/* header (title, Коротко, tags, byline) flush with the left rail, full width */
.hv-d .post-header-title > [class*="col"],
.hv-d .post-header-info > [class*="col"],
.hv-d .post-label-and-topic > [class*="col"]{
  margin-left:0 !important; padding-left:0 !important; flex-basis:100% !important; max-width:100% !important; }

/* article tweaks v2: tighter columns, both rails sticky, header flush to rail */
@media (min-width: 992px){
  .hv-d .post-content-block{ gap:14px !important; }
  .hv-d .post-content-block > .sidebar-start{ position:sticky !important; top:72px !important;
    align-self:flex-start !important; height:max-content !important; }
  .hv-d .post-content-block > .sidebar-end{ position:sticky !important; top:72px !important;
    align-self:flex-start !important; height:max-content !important; }
}
/* title / Коротко start exactly at the left column's left edge */
.hv-d .post-header-title > [class*="col"],
.hv-d .post-header-info > [class*="col"],
.hv-d .post-label-and-topic > [class*="col"]{ padding-left:12px !important; }

/* square share icons, all in one row */
.hv-d .kp-share{ flex-wrap:nowrap !important; gap:6px !important; }
.hv-d .kp-sh{ width:34px !important; height:34px !important; border-radius:6px !important; }
.hv-d .kp-sh svg{ width:17px !important; height:17px !important; }

/* force BOTH side rails sticky (beats app.css .sidebar-start{position:static}) */
@media (min-width: 992px){
  html body.hv-d .single-article .post-content-block > .sidebar-start,
  html body.hv-d .single-article .post-content-block > .sidebar-end{
    position:sticky !important; top:72px !important; align-self:flex-start !important;
    height:-moz-fit-content !important; height:fit-content !important; }
}

/* "More news" full-width tiles under the article */
.kp-more{ margin:44px 0 0; padding-top:26px; border-top:3px solid #111; }
.kp-more-head{ font-family:"e-UkraineHead",sans-serif; font-weight:700; font-size:24px; margin:0 0 20px; }
.kp-more-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.kp-more-card{ display:block; color:inherit; text-decoration:none; }
.kp-more-thumb{ aspect-ratio:3/2; overflow:hidden; border-radius:8px; margin-bottom:10px; background:#eee; }
.kp-more-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s; }
.kp-more-card:hover .kp-more-thumb img{ transform:scale(1.05); }
.kp-more-cat{ color:#c61f40; font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.05em; margin-bottom:5px; }
.kp-more-card h3{ font-family:"e-UkraineHead",sans-serif; font-size:17px; line-height:1.25; margin:0; font-weight:600; }
.kp-more-card:hover h3{ color:#c61f40; }
@media (max-width:991px){ .kp-more-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .kp-more-grid{ grid-template-columns:1fr; } }

/* ===== clean, consistent article container (fixes left/right empty space) ===== */
.hv-d .single-article{ max-width:1240px !important; width:100% !important;
  margin-left:auto !important; margin-right:auto !important;
  padding-left:20px !important; padding-right:20px !important; }
.hv-d .single-article > [class*="row"],
.hv-d .single-article > section,
.hv-d .single-article .post-content-block{ margin-left:0 !important; margin-right:0 !important; }
.hv-d .single-article .post-label-and-topic > [class*="col"],
.hv-d .single-article .post-header-title > [class*="col"],
.hv-d .single-article .post-header-info > [class*="col"]{
  margin-left:0 !important; padding-left:0 !important; flex:0 0 100% !important; max-width:100% !important; }
.hv-d .single-article .post-content-block > .sidebar-start{ padding-left:0 !important; }
.hv-d .kp-more{ margin-left:0 !important; margin-right:0 !important; }

/* share icons: compact squares, guaranteed single row */
.hv-d .kp-share{ flex-wrap:nowrap !important; gap:6px !important; }
.hv-d .kp-sh{ width:31px !important; height:31px !important; border-radius:6px !important; flex:0 0 auto !important; }
.hv-d .kp-sh svg{ width:16px !important; height:16px !important; }

/* share block: label on its own line above, square buttons in one row below */
.hv-d .kp-share{ display:block !important; }
.hv-d .kp-share-label{ display:block !important; width:auto !important; margin:0 0 8px !important; }
.hv-d .kp-sh{ display:inline-flex !important; vertical-align:top !important; margin:0 6px 0 0 !important; }

/* no rounded corners anywhere: share buttons, "More news" thumbs, article photo */
.hv-d .kp-sh{ border-radius:0 !important; }
.hv-d .kp-more-thumb,
.hv-d .kp-more-thumb img,
.hv-d .hv-inline img{ border-radius:0 !important; }

/* 992–1199px: two columns (left rail + content); Popular drops below, full width.
   Full 3-column layout only from 1200px, so the text column never gets squeezed. */
@media (min-width: 992px) and (max-width: 1199px){
  html body.hv-d .single-article .post-content-block{ flex-wrap:wrap !important; }
  html body.hv-d .single-article .post-content-block > .sidebar-start{
    flex:0 0 185px !important; max-width:185px !important; }
  html body.hv-d .single-article .post-content-block > .post-content{
    flex:1 1 0 !important; min-width:0 !important; max-width:none !important; }
  html body.hv-d .single-article .post-content-block > .sidebar-end{
    flex:0 0 100% !important; max-width:100% !important; width:100% !important;
    position:static !important; top:auto !important; margin-top:32px !important; }
}

/* 992–1199px: pin the row to the left and make content fill the remaining width
   (the template centers a non-full row, which pushed the columns right/overflowed) */
@media (min-width: 992px) and (max-width: 1199px){
  html body.hv-d .single-article .post-content-block{
    justify-content:flex-start !important; margin:0 !important; padding:0 !important; width:100% !important; }
  html body.hv-d .single-article .post-content-block > .post-content{
    flex:0 0 calc(100% - 199px) !important; max-width:calc(100% - 199px) !important; width:auto !important; }
}

/* 992–1199px: the template's 10-col grid adds margin-left:10% to the columns at lg —
   zero it, and let content grow to fill the row instead of a fixed calc width */
@media (min-width: 992px) and (max-width: 1199px){
  html body.hv-d .single-article .post-content-block > .sidebar-start,
  html body.hv-d .single-article .post-content-block > .post-content,
  html body.hv-d .single-article .post-content-block > .sidebar-end{
    margin-left:0 !important; margin-right:0 !important; }
  html body.hv-d .single-article .post-content-block > .post-content{
    flex:1 1 0 !important; min-width:0 !important; max-width:none !important; width:auto !important; }
}

/* unify article width: title/Коротко/tags/author rows and the column block all share
   one container width — nothing breaks out wider, nothing sits narrower */
.hv-d .single-article{ max-width:1520px !important; }
.hv-d .single-article > [class*="row"],
.hv-d .single-article .post-content-block,
.hv-d .single-article .kp-more{
  width:100% !important; max-width:100% !important; margin-left:0 !important; margin-right:0 !important; }
@media (min-width: 992px){
  html body.hv-d .single-article .post-content-block > .sidebar-start,
  html body.hv-d .single-article .post-content-block > .post-content,
  html body.hv-d .single-article .post-content-block > .sidebar-end{
    margin-left:0 !important; margin-right:0 !important; }
}
/* reading time next to the author */
.kp-readtime{ color:#777; white-space:nowrap; }
/* app.css gives the title/lead padding:5px 10% at ≥1200 (147px each side on 2000px) —
   drop it so they span rail-to-rail like the tags/author rows */
html body.hv-d .single-article .post-header-title .post-title,
html body.hv-d .single-article .post-header-title .post-lead{
  padding-left:0 !important; padding-right:0 !important; }
html body.hv-d .single-article .post-header-title > [class*="col"]{
  padding-left:0 !important; padding-right:0 !important; }
.hv-d .post-label-and-topic .label-boxed:first-child{ margin-left:0 !important; }
/* level the three column tops: the content column (padding-top:40) and ПОПУЛЯРНЕ (margin-top:40)
   start 40px down, but the left rail only 24px — give it the same 40 */
@media (min-width: 992px){
  html body.hv-d .single-article .post-content-block > .sidebar-start{ margin-top:40px !important; }
}
@media (min-width: 992px) and (max-width: 1199px){
  html body.hv-d .single-article .post-content-block > .post-content{ padding-top:40px !important; }
}
/* the 40px top offset existed for the (now removed) banner slot — drop it on all three columns */
@media (min-width: 992px){
  html body.hv-d .single-article .post-content-block > .sidebar-start{ margin-top:0 !important; }
  html body.hv-d .single-article .post-content-block > .post-content{ padding-top:0 !important; }
  html body.hv-d .single-article .post-content-block > .sidebar-end > .section-wrapper:first-child{ margin-top:0 !important; }
}
@media (min-width: 992px){
  html body.hv-d .single-article .post-content-block > .sidebar-end > .section-wrapper:first-child{ margin-top:0 !important; }
}
/* VinnytsiaVoice wordmark in the black header: template fixes the logo at 50x27 — let the wordmark keep its ratio */
.scroll-header .content-container .desktop-logo img{ width:auto !important; height:24px !important; aspect-ratio:auto !important; display:block; }
.scroll-header .content-container .mob-logo{ width:159px; }
.scroll-header .content-container .mob-logo img{ aspect-ratio:auto !important; height:24px; width:auto; }
/* Погода section: demo weather block above the listing */
.kp-weather-page{ margin:8px 0 32px; }
.kp-wx-now{ background:#111; color:#fff; padding:28px 32px; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto auto; column-gap:28px; align-items:center; }
.kp-wx-city{ grid-column:1/3; font-family:"e-UkraineHead",sans-serif; font-weight:500; font-size:14px; letter-spacing:.04em; text-transform:uppercase; color:#bbb; }
.kp-wx-temp{ grid-row:2/4; font-family:"e-UkraineHead",sans-serif; font-weight:700; font-size:84px; line-height:1; }
.kp-wx-desc{ font-size:16px; }
.kp-wx-note{ font-size:12px; color:#888; }
.kp-wx-days{ display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin-top:8px; }
.kp-wx-day{ background:#f3f3f3; padding:14px 8px; text-align:center; display:flex; flex-direction:column; gap:6px; }
.kp-wx-day b{ font-family:"e-UkraineHead",sans-serif; font-weight:600; }
.kp-wx-day span{ font-size:28px; line-height:1; }
.kp-wx-day i{ font-style:normal; font-size:13px; color:#444; }
@media (max-width:767px){ .kp-wx-days{ grid-template-columns:repeat(4,1fr); } .kp-wx-temp{ font-size:60px; } .kp-wx-now{ padding:20px; } }
/* no "У фокусі"-style separator before the last menu item */
.scroll-header .content-container nav ul li:last-child{ margin-left:0 !important; }
.scroll-header .content-container nav ul li:last-child:before{ display:none !important; }
/* section pages: the right column's first block carried a 24px top margin that collapsed
   through the column and pushed СТАТТІ below УСІ НОВИНИ — level it */
.content-wrapper .sidebar-end > .section-wrapper:first-child > .section-content:first-child{ margin-top:0 !important; }
/* opinions block: the template grows the avatar 45→46px on hover, nudging the text — keep it fixed */
.opinion-regular .author-photo,
.opinion-regular:hover .author-photo{ width:45px !important; height:45px !important; border:0 !important; }
/* homepage weather strip */
.kp-home-weather .kp-weather-page{ margin-top:16px; }
/* Погода: oblast map + city list */
.kp-h2{ font-family:"e-UkraineHead",sans-serif; font-weight:600; font-size:22px; margin:36px 0 14px; }
.kp-muted{ color:#777; font-size:13px; }
.kp-mapsec{ background:#f7f7f7; padding:16px; }
.kp-map{ width:100%; height:auto; display:block; }
.kp-map-reg{ fill:#fff; stroke:#111; stroke-width:1.5; }
.kp-map-city rect{ fill:#111; }
.kp-map-city text{ font-family:"e-Ukraine",sans-serif; font-size:12px; fill:#111; }
.kp-map-city .kp-map-t{ fill:#c61f40; font-weight:600; }
.kp-map-city:hover rect, .kp-map-city.is-active rect{ fill:#c61f40; }
.kp-map-city:hover text{ fill:#c61f40; }
.kp-map-city.is-capital rect{ width:10px; height:10px; x:-5px; y:-5px; fill:#c61f40; }
.kp-map-city.is-capital text{ font-weight:700; font-size:14px; }
.kp-citylist ul{ list-style:none; margin:0; padding:0; columns:5; column-gap:24px; }
.kp-citylist li{ break-inside:avoid; padding:3px 0; font-size:14px; border-bottom:1px solid #eee; }
.kp-citylist a{ color:#111; text-decoration:none; } .kp-citylist a:hover{ color:#c61f40; }
.kp-near ul{ columns:4; }
@media (max-width:991px){ .kp-citylist ul{ columns:3; } .kp-near ul{ columns:2; } .kp-map-city text{ font-size:15px; } }
@media (max-width:575px){ .kp-citylist ul{ columns:2; } .kp-map-city text{ font-size:18px; } }
@media (max-width:767px){ .kp-mapsec{ overflow-x:auto; } .kp-map{ min-width:900px; } .kp-map-city text{ font-size:12px; } }
@media (max-width:575px){ .kp-map-city text{ font-size:12px; } }
/* ===== Погода v2: live blocks, map fits the screen ===== */
.kp-mapwrap{ width:min(100%, calc((100vh - 180px) * 0.834)); margin:0 auto; }
.kp-mapwrap .kp-map{ width:100%; height:auto; }
.kp-wx-now{ background:#111; color:#fff; padding:24px 28px; }
.kp-wx-head{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.kp-wx-icon img.kp-ic-big{ width:72px; height:72px; }
.kp-wx-temp{ font-family:"e-UkraineHead",sans-serif; font-weight:700; font-size:72px; line-height:1; }
.kp-wx-text{ flex:1 1 240px; }
.kp-wx-desc{ font-size:18px; }
.kp-wx-note{ font-size:12px; color:#999; margin-top:4px; }
.kp-wx-stats{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-top:22px; border-top:1px solid #333; padding-top:16px; }
.kp-wx-stat{ display:flex; flex-direction:column; gap:3px; font-size:12px; color:#aaa; }
.kp-wx-stat img{ filter:invert(1); opacity:.9; }
.kp-wx-stat b{ color:#fff; font-size:14px; font-weight:500; }
.kp-wx-tabs{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-top:8px; }
.kp-wx-tab{ background:#f3f3f3; border:2px solid transparent; padding:10px 6px; text-align:center; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:4px; font:inherit; }
.kp-wx-tab b{ font-family:"e-UkraineHead",sans-serif; font-weight:600; font-size:13px; }
.kp-wx-tab i{ font-style:normal; font-size:11px; color:#777; }
.kp-wx-tab span{ font-size:14px; font-weight:600; } .kp-wx-tab em{ font-style:normal; color:#777; font-weight:400; }
.kp-wx-tab.is-on{ border-color:#c61f40; background:#fff; }
.kp-wx-hscroll{ overflow-x:auto; }
.kp-wx-hourly table{ border-collapse:collapse; width:100%; min-width:900px; font-size:13px; }
.kp-wx-hourly th{ text-align:left; color:#777; font-weight:400; padding:6px 10px 6px 0; white-space:nowrap; width:120px; }
.kp-wx-hourly td{ text-align:center; padding:6px 2px; border-top:1px solid #eee; }
.kp-wx-hourly tr:first-child td{ border-top:0; font-weight:600; }
.kp-wx-hourly td img{ width:28px; height:28px; }
.kp-wx-14 .kp-wx-row{ display:grid; grid-template-columns:110px 40px 1fr 110px 120px 70px; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #eee; font-size:14px; }
.kp-wx-rd b{ display:block; font-family:"e-UkraineHead",sans-serif; font-weight:600; } .kp-wx-rd i{ font-style:normal; color:#777; font-size:12px; }
.kp-wx-rt b{ font-size:16px; } .kp-wx-rt span{ color:#777; }
.kp-wx-rp, .kp-wx-rw{ color:#555; font-size:13px; }
.kp-wx-sun{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.kp-wx-cell{ background:#f3f3f3; padding:16px; display:flex; flex-direction:column; gap:4px; font-size:13px; color:#777; }
.kp-wx-cell b{ color:#111; font-size:16px; font-weight:600; }
.kp-ic{ width:32px; height:32px; vertical-align:middle; }
@media (max-width:991px){ .kp-wx-stats{ grid-template-columns:repeat(3,1fr); } .kp-wx-tabs{ grid-template-columns:repeat(4,1fr); } .kp-wx-sun{ grid-template-columns:repeat(2,1fr); }
  .kp-wx-14 .kp-wx-row{ grid-template-columns:80px 36px 1fr 90px; } .kp-wx-rp,.kp-wx-rw{ display:none; } .kp-mapwrap{ width:100%; } }
@media (max-width:575px){ .kp-wx-temp{ font-size:56px; } .kp-wx-stats{ grid-template-columns:repeat(2,1fr); } .kp-wx-tabs{ grid-template-columns:repeat(2,1fr); } }
/* map must fit the first screen together with the header + title */
.kp-mapsec-main .kp-mapwrap{ width:min(100%, calc((100vh - 250px) * 0.834)); }
/* map: the oblast itself is the grey shape, page stays white; Kyiv city cut-out stays white */
.kp-mapsec{ background:transparent; padding:0; }
.kp-map-reg{ fill:#efefef; fill-rule:evenodd; stroke:#111; stroke-width:1.2; }
/* responsive map: scale with the viewport, fewer/larger labels on narrow screens */
.kp-map-excl{ stroke-dasharray:3 2; }
@media (max-width:767px){
  .kp-mapsec{ overflow:visible; } .kp-map{ min-width:0; }
  .kp-map-city.is-minor text{ display:none; }
  .kp-map-city text{ font-size:24px; } .kp-map-city.is-capital text{ font-size:28px; }
  .kp-map-city rect{ width:9px; height:9px; x:-4.5px; y:-4.5px; }
}
@media (min-width:768px) and (max-width:991px){ .kp-map-city text{ font-size:16px; } .kp-map-city.is-capital text{ font-size:19px; } }
/* long section titles wrap cleanly on phones */
.kp-cat-title{ line-height:1.15; }
@media (max-width:575px){ .kp-cat-title{ font-size:30px; } }
/* mobile: week tiles in one horizontally scrollable row */
@media (max-width:767px){
  .kp-wx-tabs{ display:flex; grid-template-columns:none; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:4px; margin-left:-12px; margin-right:-12px; padding-left:12px; padding-right:12px; }
  .kp-wx-tab{ flex:0 0 92px; scroll-snap-align:start; }
}
/* ToC rail: wider column, calmer type */
@media (min-width:1200px){
  html body.hv-d .single-article .post-content-block > .sidebar-start{ flex:0 0 260px !important; max-width:260px !important; }
}
@media (min-width:992px) and (max-width:1199px){
  html body.hv-d .single-article .post-content-block > .sidebar-start{ flex:0 0 230px !important; max-width:230px !important; }
}
.sidebar-start .demo-toc{ padding:14px 16px; font-family:"e-Ukraine",sans-serif; }
.sidebar-start .demo-toc-title{ font-size:11px; letter-spacing:.1em; font-weight:600; margin-bottom:8px; }
.sidebar-start .demo-toc ol{ padding-left:16px; }
.sidebar-start .demo-toc li{ font-size:13px; line-height:1.4; margin:4px 0; }
/* footer notice: smaller and lighter */
footer .footer-info, footer .footer-info p{ font-size:12px !important; font-weight:300 !important; line-height:1.6 !important; color:#bbb; }
/* header: Робота/Нерухомість/Фінанси in the main menu + small sub-menu row (desktop) */
.scroll-header .content-container.kp-subnav{ display:none; }
@media (min-width: 992px){
  .scroll-header{ flex-wrap:wrap; height:auto !important; }
  .scroll-header .content-container{ height:60px; }
  .scroll-header .content-container nav ul{ gap:20px; }
  .scroll-header .content-container.kp-subnav{ display:flex; flex:0 0 100%; order:3; height:32px;
    border-top:1px solid #1f1f1f; }
  .kp-subnav ul{ display:flex; flex-wrap:nowrap; gap:0 16px; list-style:none; margin:0; padding:0;
    overflow:hidden; }
  .kp-subnav a{ color:#9c9c9c; font-family:"e-Ukraine",sans-serif; font-size:12px; line-height:32px;
    text-decoration:none; white-space:nowrap; }
  .kp-subnav a:hover{ color:#fff; }
  body{ padding-top:93px; }
}
@media (min-width: 992px) and (max-width: 1199px){
  .scroll-header .content-container nav ul{ gap:16px; }
  .scroll-header .content-container nav ul li a{ font-size:15px !important; }
  .kp-subnav ul{ gap:0 8px; } .kp-subnav a{ font-size:10px; }
}
/* mobile menu: sub-items smaller and dimmer */
.kp-mobile-menu a.sub{ font-size:14px !important; color:#bbb; padding:10px 24px !important; }
.kp-mobile-menu a.sub:first-of-type, .kp-mobile-menu a:not(.sub) + a.sub{ border-top:1px solid #333; margin-top:6px; }
/* header grid: logo spans both rows on the left; menu + sub-menu stacked, same left edge */
@media (min-width: 992px){
  .scroll-header{ display:grid !important; grid-template-columns:auto 1fr; grid-template-rows:58px 34px;
    align-items:center; column-gap:40px; }
  .scroll-header .content-container{ display:contents; }
  .scroll-header .content-container .desktop-logo{ grid-column:1; grid-row:1 / 3; margin:0 !important; align-self:center; }
  .scroll-header .content-container nav{ grid-column:2; grid-row:1; align-self:end; }
  .scroll-header .content-container nav ul{ height:auto; padding-bottom:6px; }
  .scroll-header .content-container.kp-subnav{ grid-column:2; grid-row:2; align-self:start; height:auto; border-top:0; }
  .kp-subnav a{ line-height:26px; }
}
@media (min-width: 992px) and (max-width: 1199px){
  .scroll-header{ column-gap:24px; }
  .scroll-header .content-container nav ul{ gap:14px; }
}
/* thin divider between menu and sub-menu (spans the menu column only) */
@media (min-width: 992px){
  .scroll-header .content-container.kp-subnav{ border-top:1px solid #3a3a3a; padding-top:3px; }
}
/* footer: 4 link columns, notice full-width at the bottom */
footer .menu-link .menu{ flex:1 1 0; }
footer .kp-footer-note{ margin-top:22px; }
footer .kp-footer-note .footer-info{ border-top:0; padding-top:14px; max-width:none !important; width:100%; }
footer .kp-footer-note .footer-info p{ margin:0; }
@media (max-width: 767px){ footer .menu-link .menu{ flex:1 1 50%; } }
/* footer: the sub-sections column is secondary — smaller, dimmer, two columns */
footer .kp-sub-col p{ color:#fff !important; }
footer .kp-sub-col ul{ columns:2; column-gap:18px; }
footer .kp-sub-col li{ break-inside:avoid; }
footer .kp-sub-col li a{ font-size:13px !important; color:#9a9a9a !important; line-height:1.5 !important; }
footer .kp-sub-col li a:hover{ color:#fff !important; }
footer .kp-sub-col ul{ display:block !important; columns:2; column-gap:18px; }
footer .kp-sub-col li{ display:block; margin:0 0 6px !important; }
/* ---- Транспорт (GTFS Vinnytsia) ---- */
.kp-tr-page{ margin:8px 0 40px; font-family:"e-Ukraine",sans-serif; }
.kp-tr-lead{ font-size:16px; line-height:1.55; color:#333; max-width:820px; margin:0 0 22px; }
.kp-tr-badge{ display:inline-flex; align-items:center; justify-content:center; min-width:52px; height:30px; padding:0 10px;
  border-radius:6px; color:#fff !important; font-weight:600; font-size:14px; text-decoration:none !important; letter-spacing:.02em; }
.kp-tr-badge.is-big{ min-width:72px; height:44px; font-size:20px; border-radius:8px; }
.kp-tr-tram{ background:#c61f40; } .kp-tr-trolley{ background:#1565c0; } .kp-tr-bus{ background:#2e7d32; } .kp-tr-metro{ background:#6a1b9a; }
.kp-tr-group{ margin:26px 0; }
.kp-tr-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:8px 24px; }
.kp-tr-list li{ display:flex; align-items:center; gap:12px; padding:6px 0; border-bottom:1px solid #eee; }
.kp-tr-name{ color:#111 !important; font-size:14px; line-height:1.35; text-decoration:none !important; }
.kp-tr-name:hover{ color:#c61f40 !important; }
.kp-tr-mapsec{ margin:0 0 28px; }
.kp-tr-map{ width:100%; height:520px; border:1px solid #e2e2e2; background:#f3f3f3; }
.kp-tr-pick{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:0 0 12px; font-size:14px; }
.kp-tr-pick select{ min-width:320px; max-width:100%; height:38px; padding:0 10px; border:1px solid #ccc; border-radius:6px; font:inherit; font-size:14px; }
.kp-tr-golink{ color:#c61f40 !important; font-weight:600; }
.kp-tr-src{ margin-top:30px; }
/* route page */
.kp-tr-head{ display:flex; align-items:center; gap:16px; margin:0 0 18px; }
.kp-tr-kind{ font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:#888; }
.kp-tr-title{ font-size:20px; font-weight:600; line-height:1.3; }
.kp-tr-facts{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin:0 0 22px; }
.kp-tr-facts div{ background:#f6f6f6; border-radius:8px; padding:10px 12px; display:flex; flex-direction:column; gap:3px; min-width:0; }
.kp-tr-facts b{ font-size:16px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kp-tr-facts span{ font-size:11px; color:#777; }
.kp-tr-dirs, .kp-tr-days{ display:flex; gap:8px; flex-wrap:wrap; margin:0 0 16px; }
.kp-tr-dir, .kp-tr-day{ font:inherit; font-size:13px; padding:8px 14px; border:1px solid #ccc; border-radius:20px; background:#fff; cursor:pointer; color:#222; }
.kp-tr-dir.is-on, .kp-tr-day.is-on{ background:#111; color:#fff; border-color:#111; }
.kp-tr-cols{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:28px; margin:0 0 28px; }
.kp-tr-cols .kp-tr-mapsec{ margin:0; }
.kp-tr-cols .kp-tr-map{ height:100%; min-height:520px; }
.kp-tr-stops{ list-style:none; margin:0; padding:0 0 0 6px; border-left:3px solid #ddd; max-height:560px; overflow:auto; }
.kp-tr-stops li{ position:relative; display:flex; align-items:baseline; gap:10px; padding:5px 0 5px 16px; font-size:14px; line-height:1.35; cursor:pointer; }
.kp-tr-dot{ position:absolute; left:-8px; top:9px; width:11px; height:11px; border-radius:50%; background:#fff; border:3px solid #999; }
.kp-tr-stops li.is-on .kp-tr-dot{ border-color:#000; transform:scale(1.25); }
.kp-tr-stops li.is-on .kp-tr-stop{ font-weight:600; }
.kp-tr-stop{ color:#111 !important; text-decoration:none !important; }
.kp-tr-stop:hover{ color:#c61f40 !important; }
.kp-tr-off{ margin-left:auto; font-size:12px; color:#999; white-space:nowrap; }
.kp-tr-table{ width:100%; border-collapse:collapse; margin:0 0 8px; }
.kp-tr-table th{ width:48px; text-align:left; font-weight:700; font-size:15px; padding:6px 8px; background:#f3f3f3; border-bottom:1px solid #fff; }
.kp-tr-table td{ padding:4px 8px; border-bottom:1px solid #eee; }
.kp-tr-table td span{ display:inline-block; min-width:30px; margin:2px 10px 2px 0; font-size:15px; font-variant-numeric:tabular-nums; }
.kp-tr-count{ font-size:12px; color:#888; margin:0 0 12px; }
@media (max-width:991px){ .kp-tr-list{ grid-template-columns:repeat(2,1fr); } .kp-tr-facts{ grid-template-columns:repeat(3,1fr); }
  .kp-tr-cols{ grid-template-columns:1fr; } .kp-tr-cols .kp-tr-map{ min-height:380px; height:380px; } .kp-tr-map{ height:380px; } }
@media (max-width:575px){ .kp-tr-list{ grid-template-columns:1fr; } .kp-tr-facts{ grid-template-columns:repeat(2,1fr); }
  .kp-tr-pick select{ min-width:0; width:100%; } .kp-tr-stops{ max-height:320px; } }
/* transport: stop pages */
.kp-tr-stoplink{ color:#bbb !important; text-decoration:none !important; font-size:13px; padding:0 4px; }
.kp-tr-stoplink:hover{ color:#c61f40 !important; }
.kp-tr-rlist{ list-style:none; margin:0; padding:0; }
.kp-tr-rlist li{ display:flex; align-items:center; gap:12px; padding:8px 6px; border-bottom:1px solid #eee; cursor:pointer; font-size:14px; border-radius:6px; }
.kp-tr-rlist li.is-on{ background:#f3f3f3; }
.kp-tr-rhead{ flex:1 1 auto; min-width:0; }
.kp-tr-rhead i{ color:#999; font-style:normal; font-size:12px; }
.kp-tr-next{ font-size:12px; color:#777; white-space:nowrap; font-variant-numeric:tabular-nums; }
.kp-tr-q{ width:100%; max-width:420px; height:40px; padding:0 12px; border:1px solid #ccc; border-radius:6px; font:inherit; font-size:15px; }
.kp-tr-stoplist{ grid-template-columns:repeat(4,1fr); }
.kp-tr-stoplist li{ justify-content:space-between; }
@media (max-width:991px){ .kp-tr-stoplist{ grid-template-columns:repeat(2,1fr); } .kp-tr-next{ display:none; } }
@media (max-width:575px){ .kp-tr-stoplist{ grid-template-columns:1fr; } }
/* route stops: line drawn per item, dots centered on it */
.kp-tr-stops{ border-left:0; padding-left:0; }
.kp-tr-stops li{ padding-left:28px; }
.kp-tr-stops li::before{ content:""; position:absolute; left:7px; top:0; bottom:0; width:3px; background:#ddd; }
.kp-tr-stops li:first-child::before{ top:14px; } .kp-tr-stops li:last-child::before{ bottom:auto; height:14px; }
.kp-tr-dot{ left:2px; top:8px; width:13px; height:13px; z-index:1; }
.kp-tr-stoplist .kp-tr-name small{ display:block; font-size:11px; color:#999; }
.kp-tr-badges{ display:flex; flex-wrap:wrap; gap:8px; }
.kp-tr-ends{ font-size:14px; color:#555; margin:-6px 0 18px; }
.kp-tr-ends a{ color:#111 !important; }
.kp-tr-rhead small{ display:block; font-size:11px; color:#999; margin-top:2px; }
.kp-tr-rhead small a{ color:#777 !important; }
.kp-tr-legend{ background:rgba(255,255,255,.92); padding:6px 10px; border-radius:6px; font:12px/1.6 "e-Ukraine",sans-serif; color:#222; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.kp-tr-legend i{ display:inline-block; width:10px; height:10px; border-radius:50%; margin:0 4px 0 8px; vertical-align:middle; }
.kp-tr-legend i:first-child{ margin-left:0; }
/* ---- open-data sections (medytsyna, komunalka) ---- */
.kp-od-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:0 0 26px; }
.kp-od-card{ display:flex; flex-direction:column; gap:6px; padding:16px 18px; border:1px solid #e2e2e2; border-radius:10px; text-decoration:none !important; color:#111 !important; background:#fff; transition:border-color .15s; }
.kp-od-card:hover{ border-color:#c61f40; }
.kp-od-card b{ font-size:16px; font-weight:600; } .kp-od-card span{ font-size:13px; color:#666; line-height:1.4; }
.kp-od-toggles{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin:0 0 10px; font-size:13px; }
.kp-od-toggles label{ display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.kp-od-toggles i, .kp-od-dot{ display:inline-block; width:12px; height:12px; border-radius:50%; border:1.5px solid rgba(0,0,0,.25); vertical-align:middle; margin-right:6px; }
.kp-od-toggles select{ height:34px; padding:0 8px; border:1px solid #ccc; border-radius:6px; font:inherit; font-size:13px; max-width:100%; }
.kp-bars{ display:flex; flex-direction:column; gap:7px; }
.kp-bar{ display:grid; grid-template-columns:minmax(0,220px) 1fr 70px; align-items:center; gap:10px; font-size:13px; }
.kp-bar-l{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .kp-bar-l a{ color:#111 !important; }
.kp-bar-t{ height:14px; background:#f0f0f0; border-radius:3px; overflow:hidden; } .kp-bar-t i{ display:block; height:100%; background:#c61f40; }
.kp-bar-v{ text-align:right; font-variant-numeric:tabular-nums; color:#333; }
.kp-od-table{ width:100%; border-collapse:collapse; font-size:14px; margin:0 0 16px; }
.kp-od-table th{ text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:#777; padding:8px 10px; border-bottom:2px solid #e2e2e2; }
.kp-od-table td{ padding:8px 10px; border-bottom:1px solid #eee; vertical-align:top; } .kp-od-table td a{ color:#111 !important; }
.kp-num{ text-align:right !important; font-variant-numeric:tabular-nums; white-space:nowrap; }
.kp-od-links{ list-style:none; margin:0; padding:0; } .kp-od-links li{ padding:8px 0; border-bottom:1px solid #eee; font-size:14px; } .kp-od-links a{ color:#c61f40 !important; font-weight:600; }
.kp-od-src{ margin-top:28px; }
.kp-od-tiles{ grid-template-columns:repeat(6,1fr); }
@media (max-width:991px){ .kp-od-cards{ grid-template-columns:repeat(2,1fr); } .kp-od-tiles{ grid-template-columns:repeat(3,1fr); } .kp-bar{ grid-template-columns:minmax(0,140px) 1fr 60px; } }
@media (max-width:575px){ .kp-od-cards{ grid-template-columns:1fr; } .kp-od-tiles{ grid-template-columns:repeat(2,1fr); } .kp-od-table{ font-size:13px; } .kp-od-table th, .kp-od-table td{ padding:6px 6px; } }
/* homepage: live temperatures for the biggest towns of the oblast */
.kp-hw-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:12px 0 10px; }
.kp-hw-city{ display:flex; justify-content:space-between; align-items:baseline; padding:12px 14px; background:#111; color:#fff !important; border-radius:8px; text-decoration:none !important; font-family:"e-Ukraine",sans-serif; }
.kp-hw-city span{ font-size:14px; } .kp-hw-city b{ font-size:22px; font-weight:600; }
.kp-hw-city:first-child{ grid-column:span 2; background:#c61f40; } .kp-hw-city:first-child b{ font-size:30px; }
@media (max-width:767px){ .kp-hw-grid{ grid-template-columns:repeat(2,1fr); } }
/* ---- Робота ---- */
.kp-jb-search{ display:grid; grid-template-columns:2fr 1fr 1fr auto auto; gap:8px; margin:0 0 10px; }
.kp-jb-search input, .kp-jb-search select{ height:42px; padding:0 12px; border:1px solid #ccc; border-radius:6px; font:inherit; font-size:14px; min-width:0; }
.kp-jb-search button, .kp-jb-btn, .kp-jb-form button{ height:42px; padding:0 20px; background:#c61f40; color:#fff !important; border:0; border-radius:6px; font:inherit; font-size:14px; font-weight:600; cursor:pointer; text-decoration:none !important; display:inline-flex; align-items:center; }
.kp-jb-btn2{ height:42px; padding:0 20px; border:1px solid #111; border-radius:6px; color:#111 !important; font-size:14px; font-weight:600; text-decoration:none !important; display:inline-flex; align-items:center; margin-left:10px; }
.kp-jb-sum{ display:flex; justify-content:space-between; align-items:center; font-size:14px; color:#555; margin:0 0 6px; }
.kp-jb-add{ color:#c61f40 !important; font-weight:600; }
.kp-jb-list{ list-style:none; margin:0 0 20px; padding:0; }
.kp-jb{ padding:12px 0; border-bottom:1px solid #eee; }
.kp-jb-t{ font-size:17px; font-weight:600; color:#111 !important; text-decoration:none !important; line-height:1.3; }
.kp-jb-t:hover{ color:#c61f40 !important; }
.kp-jb-m{ font-size:13px; color:#666; margin-top:4px; } .kp-jb-m a{ color:#444 !important; } .kp-jb-m b{ color:#111; } .kp-jb-m i{ font-style:normal; color:#999; }
.kp-jb-desc{ font-size:15px; line-height:1.6; margin:0 0 18px; } .kp-jb-desc h6{ font-size:15px; margin:16px 0 6px; } .kp-jb-desc p{ margin:0 0 8px; }
.kp-jb-badges span{ display:inline-block; background:#e8f5e9; color:#1b5e20; border-radius:4px; padding:3px 8px; font-size:12px; margin:0 6px 12px 0; }
.kp-jb-btns{ display:flex; flex-wrap:wrap; gap:10px 0; margin:0 0 10px; }
.kp-jb-form{ display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; max-width:860px; }
.kp-jb-form label{ display:flex; flex-direction:column; gap:5px; font-size:13px; color:#555; }
.kp-jb-form input, .kp-jb-form select, .kp-jb-form textarea{ padding:9px 12px; border:1px solid #ccc; border-radius:6px; font:inherit; font-size:14px; color:#111; }
.kp-jb-wide{ grid-column:1 / -1; }
.kp-jb-all{ font-size:13px; font-weight:400; margin-left:10px; }
@media (max-width:991px){ .kp-jb-search{ grid-template-columns:1fr 1fr; } .kp-jb-search input{ grid-column:1 / -1; } }
@media (max-width:575px){ .kp-jb-search{ grid-template-columns:1fr; } .kp-jb-form{ grid-template-columns:1fr; } .kp-jb-sum{ flex-direction:column; align-items:flex-start; gap:6px; } }
.kp-pager{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:4px 0 24px; font-size:14px; }
.kp-pager a, .kp-pager b{ min-width:36px; height:36px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #ddd; border-radius:6px; color:#111 !important; text-decoration:none !important; }
.kp-pager b{ background:#111; color:#fff !important; border-color:#111; } .kp-pager a:hover{ border-color:#c61f40; color:#c61f40 !important; }
.kp-pg-prev, .kp-pg-next{ font-weight:600; } .kp-pg-next{ margin-left:auto; } .kp-pg-gap{ padding:0 4px; color:#999; }

/* wide data tables scroll inside their box on phones */
@media (max-width:700px){ .kp-od-table{ display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap; } }

.kp-subnav-sep{ color:#555; font-size:12px; line-height:32px; user-select:none; }
@media (min-width:992px){ .kp-subnav-sep{ line-height:26px; } }

footer .kp-sub-cols{ display:flex; gap:28px; } footer .kp-sub-cols > div{ flex:1; min-width:0; }
footer .kp-sub-cols b{ display:block; color:#fff !important; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; margin:0 0 8px; }
footer .kp-sub-col ul{ columns:1 !important; }

/* places: photos */
.kp-pl-fig{ margin:0 0 18px; } .kp-pl-img{ width:100%; max-height:460px; object-fit:cover; border-radius:6px; display:block; }
.kp-pl-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:0 0 24px; } .kp-pl-card{ display:block; color:#111 !important; text-decoration:none !important; }
.kp-pl-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:6px; display:block; margin:0 0 8px; background:#eee; } .kp-pl-card b{ display:block; font-size:14px; line-height:1.3; } .kp-pl-card span{ display:block; font-size:12px; color:#777; }
.kp-pl-li{ display:flex; align-items:center; gap:10px; } .kp-pl-th{ width:56px; height:42px; object-fit:cover; border-radius:4px; flex:0 0 56px; background:#eee; }
@media (max-width:700px){ .kp-pl-grid{ grid-template-columns:repeat(2,1fr); } }

.kp-pager-all a, .kp-pager-all b{ min-width:30px; height:30px; padding:0 6px; font-size:13px; }

/* realty */
.kp-re-row{ display:flex; gap:12px; align-items:flex-start; } .kp-re-th{ width:96px; height:72px; object-fit:cover; border-radius:6px; flex:0 0 96px; background:#eee; display:block; } .kp-re-noimg{ background:#eee url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27%23bbb%27%3E%3Cpath d=%27M12 3 2 12h3v8h5v-5h4v5h5v-8h3z%27/%3E%3C/svg%3E") center/36px no-repeat; }
.kp-re-gal{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:0 0 18px; } .kp-re-gal img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:6px; background:#eee; display:block; }
.kp-jb-tiles .kp-od-tiles{ margin-top:14px; }
@media (max-width:700px){ .kp-re-gal{ grid-template-columns:repeat(2,1fr); } .kp-re-th{ width:72px; height:54px; flex-basis:72px; } }

.kp-av-search{ grid-template-columns:2fr 1fr 1fr 1fr auto; } .kp-av-search #kp-av-sort{ grid-column:span 2; }
@media (max-width:700px){ .kp-av-search{ grid-template-columns:1fr 1fr; } .kp-av-search #kp-av-q, .kp-av-search button, .kp-av-search #kp-av-sort{ grid-column:span 2; } }

/* lightbox */
.kp-lb{ position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:9999; display:none; align-items:center; justify-content:center; } .kp-lb.open{ display:flex; }
.kp-lb img{ max-width:94vw; max-height:88vh; object-fit:contain; border-radius:4px; box-shadow:0 10px 40px rgba(0,0,0,.6); }
.kp-lb button{ position:absolute; top:50%; transform:translateY(-50%); width:48px; height:64px; background:rgba(255,255,255,.12); color:#fff; border:0; font-size:40px; line-height:1; cursor:pointer; border-radius:8px; } .kp-lb .kp-lb-prev{ left:12px; } .kp-lb .kp-lb-next{ right:12px; }
.kp-lb .kp-lb-x{ top:14px; right:14px; transform:none; width:44px; height:44px; font-size:30px; } .kp-lb-cap{ position:absolute; bottom:14px; left:0; right:0; text-align:center; color:#ccc; font-size:13px; }
.kp-re-gal a{ cursor:zoom-in; }

/* homepage feed (right column) */
.kp-home-feed .kp-hf{ margin:0 0 22px; } .kp-hf-list{ list-style:none; margin:0; padding:0; } .kp-hf-list li{ display:flex; gap:10px; align-items:flex-start; padding:8px 0; border-bottom:1px solid #eee; }
.kp-hf-list img{ width:56px; height:42px; object-fit:cover; border-radius:4px; flex:0 0 56px; background:#eee; } .kp-hf-list a{ color:#111 !important; font-weight:600; font-size:14px; line-height:1.3; text-decoration:none !important; display:block; }
.kp-hf-list small{ display:block; color:#777; font-size:12px; margin-top:2px; } .kp-hf-all{ display:inline-block; margin-top:8px; font-size:13px; color:#c61f40 !important; text-decoration:none !important; }

/* finance */
.kp-fx-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin:0 0 22px; } .kp-fx-card{ display:block; padding:12px 14px; border:1px solid #e5e5e5; border-radius:8px; color:#111 !important; text-decoration:none !important; } .kp-fx-card b{ display:block; font-size:22px; } .kp-fx-card span{ display:block; font-size:12px; color:#777; } .kp-fx-card i{ font-style:normal; font-size:12px; }
.kp-fx-up{ color:#c62828; } .kp-fx-dn{ color:#2e7d32; } .kp-fx-eq{ color:#999; }
.kp-fx-conv, .kp-fop{ display:grid; grid-template-columns:1fr 1fr 2fr; gap:14px 20px; align-items:end; background:#f6f6f6; border-radius:8px; padding:16px 18px; margin:0 0 24px; } .kp-fx-conv label, .kp-fop label{ display:flex; flex-direction:column; gap:5px; font-size:13px; color:#555; } .kp-fx-conv input, .kp-fx-conv select, .kp-fop input, .kp-fop select{ padding:9px 12px; border:1px solid #ccc; border-radius:6px; font:inherit; font-size:15px; } .kp-fx-res b{ display:block; font-size:26px; } .kp-fx-res span{ font-size:12px; color:#777; } .kp-fop #kp-fop-out{ grid-column:1 / -1; }
.kp-spark{ width:100%; height:140px; display:block; background:#fafafa; border-radius:6px; } .kp-spark-lbl{ display:flex; justify-content:space-between; font-size:12px; color:#777; margin:4px 0 16px; }
@media (max-width:700px){ .kp-fx-grid{ grid-template-columns:repeat(2,1fr); } .kp-fx-conv, .kp-fop{ grid-template-columns:1fr; } }

/* catalogue */
.kp-chips{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 16px; } .kp-chips span{ font-size:12px; padding:4px 10px; border:1px solid #ddd; border-radius:14px; color:#444; }
/* news sections (Місто/Війна/Події/Афіша) + right-column feed on data pages */
.kp-nw-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px 20px; margin:0 0 26px; } .kp-nw-small{ grid-template-columns:repeat(2,1fr); gap:16px; }
.kp-nw{ display:flex; flex-direction:column; gap:10px; } .kp-nw-big{ grid-column:1 / -1; display:grid; grid-template-columns:3fr 2fr; gap:22px; align-items:start; }
.kp-nw-img{ display:block; aspect-ratio:16/10; overflow:hidden; border-radius:6px; background:#eee; } .kp-nw-img img{ width:100%; height:100%; object-fit:cover; display:block; } .kp-nw-big .kp-nw-img{ aspect-ratio:16/10; }
.kp-nw h3{ font-family:"Playfair Display",georgia,serif; font-size:18px; line-height:1.3; margin:0 0 6px; } .kp-nw-big h3{ font-size:28px; } .kp-nw h3 a{ color:#111 !important; text-decoration:none !important; } .kp-nw h3 a:hover{ color:#c61f40 !important; }
.kp-nw p{ font-size:14px; line-height:1.5; color:#555; margin:0; } .kp-nw-small p{ display:none; } .kp-nw-small h3{ font-size:16px; }
.kp-nw-meta{ font-size:12px; color:#888; text-transform:uppercase; letter-spacing:.04em; margin:0 0 6px; } .kp-nw-meta a{ color:#c61f40 !important; text-decoration:none !important; font-weight:600; }
.kp-nw-article .kp-jb-desc p{ font-size:17px; line-height:1.65; margin:0 0 16px; } .kp-nw-article .kp-tr-lead{ font-size:19px; font-weight:600; color:#222; }
.kp-nw-side{ padding-top:8px; } .kp-nw-side .section-title{ margin-top:0; }
@media (max-width:991px){ .kp-nw-grid{ grid-template-columns:repeat(2,1fr); } .kp-nw-big{ grid-template-columns:1fr; } .kp-nw-big h3{ font-size:22px; } }
@media (max-width:575px){ .kp-nw-grid, .kp-nw-small{ grid-template-columns:1fr; } }
/* power outages (LOE) */
.kp-od-cols{ display:grid; grid-template-columns:1fr 1fr; gap:24px; } @media (max-width:767px){ .kp-od-cols{ grid-template-columns:1fr; } }
.kp-loe-list li{ padding:10px 0; border-bottom:1px solid #eee; line-height:1.5; } .kp-loe-t{ display:inline-block; padding:1px 8px; border-radius:4px; font-size:12px; font-weight:600; background:#eee; color:#333; }
.kp-loe-t1{ background:#fdecea; color:#c62828; } .kp-loe-t0{ background:#e3f2fd; color:#1565c0; }
/* article sidebar: 3×3 / 4×2 grids, sticky banner */
@media (min-width:992px){ .kp-nw-3{ grid-template-columns:repeat(3,1fr); } .kp-nw-4{ grid-template-columns:repeat(4,1fr); } }
.kp-nw-side{ display:flex; flex-direction:column; } .kp-nw-side > .section-wrapper{ display:flex; flex-direction:column; flex:1; }
.kp-sb-banner{ position:sticky; top:16px; padding-top:16px; }
.kp-banner{ display:flex; flex-direction:column; justify-content:center; gap:6px; width:100%; max-width:300px; height:250px; margin:0 auto; padding:20px; box-sizing:border-box; background:linear-gradient(135deg,#1a1a1a,#3a3a3a); color:#fff !important; text-decoration:none !important; border-radius:8px; text-align:center; }
.kp-banner small{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#bbb; } .kp-banner b{ font-family:"Playfair Display",georgia,serif; font-size:26px; line-height:1.15; } .kp-banner span{ font-size:13px; color:#ddd; } .kp-banner i{ font-style:normal; color:#ff5a7a; font-weight:600; margin-top:6px; }
/* top nav: news | services divider */
.scroll-header .content-container nav ul li.kp-nav-sep{ color:#555; font-size:14px; line-height:30px; margin:0 -8px; user-select:none; }
/* header: blinking bulb → power outages page */
.scroll-header .kp-bulb{ position:absolute; right:18px; top:12px; width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:50%; z-index:5; text-decoration:none !important; }
.scroll-header .kp-bulb svg{ width:24px; height:24px; animation:kp-blink 1.6s ease-in-out infinite; }
.scroll-header .kp-bulb:hover svg{ animation-play-state:paused; opacity:1; filter:drop-shadow(0 0 8px #ffd54f); }
@keyframes kp-blink{ 0%,100%{ opacity:1; filter:drop-shadow(0 0 7px #ffd54f); } 50%{ opacity:.3; filter:none; } }
@media (prefers-reduced-motion: reduce){ .scroll-header .kp-bulb svg{ animation:none; } }
@media (max-width:991px){ .scroll-header .kp-bulb{ right:12px; top:12px; } }

/* anchors (#polityka …) land below the fixed header */
[id]{scroll-margin-top:100px}

/* homepage «exclusive» strip: fixed-height column cards wrapped the author into a 2nd column past the viewport (horizontal scroll on phones) */
.exclusive-regular{flex-wrap:nowrap}
.exclusive-regular .title{min-height:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical}
.exclusive-regular .author{flex-shrink:0}

/* article hero photos: news carry real width/height (ratio from attributes), Wikimedia photos in «Місця» get a fixed box */
.kp-pl-img{height:auto}
.kp-pl-img[src*="wikimedia"]{aspect-ratio:3/2}

/* cross-section «Корисне» chips + FAQ */
.kp-xl-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.kp-xl-list a{display:inline-block;padding:6px 12px;border:1px solid #ddd;border-radius:20px;font-size:14px;color:#111;text-decoration:none;background:#fff}
.kp-xl-list a:hover{border-color:#c61f40;color:#c61f40}
.kp-faq details{border-top:1px solid #e5e5e5;padding:10px 0}.kp-faq details:last-child{border-bottom:1px solid #e5e5e5}
.kp-faq summary{cursor:pointer;font-weight:600;font-size:16px}.kp-faq details div{padding:8px 0 4px;color:#333;line-height:1.55}

/* homepage slots: width/height attributes give the ratio for layout, the theme sizes the box (16/9 via aspect-ratio) */
.post-regular img,.exclusive-regular img,.general-post img{height:auto}
/* 375px: flex/grid children must be allowed to shrink (long Prozorro/ЄДЕБО names pushed the page wider than the screen) */
.kp-hf-list li > *{ min-width:0; overflow-wrap:anywhere; }
.kp-tr-stoplist li > *{ min-width:0; overflow-wrap:anywhere; }
@media (max-width:600px){ .kp-tr-off{ white-space:normal; text-align:right; } }
h1, h2, h3, .kp-cat-title{ overflow-wrap:break-word; }
.kp-tr-head > div, .kp-od-links li{ min-width:0; overflow-wrap:anywhere; }
