/**
 * WP Conference — layout-only styles.
 *
 * Deliberately minimal: no font-family, font-size, or color declarations
 * of our own. Everything here is spacing/layout so the active theme's
 * typography, link colors, and button styles (via the shared ".button"
 * class) carry through untouched, per "should follow existing styles
 * from the theme".
 */

/* Speaker & session card grids. The Speaker List block sets
   --wpconf-columns inline; everywhere else (archive, taxonomy pages)
   falls back to a responsive auto-fill grid. */
.wpconf-speaker-card-grid {
	display: grid;
	grid-template-columns: repeat(var(--wpconf-columns, auto-fill), minmax(11rem, 1fr));
	gap: 1.5em;
	margin: 1.5em 0;
}

.wpconf-speaker-card {
	display: flex;
	flex-direction: column;
	gap: 0.25em;
}

.wpconf-speaker-card__link {
	display: flex;
	flex-direction: column;
	gap: 0.25em;
	text-decoration: none;
	color: inherit;
}

.wpconf-speaker-card__photo {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 4px;
}

.wpconf-speaker-card__name {
	font-weight: 600;
}

.wpconf-speaker-card__org {
	opacity: 0.75;
}

/* Speaker single template */
.wpconf-speaker__header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5em;
	margin-bottom: 1.5em;
}

.wpconf-speaker__photo {
	max-width: 12rem;
	height: auto;
	border-radius: 4px;
}

.wpconf-speaker__content section,
.wpconf-session__content section {
	margin: 2em 0;
}

.wpconf-session-list,
.wpconf-link-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75em;
}

.wpconf-session-list__item {
	display: flex;
	flex-direction: column;
}

.wpconf-session-list__meta {
	opacity: 0.75;
	font-size: 0.9em;
}

/* Session single template */
.wpconf-session__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25em 1em;
	opacity: 0.85;
	margin: 0.5em 0;
}

.wpconf-session__speakers {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5em;
	margin: 1em 0;
}

.wpconf-session__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75em;
	margin: 1em 0;
}

.wpconf-button {
	display: inline-block;
	text-decoration: none;
	padding: 0.6em 1.25em;
	border-radius: 3px;
	border: 1px solid currentColor;
}

/* Schedule listings (page/block, archive, taxonomy archives) */
.wpconf-schedule {
	display: flex;
	flex-direction: column;
	gap: 1.5em;
	margin: 1.5em 0;
}

.wpconf-schedule__day-heading {
	margin-top: 1.5em;
}

.wpconf-session-card {
	display: flex;
	flex-direction: column;
	gap: 0.35em;
	padding-bottom: 1.5em;
	border-bottom: 1px solid rgba(127, 127, 127, 0.25);
}

.wpconf-session-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25em 1em;
	opacity: 0.75;
	font-size: 0.9em;
}

.wpconf-session-card__title {
	margin: 0;
}

.wpconf-session-card__speakers {
	font-size: 0.95em;
}

/* Embeds */
.wpconf-embed {
	position: relative;
	max-width: 100%;
}

.wpconf-embed iframe {
	max-width: 100%;
}

/* Conference Link block */
.wpconf-link {
	text-decoration: underline;
}

/* Editor placeholder */
.wpconf-link-placeholder {
	padding: 1em;
	border: 1px dashed rgba(127, 127, 127, 0.5);
	border-radius: 3px;
	opacity: 0.75;
}
