/* Feature-ID: LZCAM-UI-06 -- Lust Cam Discovery page composition. */
/* Feature-ID: LZCAM-UI-16 -- Responsive and keyboard-visible Cam surfaces. */
/* Feature-ID: LZCAM-HOME-REDESIGN-001 -- Content-first Cam home hierarchy. */
.wpst-lust-cam-page {
	width: 100%;
}

/* Feature-ID: CAM-DESIGN-SYSTEM-001 -- Align the compact Cam introduction with the masthead. */
body.page-template-template-cam #content.site-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wpst-lust-cam-discovery__freshness {
	color: var(--ui-text-muted);
	font-size: var(--ui-font-size-meta);
	line-height: 1.5;
	margin: var(--ui-space-2) 0 0;
}

.wpst-lust-cam-page > .wpst-lust-cam-magic-search {
	margin: 0 0 var(--ui-space-8);
	max-width: 720px;
	width: 100%;
}

.wpst-lust-cam-magic-search .ui-subsection-title {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.wpst-lust-cam-hot-theme,
.wpst-lust-cam-discovery,
.wpst-lust-cam-connections,
.wpst-lust-cam-page #cam-faq {
	margin-bottom: var(--ui-space-8);
}

/* Feature-ID: LZCAM-HOT-THEME-001 -- Managed in-page themed discovery. */
.wpst-lust-cam-hot-theme {
	padding: 0;
}

.wpst-lust-cam-hot-theme__controls {
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-md);
	box-sizing: border-box;
	padding: var(--ui-space-6);
}

.wpst-lust-cam-hot-theme__header {
	margin-bottom: var(--ui-space-4);
}

.wpst-lust-cam-hot-theme__description {
	color: var(--ui-text-muted);
	margin: var(--ui-space-1) 0 0;
}

.wpst-lust-cam-hot-theme__themes,
.wpst-lust-cam-hot-theme__keyword-list,
.wpst-lust-cam-hot-theme__keywords {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--ui-space-2);
}

.wpst-lust-cam-hot-theme__themes {
	border-bottom: 1px solid var(--ui-border);
	padding-bottom: var(--ui-space-4);
}

.wpst-lust-cam-hot-theme__keywords {
	justify-content: space-between;
	padding-top: var(--ui-space-4);
}

.wpst-lust-cam-hot-theme__tag,
.wpst-lust-cam-hot-theme__keyword,
.wpst-lust-cam-hot-theme__refresh {
	background: transparent;
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-sm);
	color: var(--ui-text-secondary);
	cursor: pointer;
	font-family: inherit;
	font-size: var(--ui-font-size-tag);
	min-height: var(--ui-control-height);
	padding: 0 var(--ui-space-3);
}

