/* ==========================================================================
   Conphere Events — styles
   Palette matches lenexto.com (dark surfaces, red accent). Override any
   variable below on a section id, e.g.
     #conphere-speakers { --cp-accent: #ffb000; }
   ========================================================================== */

.conphere-section {
	--cp-accent:      #e5232a;
	--cp-surface:     #16121a;
	--cp-surface-2:   #241d29;
	--cp-border:      rgba(255, 255, 255, 0.08);
	--cp-text:        #ffffff;
	--cp-text-muted:  rgba(255, 255, 255, 0.62);
	--cp-text-faint:  rgba(255, 255, 255, 0.45);
	--cp-radius:      10px;
	--cp-gap:         32px;

	margin: 0 0 48px;
	color: var(--cp-text);
}

.conphere-section-title {
	margin: 0 0 24px;
	font-size: 28px;
	font-weight: 700;
	color: var(--cp-text);
	position: relative;
	padding-bottom: 12px;
}
.conphere-section-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 48px;
	height: 3px;
	background: var(--cp-accent);
}

.conphere-grid {
	display: grid;
	grid-template-columns: repeat(var(--conphere-cols, 3), minmax(0, 1fr));
	gap: var(--cp-gap);
	margin: 0;
	padding: 0;
}

.conphere-empty {
	color: var(--cp-text-muted);
	font-size: 16px;
	margin: 0;
}
.conphere-error {
	padding: 12px 16px;
	border-radius: 8px;
	background: #fdecea;
	color: #8a1c1c;
}

/* --------------------------------------------------------------------------
   EVENTS  — #conphere-events  .conphere-event
   Banner card with red date badge (carried over from v2.3)
   -------------------------------------------------------------------------- */

.conphere-section--events { --cp-gap: 32px; }

.conphere-event {
	display: flex;
	flex-direction: column;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: var(--cp-radius);
	overflow: hidden;
	transition: border-color .25s ease, transform .25s ease;
}
.conphere-event:hover {
	border-color: rgba(229, 35, 42, 0.55);
	transform: translateY(-4px);
}
.conphere-event__media {
	position: relative;
	aspect-ratio: 16 / 9;
	background: var(--cp-surface-2);
	overflow: hidden;
}
.conphere-event__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.conphere-event__placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	text-align: center;
	color: rgba(255, 255, 255, 0.28);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.conphere-event__date {
	position: absolute;
	top: 14px;
	left: 14px;
	background: var(--cp-accent);
	color: #fff;
	border-radius: 6px;
	padding: 8px 12px;
	text-align: center;
	line-height: 1.1;
}
.conphere-event__day   { display: block; font-size: 22px; font-weight: 700; }
.conphere-event__month { display: block; font-size: 11px; font-weight: 600; opacity: .9; }

.conphere-event__body {
	padding: 22px 24px 26px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.conphere-event__title {
	margin: 0 0 10px;
	font-size: 21px;
	line-height: 1.3;
	font-weight: 600;
	color: var(--cp-text);
}
.conphere-event__title a { color: inherit; text-decoration: none; }
.conphere-event__title a:hover { color: var(--cp-accent); }
.conphere-event__overview {
	margin: 0 0 20px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--cp-text-muted);
	flex: 1;
}
.conphere-event__meta {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 18px;
	border-top: 1px solid var(--cp-border);
	font-size: 14px;
	color: rgba(255, 255, 255, 0.75);
}
.conphere-event__meta span { display: flex; gap: 8px; }
.conphere-event__meta strong {
	color: var(--cp-text-faint);
	font-weight: 500;
	min-width: 70px;
}

/* --------------------------------------------------------------------------
   SPEAKERS  — #conphere-speakers  .conphere-tabs  .conphere-speaker
   Filter tabs by track; white photo panel, dark body, crop-mark corners
   -------------------------------------------------------------------------- */

.conphere-section--speakers {
	--cp-gap: 26px;
	--cp-surface: #0d1024;          /* navy, matches the speakers page background */
	--cp-photo-bg: #ffffff;
	--cp-role: #e8563f;             /* coral for the role line */
	--cp-mark: rgba(255, 255, 255, 0.45);
	--cp-heading-font: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
	--cp-body-font: "Barlow", "Helvetica Neue", Arial, sans-serif;
	font-family: var(--cp-body-font);
}

