/* Convention Speakers — colors taken from the convention "About the Speaker" cards */
.cs-speakers,
.cs-single {
	--cs-peach: #fbc8a8;
	--cs-peach-soft: #fde6d6;
	--cs-pink: #c86c9c;
	--cs-purple: #66307a;
	--cs-grey: #8a8580;
	--cs-ink: #2b2228;
	--cs-radius: 14px;
	--cs-cols: 3;
	box-sizing: border-box;
}
.cs-speakers *,
.cs-single * { box-sizing: border-box; }

.cs-speakers { max-width: 1200px; margin: 0 auto; }

.cs-speakers__heading {
	text-align: center;
	color: var(--cs-purple);
	margin: 0 0 1.5rem;
}

/* ---------- Grid of speaker cards ---------- */
.cs-grid {
	display: grid;
	grid-template-columns: repeat(var(--cs-cols), minmax(0, 1fr));
	gap: 1.75rem;
}
@media (max-width: 960px) { .cs-grid { grid-template-columns: repeat(min(var(--cs-cols), 2), minmax(0, 1fr)); } }
@media (max-width: 560px) { .cs-grid { grid-template-columns: 1fr; gap: 1.25rem; } }

.cs-card {
	display: flex;
	flex-direction: column;
	background: var(--cs-peach);
	border: 6px solid var(--cs-pink);
	border-radius: var(--cs-radius);
	overflow: hidden;
	text-decoration: none !important;
	color: var(--cs-ink);
	box-shadow: 0 6px 18px rgba(102, 48, 122, 0.12);
	transition: transform .2s ease, box-shadow .2s ease;
}
.cs-card:hover,
.cs-card:focus-visible {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(102, 48, 122, 0.22);
}
.cs-card:focus-visible { outline: 3px solid var(--cs-purple); outline-offset: 3px; }

.cs-card__photo {
	display: block;
	aspect-ratio: 4 / 5;
	background: var(--cs-peach-soft);
	overflow: hidden;
	border-bottom: 6px solid var(--cs-pink);
}
.cs-card__photo img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	object-position: center 25%;
	transition: transform .4s ease;
}
.cs-card:hover .cs-card__photo img { transform: scale(1.04); }

.cs-card__initial {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 5rem;
	font-weight: 700;
	color: var(--cs-pink);
}

.cs-card__body {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	padding: 1.1rem 1.25rem 1.3rem;
	flex: 1;
	text-align: center;
}
.cs-card__name {
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--cs-purple);
}
.cs-card__session {
	font-style: italic;
	line-height: 1.35;
	color: var(--cs-ink);
}
.cs-card__cta {
	margin-top: auto;
	padding-top: .6rem;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cs-grey);
}
.cs-card:hover .cs-card__cta { color: var(--cs-purple); }

/* ---------- About section (anchor mode) + single page ---------- */
.cs-about-list { margin-top: 3.5rem; display: grid; gap: 3.5rem; }
.cs-about { scroll-margin-top: 100px; }
.cs-about__name { color: var(--cs-purple); text-align: center; margin: 0 0 1rem; }

.cs-about__image { margin: 0 auto; max-width: 1000px; }
.cs-about__image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 6px;
	box-shadow: 0 8px 24px rgba(102, 48, 122, 0.15);
}
.cs-about__bio { max-width: 760px; margin: 1.5rem auto 0; }

.cs-back {
	display: block;
	width: fit-content;
	margin: 1.25rem auto 0;
	font-weight: 700;
	color: var(--cs-purple);
	text-decoration: none;
}
.cs-back:hover { text-decoration: underline; }

/* ---------- Single speaker navigation ---------- */
.cs-single__nav {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: .75rem;
	max-width: 1000px;
	margin: 2rem auto 0;
}
.cs-single__nav > :first-child { justify-self: start; }
.cs-single__nav > :last-child  { justify-self: end; }

.cs-pill {
	display: inline-block;
	padding: .55rem 1.1rem;
	border: 2px solid var(--cs-pink);
	border-radius: 999px;
	background: var(--cs-peach-soft);
	color: var(--cs-purple) !important;
	font-weight: 600;
	text-decoration: none !important;
	transition: background .2s ease, color .2s ease;
}
.cs-pill:hover { background: var(--cs-pink); color: #fff !important; }
.cs-pill--solid { background: var(--cs-purple); border-color: var(--cs-purple); color: #fff !important; }
.cs-pill--solid:hover { background: var(--cs-pink); border-color: var(--cs-pink); }

@media (max-width: 560px) {
	.cs-single__nav { grid-template-columns: 1fr; justify-items: center; }
	.cs-single__nav > :first-child,
	.cs-single__nav > :last-child { justify-self: center; }
	.cs-single__nav > span:empty { display: none; }
}

.cs-empty { text-align: center; font-style: italic; color: var(--cs-grey); }

@media (prefers-reduced-motion: reduce) {
	.cs-card, .cs-card__photo img { transition: none; }
	.cs-card:hover { transform: none; }
	.cs-card:hover .cs-card__photo img { transform: none; }
}

/* ---------- Theme clean-up on single speaker pages ---------- */
/* No date / post meta under the speaker's name */
.single-cs_speaker .post_attribute,
.single-cs_speaker .entry-meta,
.single-cs_speaker .posted-on,
.single-cs_speaker .post-meta,
.single-cs_speaker time.entry-date { display: none !important; }

/* Theme's own prev/next tabs follow publish date and repeat our A–Z buttons */
.single-cs_speaker .post_navigation { display: none !important; }

/* Safety net: if the theme still paints a photo banner, keep it as a plain title bar */
.single-cs_speaker #page_caption.hasbg {
	background: #fde6d6 !important;
	background-image: none !important;
	height: auto !important;
	min-height: 0 !important;
	padding: 2.5rem 0 1.5rem !important;
}
.single-cs_speaker #page_caption.hasbg .page_title_wrapper,
.single-cs_speaker #page_caption.hasbg .page_title_content { position: static !important; }

.single-cs_speaker #page_caption.hasbg::before,
.single-cs_speaker #page_caption.hasbg::after,
.single-cs_speaker #page_caption.hasbg .background_overlay { display: none !important; }
.single-cs_speaker #page_caption h1 { color: #66307a !important; text-shadow: none !important; }
