/*
 * Addon dnt_rankingi — katalog (etap 4): wizytówka firmy, karta produktu, profil autora, /firmy/, /szukaj/, podpowiedzi.
 * Klasy .dnr-k-* i .dnr-suggest wewnątrz .dnr. Kolory tylko ze zmiennych --rk-* (dnt_rankingi_site.css).
 * Ładowany na stronach addonu po dnt_rankingi.css. Na serwerze: /assets/dnt_rankingi/dnt_rankingi_katalog.css
 */

/* ───────── nagłówek wizytówki (logo / zdjęcie / awatar + tekst) ───────── */
.dnr-k-head { padding-bottom: 2.25rem; }
.dnr-k-head__in { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.75rem; align-items: center; padding-top: .75rem; }
.dnr-k-head__in--prod { grid-template-columns: minmax(0, 380px) minmax(0, 1fr); }
.dnr-k-head__txt h1 { margin: 0 0 .4rem; line-height: 1.15; overflow-wrap: anywhere; }
.dnr-k-head__txt .dnr-head__meta { margin-bottom: .75rem; }
.dnr-k-kicker { margin: 0; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rk-orange-dark); }
.dnr-k-logo, .dnr-k-avatar { width: 136px; height: 136px; flex: 0 0 auto; border-radius: var(--rk-radius); background: #fff; border: 1px solid var(--rk-line); box-shadow: var(--rk-shadow); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.dnr-k-logo img { width: 100%; height: 100%; object-fit: contain; padding: .6rem; display: block; }
.dnr-k-avatar { border-radius: 50%; border: 4px solid #fff; }
.dnr-k-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dnr-k-logo span, .dnr-k-avatar span, .dnr-k-photo span { font-size: 3rem; font-weight: 800; color: var(--rk-orange); }
.dnr-k-logo span, .dnr-k-avatar span { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--rk-navy), var(--rk-navy-2)); }
.dnr-k-photo { aspect-ratio: 4 / 3; border-radius: var(--rk-radius); background: #fff; border: 1px solid var(--rk-line); box-shadow: var(--rk-shadow); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.dnr-k-photo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.dnr-k-photo span { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--rk-navy), var(--rk-navy-2)); }

/* fakty w nagłówku */
.dnr-k-facts { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.dnr-k-facts li { background: #fff; border: 1px solid var(--rk-line); border-radius: 999px; padding: .3rem .8rem; font-size: .9rem; color: var(--rk-muted); }
.dnr-k-facts strong { color: var(--rk-navy); }
.dnr-k-price { margin: 0 0 .9rem; font-size: 1rem; color: var(--rk-muted); }
.dnr-k-price strong { font-size: 1.6rem; color: var(--rk-navy); letter-spacing: -.01em; }
.dnr-k-cta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .9rem; margin: 0; }
.dnr-k-cta small { color: var(--rk-muted); }

/* sieci autora */
.dnr-k-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.dnr-k-social a { display: inline-block; padding: .4rem .9rem; border-radius: 10px; background: var(--rk-navy); color: #fff !important; font-weight: 600; font-size: .9rem; text-decoration: none !important; }
.dnr-k-social a:hover { background: var(--rk-navy-2); }

/* ───────── układ: treść + panel boczny ───────── */
.dnr-k-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 2.5rem; align-items: start; }
.dnr-k-main > .dnr-h2:first-child { margin-top: 0; }
.dnr-k-gap { margin-top: 2.5rem !important; }
.dnr-k-side { display: grid; gap: 1.25rem; position: sticky; top: 90px; }
.dnr-k-box { background: #fff; border: 1px solid var(--rk-line); border-radius: var(--rk-radius); padding: 1.25rem 1.35rem; box-shadow: var(--rk-shadow); }
.dnr-k-box--muted { background: var(--rk-bg); box-shadow: none; font-size: .92rem; color: var(--rk-muted); }
.dnr-k-box--muted p { margin: 0 0 .75rem; }
.dnr .dnr-k-box__title { margin: 0 0 .9rem; font-size: 1.1rem; }
.dnr-k-dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .45rem 1rem; margin: 0; font-size: .95rem; }
.dnr-k-dl dt { color: var(--rk-muted); font-weight: 500; }
.dnr-k-dl dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.dnr-k-links { list-style: none; margin: 1rem 0 0; padding: .9rem 0 0; border-top: 1px solid var(--rk-line); display: grid; gap: .35rem; }
.dnr-k-links small, .dnr-k-shops small { color: var(--rk-muted); font-weight: 400; }
.dnr-k-small { margin: .9rem 0 0; font-size: .85rem; color: var(--rk-muted); }
.dnr-k-label { margin: 1rem 0 .25rem; font-size: .9rem; font-weight: 600; color: var(--rk-muted); }
.dnr-k-narrow { max-width: 820px; }

/* mini-lista (podobne firmy, wyniki szukania) */
.dnr-k-mini, .dnr-k-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.dnr-k-tiles { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .9rem; }
.dnr-k-mini li, .dnr-k-tiles li { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.dnr-k-tiles li { background: #fff; border: 1px solid var(--rk-line); border-radius: 12px; padding: .7rem .85rem; }
.dnr-k-mini li > span:last-child, .dnr-k-tiles li > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.dnr-k-mini a, .dnr-k-tiles a { font-weight: 600; text-decoration: none !important; line-height: 1.3; overflow-wrap: anywhere; }
.dnr-k-mini a:hover, .dnr-k-tiles a:hover { color: var(--rk-orange-dark) !important; }
.dnr-k-mini small, .dnr-k-tiles small { color: var(--rk-muted); font-size: .82rem; }
.dnr-k-mini__img { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--rk-line); background: var(--rk-navy); color: var(--rk-orange); font-weight: 800; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.dnr-k-mini__img img { width: 100%; height: 100%; object-fit: contain; background: #fff; display: block; }

/* ───────── miejsca w rankingach ───────── */
.dnr-k-rank { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.dnr-k-rank__item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; background: #fff; border: 1px solid var(--rk-line); border-radius: var(--rk-radius); padding: 1rem 1.15rem; box-shadow: var(--rk-shadow); }
.dnr-k-rank__pos { width: 2.6rem; height: 2.6rem; border-radius: 12px; background: var(--rk-bg); border: 1px solid var(--rk-line); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1.1rem; color: var(--rk-navy); }
.dnr-k-rank__pos--top { background: var(--rk-orange); border-color: var(--rk-orange); color: var(--rk-navy-dark); }
.dnr-k-rank__body { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.dnr-k-rank__title { font-weight: 700; text-decoration: none !important; line-height: 1.35; }
.dnr-k-rank__title:hover { color: var(--rk-orange-dark) !important; }
.dnr-k-rank__meta { font-size: .85rem; color: var(--rk-muted); }
.dnr-k-rank__verdict { font-size: .93rem; }
.dnr-k-score { display: flex; align-items: baseline; gap: .1rem; background: var(--rk-navy); color: #fff; border-radius: 12px; padding: .45rem .7rem; white-space: nowrap; }
.dnr-k-score strong { font-size: 1.25rem; }
.dnr-k-score small { color: #c9d3e6; }

/* usługi firmy */
.dnr-k-svc { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .5rem; }
.dnr-k-svc li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; padding: .7rem 1rem; border: 1px solid var(--rk-line); border-radius: 12px; background: #fff; }
.dnr-k-svc__name { font-weight: 700; text-decoration: none !important; }
.dnr-k-svc__city { font-size: .9rem; color: var(--rk-muted) !important; }
.dnr-k-svc__city::after { content: ' →'; color: var(--rk-orange); }

/* oceny zewnętrzne (tylko tekst) */
.dnr-k-ratings { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .75rem; }
.dnr-k-ratings li { display: flex; flex-direction: column; gap: .15rem; padding: .9rem 1rem; border: 1px solid var(--rk-line); border-radius: 12px; background: var(--rk-bg); }
.dnr-k-ratings__src { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--rk-muted); }
.dnr-k-ratings__val { font-size: 1.05rem; color: var(--rk-muted); }
.dnr-k-ratings__val strong { font-size: 1.5rem; color: var(--rk-navy); }
.dnr-k-ratings__n { font-size: .88rem; color: var(--rk-muted); }

/* sklepy produktu */
.dnr-k-shops { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.dnr-k-shops li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; padding: .75rem 1rem; border: 1px solid var(--rk-line); border-radius: 12px; background: #fff; }
.dnr-k-shops__name { font-weight: 700; overflow-wrap: anywhere; }
.dnr-k-shops__price { font-weight: 700; color: var(--rk-navy); white-space: nowrap; }
.dnr-k-shops .dnr-btn { padding: .55rem 1rem; }

/* ───────── /firmy/: filtry + lista ───────── */
.dnr-k-filter { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); flex-flow: row wrap; gap: .75rem 1rem; align-items: end; margin: 0 0 1.25rem; padding: 1.1rem 1.2rem; background: var(--rk-bg); border: 1px solid var(--rk-line); border-radius: var(--rk-radius); }
.dnr-k-filter__f { display: flex; flex-direction: column; gap: .3rem; margin: 0; font-size: .85rem; font-weight: 600; color: var(--rk-muted); min-width: 0; }
.dnr-k-filter select { width: 100%; min-width: 0; height: 2.6rem; padding: 0 .6rem; border: 1px solid var(--rk-line); border-radius: 10px; background: #fff; font: inherit; font-size: .95rem; color: var(--rk-text); margin: 0; }
.dnr-k-filter__act { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.dnr-k-filter__act .dnr-btn { margin: 0; width: auto; padding: .65rem 1.2rem; }
.dnr-k-filter__reset { font-size: .9rem; color: var(--rk-muted) !important; }
.dnr-k-count { margin: 0 0 1rem; color: var(--rk-muted); font-size: .95rem; }
.dnr-k-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.dnr-k-item { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 1.1rem; align-items: center; background: #fff; border: 1px solid var(--rk-line); border-radius: var(--rk-radius); padding: 1rem 1.2rem; box-shadow: var(--rk-shadow); transition: box-shadow .2s, border-color .2s; }
.dnr-k-item:hover { box-shadow: var(--rk-shadow-hover); border-color: rgba(242, 140, 40, .45); }
.dnr-k-item__logo { width: 72px; height: 72px; border-radius: 12px; border: 1px solid var(--rk-line); overflow: hidden; display: flex; align-items: center; justify-content: center; background: #fff; text-decoration: none !important; }
.dnr-k-item__logo img { width: 100%; height: 100%; object-fit: contain; padding: .3rem; display: block; }
.dnr-k-item__logo span { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--rk-navy), var(--rk-navy-2)); color: var(--rk-orange); font-weight: 800; font-size: 1.6rem; }
.dnr-k-item__body { min-width: 0; display: flex; flex-direction: column; gap: .25rem; }
.dnr .dnr-k-item__title { margin: 0; font-size: 1.12rem; line-height: 1.3; }
.dnr-k-item__title a { text-decoration: none !important; }
.dnr-k-item__title a:hover { color: var(--rk-orange-dark) !important; }
.dnr-k-item__meta { margin: 0; display: flex; flex-wrap: wrap; gap: .15rem 1rem; font-size: .88rem; color: var(--rk-muted); }
.dnr-k-item__meta strong { color: var(--rk-navy); }
.dnr-k-item__lead { margin: 0; font-size: .93rem; color: var(--rk-text); line-height: 1.5; }
.dnr-k-item__tags { margin: .2rem 0 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.dnr-k-item__tags a { font-size: .78rem; font-weight: 600; padding: .15rem .55rem; border-radius: 999px; background: #fff3e6; color: var(--rk-orange-dark) !important; text-decoration: none !important; }
.dnr-k-item__side { display: flex; flex-direction: column; align-items: flex-end; gap: .5rem; text-align: right; }
.dnr-k-item__place { display: flex; flex-direction: column; font-size: .85rem; color: var(--rk-muted); line-height: 1.25; }
.dnr-k-item__place strong { font-size: 1.4rem; color: var(--rk-navy); }
.dnr-k-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0 2rem; }
.dnr-k-jump { margin-top: 1rem; }

/* ───────── podpowiedzi wyszukiwarki (JS) ───────── */
.dnr-search--suggest { position: relative; }
.dnr-hero { overflow: visible; overflow-x: clip; }
.dnr-hero .dnr-search--suggest, .dnr-head .dnr-search--suggest, .dnr-toolbar .dnr-search--suggest { z-index: 30; }
.dnr-suggest { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 50; list-style: none; margin: 0; padding: .35rem; background: #fff; border: 1px solid var(--rk-line); border-radius: 12px; box-shadow: 0 18px 40px -16px rgba(16, 24, 40, .35); max-height: min(70vh, 460px); overflow-y: auto; text-align: left; }
.dnr-suggest[hidden] { display: none; }
.dnr-suggest li { margin: 0; }
.dnr-suggest a { display: flex; align-items: baseline; gap: .6rem; padding: .55rem .7rem; border-radius: 8px; text-decoration: none !important; color: var(--rk-text) !important; line-height: 1.35; }
.dnr-suggest li[aria-selected="true"] a, .dnr-suggest a:hover { background: var(--rk-bg); }
.dnr-suggest__typ { flex: 0 0 auto; min-width: 4.6rem; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rk-orange-dark); }
.dnr-suggest__label { min-width: 0; overflow-wrap: anywhere; }
.dnr-suggest__all a { font-weight: 600; color: var(--rk-navy) !important; border-top: 1px solid var(--rk-line); border-radius: 0 0 8px 8px; }

/* ───────── mobile ───────── */
@media (max-width: 960px) {
	.dnr-k-layout { grid-template-columns: 1fr; gap: 2rem; }
	.dnr-k-side { position: static; }
}
@media (max-width: 600px) {
	.dnr-k-head__in, .dnr-k-head__in--prod { grid-template-columns: 1fr; gap: 1rem; }
	.dnr-k-logo, .dnr-k-avatar { width: 96px; height: 96px; }
	.dnr-k-logo span, .dnr-k-avatar span { font-size: 2.2rem; }
	.dnr-k-rank__item { grid-template-columns: auto minmax(0, 1fr); padding: .85rem .9rem; gap: .75rem; }
	.dnr-k-rank__item .dnr-k-score { grid-column: 2; justify-self: start; }
	.dnr-k-shops li { grid-template-columns: minmax(0, 1fr) auto; }
	.dnr-k-shops .dnr-btn { grid-column: 1 / -1; width: 100%; }
	.dnr-k-filter { grid-template-columns: 1fr 1fr; padding: .9rem; }
	.dnr-k-filter__act { grid-column: 1 / -1; }
	.dnr-k-filter__act .dnr-btn { flex: 1 1 auto; }
	.dnr-k-item { grid-template-columns: 56px minmax(0, 1fr); gap: .85rem; padding: .9rem; align-items: start; }
	.dnr-k-item__logo { width: 56px; height: 56px; }
	.dnr-k-item__side { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; text-align: left; border-top: 1px solid var(--rk-line); padding-top: .6rem; }
	.dnr-k-item__place { flex-direction: row; align-items: baseline; gap: .3rem; }
	.dnr-k-item__place strong { font-size: 1.1rem; }
	.dnr-k-tiles { grid-template-columns: 1fr; }
	.dnr-suggest__typ { min-width: 0; }
	.dnr-suggest a { flex-direction: column; gap: .1rem; }
}
