/* =============================================================
   Purplebunny Staff Slider  |  slider.css  v1.2.0
   NOTE: .pbss-card background and nav/accent colours are set
   by wp_add_inline_style() which always outputs AFTER this
   file. Do not add a background shorthand here — it would
   lose to the inline block.
   ============================================================= */

:root {
	/* Fallback tokens — overridden by wp_add_inline_style() */
	--pbss-accent:          #f97316;
	--pbss-nav-bg:          #ffffff;
	--pbss-nav-color:       #7e22ce;
	--pbss-nav-hover-bg:    #f97316;
	--pbss-nav-hover-color: #ffffff;
	--pbss-dot:             #d8b4fe;
	--pbss-dot-active:      #f97316;
	--pbss-name-color:      #ffffff;
	--pbss-bio-color:       rgba(255,255,255,0.88);
	--pbss-gap:             24px;
	--pbss-radius:          18px;
	--pbss-pad:             32px 20px 28px;
	--pbss-transition:      0.45s cubic-bezier(0.25,0.46,0.45,0.94);
}

/* ── Outer flex row — nav | track | nav ─────────────────── */
.pbss-outer {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	box-sizing: border-box;
	padding-bottom: 44px; /* room for dots */
	position: relative;
}

/* ── Inner wrapper (holds track + dots) ─────────────────── */
.pbss-wrapper {
	flex: 1;
	min-width: 0;
	overflow: hidden;
}

/* ── Track ───────────────────────────────────────────────── */
.pbss-track-outer {
	overflow: hidden;
	padding: 16px 4px;
}

.pbss-track {
	display: flex;
	gap: var(--pbss-gap);
	transition: transform var(--pbss-transition);
	will-change: transform;
}

/* ── Card ────────────────────────────────────────────────── */
.pbss-card {
	/* background set by wp_add_inline_style — do NOT add here */
	border-radius: var(--pbss-radius);
	padding: var(--pbss-pad);
	flex: 0 0 calc((100% - var(--pbss-gap) * 2) / 3);
	min-width: 0;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	box-shadow:
		0 4px 6px -1px rgba(0,0,0,.12),
		0 12px 32px -4px rgba(0,0,0,.18);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pbss-card:hover {
	transform: translateY(-4px);
	box-shadow:
		0 8px 16px -2px rgba(0,0,0,.18),
		0 24px 48px -8px rgba(0,0,0,.22);
}

/* ── Photo ───────────────────────────────────────────────── */
.pbss-photo {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	overflow: hidden;
	margin: 0 auto 20px;
	flex-shrink: 0;
	align-self: center;
	border: 3px solid rgba(255,255,255,0.25);
	background: rgba(255,255,255,0.12);
}

.pbss-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pbss-photo-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pbss-photo-placeholder svg {
	width: 40px;
	height: 40px;
	color: rgba(255,255,255,0.5);
}

/* ── Text ────────────────────────────────────────────────── */
.pbss-name {
	font-size: 27px;
	font-family: "Libre Franklin";
	font-weight: 700;
	color: var(--pbss-name-color);
	margin: 0 0 6px;
	line-height: 1.25;
	text-align: center;
	width: 100%;
}

.pbss-role {
	font-size: 23px;
	font-family: "Libre Franklin";
	font-weight: 600;
	color: var(--pbss-accent);
	margin: 0 0 14px;
	text-align: center;
	width: 100%;
	letter-spacing: 0.02em;
}

/* ── Bio + Read More ─────────────────────────────────────── */
.pbss-bio-wrap {
	width: 100%;
	flex: 1;
}

/* Collapsed state — clamp to approx 8 lines via max-height */
.pbss-bio-wrap.pbss-has-more .pbss-bio-inner {
	max-height: 470px;      /* ~8 lines at 0.85rem/1.65 lh */
	overflow: hidden;
	transition: max-height 0.42s cubic-bezier(0.4,0,0.2,1);
}

/* Expanded state */
.pbss-bio-wrap.pbss-has-more.is-expanded .pbss-bio-inner {
	max-height: 600px;      /* large enough for any bio */
}

.pbss-bio {
	font-size: 24px;
	font-family: "Libre Franklin";
	line-height: 1.65;
	color: var(--pbss-bio-color);
	margin: 0;
}

/* Read more button */
.pbss-read-more {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: none;
	border: none;
	padding: 6px 0 0;
	cursor: pointer;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--pbss-accent); /* also overridden by inline style */
	line-height: 1;
	transition: opacity 0.2s;
}

.pbss-read-more:hover { opacity: 0.75; }

/* Chevron rotates when expanded */
.pbss-chevron {
	display: inline-block;
	transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
	flex-shrink: 0;
}

.pbss-bio-wrap.is-expanded .pbss-chevron {
	transform: rotate(180deg);
}

/* ── Social links ────────────────────────────────────────── */
.pbss-links {
	display: flex;
	gap: 10px;
	margin-top: 18px;
}

.pbss-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(255,255,255,0.15);
	color: #ffffff;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}

.pbss-link:hover {
	background: var(--pbss-accent);
	transform: scale(1.12);
}

/* ── Navigation buttons (sit outside the track) ──────────── */
.pbss-nav {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	/* Colors set by wp_add_inline_style */
	background: var(--pbss-nav-bg);
	color: var(--pbss-nav-color);
	box-shadow: 0 2px 10px rgba(0,0,0,.16);
	transition: background 0.22s ease, color 0.22s ease, transform 0.22s ease, opacity 0.22s ease;
	align-self: center;
}

.pbss-nav:hover {
	background: var(--pbss-nav-hover-bg);
	color: var(--pbss-nav-hover-color);
	transform: scale(1.08);
}

.pbss-nav:disabled,
.pbss-nav.pbss-hidden {
	opacity: 0.28;
	cursor: default;
	pointer-events: none;
}

/* ── Dots ────────────────────────────────────────────────── */
.pbss-dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
}

.pbss-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: none;
	padding: 0;
	background: var(--pbss-dot);
	cursor: pointer;
	transition: background 0.25s ease, transform 0.25s ease, width 0.25s ease;
}

.pbss-dot.is-active {
	background: var(--pbss-dot-active);
	transform: scale(1.15);
	width: 26px;
	border-radius: 5px;
}

/* ── Empty state ─────────────────────────────────────────── */
.pbss-empty {
	text-align: center;
	color: #9ca3af;
	padding: 40px;
	font-style: italic;
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 900px) {
	.pbss-card { flex-basis: calc((100% - var(--pbss-gap)) / 2) !important; }
}

@media (max-width: 580px) {
	.pbss-outer  { gap: 6px; }
	.pbss-nav    { width: 36px; height: 36px; }
	.pbss-card   { flex-basis: 88% !important; }
}