.wpst-lust-cam-hot-theme__tag:hover,
.wpst-lust-cam-hot-theme__tag:focus-visible,
.wpst-lust-cam-hot-theme__keyword:hover,
.wpst-lust-cam-hot-theme__keyword:focus-visible,
.wpst-lust-cam-hot-theme__refresh:hover,
.wpst-lust-cam-hot-theme__refresh:focus-visible,
.wpst-lust-cam-hot-theme__tag.is-active,
.wpst-lust-cam-hot-theme__keyword.is-active {
	border-color: var(--wpst-main-color, #ef4b88);
	color: var(--ui-text);
	outline: 0;
}

.wpst-lust-cam-hot-theme__tag.is-active,
.wpst-lust-cam-hot-theme__keyword.is-active {
	background: color-mix(in srgb, var(--wpst-main-color, #ef4b88) 16%, var(--ui-surface));
	color: var(--ui-text);
}

.wpst-lust-cam-hot-theme__refresh {
	align-items: center;
	display: inline-flex;
	flex: 0 0 var(--ui-control-height);
	justify-content: center;
	padding: 0;
	width: var(--ui-control-height);
}

.wpst-lust-cam-hot-theme__grid:empty {
	display: none;
}

.wpst-lust-cam-hot-theme__grid:not(:empty) {
	margin-top: var(--ui-space-4);
}

.wpst-lust-cam-hot-theme__controls .wpst-lust-cam-loading {
	margin-bottom: 0;
}

.wpst-lust-cam-hot-theme [data-hot-theme-status].is-error {
	color: var(--ui-text-secondary);
}

.wpst-lust-cam-magic-search form {
	align-items: center;
	background: rgba(21, 21, 21, .96);
	border: 1px solid var(--ui-border-strong);
	border-radius: var(--ui-radius-md);
	display: grid;
	gap: var(--ui-space-2);
	grid-template-columns: minmax(0, 1fr) auto;
	padding: 6px;
}

.wpst-lust-cam-magic-search input,
.wpst-lust-cam-magic-search input,
.wpst-lust-cam-filters input,
.wpst-lust-cam-filters select {
	box-sizing: border-box;
	min-width: 0;
	width: 100%;
}

.wpst-lust-cam-magic-search input {
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--ui-radius-sm);
	color: var(--ui-text);
	height: var(--ui-control-height);
}

/* Feature-ID: LZCAM-UI-17 -- Match the compact Pornstars filter tags while
 * retaining native select semantics and the existing server-side contract. */
.wpst-lust-cam-filters input.ui-filter-control {
	border-radius: var(--ui-radius-sm) !important;
	height: var(--ui-control-height) !important;
	padding-left: 2.25rem !important;
}

.wpst-lust-cam-filters select.ui-filter-control,
.wpst-lust-cam-select__toggle.ui-filter-control {
	border-radius: var(--ui-radius-sm) !important;
	height: var(--ui-control-height) !important;
}

.wpst-lust-cam-filters input.ui-filter-control::placeholder {
	color: var(--ui-text-secondary) !important;
	font-weight: inherit !important;
}

.wpst-lust-cam-magic-search input:focus,
.wpst-lust-cam-filters input:focus,
.wpst-lust-cam-filters select:focus {
	border-color: var(--wpst-main-color, #ef4b88);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--wpst-main-color, #ef4b88) 35%, transparent);
	outline: 0;
}

.wpst-lust-cam-magic-search input:focus {
	border-color: transparent;
	box-shadow: none;
}

.wpst-lust-cam-discovery__header {
	align-items: end;
	display: flex;
	justify-content: space-between;
	margin-bottom: var(--ui-section-content-gap);
}

.wpst-lust-cam-filters {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--ui-space-2);
	margin-bottom: var(--ui-section-content-gap);
}

.wpst-lust-cam-filters label {
	flex: 0 1 auto;
	margin: 0;
	min-width: 0;
}

.wpst-lust-cam-filters label:not(.wpst-lust-cam-filters__search) {
	min-width: 0;
}

.wpst-lust-cam-filters__search {
	flex: 1 1 240px !important;
	max-width: 360px;
	position: relative;
}

.wpst-lust-cam-filters__preference {
	flex: 1 1 100% !important;
	position: relative;
}

.wpst-lust-cam-filters__preference > i,
.wpst-lust-cam-filters__search > i {
	color: var(--ui-text-muted);
	left: var(--ui-space-3);
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}

.wpst-lust-cam-filters__preference input,
.wpst-lust-cam-filters__search input {
	padding-left: 2.25rem;
}

.wpst-lust-cam-filters select.ui-filter-control {
	min-width: 150px;
	overflow: hidden;
	padding-right: var(--ui-space-5) !important;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.wpst-lust-cam-filters select::-webkit-scrollbar {
	display: none;
	height: 0;
	width: 0;
}

/* Feature-ID: LZCAM-UI-18 -- Use the same custom menu surface as Pornstars
 * so Cam filters do not fall back to browser-native square popups. */
.wpst-lust-cam-select {
	min-width: 150px;
	position: relative;
}

.wpst-lust-cam-select__toggle {
	appearance: none;
	cursor: pointer;
	font-family: inherit;
	justify-content: space-between;
	min-width: 150px;
	text-align: left;
	text-transform: none !important;
	width: 100%;
}

.wpst-lust-cam-select__label {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wpst-lust-cam-select__icon {
	flex: 0 0 auto;
	margin-left: var(--ui-space-2);
}

.wpst-lust-cam-select__native {
	border: 0 !important;
	height: 1px !important;
	min-width: 1px !important;
	opacity: 0;
	padding: 0 !important;
	pointer-events: none;
	position: absolute;
	width: 1px !important;
}

.wpst-lust-cam-select__menu {
	background: #2b2b2b;
	border: 1px solid #5a5a5a;
	border-radius: 6px;
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.28);
	left: 0;
	margin-top: 8px;
	max-height: 280px;
	min-width: 180px;
	overflow-x: hidden;
	overflow-y: auto;
	padding: 4px;
	position: absolute;
	top: 100%;
	width: min(22rem, calc(100vw - 2rem));
	z-index: 20;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.wpst-lust-cam-select__menu::-webkit-scrollbar {
	display: none;
	height: 0;
	width: 0;
}

.wpst-lust-cam-select__option,
.wpst-lust-cam-select__option:hover,
.wpst-lust-cam-select__option:focus {
	background: transparent !important;
	border: 0 !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	color: var(--ui-text-secondary) !important;
	display: block;
	font-family: inherit;
	font-size: var(--ui-font-size-tag) !important;
	font-weight: var(--ui-font-weight-regular) !important;
	line-height: 1.3;
	min-height: 32px;
	padding: 7px 10px;
	text-align: left;
	text-transform: none !important;
	width: 100%;
}

.wpst-lust-cam-select__option:hover,
.wpst-lust-cam-select__option:focus,
.wpst-lust-cam-select__option[aria-selected='true'] {
	background: var(--ui-surface-hover) !important;
	color: var(--ui-text) !important;
}

.wpst-lust-cam-filters .ui-button,
.wpst-lust-cam-magic-search .ui-button {
	border-radius: var(--ui-radius-sm);
	height: var(--ui-control-height);
	white-space: nowrap;
}

.wpst-lust-cam-filters .ui-button--primary,
.wpst-lust-cam-magic-search .ui-button--primary {
	background: var(--wpst-main-color, #ef4b88);
	border-color: var(--wpst-main-color, #ef4b88);
}

.wpst-lust-cam-loading,
.wpst-lust-cam-notice {
	color: var(--ui-text-muted);
	font-size: var(--ui-font-size-meta);
	margin: var(--ui-space-3) 0;
}

.wpst-lust-cam-loading i,
.wpst-lust-cam-notice i {
	color: var(--wpst-main-color, #ef4b88);
}

html body .wpst-lust-cam-grid {
	display: grid;
	gap: var(--ui-card-grid-gap);
	grid-template-columns: repeat(var(--wpst-cams-per-row, 5), minmax(0, 1fr));
}

/* Keep the shared H2 content gap when the Pornstars section module is also
 * loaded on this virtual Performer route. */
html body .wpst-lust-cam-missing .ui-section-title {
	margin: 0 0 var(--ui-section-content-gap);
}

.wpst-lust-cam-grid .lust-cam-performer-card {
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-md);
	box-sizing: border-box;
	min-width: 0;
	overflow: hidden;
	transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.wpst-lust-cam-grid .lust-cam-performer-card .graph-card__media,
.wpst-searcher-live-results .lust-cam-performer-card .graph-card__media {
	aspect-ratio: 16 / 10;
	min-height: 0;
}

.wpst-lust-cam-grid .lust-cam-performer-card .graph-card__link,
.wpst-searcher-live-results .lust-cam-performer-card .graph-card__link {
	display: block;
	height: 100%;
}

.wpst-lust-cam-grid .lust-cam-performer-card .graph-card__link:focus-visible,
.wpst-searcher-live-results .lust-cam-performer-card .graph-card__link:focus-visible {
	border-radius: var(--ui-radius-sm);
	outline: 2px solid var(--ui-accent, var(--wpst-main-color, #ef4b88));
	outline-offset: -2px;
}

.wpst-lust-cam-grid .lust-cam-performer-card:hover,
.wpst-lust-cam-grid .lust-cam-performer-card:focus-within {
	background: var(--ui-surface-hover);
	border-color: var(--ui-accent, var(--wpst-main-color, #ef4b88));
	transform: translateY(-2px);
}

.wpst-lust-cam-grid .lust-cam-performer-card .graph-card__title {
	padding: var(--ui-space-3) !important;
	text-align: left !important;
}

.wpst-lust-cam-grid .lust-cam-performer-card .cat-title,
.wpst-lust-cam-grid .lust-cam-performer-card .graph-card__meta {
	justify-content: flex-start;
	min-height: 0 !important;
	text-align: left !important;
}

/* Preserve semantic Cam status colors over ui-core's shared card meta rule. */
.wpst-lust-cam-grid .lust-cam-performer-card .lust-cam-performer-card__status--online,
.wpst-searcher-live-results .lust-cam-performer-card .lust-cam-performer-card__status--online {
	color: var(--ui-success, #47b96b) !important;
}

.wpst-lust-cam-grid .lust-cam-performer-card .lust-cam-performer-card__status--stale,
.wpst-searcher-live-results .lust-cam-performer-card .lust-cam-performer-card__status--stale {
	color: var(--ui-warning, #d6a24b) !important;
}

/* Feature-ID: LZCAM-HOT-MODELS-001 -- Compact live signal surface above Hot Search. */
.wpst-lust-cam-hot-models {
	margin-bottom: var(--ui-space-8);
}

.wpst-lust-cam-hot-models__header {
	align-items: end;
	display: flex;
	justify-content: space-between;
	margin-bottom: var(--ui-section-content-gap) !important;
	margin-top: var(--ui-section-upper-gap);
}

.wpst-lust-cam-hot-models__eyebrow,
.wpst-lust-cam-hot-models__description,
.wpst-lust-cam-hot-models__freshness {
	color: var(--ui-text-muted);
	font-size: var(--ui-font-size-meta);
	line-height: 1.5;
	margin: 0;
}

.wpst-lust-cam-hot-models__eyebrow {
	align-items: center;
	display: flex;
	font-size: var(--ui-font-size-tag);
	gap: var(--ui-space-1);
	letter-spacing: .08em;
	text-transform: uppercase;
}

.wpst-lust-cam-hot-models__eyebrow .fa,
.wpst-lust-cam-hot-models__freshness .fa-circle {
	color: var(--ui-success, #47b96b);
	font-size: .65em;
}

.wpst-lust-cam-hot-models__header .ui-section-title {
	margin: var(--ui-section-title-gap) 0;
}

.wpst-lust-cam-hot-models__freshness {
	align-items: center;
	display: inline-flex;
	gap: var(--ui-space-1);
	white-space: nowrap;
}

.wpst-lust-cam-hot-models__tabs {
	align-items: center;
	display: flex;
	gap: 16px;
	overflow-x: auto;
	padding: 2px 1px 0;
	scrollbar-width: none;
	white-space: nowrap;
}

.wpst-lust-cam-hot-models__tabs::-webkit-scrollbar {
	display: none;
}

.wpst-lust-cam-hot-models__tabs button.wpst-vault-explore-tab {
	align-items: center;
	background: #121116 !important;
	border: 1px solid #302b3a !important;
	border-radius: 14px !important;
	box-shadow: none !important;
	color: #aaa5b7 !important;
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 auto;
	font: inherit;
	font-size: var(--ui-font-size-body, .875rem) !important;
	font-weight: var(--ui-font-weight-bold, 700) !important;
	gap: 10px;
	justify-content: center;
	letter-spacing: 0;
	line-height: 1.4;
	min-height: 56px;
	padding: 0 22px !important;
	text-transform: uppercase !important;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
	white-space: nowrap;
}

.wpst-lust-cam-hot-models__tabs button.wpst-vault-explore-tab:hover {
	background: #17151d !important;
	border-color: #4a4258 !important;
	color: var(--ui-text) !important;
}

.wpst-lust-cam-hot-models__tabs button.wpst-vault-explore-tab.is-active {
	background: #121116 !important;
	border-color: var(--ui-accent, var(--wpst-main-color, #ef4b88)) !important;
	box-shadow: inset 0 -3px 0 var(--ui-accent, var(--wpst-main-color, #ef4b88)) !important;
	color: var(--ui-text) !important;
	outline: none;
}

.wpst-lust-cam-hot-models .wpst-vault-explore-tab__icon-badge {
	align-items: center;
	background: #2a2631;
	border-radius: 50%;
	color: #aaa5b7;
	display: inline-flex;
	flex: 0 0 24px;
	height: 24px;
	justify-content: center;
	width: 24px;
}

.wpst-lust-cam-hot-models .wpst-vault-explore-tab__icon {
	color: currentColor;
	font-size: .8rem;
}

.wpst-lust-cam-hot-models .wpst-vault-explore-tab.is-active .wpst-vault-explore-tab__icon-badge {
	background: #fff;
	color: var(--ui-accent, var(--wpst-main-color, #ef4b88));
}

.wpst-lust-cam-hot-models .wpst-vault-explore-tab:focus-visible {
	outline: 2px solid var(--ui-accent, var(--wpst-main-color, #ef4b88));
	outline-offset: 2px;
}

.wpst-lust-cam-hot-models__show-more {
	margin-top: var(--ui-space-5);
}

.wpst-lust-cam-hot-models__grid {
	margin-top: var(--ui-section-content-gap);
}

/* Keep async states hidden even when the shared state card sets display:flex. */
.wpst-lust-cam-hot-models .wpst-lust-cam-state[hidden],
.wpst-lust-cam-hot-models [data-hot-models-loading][hidden] {
	display: none !important;
}

@media (max-width: 720px) {
	.wpst-lust-cam-hot-models__header {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--ui-space-2);
	}

	.wpst-lust-cam-hot-models__tabs {
		margin-right: -1rem;
		padding-right: 1rem;
	}
}

.wpst-lust-cam-connections .wpst-lust-cam-discovery__header {
	margin-bottom: var(--ui-section-content-gap) !important;
}

/* Feature-ID: LZCAM-SECTION-CONTENT-GAP-001 -- Featured Rooms and the
 * connections variant share the same H2-to-grid rhythm as Pornstars. */
.wpst-lust-cam-featured > .wpst-lust-cam-discovery__header {
	margin-bottom: var(--ui-section-content-gap) !important;
}

html body .wpst-lust-cam-connections-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wpst-lust-cam-connections-grid .wpst-lust-cam-pornstar-connection .graph-card__link {
	align-items: stretch;
	display: grid;
	grid-template-columns: minmax(96px, 34%) minmax(0, 1fr);
}

.wpst-lust-cam-connections-grid .wpst-lust-cam-pornstar-connection .graph-card__media {
	aspect-ratio: 4 / 3;
	height: 100%;
}

.wpst-lust-cam-connections-grid .wpst-lust-cam-pornstar-connection .graph-card__title {
	align-content: center;
	display: grid;
	gap: var(--ui-space-1);
}

.wpst-lust-cam-connections-grid .wpst-lust-cam-pornstar-connection .ui-button {
	border-radius: var(--ui-radius-sm);
	justify-self: start;
	margin-top: var(--ui-space-1);
}

.wpst-lust-cam-state {
	align-items: flex-start;
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-md);
	display: flex;
	flex-direction: column;
	gap: var(--ui-space-2);
	padding: var(--ui-space-5);
}

/* Bug-ID: LZCAM-ASYNC-STATE-HIDDEN-001 -- This module loads after the
 * theme's generic [hidden] rule, so async state cards must preserve it. */
.wpst-lust-cam-state[hidden] {
	display: none;
}

.wpst-lust-cam-state h3,
.wpst-lust-cam-state p {
	margin: 0;
}

.wpst-lust-cam-state--filter-empty {
	border: 0;
	padding: 0;
}

/* Bug-ID: LZCAM-DISCOVERY-LOADING-STATE-001 -- The module's later flex rule
 * otherwise wins over the theme's generic [hidden] declaration. */
.wpst-lust-cam-discovery[aria-busy='true'] .wpst-lust-cam-state--filter-empty,
.wpst-lust-cam-state--filter-empty[hidden] {
	display: none;
}

.wpst-lust-cam-state--filter-empty .ui-body-copy {
	color: var(--ui-text-secondary);
	font-size: var(--ui-font-size-body);
	font-weight: var(--ui-font-weight-regular);
	line-height: 1.5;
}

.wpst-lust-cam-pagination {
	margin: var(--ui-space-4) 0 0;
	text-align: center;
}

.wpst-lust-cam-connections__empty {
	margin: var(--ui-section-content-gap) 0 0;
}

/* Feature-ID: CAM-DESIGN-SYSTEM-001 -- Local Performer Profile uses the same
 * type scale and conversion hierarchy as the Cam directory. */
.wpst-lust-cam-profile {
	max-width: 1180px;
	padding: var(--ui-space-5) 0 var(--ui-space-8);
	width: 100%;
}

.wpst-lust-cam-profile__hero {
	display: grid;
	gap: var(--ui-space-5);
	grid-template-columns: minmax(0, 1.5fr) minmax(280px, .85fr);
	margin-bottom: var(--ui-space-6);
}

.wpst-lust-cam-profile__media {
	aspect-ratio: 16 / 10;
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-sm);
	overflow: hidden;
	position: relative;
}

.wpst-lust-cam-profile__media img,
.wpst-lust-cam-profile__media .post-thumbnail-container {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.wpst-lust-cam-profile__details {
	align-self: stretch;
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-sm);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: var(--ui-space-6);
}

.wpst-lust-cam-profile__provider,
.wpst-lust-cam-profile__status,
.wpst-lust-cam-profile__featured,
.wpst-lust-cam-profile__disclosure {
	margin: 0 0 var(--ui-space-2);
}

.wpst-lust-cam-profile__provider {
	color: var(--ui-accent);
	font-size: var(--ui-font-size-caption);
	font-weight: var(--ui-font-weight-semibold);
	text-transform: uppercase;
}

.wpst-lust-cam-profile__details .ui-page-title {
	margin: var(--ui-space-3) 0 var(--ui-space-2);
	overflow-wrap: anywhere;
}

.wpst-lust-cam-profile__summary {
	margin: 0 0 var(--ui-space-2);
}

.wpst-lust-cam-profile__status {
	align-items: center;
	display: inline-flex;
	font-size: var(--ui-font-size-meta);
	gap: var(--ui-space-2);
	width: fit-content;
}

.wpst-lust-cam-profile__status .fa {
	font-size: .65em;
}

.wpst-lust-cam-profile__status--online {
	color: var(--ui-success, #248a3d);
}

.wpst-lust-cam-profile__status--offline,
.wpst-lust-cam-profile__status--stale,
.wpst-lust-cam-profile__status--unknown {
	color: var(--ui-text-muted);
}

.wpst-lust-cam-profile__information {
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-sm);
	padding: var(--ui-space-5);
}

.wpst-lust-cam-profile__information {
	margin-top: 0;
}

.wpst-lust-cam-profile__information h2 {
	margin: 0 0 var(--ui-space-3);
}

.wpst-lust-cam-profile__player {
	height: 420px;
	max-height: 420px;
	overflow: hidden;
	width: 100%;
}

.wpst-lust-cam-profile__player-frame {
	height: 420px;
	max-height: 420px;
	width: 100%;
}

.wpst-lust-cam-profile__player-mount {
	height: 420px;
	max-height: 420px;
	width: 100%;
}

.wpst-lust-cam-profile__player-mount > *,
.wpst-lust-cam-profile__player-mount iframe {
	height: 100% !important;
	max-height: 420px !important;
	width: 100% !important;
}

/* Bug-ID: CAM-PROFILE-PLAYER-FILL-001 -- The provider Player should fill the
 * responsive 16:10 preview instead of leaving the legacy 420px gutter. */
.wpst-lust-cam-profile__media .wpst-lust-cam-profile__player,
.wpst-lust-cam-profile__media .wpst-lust-cam-profile__player-frame,
.wpst-lust-cam-profile__media .wpst-lust-cam-profile__player-mount {
	height: 100%;
	max-height: none;
}

.wpst-lust-cam-profile__media .wpst-lust-cam-profile__player-mount > *,
.wpst-lust-cam-profile__media .wpst-lust-cam-profile__player-mount iframe {
	max-height: none !important;
}

.wpst-lust-cam-profile__player-error {
	color: var(--ui-text-muted);
	height: 420px;
	justify-content: center;
	margin: 0;
	padding: var(--ui-space-4);
}

.wpst-lust-cam-profile__player-error:not([hidden]) {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--ui-space-1);
}

.wpst-lust-cam-profile__meta {
	display: grid;
	gap: var(--ui-space-3);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
}

.wpst-lust-cam-profile__meta dt {
	color: var(--ui-text-muted);
	font-size: var(--ui-font-size-meta);
}

.wpst-lust-cam-profile__meta dd {
	margin: var(--ui-space-1) 0 0;
	overflow-wrap: anywhere;
}

.wpst-lust-cam-profile__tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ui-space-2);
	list-style: none;
	margin: var(--ui-space-3) 0 0;
	padding: 0;
}

.wpst-lust-cam-profile__tags li {
	font-size: var(--ui-font-size-tag);
}

.wpst-lust-cam-profile__actions {
	margin-top: auto;
	padding-top: var(--ui-space-5);
}

.wpst-lust-cam-profile__actions .ui-button {
	justify-content: center;
	width: 100%;
}

.wpst-lust-cam-profile__disclosure {
	color: var(--ui-text-muted);
	font-size: var(--ui-font-size-meta);
	margin: var(--ui-space-3) 0 0;
}

/* Cam Profile 404 keeps the original live-discovery intent intact. */
.wpst-lust-cam-missing {
	width: 100%;
}

/* Bug-ID: LZCAM-MISSING-FIRST-GAP-001 -- Match the first /pornstars/ heading
 * baseline while later recovery sections retain the shared section rhythm. */
html body .wpst-lust-cam-missing__header {
	margin-top: 0;
	margin-top: var(--ui-first-section-top-gap);
}

.wpst-lust-cam-missing__description {
	max-width: none;
}

.wpst-lust-cam-missing__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ui-space-2);
	margin-top: var(--ui-space-4);
}

.wpst-lust-cam-missing__actions .ui-button {
	min-height: 44px;
}

@media (min-width: 768px) and (max-width: 1100px) {
	html body .wpst-lust-cam-grid {
		grid-template-columns: repeat(var(--wpst-cams-per-row, 5), minmax(0, 1fr));
	}

	html body .wpst-lust-cam-connections-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media only screen and (max-width: 767.98px) {
	.wpst-lust-cam-hot-theme__controls {
		padding: var(--ui-space-4);
	}

	.wpst-lust-cam-hot-theme__keywords {
		align-items: flex-start;
	}

	.wpst-lust-cam-magic-search form,
	.wpst-lust-cam-filters {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.wpst-lust-cam-magic-search input,
	.wpst-lust-cam-filters__preference,
	.wpst-lust-cam-filters__search {
		grid-column: 1 / -1;
	}

	.wpst-lust-cam-magic-search .ui-button {
		grid-column: 1 / -1;
	}

	html body .wpst-lust-cam-grid {
		gap: var(--ui-card-grid-gap);
		grid-template-columns: repeat(var(--wpst-cams-per-row-mobile, 2), minmax(0, 1fr));
	}

	html body .wpst-lust-cam-connections-grid {
		grid-template-columns: 1fr;
	}

	.wpst-lust-cam-connections-grid .wpst-lust-cam-pornstar-connection .graph-card__link {
		grid-template-columns: 96px minmax(0, 1fr);
	}

	.wpst-lust-cam-grid .lust-cam-performer-card .graph-card__title,
	.wpst-searcher-live-results .lust-cam-performer-card .graph-card__title {
		padding: var(--ui-space-2) !important;
	}

	.wpst-lust-cam-profile__hero,
	.wpst-lust-cam-profile__meta {
		grid-template-columns: 1fr;
	}

	.wpst-lust-cam-profile__media {
		max-width: none;
	}

	.wpst-lust-cam-profile__details,
	.wpst-lust-cam-profile__information {
		padding: var(--ui-space-4);
	}

	.wpst-lust-cam-profile__actions {
		padding-top: var(--ui-space-4);
	}

	.wpst-lust-cam-missing__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.wpst-lust-cam-missing__actions .ui-button {
		width: 100%;
	}
}

@media only screen and (max-width: 380px) {
	.wpst-lust-cam-filters {
		grid-template-columns: 1fr;
	}

	.wpst-lust-cam-filters__preference,
	.wpst-lust-cam-filters__search {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wpst-lust-cam-grid .lust-cam-performer-card {
		transition: none;
	}
}

/* Feature-ID: CAM-DESIGN-SYSTEM-001 -- Light, comparison-first Cam surfaces.
 * The global header and footer retain the site chrome; only local Cam content
 * receives the configurable accent and light palette. */
body.page-template-template-cam,
body.wpst-lust-cam-profile-route {
	--wpst-main-color: var(--wpst-cam-main-color, #e7183f);
	background: #f2f2f2;
}

body.page-template-template-cam #content.site-content,
body.wpst-lust-cam-profile-route #content.site-content {
	--ui-bg: #f2f2f2;
	--ui-surface: #ffffff;
	--ui-surface-hover: #f7f7f7;
	--ui-surface-active: #ededed;
	--ui-border: #d4d4d4;
	--ui-border-strong: #b8b8b8;
	--ui-text: #171717;
	--ui-text-secondary: #48484d;
	--ui-text-muted: #6a6a70;
	--ui-text-disabled: #8d8d92;
	--ui-accent: var(--wpst-cam-main-color, #e7183f);
	background: var(--ui-bg);
	color: var(--ui-text);
}

body.page-template-template-cam #cam-faq {
	--ui-text: #171717;
	--ui-text-secondary: #48484d;
	--ui-text-muted: #6a6a70;
	background: #f2f2f2;
}

body.page-template-template-cam #cam-faq.actors-list__faq > h2 {
	color: var(--ui-text);
}

body.page-template-template-cam #cam-faq .actors-list__faq-item {
	border-bottom-color: #d4d4d4;
}

body.page-template-template-cam #cam-faq .actors-list__faq-toggle,
body.page-template-template-cam #cam-faq .actors-list__faq-toggle:hover,
body.page-template-template-cam #cam-faq .actors-list__faq-toggle:focus,
body.page-template-template-cam #cam-faq .actors-list__faq-answer {
	color: var(--ui-text-secondary) !important;
}

body.page-template-template-cam #content.site-content {
	margin-top: 0 !important;
	padding-bottom: var(--ui-space-8);
	padding-top: 0 !important;
}

body.page-template-template-cam .wpst-lust-cam-page,
body.page-template-template-cam .wpst-lust-cam-page .site-main {
	float: none;
	width: 100%;
}

.wpst-lust-cam-intro {
	padding: var(--ui-space-6) 0 var(--ui-space-4);
}

.wpst-lust-cam-intro__eyebrow,
.wpst-lust-cam-intents__label {
	color: var(--ui-accent);
	font-size: var(--ui-font-size-caption);
	font-weight: var(--ui-font-weight-semibold);
	letter-spacing: 0;
	line-height: var(--ui-line-meta);
	margin: 0 0 var(--ui-space-2);
	text-transform: uppercase;
}

.wpst-lust-cam-intro .ui-page-title {
	max-width: 760px;
}

.wpst-lust-cam-query {
	align-items: stretch;
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-sm);
	display: grid;
	gap: var(--ui-space-2);
	grid-template-columns: minmax(0, 1fr) auto;
	margin-bottom: var(--ui-space-4);
	padding: 6px;
}

.wpst-lust-cam-query__preference {
	align-items: center;
	display: flex;
	margin: 0;
	min-width: 0;
	position: relative;
}

.wpst-lust-cam-query__preference > i {
	color: var(--ui-text-muted);
	left: var(--ui-space-3);
	position: absolute;
	z-index: 1;
}

html body .wpst-lust-cam-query__preference .ui-filter-control {
	background: transparent !important;
	border-color: transparent !important;
	border-radius: var(--ui-radius-sm) !important;
	color: var(--ui-text) !important;
	height: var(--ui-control-height) !important;
	padding-left: 2.25rem;
	width: 100%;
}

.wpst-lust-cam-query .ui-button {
	border-radius: var(--ui-radius-sm);
	height: var(--ui-control-height);
}

.wpst-lust-cam-intents {
	align-items: center;
	border-bottom: 1px solid var(--ui-border);
	display: flex;
	gap: var(--ui-space-4);
	margin-bottom: var(--ui-space-6);
	overflow: hidden;
	padding-bottom: var(--ui-space-4);
}

.wpst-lust-cam-intents__label {
	color: var(--ui-text-muted);
	flex: 0 0 auto;
	margin: 0;
}

.wpst-lust-cam-intents__track {
	display: flex;
	gap: var(--ui-space-2);
	min-width: 0;
	overflow-x: auto;
	padding: 1px;
	scrollbar-width: none;
}

.wpst-lust-cam-intents__track::-webkit-scrollbar {
	display: none;
}

html body .wpst-lust-cam-intents .ui-tag {
	background: var(--ui-surface);
	border-color: var(--ui-border);
	color: var(--ui-text);
	flex: 0 0 auto;
}

html body .wpst-lust-cam-intents .ui-tag:first-child {
	background: var(--ui-accent);
	border-color: var(--ui-accent);
	color: #ffffff;
}

.wpst-lust-cam-intents__online .fa {
	color: var(--ui-success, #149954);
	font-size: .65em;
	margin-right: var(--ui-space-1);
}

.wpst-lust-cam-recommended,
.wpst-lust-cam-hot-models,
.wpst-lust-cam-explore,
.wpst-lust-cam-hot-theme,
.wpst-lust-cam-magic-search,
.wpst-lust-cam-connections {
	margin-bottom: var(--ui-space-8);
}

.wpst-lust-cam-section-head,
.wpst-lust-cam-hot-models__header,
.wpst-lust-cam-discovery__header {
	align-items: end;
	display: flex;
	justify-content: space-between;
	margin-bottom: var(--ui-section-content-gap);
}

.wpst-lust-cam-section-head .ui-section-title,
.wpst-lust-cam-section-head .ui-body-copy,
.wpst-lust-cam-discovery__header .ui-section-title,
.wpst-lust-cam-discovery__header .wpst-lust-cam-discovery__freshness {
	margin-bottom: 0;
}

.wpst-lust-cam-recommended .wpst-cam-recommendation-hero {
	grid-template-columns: repeat(var(--wpst-cam-hero-desktop-count, 4), minmax(0, 1fr));
	justify-content: stretch;
	margin-bottom: 0;
}

.wpst-lust-cam-recommended .wpst-cam-recommendation {
	max-width: none;
}

.wpst-lust-cam-explore {
	border-top: 1px solid var(--ui-border);
	display: grid;
	gap: var(--ui-space-6);
	grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
	padding-top: var(--ui-space-5);
}

.wpst-lust-cam-filter-rail {
	border-right: 1px solid var(--ui-border);
	min-width: 0;
	padding-right: var(--ui-space-5);
}

.wpst-lust-cam-filter-rail__disclosure > summary {
	display: none;
}

.wpst-lust-cam-filter-rail__body {
	display: grid;
	gap: var(--ui-space-3);
}

.wpst-lust-cam-filter-rail__body > label {
	display: block;
	margin: 0;
	min-width: 0;
	width: 100%;
}

.wpst-lust-cam-filter-rail__body .wpst-lust-cam-filters__search {
	max-width: none;
}

.wpst-lust-cam-filter-rail__body .wpst-lust-cam-select,
.wpst-lust-cam-filter-rail__body .wpst-lust-cam-select__toggle,
.wpst-lust-cam-filter-rail__body select.ui-filter-control,
.wpst-lust-cam-filter-rail__body input.ui-filter-control {
	width: 100%;
}

html body .wpst-lust-cam-filter-rail__body .ui-filter-control {
	background: var(--ui-surface) !important;
	border-color: var(--ui-border) !important;
	border-radius: var(--ui-radius-sm) !important;
	color: var(--ui-text-secondary) !important;
	height: var(--ui-control-height) !important;
}

.wpst-lust-cam-filter-rail__body .wpst-lust-cam-select__menu {
	background: var(--ui-surface);
	border-color: var(--ui-border-strong);
	box-shadow: 0 12px 24px rgb(0 0 0 / 12%);
}

.wpst-lust-cam-filter-rail__actions {
	display: grid;
	gap: var(--ui-space-2);
	grid-template-columns: 1fr 1fr;
}

.wpst-lust-cam-filter-rail__actions .ui-button {
	border-radius: var(--ui-radius-sm);
	min-width: 0;
	padding: 0 var(--ui-space-2);
}

.wpst-lust-cam-results {
	min-width: 0;
}

.wpst-lust-cam-results .wpst-cam-graph-card-grid {
	grid-template-columns: repeat(var(--wpst-cams-per-row, 5), minmax(0, 1fr));
}

body.page-template-template-cam .wpst-lust-cam-state,
body.page-template-template-cam .wpst-lust-cam-hot-theme__controls {
	background: var(--ui-surface);
	border-color: var(--ui-border);
}

body.page-template-template-cam .wpst-lust-cam-hot-theme,
body.page-template-template-cam .wpst-lust-cam-connections {
	border-top: 1px solid var(--ui-border);
	padding-top: var(--ui-space-5);
}

body.page-template-template-cam .wpst-lust-cam-magic-search form {
	background: var(--ui-surface);
	border-color: var(--ui-border);
}

body.page-template-template-cam .wpst-lust-cam-magic-search input {
	color: var(--ui-text);
}

@media only screen and (max-width: 1023.98px) {
	.wpst-lust-cam-results .wpst-cam-graph-card-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media only screen and (max-width: 767.98px) {
	.ui-page-title {
		font-size: var(--ui-font-size-page-title-mobile);
	}

	.wpst-lust-cam-intro {
		padding-top: var(--ui-space-4);
	}

	.wpst-lust-cam-hot-models__tabs {
		margin-right: 0;
	}

	.wpst-lust-cam-query {
		grid-template-columns: minmax(0, 1fr) 44px;
	}

	.wpst-lust-cam-query .ui-button {
		padding: 0;
	}

	.wpst-lust-cam-query .ui-button span {
		display: none;
	}

	.wpst-lust-cam-intents {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--ui-space-2);
		margin-right: calc(var(--ui-space-4) * -1);
	}

	.wpst-lust-cam-intents__track {
		padding-right: var(--ui-space-4);
		width: 100%;
	}

	.wpst-lust-cam-recommended .wpst-cam-recommendation-hero {
		grid-template-columns: repeat(var(--wpst-cam-hero-mobile-count, 2), minmax(0, 1fr));
	}

	.wpst-lust-cam-explore {
		display: block;
	}

	.wpst-lust-cam-filter-rail {
		border-right: 0;
		margin-bottom: var(--ui-space-4);
		padding-right: 0;
	}

	.wpst-lust-cam-filter-rail__disclosure > summary {
		background: var(--ui-surface);
		border: 1px solid var(--ui-border);
		border-radius: var(--ui-radius-sm);
		display: inline-flex;
		min-height: var(--ui-control-height);
		padding: 0 var(--ui-space-3);
	}

	.wpst-lust-cam-filter-rail__body {
		background: var(--ui-surface);
		border: 1px solid var(--ui-border);
		border-radius: var(--ui-radius-sm);
		margin-top: var(--ui-space-2);
		padding: var(--ui-space-3);
	}

	.wpst-lust-cam-results .wpst-cam-graph-card-grid {
		grid-template-columns: repeat(var(--wpst-cams-per-row-mobile, 2), minmax(0, 1fr));
	}

	.wpst-lust-cam-section-head,
	.wpst-lust-cam-hot-models__header,
	.wpst-lust-cam-discovery__header {
		align-items: flex-start;
	}
}