/* Tabs */
.conphere-tabs {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 40px;
	border-bottom: 1px solid var(--cp-border);
}
.conphere-tab {
	appearance: none;
	background: transparent;
	border: 0;
	border-right: 1px solid var(--cp-border);
	color: rgba(255, 255, 255, 0.85);
	cursor: pointer;
	font-family: var(--cp-heading-font);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	line-height: 1;
	padding: 26px 30px;
	margin: 0;
	transition: background .2s ease, color .2s ease;
}
.conphere-tab:last-child { border-right: 0; }
.conphere-tab:hover { color: #fff; }
.conphere-tab:focus-visible { outline: 2px solid var(--cp-accent); outline-offset: -2px; }
.conphere-tab.is-active {
	background: var(--cp-accent);
	color: #fff;
	border-radius: 6px;
	border-right-color: transparent;
}
.conphere-tab__count {
	font-family: var(--cp-body-font);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .08em;
	margin-left: 12px;
	opacity: .8;
}

/* Card */
.conphere-speaker {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--cp-surface);
}
.conphere-speaker.is-hidden { display: none; }

/* Crop-mark corners */
.conphere-speaker::before,
.conphere-speaker::after,
.conphere-speaker__body::before,
.conphere-speaker__body::after {
	content: "";
	position: absolute;
	width: 14px;
	height: 14px;
	background:
		linear-gradient(var(--cp-mark), var(--cp-mark)) center / 1px 100% no-repeat,
		linear-gradient(var(--cp-mark), var(--cp-mark)) center / 100% 1px no-repeat;
	pointer-events: none;
}
.conphere-speaker::before        { top: -7px;    left: -7px; }
.conphere-speaker::after         { top: -7px;    right: -7px; }
.conphere-speaker__body::before  { bottom: -7px; left: -7px; }
.conphere-speaker__body::after   { bottom: -7px; right: -7px; }

.conphere-speaker__photo {
	position: relative;
	width: 100%;
	height: 400px;                 /* equal height on desktop */
	background: var(--cp-photo-bg);
	overflow: hidden;
}
.conphere-speaker__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;             /* fill the box, crop overflow */
	object-position: top center;   /* keep the head, crop from the bottom */
	border-radius: 0;              /* square, no rounding */
	display: block;
}
.conphere-speaker__initials {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #e9e9ee;
	color: #0d1024;
	font-family: var(--cp-heading-font);
	font-size: 64px;
	font-weight: 700;
}
.conphere-speaker__body {
	position: static; /* corner marks are positioned against the card */
	padding: 28px 28px 32px;
	flex: 1;
}
.conphere-speaker__name {
	margin: 0 0 8px;
	font-family: var(--cp-heading-font);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: .01em;
	text-transform: uppercase;
	color: #fff;
}
.conphere-speaker__role {
	margin: 0 0 12px;
	font-family: var(--cp-heading-font);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--cp-role);
}
.conphere-speaker__company {
	margin: 0;
	font-size: 17px;
	color: rgba(255, 255, 255, 0.8);
}
.conphere-speaker__bio {
	margin: 16px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--cp-text-muted);
}
.conphere-speaker__events {
	margin: 12px 0 0;
	font-size: 12px;
	color: var(--cp-text-faint);
}

/* Cards hidden until "Load more" */
.conphere-speaker[hidden] { display: none !important; }

/* Load more */
.conphere-loadmore-wrap {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}
.conphere-loadmore {
	appearance: none;
	cursor: pointer;
	font-family: var(--cp-heading-font);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #fff;
	background: var(--cp-accent);
	border: 0;
	border-radius: 6px;
	padding: 16px 44px;
	transition: filter .2s ease, transform .1s ease;
}
.conphere-loadmore:hover { filter: brightness(1.08); }
.conphere-loadmore:active { transform: translateY(1px); }
.conphere-loadmore:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* --------------------------------------------------------------------------
   SPONSORS  — #conphere-sponsors  .conphere-sponsor-tier  .conphere-sponsor
   Tiered groups, white logo tiles on dark
   -------------------------------------------------------------------------- */

.conphere-section--sponsors { --cp-gap: 24px; }

.conphere-sponsor-tier { margin: 0 0 40px; }
.conphere-sponsor-tier:last-child { margin-bottom: 0; }
.conphere-sponsor-tier__title {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 20px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cp-text-muted);
}
.conphere-sponsor-tier__title::before {
	content: "";
	width: 28px;
	height: 3px;
	background: var(--cp-accent);
	flex: none;
}
.conphere-sponsor-tier__title::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--cp-border);
}

