/* Publiczne, indeksowalne strony treści LondonPolonia.uk. */
body.public-body { padding-bottom: 0; background: #eef3f7; }
.public-page { min-height: 100vh; background: #fff; }
.public-page .site-header { position: sticky; top: 0; }
.public-page .header-main { min-height: 76px; }
.public-page .brand { flex-basis: 310px; }
.public-page .brand-image { width: 310px; }
.public-nav { min-height: 45px; display: flex; align-items: center; gap: 27px; border-top: 1px solid #edf1f5; }
.public-nav a { display: inline-flex; align-items: center; min-height: 45px; color: #34495f; font-size: .76rem; font-weight: 800; }
.public-nav a:hover, .public-nav a.active { color: var(--red); }
.public-nav .portal-return { margin-left: auto; color: var(--blue); }
.public-hero { position: relative; overflow: hidden; padding: 46px 0 40px; color: #fff; background: linear-gradient(118deg,#071a35,#0d4277); }
.public-hero::after { content: ""; position: absolute; right: -30px; bottom: -45px; width: 520px; height: 190px; opacity: .16; background: url("./images/london-skyline.svg") center/cover no-repeat; filter: brightness(0) invert(1); }
.public-hero .shell { position: relative; z-index: 1; }
.public-kicker { color: #ff9daa; font-size: .65rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.public-hero h1 { max-width: 900px; margin: 7px 0 9px; font-size: clamp(2.25rem,5vw,4rem); line-height: .98; letter-spacing: -.055em; }
.public-hero p { max-width: 780px; margin: 0; color: #c9d8e6; font-size: .9rem; line-height: 1.55; }
.public-main { padding-top: 34px; padding-bottom: 70px; }
.public-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.public-toolbar h2 { margin: 0; color: var(--navy); font-size: 1.35rem; }
.public-toolbar span { color: var(--muted); font-size: .72rem; }
.public-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.public-grid.events { grid-template-columns: repeat(3,minmax(0,1fr)); }
.public-card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid #dce4ec; border-radius: 16px; background: #fff; box-shadow: 0 8px 25px rgba(7,26,53,.07); transition: transform .2s ease, box-shadow .2s ease; }
.public-card:hover { transform: translateY(-3px); box-shadow: 0 17px 38px rgba(7,26,53,.13); }
.public-card-media { position: relative; height: 185px; overflow: hidden; background: linear-gradient(135deg,#dce8f2,#a7bfd4); }
.public-card-media img { width: 100%; height: 100%; object-fit: cover; }
.public-card-media.placeholder { display: grid; place-items: center; color: rgba(255,255,255,.94); background: linear-gradient(135deg,#123f70,#071a35); }
.public-card-media.placeholder span { font-size: 2.7rem; font-weight: 950; }
.public-date { position: absolute; left: 12px; top: 12px; display: grid; place-items: center; min-width: 55px; min-height: 58px; border-radius: 11px; background: #fff; color: var(--navy); box-shadow: 0 6px 18px rgba(7,26,53,.18); }
.public-date strong, .public-date small { display: block; text-align: center; }
.public-date strong { font-size: 1.35rem; line-height: 1; }
.public-date small { margin-top: 3px; color: var(--red); font-size: .56rem; font-weight: 900; text-transform: uppercase; }
.public-card-copy { flex: 1; display: flex; flex-direction: column; padding: 16px; }
.public-card-copy > span { color: var(--red); font-size: .58rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.public-card h2, .public-card h3 { margin: 5px 0 8px; color: var(--navy); font-size: 1.05rem; line-height: 1.22; letter-spacing: -.02em; }
.public-card p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0 0 14px; color: var(--muted); font-size: .75rem; line-height: 1.48; }
.public-card-meta { margin-top: auto; color: #778597; font-size: .64rem; }
.public-article-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 32px; align-items: start; }
.public-article { min-width: 0; }
.public-back { display: inline-flex; align-items: center; min-height: 40px; margin-bottom: 18px; border: 1px solid #d7e0e9; border-radius: 9px; padding: 0 12px; color: #344960; background: #fff; font-size: .7rem; font-weight: 850; }
.public-article-image { width: 100%; max-height: 560px; object-fit: cover; border-radius: 18px; margin-bottom: 22px; box-shadow: var(--shadow-sm); }
.public-article .public-kicker { color: var(--red); }
.public-article h1 { margin: 7px 0 14px; color: var(--navy); font-size: clamp(2.25rem,5vw,4.2rem); line-height: .98; letter-spacing: -.06em; }
.public-lead { margin: 0 0 23px; color: #3f5369; font-size: 1.1rem; line-height: 1.55; font-weight: 520; }
.public-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 20px 0 24px; }
.public-fact { padding: 14px; border: 1px solid #dce4ec; border-radius: 12px; background: #f7f9fb; }
.public-fact small, .public-fact strong { display: block; }
.public-fact small { color: #768497; font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.public-fact strong { margin-top: 3px; color: var(--navy); font-size: .84rem; }
.public-prose { color: #273b52; font-size: 1rem; line-height: 1.78; }
.public-prose p { margin: 0 0 1.25em; }
.public-prose h2, .public-prose h3 { color: var(--navy); line-height: 1.16; }
.public-source { margin-top: 25px; padding-top: 18px; border-top: 1px solid #dfe6ee; color: var(--muted); font-size: .72rem; }
.public-source a { color: var(--blue); font-weight: 850; }
.public-aside { position: sticky; top: 140px; display: grid; gap: 12px; }
.public-aside-card { padding: 20px; border-radius: 16px; color: #fff; background: linear-gradient(135deg,#071a35,#0d4277); }
.public-aside-card.red { background: linear-gradient(135deg,#df1d35,#a80e21); }
.public-aside-card span { display: block; color: #bcd0e3; font-size: .61rem; font-weight: 900; letter-spacing: .08em; }
.public-aside-card h2 { margin: 5px 0 8px; font-size: 1.25rem; line-height: 1.14; }
.public-aside-card p { margin: 0 0 15px; color: #d6e1eb; font-size: .72rem; }
.public-aside-card a { display: inline-flex; min-height: 39px; align-items: center; border-radius: 9px; padding: 0 11px; background: #fff; color: var(--navy); font-size: .67rem; font-weight: 900; }
.public-empty { padding: 50px 20px; border: 1px dashed #c7d3df; border-radius: 16px; background: #f8fafc; color: var(--muted); text-align: center; }
.public-place-card { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 13px; padding: 17px; border: 1px solid #dce4ec; border-radius: 15px; background: #fff; }
.public-place-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 12px; background: #eaf3ff; color: var(--blue); font-size: 1.35rem; font-weight: 900; }
.public-place-card h2 { margin: 0 0 5px; color: var(--navy); font-size: 1rem; line-height: 1.22; }
.public-place-card p { margin: 3px 0; color: var(--muted); font-size: .72rem; }
.public-place-card > span:last-child > span { display: inline-block; margin-top: 8px; color: var(--blue); font-size: .7rem; font-weight: 850; }
.public-error { min-height: calc(100vh - 90px); display: grid; align-content: center; justify-items: start; padding-top: 70px; padding-bottom: 90px; }
.public-error > span { display: block; color: var(--red); font-size: .78rem; font-weight: 950; letter-spacing: .18em; }
.public-error h1 { max-width: 850px; margin: 10px 0 15px; color: var(--navy); font-size: clamp(2.9rem,7vw,6.5rem); line-height: .9; letter-spacing: -.07em; }
.public-error p { max-width: 690px; margin: 0 0 27px; color: var(--muted); font-size: .95rem; line-height: 1.65; }
.public-error > div { display: flex; flex-wrap: wrap; gap: 9px; }
.public-error a { min-height: 45px; display: inline-flex; align-items: center; border: 1px solid #d7e0e9; border-radius: 10px; padding: 0 14px; background: #fff; color: var(--navy); font-size: .72rem; font-weight: 900; }
.public-error a.primary { border-color: var(--red); background: var(--red); color: #fff; }

@media (max-width: 900px) {
  .public-grid, .public-grid.events { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-article-layout { grid-template-columns: minmax(0,1fr); }
  .public-aside { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .public-page .header-main { min-height: 65px; }
  .public-page .brand { flex-basis: 220px; }
  .public-page .brand-image { width: 220px; }
  .public-page .header-actions { display: flex; }
  .public-page .header-actions a { min-width: 44px; width: 44px; padding: 0; }
  .public-page .header-actions a span { display: none; }
  .public-nav { gap: 19px; overflow-x: auto; scrollbar-width: none; }
  .public-nav::-webkit-scrollbar { display: none; }
  .public-nav a { flex: 0 0 auto; font-size: .67rem; }
  .public-nav .portal-return { margin-left: 0; }
  .public-hero { padding: 32px 0 29px; }
  .public-hero h1 { font-size: 2.25rem; }
  .public-hero p { font-size: .78rem; }
  .public-main { padding-top: 23px; padding-bottom: 45px; }
  .public-grid, .public-grid.events { grid-template-columns: minmax(0,1fr); gap: 9px; }
  .public-card { display: grid; grid-template-columns: 116px minmax(0,1fr); min-height: 142px; }
  .public-card-media { height: 100%; min-height: 142px; }
  .public-card-copy { padding: 12px; }
  .public-card h2, .public-card h3 { font-size: .86rem; }
  .public-card p { -webkit-line-clamp: 2; margin-bottom: 8px; font-size: .67rem; }
  .public-card-meta { font-size: .59rem; }
  .public-date { left: 8px; top: 8px; min-width: 48px; min-height: 51px; }
  .public-article h1 { font-size: 2.3rem; }
  .public-lead { font-size: .95rem; }
  .public-prose { font-size: .96rem; line-height: 1.7; }
  .public-facts { grid-template-columns: minmax(0,1fr); }
  .public-aside { grid-template-columns: minmax(0,1fr); }
  .public-toolbar { align-items: flex-start; flex-direction: column; gap: 4px; }
}

@media (max-width: 390px) {
  .public-page .brand { flex-basis: 195px; }
  .public-page .brand-image { width: 195px; }
  .public-card { grid-template-columns: 105px minmax(0,1fr); }
}

/* Wiadomości 36.0 — filtry rejonów + 3 karty / lista. */
.public-news-filters{margin-bottom:18px;padding:14px;border:1px solid #dce4ec;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(7,26,53,.04)}
.public-news-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:10px}.public-news-search input{min-width:0;min-height:44px;border:1px solid #d5dfe8;border-radius:10px;padding:0 13px;font:inherit}.public-news-search button{min-height:44px;border:0;border-radius:10px;padding:0 17px;background:#071a35;color:#fff;font:inherit;font-size:.7rem;font-weight:900}.public-news-filters>small{display:block;margin:10px 2px 6px;color:#718095;font-size:.58rem;font-weight:950;letter-spacing:.09em;text-transform:uppercase}.public-filter-scroll{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.public-filter-scroll::-webkit-scrollbar{display:none}.public-filter-chip{min-height:38px;display:inline-flex;align-items:center;flex:0 0 auto;border:1px solid #d7e0e9;border-radius:999px;padding:0 12px;background:#fff;color:#42546a;font-size:.65rem;font-weight:850}.public-filter-chip.active{border-color:#071a35;background:#071a35;color:#fff}.public-filter-chip.region.active{border-color:#d7192d;background:#d7192d}.public-view-switch{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:2px;padding:4px;border:1px solid #d5dfe8;border-radius:11px;background:#f5f8fb}.public-view-switch a{min-height:35px;display:flex;align-items:center;justify-content:center;border-radius:8px;padding:0 12px;color:#5f7084;font-size:.65rem;font-weight:900}.public-view-switch a.active{background:#071a35;color:#fff}.public-grid.news.is-list{grid-template-columns:minmax(0,1fr)}.public-grid.news.is-list .public-card{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:150px}.public-grid.news.is-list .public-card-media{height:100%;min-height:150px}.public-grid.news.is-list .public-card p{-webkit-line-clamp:2}
@media(max-width:900px){.public-grid.news{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.public-news-filters{padding:10px;border-radius:13px}.public-news-search{grid-template-columns:minmax(0,1fr)}.public-news-search button{display:none}.public-view-switch{width:100%;box-sizing:border-box}.public-grid.news,.public-grid.news.is-list{grid-template-columns:minmax(0,1fr)}.public-grid.news .public-card,.public-grid.news.is-list .public-card{display:grid;grid-template-columns:112px minmax(0,1fr);min-height:142px}.public-grid.news .public-card-media,.public-grid.news.is-list .public-card-media{height:100%;min-height:142px}.public-filter-scroll{width:calc(100vw - 40px);margin-right:-10px;padding-right:10px}.public-filter-chip{min-height:36px;font-size:.62rem}}

/* LP41: readable public content in the existing portal frame. */
.public-page .public-hero { padding:30px 0; }
.public-page .public-hero h1 { font-size:clamp(2rem,3.5vw,3rem);line-height:1.12;letter-spacing:-.035em; }
.public-page .public-hero p,.public-page .public-card p { font-size:1rem; }
.public-page .public-kicker,.public-page .public-card-copy > span { font-size:.75rem; }
.public-page .public-card h2,.public-page .public-card h3 { font-size:1.125rem;line-height:1.35; }
.public-page .public-card-meta,.public-page .public-toolbar span { font-size:.8125rem; }
.public-page .public-nav { flex-wrap:wrap;gap:0 23px; }
.public-page .public-nav a,.public-page .public-back { font-size:.875rem; }
@media(max-width:700px){
  .public-page .public-hero { padding:22px 0; }
  .public-page .public-hero h1 { font-size:1.75rem; }
  .public-page .public-hero p,.public-page .public-card p { font-size:.9375rem; }
  .public-page .public-card-meta { font-size:.75rem; }
  .public-page .public-nav { gap:0 17px; }
  .public-page .public-nav a { font-size:.8125rem;min-height:42px; }
}
