/* =========================================================================
   Akademija – prezentacije dogodkov (seznam, zaklep z geslom, pregledovalnik).
   Po vzoru FMCG; barve pridejo iz sekcije (--afs-*), zato deluje v vseh temah
   sekcij in v temnem videzu.
   ====================================================================== */

.afpz,
.afpz-single {
	--pz-fg: var(--afs-head, var(--af-ink));
	--pz-text: var(--afs-text, var(--af-text));
	--pz-muted: color-mix(in srgb, var(--pz-text) 66%, transparent);
	--pz-line: color-mix(in srgb, var(--pz-text) 16%, transparent);
	--pz-fill: color-mix(in srgb, var(--pz-text) 8%, transparent);
	--pz-soft: color-mix(in srgb, var(--pz-text) 5%, transparent);
	--pz-card: var(--afs-card, var(--af-paper));
	--pz-accent: var(--afs-accent, var(--af-red));
	--pz-bg: var(--af-page);
	--pz-inv-bg: var(--af-dark);
	--pz-inv-fg: #ffffff;
	--pz-inv-muted: rgba(255, 255, 255, .68);
	--pz-inv-line: rgba(255, 255, 255, .22);
	--pz-r: var(--af-radius);
	--pz-ease: cubic-bezier(.2, .7, .2, 1);
	text-align: left;
}
.afpz *, .afpz *::before, .afpz *::after, .afpz-single * { box-sizing: border-box; }
.afpz__intro { margin-bottom: 20px; }
.afpz__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 24px; margin-bottom: 24px; }
.afpz__title { margin: 0; font: 800 clamp(1.5rem, 2.6vw, 2rem)/1.1 var(--af-font-head); color: var(--pz-fg); }
.afpz-empty { margin: 0; color: var(--pz-muted); }
.afpz-empty a { color: var(--pz-accent); font-weight: 700; }
.afpz a { text-decoration: none; }


/* --------------------------------------------------------- iskalnik ---- */
.afpz-search {
	position: relative;
	display: flex;
	align-items: center;
	flex: 1 1 320px;
	max-width: 560px;
}
.afpz-search svg {
	position: absolute;
	left: 18px;
	width: 20px;
	height: 20px;
	fill: none;
	stroke: var(--pz-muted);
	stroke-width: 2;
	stroke-linecap: round;
	pointer-events: none;
}
.afpz-search input {
	width: 100%;
	font: inherit;
	font-size: 1rem;
	color: var(--pz-fg);
	padding: 15px 64px 15px 50px;
	border: 1px solid var(--pz-line);
	border-radius: var(--pz-r);
	background: var(--pz-card);
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .3s var(--pz-ease), box-shadow .3s var(--pz-ease);
}
.afpz-search input:focus { outline: none; border-color: var(--pz-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--pz-accent) 16%, transparent); }
.afpz-search__count {
	position: absolute;
	right: 18px;
	font-size: .8rem;
	font-weight: 700;
	color: var(--pz-muted);
	font-variant-numeric: tabular-nums;
}

/* ------------------------------------------- vrstica nad seznamom ---- */
.afpz-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 20px;
	margin: 0 0 clamp(28px, 4vw, 48px);
}

/* ---------------------------------------------------------- kartice ---- */
.afpz-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: clamp(18px, 2.4vw, 30px);
}
.afpz-card {
	display: flex;
	flex-direction: column;
	border-radius: var(--pz-r);
	overflow: hidden;
	background: var(--pz-card);
	border: 1px solid var(--pz-line);
	color: var(--pz-fg);
	text-decoration: none;
	transition: transform .4s var(--pz-ease), box-shadow .4s var(--pz-ease);
}
.afpz-card:hover { transform: translateY(-5px); box-shadow: 0 34px 64px -34px rgba(10, 10, 12, .5); }
.afpz-card:focus-visible { outline: 3px solid var(--af-red-t); outline-offset: 3px; }

.afpz-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--pz-fill);
	border-bottom: 1px solid var(--pz-line);
}
.afpz-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .7s var(--pz-ease); }
.afpz-card:hover .afpz-card__media img { transform: scale(1.04); }