.conphere-sponsor {
	text-align: center;
}
.conphere-sponsor__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 110px;
	padding: 20px;
	background: #ffffff;
	border-radius: var(--cp-radius);
	transition: transform .25s ease, box-shadow .25s ease;
}
.conphere-sponsor:hover .conphere-sponsor__logo {
	transform: scale(1.03);
	box-shadow: 0 0 0 2px var(--cp-accent);
}
.conphere-sponsor__logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.conphere-sponsor__fallback {
	color: #16121a;
	font-weight: 700;
	font-size: 15px;
}
.conphere-sponsor__name {
	margin: 12px 0 2px;
	font-size: 15px;
	font-weight: 600;
	color: var(--cp-text);
}
.conphere-sponsor__type {
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cp-accent);
}
.conphere-sponsor__desc {
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--cp-text-muted);
}

/* Optional tier emphasis — larger tiles for the top tier */
.conphere-sponsor-tier--platinum .conphere-sponsor__logo,
.conphere-sponsor-tier--title .conphere-sponsor__logo { height: 150px; }
.conphere-sponsor-tier--gold .conphere-sponsor__logo { height: 130px; }

/* --------------------------------------------------------------------------
   EXHIBITORS  — #conphere-exhibitors  .conphere-exhibitor
   Compact dark logo tiles
   -------------------------------------------------------------------------- */

.conphere-section--exhibitors { --cp-gap: 16px; }

.conphere-exhibitor {
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 8px;
	padding: 18px 14px;
	text-align: center;
	transition: border-color .25s ease, background .25s ease;
}
.conphere-exhibitor:hover {
	border-color: var(--cp-accent);
	background: var(--cp-surface-2);
}
.conphere-exhibitor__logo {
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 12px;
}
.conphere-exhibitor__logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: .85;
	transition: filter .25s ease, opacity .25s ease;
}
.conphere-exhibitor:hover .conphere-exhibitor__logo img {
	filter: none;
	opacity: 1;
}
.conphere-exhibitor__fallback {
	font-size: 22px;
	font-weight: 700;
	color: var(--cp-text-faint);
}
.conphere-exhibitor__name {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-text-muted);
}
.conphere-exhibitor__desc {
	margin: 8px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--cp-text-faint);
}

/* --------------------------------------------------------------------------
   PARTNERS  — #conphere-partners  .conphere-partner
   Horizontal card: logo left, text right
   -------------------------------------------------------------------------- */

.conphere-section--partners { --cp-gap: 20px; }

.conphere-partner {
	display: flex;
	gap: 22px;
	align-items: flex-start;
	padding: 22px;
	background: var(--cp-surface);
	border-left: 4px solid var(--cp-accent);
	border-radius: 0 var(--cp-radius) var(--cp-radius) 0;
	transition: background .25s ease;
}
.conphere-partner:hover { background: var(--cp-surface-2); }
.conphere-partner__logo {
	flex: none;
	width: 96px;
	height: 96px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px;
	background: #ffffff;
	border-radius: 8px;
}
.conphere-partner__logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.conphere-partner__fallback {
	font-size: 26px;
	font-weight: 700;
	color: #16121a;
}
.conphere-partner__body { flex: 1; min-width: 0; }
.conphere-partner__name {
	margin: 0 0 8px;
	font-size: 18px;
	font-weight: 700;
	color: var(--cp-text);
}
.conphere-partner__desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--cp-text-muted);
}
.conphere-partner__contact {
	margin: 12px 0 0;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.75);
	display: flex;
	gap: 8px;
}
.conphere-partner__contact strong {
	color: var(--cp-text-faint);
	font-weight: 500;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
	.conphere-grid { grid-template-columns: repeat(min(var(--conphere-cols, 3), 3), minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.conphere-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.conphere-grid--events,
	.conphere-grid--partners { grid-template-columns: 1fr; gap: 24px; }
	.conphere-section-title { font-size: 24px; }
	.conphere-tab { padding: 18px 18px; font-size: 13px; letter-spacing: .12em; }
	.conphere-speaker__name { font-size: 22px; }
	.conphere-speaker__body { padding: 20px 18px 24px; }
	.conphere-speaker__photo { height: 365px; }
	.conphere-loadmore { width: 100%; }
}
@media (max-width: 480px) {
	.conphere-grid--speakers { grid-template-columns: 1fr; }
	.conphere-partner { flex-direction: column; }
}
