/* KBA – program a přednášející. Vše pod .kba, žádné globální selektory. */

.kba {
	--kba-navy: #1c2972;
	--kba-teal: #3eb4ba;
	--kba-yellow: #ffc428;
	--kba-bg: #f2f5fa;
	--kba-line: #d6ddec;
	--kba-text: #232850;
	--kba-muted: #555b7a;
	--kba-scroll: var(--kba-scroll-offset, 120px);
	--kba-time-w: 9.2rem;
	/* Žádné container-type: kontejnerové dotazy způsobovaly v Chromiu zastaralou výšku rodičů (bílé místo pod seznamem) – rozvržení řídí @media. */
	display: block;
	width: 100%;
	max-width: 100%;
	color: var(--kba-text);
	line-height: 1.45;
	box-sizing: border-box;
}
.kba.kba-program { padding: .5rem clamp(.5rem, 1.5vw, 1rem) 1rem; }
.kba *, .kba *::before, .kba *::after { box-sizing: border-box; }
.kba :where(p, ul, ol, h2, h3, h4) { margin: 0; padding: 0; }
/* Astra/Elementor stylují ul/ol/li globálně – vlastní seznamy proto resetujeme výslovně (specificita .kba .třída). */
.kba .kba-rows, .kba .kba-people, .kba .kba-cards, .kba .kba-grid { margin: 0; padding: 0; list-style: none; }
.kba .kba-item, .kba .kba-group, .kba .kba-person, .kba .kba-card, .kba .kba-grid__item { margin: 0; padding: 0; list-style: none; }
.kba .kba-item::marker, .kba .kba-group::marker, .kba .kba-person::marker, .kba .kba-card::marker, .kba .kba-grid__item::marker { content: ''; }
.kba .kba-detail__text :is(p, ul, ol, h3, h4, h5, h6, blockquote), .kba-dialog .kba-detail__text :is(p, ul, ol, h3, h4, h5, h6, blockquote),
.kba .kba-card__bio :is(p, ul, ol, h3, h4, h5, h6, blockquote) { margin: 0; }
.kba .kba-detail__text li, .kba-dialog .kba-detail__text li, .kba .kba-card__bio li { margin: 0 0 .25rem; }
.kba-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.kba .kba-btn:focus-visible, .kba-dialog .kba-btn:focus-visible { outline: 2px solid #1c2972; outline-offset: 2px; box-shadow: none; }
.kba a:focus-visible, .kba-dialog a:focus-visible, .kba-dialog__body:focus-visible {
	outline: 3px solid var(--kba-yellow, #ffc428);
	outline-offset: 2px;
	box-shadow: 0 0 0 5px #1c2972;
}
.kba-empty { padding: 1rem 1.25rem; background: var(--kba-bg); border-radius: 12px 0 12px 0; }

/* ---------- Tlačítka ---------- */
.kba .kba-btn, .kba-dialog .kba-btn {
	-webkit-appearance: none; appearance: none;
	display: inline-block; margin: 0; padding: .3rem 1.2rem; min-height: 0; height: auto;
	font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-size: 1rem; font-weight: 700; line-height: 1.4; letter-spacing: 0; text-transform: none; text-decoration: none;
	color: #1c2972; background: #fff; border: 2px solid #1c2972; border-radius: 10px 0 10px 0; box-shadow: none; cursor: pointer;
	list-style: none;
}
.kba .kba-btn:hover, .kba-dialog .kba-btn:hover { color: #fff; background: #1c2972; }
.kba .kba-detail__summary::-webkit-details-marker { display: none; }
.kba .kba-detail__summary::marker { content: ''; }
.kba .kba-detail__open[hidden] { display: none; }
.kba .kba-btn.kba-detail__open { background: transparent !important; }
.kba .kba-btn.kba-detail__open:hover { background: #1c2972 !important; color: #fff; }

/* ---------- Program ---------- */
.kba-day + .kba-day { margin-top: 2.75rem; }
.kba .kba-day__title { margin: 0 0 1.1rem; font-size: 1.7rem; line-height: 1.2; text-align: center; color: var(--kba-navy); }
.kba .kba-day__label { box-shadow: inset 0 -.32em 0 var(--kba-yellow); }
.kba .kba-rows { display: flex; flex-direction: column; gap: 8px; }
.kba .kba-item--minor { margin: -2px 0; }

.kba .kba-time { font-variant-numeric: tabular-nums; white-space: nowrap; }
.kba .kba-clock { flex: none; }

/* Časová dlaždice vlevo (teal = provozní, navy = obsah) */
.kba .kba-block__time, .kba .kba-group__time {
	display: flex; align-items: center; justify-content: center; gap: .35rem;
	padding: .6rem .6rem; font-size: .9rem; font-weight: 700; line-height: 1.2;
	color: #fff; background: #1c2972; border-radius: 16px 0 0 0;
}
.kba .kba-tone--teal > .kba-block__time { color: #fff; background: #3eb4ba; }

.kba .kba-block__title, .kba-dialog .kba-dialog__title { margin: 0; font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-size: 1.1rem; line-height: 1.3; font-weight: 700; font-style: normal; color: #1c2972; overflow-wrap: anywhere; }
.kba .kba-block__title--clickable { cursor: pointer; }
.kba .kba-block__title--clickable:hover { text-decoration: underline; text-decoration-color: #1c2972; text-underline-offset: 3px; }
.kba .kba-block__head { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .6rem; min-width: 0; }

/* Druh bloku: ikona + textový štítek vpravo (typ nikdy není srozumitelný jen z ikony) */
.kba .kba-type { display: inline-flex; align-items: center; gap: .35rem; flex: none; font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--kba-muted); }
.kba .kba-type__icon { width: 22px; height: 22px; object-fit: contain; flex: none; }

/* Přednášející: malé kulaté fotografie (jen když existují) + jméno */
.kba .kba-people { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-top: .4rem; font-size: .92rem; }
.kba .kba-person { display: inline-flex; align-items: center; gap: .4rem; }
.kba .kba-avatar { display: block; width: 28px; height: 28px; max-width: none; flex: none; border-radius: 50%; object-fit: cover; object-position: 50% 12%; background: var(--kba-line); }
.kba .kba-person__link { color: var(--kba-navy); text-decoration: underline; text-decoration-color: var(--kba-teal); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.kba .kba-person__link:hover { text-decoration-color: var(--kba-navy); }
.kba .kba-person__name { color: var(--kba-text); }

/* Plenární řádek */
.kba .kba-block--row { display: grid; grid-template-columns: var(--kba-time-w) minmax(0, 1fr); align-items: stretch; background: var(--kba-bg); border: 0; border-radius: 16px 0 0 0; }
.kba .kba-block--row .kba-block__body { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; padding: .7rem 1.2rem; min-width: 0; }
.kba .kba-block--row .kba-block__main { flex: 1 1 16rem; min-width: 0; }
.kba .kba-block--row .kba-detail { margin: 0; }
.kba .kba-block--ops .kba-block__body { padding-block: .55rem; }
.kba .kba-block--minor { background: transparent; }
.kba .kba-block--minor .kba-block__time { padding-block: .3rem; }
.kba .kba-block--minor .kba-block__body { padding-block: .3rem; }

/* Skupina souběžných streamů */
.kba .kba-group { display: grid; grid-template-columns: var(--kba-time-w) minmax(0, 1fr); gap: 0 .5rem; align-items: stretch; margin-block: 4px; }
.kba .kba-group__time { align-items: flex-start; padding-top: 1rem; }
.kba .kba-streams { display: grid; grid-template-columns: repeat(var(--kba-cols, 4), minmax(0, 1fr)); gap: .6rem; }
.kba .kba-stream { display: flex; flex-direction: column; min-width: 0; }
.kba .kba-stream__name { margin: 0; padding: .55rem .9rem; font-family: "Plus Jakarta Sans", system-ui, sans-serif; text-align: center; font-size: .9rem; font-weight: 700; line-height: 1.3; background: var(--kba-stream, #1c2972); color: #fff; border-radius: 14px 0 0 0; overflow-wrap: anywhere; }
.kba .kba-block--cell { flex: 1; padding: .8rem .9rem .9rem; background: var(--kba-bg); border: 0; }
.kba .kba-block--cell + .kba-block--cell { margin-top: 6px; }
.kba .kba-block__time--cell { margin: 0 0 .15rem; padding: 0; background: none; color: var(--kba-muted); font-size: .78rem; font-weight: 700; border-radius: 0; justify-content: flex-start; }
.kba .kba-block--cell .kba-block__head { gap: .1rem .5rem; }
.kba .kba-block--cell .kba-type { display: flex; margin-top: .6rem; }
.kba .kba-block--cell .kba-detail { margin-top: .4rem; }

@media (min-width: 820px) {
	.kba .kba-block__time--same { display: none; }
}
@media (max-width: 819px) {
	.kba .kba-group { grid-template-columns: minmax(0, 1fr); gap: .3rem 0; }
	.kba .kba-group__time { justify-content: flex-start; padding: .5rem 1rem; border-radius: 12px 0 0 0; }
	.kba .kba-streams { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
}
@media (max-width: 560px) {
	.kba { --kba-time-w: auto; }
	.kba .kba-block--row { grid-template-columns: max-content minmax(0, 1fr); }
	.kba .kba-block--row .kba-block__time { min-width: 7.6rem; padding-inline: .45rem; }
	.kba .kba-block--row .kba-block__body { padding: .6rem .8rem; }
	.kba .kba-day__title { font-size: 1.35rem; }
}

/* ---------- Detail bez JS (<details>) ---------- */
.kba .kba-detail__fallback { margin-top: .25rem; }
.kba .kba-detail__fallback[open] > .kba-detail__summary { background: #1c2972; color: #fff; }
.kba .kba-detail__content { margin-top: .5rem; padding: .75rem 1rem; background: var(--kba-bg); border-radius: 8px; font-size: .95rem; }
.kba .kba-detail__meta, .kba-dialog .kba-detail__meta { font-size: .85rem; font-weight: 600; color: var(--kba-muted); margin: 0 0 .75rem; }
.kba .kba-detail__text :is(p, ul, ol, h3, h4, h5, h6, blockquote) + :is(p, ul, ol, h3, h4, h5, h6, blockquote), .kba-dialog .kba-detail__text :is(p, ul, ol, h3, h4, h5, h6, blockquote) + :is(p, ul, ol, h3, h4, h5, h6, blockquote) { margin-top: .75rem; }
.kba .kba-detail__text ul, .kba .kba-detail__text ol, .kba-dialog .kba-detail__text ul, .kba-dialog .kba-detail__text ol { padding-left: 1.4rem; list-style: revert; }
.kba .kba-detail__text a, .kba-dialog .kba-detail__text a { color: #1c2972; text-decoration: underline; }
.kba .kba-detail__label, .kba-dialog .kba-detail__label { margin: 1rem 0 .2rem; font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--kba-muted); }

/* ---------- Dialog ---------- */
html.kba-lock { overflow: hidden; }
.kba-dialog {
	box-sizing: border-box; padding: 0; border: 0; width: min(720px, calc(100vw - 2rem)); max-width: 100%;
	color: #232850; background: #fff; border-radius: 22px 0 22px 0; box-shadow: 0 20px 60px rgba(28, 41, 114, .35);
	font-size: 1rem; line-height: 1.55;
}
.kba-dialog::backdrop { background: rgb(0 0 0 / 60%); }
.kba-dialog *, .kba-dialog *::before, .kba-dialog *::after { box-sizing: border-box; }
.kba-dialog__panel { display: flex; flex-direction: column; max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); }
.kba-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem .75rem; border-bottom: 3px solid #ffc428; }

.kba-dialog .kba-dialog__close { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 2.4rem; height: 2.4rem; padding: 0; line-height: 1; border-radius: 50%; }
.kba-dialog .kba-dialog__close svg { display: block; }
.kba-dialog__body { overflow: auto; overscroll-behavior: contain; padding: 1rem 1.25rem 1.5rem; }
.kba-dialog .kba-detail__content { margin: 0; padding: 0; background: none; }
.kba-dialog .kba-people { display: flex; flex-wrap: wrap; gap: .1rem 1.1rem; list-style: none; margin: 0; padding: 0; }
.kba-dialog .kba-person { list-style: none; margin: 0; padding: 0; display: inline-flex; align-items: center; gap: .4rem; }
.kba-dialog .kba-avatar { display: block; width: 28px; height: 28px; max-width: none; border-radius: 50%; object-fit: cover; object-position: 50% 12%; flex: none; }
.kba-dialog .kba-person__link { color: #1c2972; text-decoration: underline; text-decoration-color: #3eb4ba; text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* ---------- Seznam přednášejících (celý) ---------- */
.kba .kba-cards { display: grid; gap: 1.5rem; }
.kba .kba-card { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); background: var(--kba-bg); border-radius: 35px 0 35px 0; overflow: hidden; scroll-margin-top: var(--kba-scroll); }
.kba .kba-card:target { box-shadow: 0 0 0 3px var(--kba-yellow); }
.kba .kba-card:not(:has(.kba-card__photo)) { grid-template-columns: minmax(0, 1fr); }
.kba .kba-card__photo { align-self: stretch; }
.kba .kba-card__img { display: block; width: 100%; height: 100%; max-width: none; aspect-ratio: 2 / 3; object-fit: cover; object-position: center top; border-radius: 0; }
.kba .kba-card__body { padding: 2rem; min-width: 0; }
.kba .kba-card__name { font-size: 1.6rem; line-height: 1.25; color: var(--kba-navy); margin: 0 0 .5rem; }
.kba .kba-card__name-text { text-decoration: none; }
.kba .kba-card__role { margin: 0 0 1rem; font-weight: 400; font-style: italic; color: var(--kba-navy); }
.kba .kba-card__bio :is(p, ul, ol, h3, h4, h5, h6, blockquote) + :is(p, ul, ol, h3, h4, h5, h6, blockquote) { margin-top: .85rem; }
.kba .kba-card__bio ul, .kba .kba-card__bio ol { padding-left: 1.4rem; list-style: revert; }
.kba .kba-card__bio { color: #575756; }
.kba .kba-card__bio a { color: var(--kba-navy); text-decoration: underline; }
.kba .kba-card__links { margin-top: 1rem; }
.kba .kba-linkedin { display: inline-block; line-height: 0; text-decoration: none; }
.kba .kba-linkedin__icon { display: block; width: 34px; height: 32px; max-width: none; }

@media (max-width: 700px) {
	.kba .kba-card { grid-template-columns: minmax(0, 1fr); }
	.kba .kba-card__photo { width: 100%; max-width: none; }
	.kba .kba-card__img { width: 100%; height: auto; border-radius: 0; }
	.kba .kba-card__name { font-size: 1.35rem; }
}

/* ---------- Mřížka přednášejících (HP) ---------- */
.kba .kba-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2rem 2.5rem; }
.kba .kba-grid__item { position: relative; min-width: 0; }
.kba .kba-gcard { position: relative; display: flex; flex-direction: column; gap: .2rem; background: #fff; color: var(--kba-navy); }
.kba .kba-gcard__photo { margin-bottom: .6rem; }
.kba .kba-gcard__img { display: block; width: 100%; height: auto; max-width: none; aspect-ratio: 2 / 3; object-fit: cover; object-position: center top; border-radius: 35px 0 35px 0; }
.kba .kba-gcard__name { margin: 0; font-size: 1.02rem; line-height: 1.25; font-weight: 700; }
.kba .kba-gcard__link { color: var(--kba-navy); text-decoration: none; }
.kba .kba-gcard__link::after { content: ''; position: absolute; inset: 0; }
.kba .kba-gcard__role { margin: 0; font-size: .85rem; line-height: 1.35; color: var(--kba-navy); }
.kba .kba-gcard:has(.kba-gcard__link:focus-visible) { outline: 3px solid var(--kba-yellow); outline-offset: 4px; }
.kba .kba-gcard__link:focus-visible { outline: 0; box-shadow: none; }
@media (min-width: 1060px) {
	.kba .kba-grid__item:not(:nth-child(5n)):not(:last-child)::after { content: ''; position: absolute; top: 25%; right: -1.25rem; height: 140px; width: 1px; background: rgba(28, 41, 114, .25); }
}
@media (min-width: 701px) and (max-width: 1059px) {
	.kba .kba-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem 1.5rem; }
}
@media (min-width: 340px) and (max-width: 700px) {
	.kba .kba-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
	.kba .kba-gcard__img { border-radius: 24px 0 24px 0; }
}
@media (max-width: 339px) {
	.kba .kba-grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
}

@media (prefers-reduced-motion: no-preference) {
	.kba .kba-btn, .kba .kba-gcard__link { transition: background-color .15s, color .15s, text-decoration-color .15s; }
}
@media print {
	.kba-dialog { display: none; }
}