/* Brez predogleda: kartica izgleda kot naslovni diapozitiv. */
.afpz-card__media--blank { background: #121212; border-bottom-color: transparent; }
.afpz-card__slide {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 8px;
	padding: 22px 24px;
	color: #fff;
	background:
		radial-gradient(90% 120% at 0% 100%, color-mix(in srgb, var(--af-red) 34%, transparent) 0%, transparent 60%),
		linear-gradient(160deg, #2b2b2b, #121212);
}
.afpz-card__bar { position: absolute; top: 22px; left: 24px; width: 34px; height: 4px; border-radius: 2px; background: var(--af-red); }
.afpz-card__slide strong {
	font-family: var(--af-font-head);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -.01em;
	text-transform: uppercase;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.afpz-card__slide small { font-size: .78rem; color: rgba(255, 255, 255, .62); }

.afpz-card__type {
	position: absolute;
	top: 14px;
	right: 14px;
	padding: .45em .8em;
	border-radius: 999px;
	background: rgba(10, 10, 12, .72);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
}
.afpz-card__lock {
	position: absolute;
	top: 12px;
	left: 12px;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--af-red);
	color: #fff;
}
.afpz-card__lock svg,
.afpz-lock__icon svg,
.afpz-logout svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.afpz-card--locked .afpz-card__bar { left: 58px; top: 27px; }

.afpz-card__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 20px 24px 24px; }
.afpz-card__title {
	font-family: var(--af-font-head);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.01em;
}
.afpz-card__info {
	font-size: .92rem;
	line-height: 1.5;
	color: var(--pz-fg);
	opacity: .82;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.afpz-card__event { font-size: .9rem; line-height: 1.45; color: var(--pz-muted); }
.afpz-card__when { font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--pz-muted); }
.afpz-card__go {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	margin-top: auto;
	padding-top: 8px;
	font-size: .85rem;
	font-weight: 700;
	color: var(--pz-accent);
}
.afpz-card__go svg { width: 1.05em; height: 1.05em; transition: transform .3s var(--pz-ease); }
.afpz-card:hover .afpz-card__go svg { transform: translateX(4px); }

.afpz-card__people { display: flex; align-items: center; gap: 10px; min-width: 0; }
.afpz-card__faces { display: flex; flex: none; }
.afpz-card__faces > * {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 2px solid var(--pz-card);
	object-fit: cover;
	background: var(--pz-fill);
}
.afpz-card__faces > * + * { margin-left: -10px; }
.afpz-card__faces span { display: grid; place-items: center; font-size: .7rem; font-weight: 700; color: var(--pz-muted); }
.afpz-card__names { font-size: .85rem; font-weight: 600; color: var(--pz-fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.afpz__foot { margin: clamp(30px, 4vw, 48px) 0 0; text-align: center; }

/* Ikona dokumenta - na kartici samo v pogledu "seznam", sicer pri prenosu. */
.afpz-card__doc { display: none; }
.afpz-doc {
	--doc: #6B6B73;
	position: relative;
	display: grid;
	grid-template-rows: 1fr auto;
	justify-items: center;
	align-items: center;
	flex: none;
	width: 56px;
	height: 70px;
	padding: 12px 4px 8px;
	border-radius: 6px;
	background: var(--doc);
	color: #fff;
	box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .18);
	transition: transform .4s var(--pz-ease);
}
.afpz-doc::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 16px;
	height: 16px;
	/* zavihani vogal: zgoraj desno barva podlage, spodaj svetlejši preklop */
	background: linear-gradient(225deg, var(--doc-under, var(--pz-bg)) 50%, rgba(255, 255, 255, .45) 50%);
	border-bottom-left-radius: 4px;
}
.afpz-doc svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.9; }
.afpz-doc b { font-size: .62rem; font-weight: 700; letter-spacing: .06em; line-height: 1; }
.afpz-doc i {
	position: absolute;
	left: -6px;
	bottom: -6px;
	display: grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #121212;
	color: #fff;
	box-shadow: 0 0 0 2px var(--pz-bg);
}
.afpz-doc i svg { width: 13px; height: 13px; stroke-width: 2.2; }
.afpz-file { --doc-under: var(--pz-card); }
.afpz-doc--pdf    { --doc: #E2231A; }
.afpz-doc--slides { --doc: #D35230; }
.afpz-doc--doc    { --doc: #2B579A; }
.afpz-doc--sheet  { --doc: #217346; }
.afpz-doc--zip    { --doc: #7A6A55; }
.afpz-doc--video  { --doc: #6E3FD8; }
.afpz-doc--image  { --doc: #0E8F82; }
.afpz-doc--link   { --doc: #2b2b2b; }

/* ------------------------------------------------- pogled: seznam ------ */
.afpz--seznam .afpz-grid { grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--pz-line); }
.afpz--seznam .afpz-card {
	flex-direction: row;
	align-items: flex-start;
	gap: clamp(16px, 2.4vw, 28px);
	padding: clamp(18px, 2.2vw, 26px) 4px;
	border: 0;
	border-bottom: 1px solid var(--pz-line);
	border-radius: 0;
	background: transparent;
}
.afpz--seznam .afpz-card:hover { transform: none; box-shadow: none; }
.afpz--seznam .afpz-card:hover .afpz-card__title { color: var(--pz-accent); }
.afpz--seznam .afpz-card__media { display: none; }
.afpz--seznam .afpz-card__doc { display: grid; }
.afpz--seznam .afpz-card:hover .afpz-doc { transform: translateY(-3px); }

.afpz--seznam .afpz-card__body { gap: 6px; padding: 0; }
.afpz--seznam .afpz-card__title { order: 1; font-size: clamp(1.2rem, 1.8vw, 1.45rem); transition: color .3s var(--pz-ease); }
.afpz--seznam .afpz-card__info { order: 2; max-width: 72ch; -webkit-line-clamp: 4; }
.afpz--seznam .afpz-card__people { order: 3; margin-top: 4px; }
.afpz--seznam .afpz-card__names { white-space: normal; }
.afpz--seznam .afpz-card__event { order: 4; font-size: .85rem; }
.afpz--seznam .afpz-card__when { order: 5; }
.afpz--seznam .afpz-card__go { display: none; }

/* Deli, ki jih uporablja samo pogled "program". */
.afpz-card__num,
.afpz-card__kind,
.afpz-card__aside { display: none; }

/* ------------------------------------------------ pogled: program ------ */
/* Uredniški izpis kot konferenčni program: velika obrisna številka, naslov
   v pisavi znamke, portreti govorcev in okrogel gumb. Ob premiku miške se
   vrstica napolni z ozadjem od leve proti desni. */
.afpz--program .afpz-grid { grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--pz-line); counter-reset: none; }
.afpz--program .afpz-card {
	position: relative;
	display: grid;
	grid-template-columns: clamp(64px, 9vw, 128px) minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(16px, 3vw, 44px);
	padding: clamp(24px, 3.4vw, 44px) clamp(8px, 1.6vw, 24px);
	border: 0;
	border-bottom: 1px solid var(--pz-line);
	border-radius: 0;
	background: transparent;
	isolation: isolate;
	overflow: hidden;
}
.afpz--program .afpz-card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--pz-soft);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .6s var(--pz-ease);
}
.afpz--program .afpz-card:hover { transform: none; box-shadow: none; }
.afpz--program .afpz-card:hover::before,
.afpz--program .afpz-card:focus-visible::before { transform: scaleX(1); }
.afpz--program .afpz-card__media,
.afpz--program .afpz-card__doc,
.afpz--program .afpz-card__go { display: none; }

.afpz--program .afpz-card__num {
	display: block;
	align-self: start;
	font-family: var(--af-font-head);
	font-size: clamp(2.6rem, 6vw, 5.2rem);
	font-weight: 700;
	line-height: .82;
	letter-spacing: -.04em;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--pz-accent);
	transition: color .4s var(--pz-ease);
	font-variant-numeric: tabular-nums;
}
.afpz--program .afpz-card:hover .afpz-card__num { color: var(--pz-accent); }

.afpz--program .afpz-card__body { display: flex; flex-direction: column; gap: 10px; padding: 0; min-width: 0; }
.afpz--program .afpz-card__title {
	order: 1;
	font-family: var(--af-font-head);
	font-size: clamp(1.55rem, 3.1vw, 2.7rem);
	font-weight: 700;
	line-height: .98;
	letter-spacing: -.02em;
	text-transform: uppercase;
	text-wrap: balance;
	transition: color .4s var(--pz-ease);
}
.afpz--program .afpz-card:hover .afpz-card__title { color: var(--pz-accent); }
.afpz--program .afpz-card__info { order: 2; max-width: 64ch; font-size: clamp(.95rem, 1.2vw, 1.05rem); -webkit-line-clamp: 3; }

/* Vrstica pod naslovom: govorci · termin · vrsta datoteke */
.afpz--program .afpz-card__event,
.afpz--program .afpz-card__when,
.afpz--program .afpz-card__kind {
	order: 4;
	display: inline;
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pz-muted);
}
.afpz--program .afpz-card__kind {
	align-self: flex-start;
	padding: .45em .8em;
	border: 1px solid var(--pz-line);
	border-radius: 999px;
	letter-spacing: .08em;
}

.afpz--program .afpz-card__aside { display: flex; align-items: center; gap: clamp(14px, 2vw, 26px); }
.afpz-card__portraits { display: flex; }
.afpz-card__portraits > * {
	width: clamp(52px, 5.6vw, 76px);
	height: clamp(52px, 5.6vw, 76px);
	border-radius: 50%;
	border: 3px solid var(--pz-bg);
	object-fit: cover;
	background: var(--pz-fill);
	filter: grayscale(1);
	transition: filter .5s var(--pz-ease), transform .5s var(--pz-ease);
}
.afpz-card__portraits > * + * { margin-left: -18px; }
.afpz-card__portraits span { display: grid; place-items: center; font-weight: 700; color: var(--pz-muted); }
.afpz--program .afpz-card:hover .afpz-card__portraits > * { filter: none; }
.afpz--program .afpz-card:hover .afpz-card__portraits > :first-child { transform: translateX(-4px); }

.afpz-card__arrow {
	display: grid;
	place-items: center;
	flex: none;
	width: clamp(46px, 4.4vw, 60px);
	height: clamp(46px, 4.4vw, 60px);
	border: 1.5px solid var(--pz-line);
	border-radius: 50%;
	color: var(--pz-fg);
	transition: background-color .4s var(--pz-ease), border-color .4s var(--pz-ease), color .4s var(--pz-ease), transform .4s var(--pz-ease);
}
.afpz-card__arrow svg { width: 20px; height: 20px; stroke-width: 2; }
.afpz--program .afpz-card:hover .afpz-card__arrow { background: var(--af-red); border-color: var(--af-red); color: #fff; transform: rotate(-45deg); }

/* Imena govorcev pod naslovom; portreti so desno. */
.afpz--program .afpz-card__people { display: flex; order: 3; }
.afpz--program .afpz-card__faces { display: none; }
.afpz--program .afpz-card__names { font-size: .95rem; font-weight: 700; white-space: normal; }

/* ----------------------------------------------- pogled: kompaktno ---- */
/* Najlažji izpis: ena vrstica na prezentacijo, brez slik in animacij. */
.afpz-rows { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--pz-line); }
.afpz-row { margin: 0; border-bottom: 1px solid var(--pz-line); }
.afpz-row a {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) minmax(0, .55fr) 76px;
	align-items: baseline;
	gap: 6px 18px;
	padding: 13px 10px;
	color: var(--pz-fg);
	text-decoration: none;
}
.afpz-row a:hover { background: var(--pz-soft); }
.afpz-row a:hover .afpz-row__title { color: var(--pz-accent); }
.afpz-row a:focus-visible { outline: 3px solid var(--af-red-t); outline-offset: -3px; }
.afpz-row__ext { font-size: .68rem; font-weight: 700; letter-spacing: .06em; color: var(--doc, var(--pz-muted)); }
.afpz-row__ext--pdf    { --doc: #E2231A; }
.afpz-row__ext--slides { --doc: #D35230; }
.afpz-row__ext--doc    { --doc: #2B579A; }
.afpz-row__ext--sheet  { --doc: #217346; }
.afpz-row__ext--video  { --doc: #6E3FD8; }
.afpz-row__ext--image  { --doc: #0E8F82; }
.afs-theme--temna .afpz-row__ext { filter: brightness(1.6); }
.afpz-row__title { font-weight: 600; line-height: 1.4; }
.afpz-row__info { display: block; margin-top: 2px; font-size: .85rem; font-weight: 400; line-height: 1.45; color: var(--pz-muted); }
.afpz-row__who { font-size: .88rem; line-height: 1.4; color: var(--pz-muted); }
.afpz-row__meta { font-size: .8rem; color: var(--pz-muted); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* ----------------------------------------------------------- geslo ----- */
/* Zaklenjeno: samo okno, sredi sekcije. */
.afpz--zaklenjeno { padding-block: clamp(10px, 3vw, 40px); }
.afpz--zaklenjeno .afpz-lock { margin-bottom: 0; }
.afpz--zaklenjeno .afpz-editor { max-width: 620px; margin-inline: auto; }

.afpz-lock {
	display: grid;
	justify-items: center;
	gap: 14px;
	max-width: 620px;
	margin: 0 auto clamp(40px, 6vw, 72px);
	padding: clamp(32px, 5vw, 56px) clamp(22px, 4vw, 48px);
	border-radius: var(--pz-r);
	background: var(--pz-inv-bg);
	color: var(--pz-inv-fg);
	text-align: center;
	box-shadow: 0 40px 80px -48px rgba(10, 10, 12, .6);
}
.afpz-lock__icon {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: var(--af-red);
	color: #fff;
}
.afpz-lock__icon svg { width: 26px; height: 26px; }
.afpz-lock .afpz-lock__title {
	margin: 4px 0 0;
	font-family: var(--af-font-head);
	font-size: clamp(1.7rem, 3.4vw, 2.4rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--pz-inv-fg);
}
.afpz-lock .afpz-lock__text { margin: 0; max-width: 46ch; font-size: 1rem; line-height: 1.6; color: var(--pz-inv-muted); }
.afpz-lock__error {
	margin: 0;
	padding: .6em 1em;
	border-radius: 10px;
	background: color-mix(in srgb, var(--af-red) 18%, transparent);
	color: var(--pz-inv-fg);
	font-size: .9rem;
	font-weight: 600;
}
.afpz-lock__form { display: flex; gap: 10px; width: 100%; max-width: 440px; margin-top: 8px; }
.afpz-lock__form input {
	flex: 1;
	min-width: 0;
	font: inherit;
	font-size: 1rem;
	color: var(--pz-inv-fg);
	padding: 14px 20px;
	border: 1px solid var(--pz-inv-line);
	border-radius: var(--pz-r);
	background: color-mix(in srgb, var(--pz-inv-fg) 6%, transparent);
	-webkit-appearance: none;
	appearance: none;
}
.afpz-lock__form input::placeholder { color: var(--pz-inv-muted); }
.afpz-lock__form input:focus { outline: none; border-color: var(--af-red-t); box-shadow: 0 0 0 4px color-mix(in srgb, var(--af-red) 22%, transparent); }

.afpz-logout {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pz-muted);
	text-decoration: none;
}
.afpz-logout:hover { color: var(--pz-accent); }
.afpz-logout svg { width: 14px; height: 14px; }

/* Obvestilo za prijavljenega urednika. */
.afpz-editor {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 0 0 clamp(24px, 3vw, 36px);
	padding: 12px 18px;
	border: 1px dashed color-mix(in srgb, var(--pz-accent) 55%, transparent);
	border-radius: var(--pz-r);
	background: color-mix(in srgb, var(--pz-accent) 7%, transparent);
	color: var(--pz-fg);
	font-size: .9rem;
	line-height: 1.5;
}
.afpz-editor svg { width: 18px; height: 18px; flex: none; color: var(--pz-accent); fill: none; stroke: currentColor; stroke-width: 2; }
.afpz-editor span { flex: 1 1 260px; }
.afpz-editor a { font-weight: 700; color: var(--pz-accent); text-decoration: underline; text-underline-offset: 3px; }

/* ------------------------------------------------- posamezna stran ----- */
.afpz-single__top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 24px; }

.afpz-v {
	max-width: 1100px;
	margin: 0 auto;
}
.afpz-v__bar {
	position: sticky;
	top: calc(var(--af-admin) + var(--af-navbar-h) + 8px);
	z-index: 5;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 16px;
	margin-bottom: 16px;
	padding: 10px 10px 10px 20px;
	border: 1px solid var(--pz-line);
	border-radius: var(--pz-r);
	background: color-mix(in srgb, var(--pz-card) 88%, transparent);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.afpz-v__count { font-size: .9rem; font-weight: 600; color: var(--pz-muted); font-variant-numeric: tabular-nums; }
.afpz-v__count b { color: var(--pz-fg); }
.afpz-v__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.afpz-v__actions .afs-btn svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.afpz-v__actions .afs-btn:hover svg { transform: none; }
.afpz-v__actions .afs-btn[disabled] { opacity: .45; pointer-events: none; }

.afpz-v__pages { display: grid; gap: clamp(12px, 1.6vw, 20px); }
.afpz-v__page {
	position: relative;
	width: 100%;
	aspect-ratio: var(--ratio, 16 / 9);
	border-radius: var(--pz-r);
	overflow: hidden;
	background: #fff;
	box-shadow: 0 1px 2px rgba(10, 10, 12, .08), 0 24px 48px -32px rgba(10, 10, 12, .45);
	cursor: zoom-in;
}
.afpz-v__page canvas { display: block; width: 100%; height: 100%; }
.afpz-v__page::after {
	content: attr(data-n);
	position: absolute;
	right: 10px;
	bottom: 10px;
	padding: .3em .65em;
	border-radius: 999px;
	background: rgba(10, 10, 12, .6);
	color: #fff;
	font-size: .7rem;
	font-weight: 700;
	opacity: 0;
	transition: opacity .3s var(--pz-ease);
}
.afpz-v__page:hover::after { opacity: 1; }
.afpz-v__page:not(.is-drawn) {
	background: linear-gradient(100deg, var(--pz-fill) 30%, var(--pz-soft) 50%, var(--pz-fill) 70%) 0 0 / 300% 100%;
	animation: afpz-shimmer 1.6s linear infinite;
}
@keyframes afpz-shimmer { to { background-position: -150% 0; } }

.afpz-v__loading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	aspect-ratio: 16 / 9;
	border-radius: 12px;
	background: var(--pz-fill);
	color: var(--pz-muted);
	font-weight: 600;
}
.afpz-v__loading span {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 2.5px solid var(--pz-line);
	border-top-color: var(--pz-accent);
	animation: afpz-spin .8s linear infinite;
}
@keyframes afpz-spin { to { transform: rotate(360deg); } }

.afpz-v__fail {
	margin: 0;
	padding: clamp(28px, 4vw, 48px);
	border: 1.5px dashed var(--pz-line);
	border-radius: var(--pz-r);
	text-align: center;
	color: var(--pz-muted);
}
.afpz-v__fail a { color: var(--pz-accent); font-weight: 700; }

.afpz-v--media { border-radius: var(--pz-r); overflow: hidden; background: #121212; }
.afpz-v--media video,
.afpz-v--media img { display: block; width: 100%; height: auto; max-height: 80vh; margin: 0 auto; object-fit: contain; }

/* Datoteka za prenos / zunanja povezava. */
.afpz-file {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 18px 24px;
	max-width: 1100px;
	margin: 20px auto 0;
	padding: clamp(20px, 2.6vw, 30px);
	border-radius: var(--pz-r);
	background: var(--pz-card);
	border: 1px solid var(--pz-line);
}
.afpz-file__text { display: grid; gap: 4px; }
.afpz-file__text strong { font-family: var(--af-font-head); font-size: 1.35rem; font-weight: 700; letter-spacing: -.01em; }
.afpz-file__text span { font-size: .92rem; line-height: 1.5; color: var(--pz-muted); }
.afpz-file__btns { display: flex; flex-wrap: wrap; gap: 10px; }

/* Opis in predavatelji pod prezentacijo. */
.afpz-info {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 340px);
	gap: clamp(28px, 4vw, 60px);
	align-items: start;
	max-width: 1100px;
	margin: clamp(36px, 5vw, 64px) auto 0;
}
.afpz-info--people { grid-template-columns: minmax(0, 1fr); }
.afpz-info--people .afpz-people { display: flex; flex-wrap: wrap; gap: 12px; }
.afpz-info--people .afpz-people__label { flex-basis: 100%; }
.afpz-info--people .afpz-people__item { flex: 1 1 280px; max-width: 380px; }
.afpz-people { display: grid; gap: 10px; }
.afpz-people__label { margin-bottom: .2em; }
.afpz-people__item {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	align-items: center;
	gap: 14px;
	padding: 12px;
	border-radius: var(--pz-r);
	background: var(--pz-card);
	border: 1px solid var(--pz-line);
	color: var(--pz-fg);
	text-decoration: none;
	transition: border-color .3s var(--pz-ease), transform .3s var(--pz-ease);
}
.afpz-people__item:hover { border-color: var(--pz-accent); transform: translateY(-2px); }
.afpz-people__item img,
.afpz-people__initial { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: var(--pz-fill); }
.afpz-people__initial { display: grid; place-items: center; font-weight: 700; color: var(--pz-muted); }
.afpz-people__item span { display: grid; gap: 2px; }
.afpz-people__item strong { font-size: 1rem; }
.afpz-people__item small { font-size: .82rem; line-height: 1.4; color: var(--pz-muted); }

/* ------------------------------------------- celozaslonski ogled ------- */
/* Živi neposredno v <body>, zato ima svoje barve. */
.afpz-show {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	background: #050506;
	color: #fff;
	font-family: var(--af-font);
	touch-action: pan-y pinch-zoom;
	-webkit-user-select: none;
	user-select: none;
}
.afpz-show[hidden] { display: none; }
.afpz-show canvas { display: block; max-width: 100vw; max-height: 100vh; max-height: 100dvh; box-shadow: 0 0 80px rgba(0, 0, 0, .6); }
.afpz-show__ui {
	position: absolute;
	left: 50%;
	bottom: max(16px, env(safe-area-inset-bottom));
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px;
	border-radius: 999px;
	background: rgba(20, 20, 24, .78);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	transition: opacity .4s ease;
}
.afpz-show.is-idle .afpz-show__ui,
.afpz-show.is-idle .afpz-show__close { opacity: 0; }
.afpz-show button {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #fff;
	cursor: pointer;
}
.afpz-show button:hover { background: rgba(255, 255, 255, .12); }
.afpz-show button:focus-visible { outline: 2px solid #FF4433; outline-offset: 2px; }
.afpz-show button[disabled] { opacity: .3; cursor: default; background: transparent; }
.afpz-show svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.afpz-show__count { min-width: 74px; text-align: center; font-size: .9rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.afpz-show__close {
	position: absolute !important;
	top: max(14px, env(safe-area-inset-top));
	right: 14px;
	background: rgba(20, 20, 24, .78) !important;
	transition: opacity .4s ease;
}
html.afpz-show-open, html.afpz-show-open body { overflow: hidden; }

/* ------------------------------------------------------- odzivnost ----- */
@media (max-width: 980px) {
	.afpz-info { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.afpz-grid { grid-template-columns: 1fr; }
				.afpz--seznam .afpz-card__doc { width: 46px; height: 58px; padding-top: 10px; }
	.afpz-row a { grid-template-columns: 40px minmax(0, 1fr) auto; }
	.afpz-row__who { grid-column: 2 / -1; grid-row: 2; }
	.afpz--program .afpz-card { grid-template-columns: 52px minmax(0, 1fr); align-items: start; }
	.afpz--program .afpz-card__aside { display: none; }
	.afpz-card__portraits > * { width: 44px; height: 44px; border-width: 2px; filter: none; }
	.afpz-card__portraits > * + * { margin-left: -12px; }
	.afpz-lock__form { flex-direction: column; }
	.afpz-lock__form .afs-btn { justify-content: center; }
	.afpz-v__bar { border-radius: var(--pz-r); padding: 8px 8px 8px 14px; }
	.afpz-v__actions .afs-btn span { display: none; }
	.afpz-v__actions .afs-btn { padding: .8em; }
	.afpz-v__page { border-radius: 8px; }
	.afpz-file { grid-template-columns: auto minmax(0, 1fr); }
	.afpz-file__btns { grid-column: 1 / -1; }
	.afpz-file__btns .afs-btn { flex: 1 1 100%; justify-content: center; }
	.afpz-show__count { min-width: 60px; }
}
@media (prefers-reduced-motion: reduce) {
	.afpz-v__page:not(.is-drawn) { animation: none; }
}

/* ------------------------------------- zunanja povezava in opomba ------ */
/* Prezentacija, ki je samo povezava na zunanjo stran: oznaka pod naslovom. */
.afpz-card__extlink {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: .4em;
	padding: .35em .75em;
	border: 1px solid var(--pz-line);
	border-radius: 999px;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--pz-muted);
}
.afpz-card__extlink svg { width: 1.1em; height: 1.1em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.afpz--seznam .afpz-card__extlink { order: 2; }
/* V pogledu "program" je oznaka že v vrstici z vrsto datoteke. */
.afpz--program .afpz-card__extlink { display: none; }

.afpz-note {
	max-width: 72ch;
	margin: clamp(28px, 4vw, 44px) auto 0;
	padding: 14px 18px;
	border: 1px solid var(--pz-line);
	border-radius: 10px;
	font-size: .9rem;
	line-height: 1.55;
	text-align: center;
	color: var(--pz-muted);
}

/* ------------------------------------------- Akademija: posamezna stran - */
.afpz-single .af-srch__kicker a { color: inherit; text-decoration: none; }
.afpz-single .af-srch__kicker a:hover { text-decoration: underline; }
.afpz-single__lead { max-width: 70ch; margin: 12px 0 0; font-size: 1.05rem; line-height: 1.55; color: var(--af-soft); }
.afpz-single__meta { margin: 10px 0 0; font-size: .82rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--af-muted); }
.afpz-single__view { --afs-pad-t: 32px; background: var(--af-bg); }
.afpz-single__others { --afs-pad-t: 56px; }
.afpz-single__top { margin-bottom: 18px; }
.afpz-back { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--af-red-t) !important; text-decoration: none; }
.afpz-back::before { content: "←"; margin-right: 8px; }
.afpz-v__btn { padding: 9px 14px; font-size: 14px; }
.afpz-v__btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.afpz .afs-btn svg, .afpz-file .afs-btn svg { width: 1.05em; height: 1.05em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.afpz-people__label { margin: 0 0 .2em; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--pz-accent); }
.afpz-card svg, .afpz-row svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.afpz-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -22px rgba(0, 0, 0, .45); }
.afpz-card:focus-visible, .afpz-row a:focus-visible { outline: 2px solid var(--af-red-t); outline-offset: 2px; }
/* Ozadje pod zavihanim vogalom ikone je barva kartice. */
.afpz--seznam .afpz-doc { --doc-under: var(--pz-card); }
.afpz--seznam .afpz-card { --pz-card: transparent; }
.afpz--seznam .afpz-doc::before { background: linear-gradient(225deg, rgba(0, 0, 0, .18) 50%, rgba(255, 255, 255, .45) 50%); }
.afpz--program .afpz-card__portraits > * { border-color: transparent; }

/* Temen videz – izjeme */
html[data-theme="dark"] .afpz-card__media--blank { background: #0b0b0b; }
html[data-theme="dark"] .afpz-lock { --pz-inv-bg: #2b2b2b; }

/* Vsebnik sekcije poravna otroke na sredino – seznam in pregledovalnik naj
   zavzameta vso širino. */
.afpz,
.afpz-v,
.afpz-file,
.afpz-info,
.afpz-editor,
.afpz-note,
.afpz-single__top { width: 100%; }
.afpz-lock { width: 100%; }

/* Javne prezentacije pri zaklenjenem dogodku */
.afpz__public { margin: 8px 0 16px; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--pz-accent); }
.afpz-card__public { position: absolute; top: 14px; left: 14px; padding: .45em .8em; background: #1e7b3c; color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
