/* Feature-ID: UI-SYSTEM-V1 -- reusable visual primitives. */
.ui-button,
.ui-icon-button,
.ui-tag,
.ui-disclosure__summary {
	-webkit-tap-highlight-color: transparent;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.ui-button,
.ui-icon-button {
	align-items: center;
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	box-sizing: border-box;
	color: var(--ui-text-secondary);
	cursor: pointer;
	display: inline-flex;
	font-size: var(--ui-font-size-button);
	font-weight: 600;
	gap: var(--ui-space-2);
	justify-content: center;
	line-height: 1;
	min-height: var(--ui-control-height);
	padding: 0 var(--ui-space-4);
	text-decoration: none;
}

.ui-button::-webkit-details-marker {
	display: none;
}

.ui-button:disabled,
.ui-button[aria-disabled="true"] {
	cursor: default;
	opacity: 1;
}

/* Feature-ID: UI-SYSTEM-V1 -- Secondary actions keep the shared neutral
 * surface even when a niche skin applies an accent to every button. */
html body .ui-button.ui-button--secondary {
	background: var(--ui-surface) !important;
	background-color: var(--ui-surface) !important;
	background-image: none !important;
	border-color: var(--ui-border) !important;
	box-shadow: none !important;
	color: var(--ui-text-secondary) !important;
	filter: none !important;
}

html body .ui-button.ui-button--secondary:hover,
html body .ui-button.ui-button--secondary:focus {
	background: var(--ui-surface-hover) !important;
	background-color: var(--ui-surface-hover) !important;
	border-color: var(--ui-border-strong) !important;
	color: var(--ui-text) !important;
}

html body .ui-button.ui-button--secondary:disabled,
html body .ui-button.ui-button--secondary[aria-disabled="true"] {
	background: var(--ui-surface) !important;
	background-color: var(--ui-surface) !important;
	border-color: var(--ui-border) !important;
	color: var(--ui-text-secondary) !important;
}

/* Feature-ID: UI-CONTROLS-CONSISTENCY-001 -- Shared text and action styles for cross-page controls. */
html body .style_a {
	font-family: var(--ui-font-family-body, inherit) !important;
	font-size: 0.82rem !important;
	font-style: normal !important;
	font-weight: var(--ui-font-weight-regular, 400) !important;
}

html body .style_a::placeholder {
	color: var(--ui-text-muted, #747b8b) !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-style: normal !important;
	opacity: 1 !important;
	font-weight: inherit !important;
}

html body .style_a option {
	font-family: inherit !important;
	font-size: inherit !important;
	font-style: normal !important;
	font-weight: inherit !important;
}

html body .btn_ok_style,
html body .btn_cancel_style {
	font-size: var(--ui-font-size-button, 0.875rem) !important;
	font-weight: var(--ui-font-weight-medium, 500) !important;
	line-height: 1 !important;
}

/* Feature-ID: UI-CONTROLS-CONSISTENCY-002 -- Cancel-style actions use the
 * same uppercase label treatment across Cam and Searcher surfaces. */
html body .btn_cancel_style {
	text-transform: uppercase !important;
}

html body .btn_ok_style > .fa,
html body .btn_cancel_style > .fa {
	font-size: inherit !important;
	font-weight: inherit !important;
	height: 1em !important;
	line-height: 1 !important;
	width: 1em !important;
}

html body .btn_ok_style,
html body .ui-button.btn_ok_style {
	background: var(--ui-accent, var(--wpst-main-color, #ef4b88)) !important;
	background-color: var(--ui-accent, var(--wpst-main-color, #ef4b88)) !important;
	border-color: var(--ui-accent, var(--wpst-main-color, #ef4b88)) !important;
	color: #fff !important;
}

html body .ui-button.btn_ok_style:hover,
html body .ui-button.btn_ok_style:focus,
html body .ui-button.ui-button--primary.btn_ok_style:hover,
html body .ui-button.ui-button--primary.btn_ok_style:focus {
	background: var(--ui-accent, var(--wpst-main-color, #ef4b88)) !important;
	background-color: var(--ui-accent, var(--wpst-main-color, #ef4b88)) !important;
	border-color: var(--ui-accent, var(--wpst-main-color, #ef4b88)) !important;
	color: #fff !important;
	filter: brightness(0.94);
}

html body .btn_cancel_style,
html body .ui-button.btn_cancel_style {
	background: var(--ui-surface-hover) !important;
	background-color: var(--ui-surface-hover) !important;
	background-image: none !important;
	border-color: var(--ui-border-strong) !important;
	color: var(--ui-text-secondary, #d0d2d7) !important;
}

html body .ui-button.btn_cancel_style:hover,
html body .ui-button.btn_cancel_style:focus,
html body .ui-button.ui-button--secondary.btn_cancel_style:hover,
html body .ui-button.ui-button--secondary.btn_cancel_style:focus {
	background: #30343f !important;
	background-color: #30343f !important;
	background-image: none !important;
	border-color: #777b88 !important;
	color: #fff !important;
	filter: none !important;
}

/* Feature-ID: FAVORITE-ACTION-SYSTEM-001 -- Shared Favorite state for every
 * ui-button surface. Favorite is write-once and cannot be toggled off. */
.wpst-favorite-action__icon {
	color: #fff;
	transition: color 160ms ease, transform 160ms ease;
}

.wpst-favorite-action.is-favorited .wpst-favorite-action__icon,
.wpst-favorite-action[data-wpst-favorite-state="favorited"] .wpst-favorite-action__icon {
	color: #e53935 !important;
}

/* Favorite labels use normal title casing instead of the archive button
 * text-transform rule. */
html body .wpst-favorite-action,
html body .wpst-favorite-action__button,
html body .wpst-favorite-action__button span {
	text-transform: none !important;
}

.ui-button {
	border-radius: var(--ui-radius-pill);
}

.ui-icon-button {
	border-radius: 50%;
	padding: 0;
	width: var(--ui-control-height);
}

.ui-button:hover,
.ui-button:focus,
.ui-icon-button:hover,
.ui-icon-button:focus,
.ui-disclosure__summary:hover,
.ui-disclosure__summary:focus {
	background: var(--ui-surface-hover);
	border-color: var(--ui-border-strong);
	color: var(--ui-text);
	text-decoration: none;
}

/* Feature-ID: ENGAGEMENT-ACTION-SURFACE-001 -- Likes, Dislikes, Share, and
 * Favorite controls share the header search surface across every consumer. */
html body .video-fact-bar__vote.ui-button,
html body .video-fact-bar__share-toggle.ui-button,
html body .video-fact-bar__share-link,
html body .wpst-favorite-action__button.ui-button,
html body a.wpst-favorite-action.ui-button,
html body .video-fact-bar__report.ui-button {
	background: #2b2b2b !important;
	background-color: #2b2b2b !important;
	border-color: #5a5a5a !important;
	color: var(--ui-text-secondary) !important;
}

/* Feature-ID: ICON-ACTION-SYSTEM-001 -- Like, dislike, share, favorite and
 * report use the same 44px Favorite control box. */
html body .video-fact-bar__vote.ui-button,
html body .video-fact-bar__share-toggle.ui-button,
html body .video-fact-bar__share-link,
html body .video-fact-bar__favorite.ui-button,
html body .video-fact-bar__report.ui-button {
	align-items: center;
	font-size: var(--ui-font-size-button);
	gap: 0;
	height: var(--ui-control-height);
	justify-content: center;
	min-height: var(--ui-control-height);
	min-width: var(--ui-control-height);
	padding: 0;
	width: var(--ui-control-height);
}

html body .video-fact-bar__vote.ui-button > .fa,
html body .video-fact-bar__share-toggle.ui-button > .fa,
html body .video-fact-bar__share-link > .fa,
html body .video-fact-bar__favorite.ui-button > .fa,
html body .video-fact-bar__report.ui-button > .fa,
html body .video-fact-bar__share-link > svg {
	font-size: var(--ui-icon-size);
	height: var(--ui-icon-box);
	line-height: 1;
	margin: 0 !important;
	width: var(--ui-icon-box);
}

/* Bug-ID: FAVORITE-ACTION-DISABLED-SURFACE-001 -- A saved favorite is
 * disabled after the write-once action, but keeps the same surface as the
 * available control. */
html body .wpst-favorite-action__button.ui-button:disabled,
html body .wpst-favorite-action__button.ui-button[aria-disabled="true"] {
	background: #2b2b2b !important;
	background-color: #2b2b2b !important;
	border-color: #5a5a5a !important;
	color: var(--ui-text-secondary) !important;
}

html body .video-fact-bar__vote.ui-button:hover,
html body .video-fact-bar__vote.ui-button:focus,
html body .video-fact-bar__share-toggle.ui-button:hover,
html body .video-fact-bar__share-toggle.ui-button:focus,
html body .video-fact-bar__share-link:hover,
html body .video-fact-bar__share-link:focus,
html body .wpst-favorite-action__button.ui-button:hover,
html body .wpst-favorite-action__button.ui-button:focus,
html body a.wpst-favorite-action.ui-button:hover,
html body a.wpst-favorite-action.ui-button:focus,
html body .video-fact-bar__report.ui-button:hover,
html body .video-fact-bar__report.ui-button:focus {
	background: var(--ui-surface-hover) !important;
	background-color: var(--ui-surface-hover) !important;
	border-color: #5a5a5a !important;
	color: var(--ui-text) !important;
}

html body .video-fact-bar__vote.ui-button:active,
html body .video-fact-bar__share-toggle.ui-button:active,
html body .video-fact-bar__share-link:active,
html body .wpst-favorite-action__button.ui-button:active,
html body a.wpst-favorite-action.ui-button:active,
html body .video-fact-bar__report.ui-button:active {
	background: var(--ui-surface-active) !important;
	background-color: var(--ui-surface-active) !important;
}

/* Feature-ID: SHOW-MORE-HERO-SURFACE-002 -- Keep every progressive list
 * aligned with the Home Hero Search Porn action after the shared UI layer
 * loads, including pages with legacy button skins. */
html body .wpst-show-more-wrap {
	align-items: center;
	display: flex;
	flex-direction: column;
	width: 100%;
}

html body .wpst-show-more.ui-button {
	align-items: center;
	display: inline-flex;
	flex: 0 0 auto;
	justify-content: center;
	width: auto;
}

html body .wpst-show-more.ui-button.wpst-favorite-action__button {
	background: #2b2b2b !important;
	background-color: #2b2b2b !important;
	background-image: none !important;
	border-color: #5a5a5a !important;
	box-shadow: none !important;
	color: var(--ui-text-secondary) !important;
}

html body .wpst-show-more.ui-button.wpst-favorite-action__button:hover,
html body .wpst-show-more.ui-button.wpst-favorite-action__button:focus {
	background: var(--ui-surface-hover) !important;
	background-color: var(--ui-surface-hover) !important;
	border-color: #5a5a5a !important;
	color: var(--ui-text) !important;
}

html body .wpst-show-more.ui-button > .wpst-show-more__icon {
	align-items: center;
	display: inline-flex;
	flex: 0 0 auto;
	height: 1em;
	justify-content: center;
	line-height: 1;
	margin: 0;
	text-align: center;
	vertical-align: middle;
	width: 1em;
}

html body .wpst-show-more.ui-button > span:not(.wpst-show-more__spinner) {
	align-items: center;
	display: inline-flex;
	line-height: 1;
	vertical-align: middle;
}

.ui-button:active,
.ui-icon-button:active {
	background: var(--ui-surface-active);
}

.ui-button:focus-visible,
.ui-icon-button:focus-visible,
.ui-disclosure__summary:focus-visible,
.ui-tag:focus-visible {
	outline: 2px solid var(--ui-accent);
	outline-offset: 2px;
}

.ui-button--primary {
	background: var(--wpst-main-color, var(--ui-accent));
	border-color: var(--wpst-main-color, var(--ui-accent));
	box-shadow: 0 6px 16px rgb(0 0 0 / 18%);
	color: #fff;
}

.ui-button--primary:hover,
.ui-button--primary:focus {
	background: var(--wpst-main-color, var(--ui-accent));
	border-color: var(--wpst-main-color, var(--ui-accent));
	color: #fff;
	filter: brightness(0.88);
	transform: translateY(-1px);
}

.ui-button--primary:active {
	filter: brightness(0.82);
	transform: translateY(0);
}

.ui-icon,
.ui-button > .fa,
.ui-icon-button > .fa,
.ui-disclosure__summary > .fa {
	align-items: center;
	display: inline-flex;
	font-size: var(--ui-icon-size);
	height: var(--ui-icon-box);
	justify-content: center;
	line-height: 1;
	width: var(--ui-icon-box);
}

/* Feature-ID: DISCLOSURE-TOGGLE-SYSTEM-001 -- The compact chevron control is
 * shared by Hot Search and video detail disclosures. */
html body button.ui-disclosure-toggle {
	align-items: center;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--ui-text, #f5f5f5) !important;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: inherit;
	font-weight: inherit;
	gap: var(--ui-space-2);
	margin: 0;
	padding: 0;
	text-align: left;
	text-transform: none !important;
}

.ui-disclosure-toggle__icon {
	align-items: center;
	border: 1px solid var(--ui-border, rgba(255, 255, 255, 0.12));
	border-radius: 50%;
	color: var(--ui-text-secondary, #d0d2d4);
	display: inline-flex;
	flex: 0 0 28px;
	height: 28px;
	justify-content: center;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
	/* Feature-ID: DISCLOSURE-TOGGLE-DIRECTION-002 -- The shared expanded
	 * state points down, while the collapsed state points right. */
	transform: rotate(180deg);
	width: 28px;
}

.ui-disclosure-toggle__icon .fa {
	font-size: var(--ui-font-size-xs, 0.75rem);
	font-weight: 400;
	line-height: 1;
}

html body button.ui-disclosure-toggle:hover .ui-disclosure-toggle__icon,
html body button.ui-disclosure-toggle:focus-visible .ui-disclosure-toggle__icon {
	background-color: var(--ui-surface-hover, rgba(255, 255, 255, 0.08));
	border-color: var(--ui-disclosure-accent, var(--ui-accent));
	color: var(--ui-text, #f5f5f5);
}

html body button.ui-disclosure-toggle:focus-visible {
	border-radius: var(--ui-radius-sm, 4px) !important;
	outline: 2px solid var(--ui-disclosure-accent, var(--ui-accent));
	outline-offset: 4px;
}

html body button.ui-disclosure-toggle[aria-expanded='false'] .ui-disclosure-toggle__icon {
	transform: rotate(90deg);
}

/* Feature-ID: SHARED-SHARE-MENU-001 -- One icon-only share menu across video,
 * Vault preview, and actor profile surfaces. */
.video-fact-bar__share {
	align-items: center;
	display: inline-flex;
	position: relative;
}

.video-fact-bar__share-menu {
	display: flex;
	gap: var(--ui-space-1);
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	top: calc(100% + var(--ui-space-2));
	transform: translateY(-4px);
	transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
	visibility: hidden;
	z-index: 20;
}

.video-fact-bar__share[open] .video-fact-bar__share-menu {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
}

.video-fact-bar__share-link {
	align-items: center;
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-sm);
	box-sizing: border-box;
	color: var(--ui-text);
	display: inline-flex;
	height: var(--ui-control-height);
	justify-content: center;
	padding: 0;
	transition: background-color 160ms ease, border-color 160ms ease;
	width: var(--ui-control-height);
}

.video-fact-bar__share-link:hover,
.video-fact-bar__share-link:focus {
	background: var(--ui-surface-hover);
	border-color: var(--ui-border-strong);
	color: var(--ui-text);
}

.video-fact-bar__share-brand-icon,
.video-fact-bar__share-link > .fa {
	display: block;
	font-size: var(--ui-icon-size);
	height: var(--ui-icon-box);
	line-height: 1;
	margin: 0;
	width: var(--ui-icon-box);
}

.video-fact-bar__share-brand-icon {
	fill: currentColor;
}

.video-fact-bar__share-link--reddit > .fa {
	color: #ff4500;
}

.ui-tag {
	align-items: center;
	background: var(--ui-surface-hover);
	border: 1px solid var(--ui-border-strong);
	border-radius: var(--ui-radius-pill);
	box-sizing: border-box;
	color: var(--ui-text-secondary);
	display: inline-flex;
	font-size: var(--ui-font-size-tag);
	font-weight: var(--ui-font-weight-regular);
	line-height: 1;
	max-width: 100%;
	min-height: 30px;
	overflow: hidden;
	padding: 0 var(--ui-space-3);
	text-decoration: none;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Feature-ID: UI-FILTER-CONTROL-001 -- Shared compact filter control surface
 * reused by Cam native selects and Pornstars custom filter summaries. */
html body .ui-filter-control {
	align-items: center;
	background: var(--ui-surface-hover) !important;
	background-clip: border-box !important;
	border: 1px solid var(--ui-border-strong) !important;
	border-radius: var(--ui-radius-pill) !important;
	box-shadow: none !important;
	box-sizing: border-box;
	color: var(--ui-text-secondary) !important;
	display: inline-flex;
	font-size: var(--ui-font-size-tag) !important;
	font-weight: var(--ui-font-weight-regular) !important;
	height: 30px !important;
	line-height: 1;
	max-width: 100%;
	min-height: 30px !important;
	padding: 0 var(--ui-space-3);
	text-transform: none !important;
}

a.ui-tag:hover,
a.ui-tag:focus {
	background: var(--ui-surface-hover);
	border-color: var(--ui-border-strong);
	color: var(--ui-text);
	text-decoration: none;
}

.ui-avatar {
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: 50%;
	display: block;
	height: 56px;
	object-fit: cover;
	width: 56px;
}

.ui-avatar:hover,
a:hover .ui-avatar,
a:focus .ui-avatar {
	border-color: var(--ui-accent);
}

.ui-disclosure {
	border-top: 1px solid var(--ui-border);
	margin-top: var(--ui-space-4);
	padding-top: var(--ui-space-3);
}

.ui-disclosure__summary {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--ui-text-secondary);
	display: flex;
	font-size: var(--ui-font-size-h3);
	font-weight: 600;
	justify-content: space-between;
	list-style: none;
	min-height: var(--ui-control-height);
	padding: 0 var(--ui-space-2);
}

.ui-disclosure__summary::-webkit-details-marker,
.ui-disclosure__summary::marker {
	display: none;
}

.ui-disclosure__summary::after {
	border-bottom: 2px solid currentColor;
	border-right: 2px solid currentColor;
	content: '';
	display: block;
	height: 7px;
	transform: rotate(45deg) translateY(-2px);
	transition: transform 160ms ease;
	width: 7px;
}

.ui-disclosure[open] > .ui-disclosure__summary::after {
	transform: rotate(225deg) translateY(-2px);
}

.ui-disclosure__content {
	margin-top: var(--ui-space-3);
}

.ui-page-title,
.ui-section-title,
.ui-subsection-title,
.ui-body-copy {
	letter-spacing: 0;
}

/* Feature-ID: CAM-DESIGN-SYSTEM-001 -- Semantic page and tab primitives
 * keep Cam typography on the same scale as every other public surface. */
.ui-page-title {
	color: var(--ui-text);
	font-size: var(--ui-font-size-page-title);
	font-weight: var(--ui-font-weight-semibold);
	line-height: var(--ui-line-tight);
	margin: 0 0 var(--ui-section-title-gap);
	text-transform: none;
}

.ui-tab {
	align-items: center;
	color: var(--ui-text-secondary);
	display: inline-flex;
	font-size: var(--ui-font-size-tab);
	font-weight: var(--ui-font-weight-medium);
	gap: var(--ui-tab-content-gap);
	line-height: var(--ui-line-card);
	margin: 0;
}

.ui-section-title {
	color: var(--ui-text);
	font-size: var(--ui-font-size-section-title);
	font-weight: 600;
	line-height: 1.35;
	margin: 0 0 var(--ui-section-content-gap);
	text-transform: none;
}

.ui-subsection-title {
	color: var(--ui-text-secondary);
	font-size: var(--ui-font-size-h3);
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
}

/* Feature-ID: BODY-COPY-SYSTEM-001 -- Shared long-form and descriptive copy. */
.ui-body-copy {
	color: var(--ui-text-secondary);
	font-family: var(--ui-font-family-body);
	font-size: var(--ui-font-size-body);
	font-weight: 400;
	line-height: 1.5;
}

.ui-body-copy p {
	font-size: inherit;
	line-height: inherit;
}

.ui-body-copy > p {
	margin: 0 0 var(--ui-body-copy-paragraph-gap);
}

.ui-body-copy > p:last-child {
	margin-bottom: 0;
}

p.ui-body-copy {
	margin: 0 0 var(--ui-body-copy-paragraph-gap);
}

p.ui-body-copy:last-child {
	margin-bottom: 0;
}

.ui-body-copy.ui-body-copy--intro {
	margin: 0 0 var(--ui-body-copy-section-gap);
}

/* Feature-ID: UI-SECTION-SPACING-001 -- Keep the first titled section aligned
 * across page templates, including templates with a hidden page heading. */
html body .site-main > section:first-of-type {
	margin-top: var(--ui-first-section-top-gap) !important;
}

/* Feature-ID: UI-SYSTEM-V2 -- Shared heading and graph-card typography.
 * Section containers own the spacing below titles; widget titles stay flush. */
html body .widget-title,
html body .page-title,
html body .page .entry-title,
html body .comments-title,
html body .comment-reply-title {
	background: transparent !important;
	border: 0 !important;
	border-left: 0 !important;
	box-shadow: none !important;
	box-sizing: border-box;
	color: var(--ui-text) !important;
	display: inline-block !important;
	font-size: var(--ui-font-size-section-title) !important;
	font-weight: var(--ui-font-weight-bold) !important;
	letter-spacing: 0 !important;
	line-height: var(--ui-line-title) !important;
	margin: 0 !important;
	max-width: 100%;
	padding: 0 !important;
	text-align: left;
	text-transform: none !important;
	white-space: normal !important;
	width: auto !important;
}

/* Feature-ID: UI-SYSTEM-V2 -- Keep page-level headings visually consistent
 * even when a template uses a semantic heading without a title class. */
html body h1:not(.screen-reader-text) {
	text-transform: var(--wpst-heading-h1-case, capitalize) !important;
}

html body h2:not(.screen-reader-text) {
	text-transform: var(--wpst-heading-h2-case, capitalize) !important;
}

html body h3:not(.screen-reader-text) {
	text-transform: var(--wpst-heading-h3-case, capitalize) !important;
}

/* Widget titles are semantic H2s on public sections, while archive and page
 * templates also reuse the class on H1s. Keep the admin case controls aligned
 * with the rendered heading level. Plain text widget titles inherit H2 case. */
html body .widget-title {
	text-transform: var(--wpst-heading-h2-case, capitalize) !important;
}

html body h1.widget-title {
	text-transform: var(--wpst-heading-h1-case, capitalize) !important;
}

html body h2.widget-title {
	text-transform: var(--wpst-heading-h2-case, capitalize) !important;
}

html body h3.widget-title {
	text-transform: var(--wpst-heading-h3-case, capitalize) !important;
}

/* Feature-ID: UI-HEADING-CASE-003 -- Override legacy widget-title rules that
 * repeat the class or target profile headers with a higher specificity. */
html body .widget-title.widget-title.widget-title {
	text-transform: var(--wpst-heading-h2-case, capitalize) !important;
}

html body h1.widget-title.widget-title.widget-title {
	text-transform: var(--wpst-heading-h1-case, capitalize) !important;
}

html body h2.widget-title.widget-title.widget-title {
	text-transform: var(--wpst-heading-h2-case, capitalize) !important;
}

html body h3.widget-title.widget-title.widget-title {
	text-transform: var(--wpst-heading-h3-case, capitalize) !important;
}

/* Hot Search renders its visible label inside the H2 disclosure button. */
html body h2.ui-section-title > button.ui-disclosure-toggle {
	text-transform: var(--wpst-heading-h2-case, capitalize) !important;
}

/* Feature-ID: UI-TYPOGRAPHY-SCALE-001 -- Normalize legacy section H2
 * selectors after the legacy theme stylesheet has loaded. */
html body h2:not(.screen-reader-text):not(.ui-subsection-title) {
	font-size: var(--ui-font-size-section-title) !important;
	font-weight: var(--ui-font-weight-semibold) !important;
}

html body .widget-title::before,
html body .widget-title::after,
html body .page-title::before,
html body .page-title::after,
html body .page .entry-title::before,
html body .page .entry-title::after,
html body .comments-title::before,
html body .comments-title::after,
html body .comment-reply-title::before,
html body .comment-reply-title::after {
	content: none !important;
	display: none !important;
}

html body h1.widget-title {
	font-size: var(--ui-font-size-page-title) !important;
	line-height: var(--ui-line-tight) !important;
}

/* Section-level H2 headings use the shared semibold weight. */
html body h2.widget-title,
html body h2.page-title,
html body h2.page .entry-title,
html body h2.comments-title,
html body h2.comment-reply-title,
html body h2.ui-section-title {
	font-weight: var(--ui-font-weight-semibold) !important;
}

/* Feature-ID: UI-TYPOGRAPHY-HIERARCHY-001 -- Keep non-widget page titles
 * roomy while every widget title retains the global zero margin. */
html body h1.page-title,
html body .page h1.entry-title {
	margin-bottom: 0.5rem !important;
}

html body .graph-card__title,
html body .video-card-list--hub .loop-video .entry-header,
html body .thumb-block .entry-header {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	box-sizing: border-box;
	color: var(--ui-text-secondary) !important;
	font-size: var(--ui-font-size-card-title) !important;
	font-weight: var(--ui-font-weight-regular) !important;
	display: flex !important;
	flex-direction: column;
	height: auto !important;
	line-height: var(--ui-line-card) !important;
	margin: 0 !important;
	min-height: var(--ui-card-title-min-height) !important;
	padding: var(--ui-card-copy-gap) 0 0 !important;
	text-align: center !important;
	text-transform: none !important;
}

html body .graph-card__title .cat-title,
html body .video-card-list--hub .loop-video .video-card-tags--title,
html body .thumb-block .entry-header .video-card-tags--title,
html body .thumb-block .entry-header .cat-title,
html body .thumb-block .entry-header .actor-title,
html body .video-card-list--hub .loop-video .video-card-tags--tags {
	color: var(--ui-text-secondary) !important;
	display: -webkit-box !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	margin: 0 !important;
	min-height: var(--ui-card-title-min-height) !important;
	max-height: var(--ui-card-title-min-height) !important;
	overflow: hidden !important;
	text-align: center !important;
	text-overflow: ellipsis !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 2 !important;
	line-clamp: 2 !important;
	white-space: normal !important;
}

html body .graph-card__meta,
html body .video-card-list--hub .loop-video .video-card-meta,
html body .thumb-block .entry-header .video-card-meta {
	align-items: center;
	color: var(--ui-text-muted) !important;
	display: flex !important;
	flex-wrap: nowrap;
	font-size: var(--ui-font-size-card-meta) !important;
	font-weight: var(--ui-font-weight-regular) !important;
	gap: var(--ui-space-2);
	justify-content: center;
	line-height: var(--ui-line-meta) !important;
	margin-top: var(--ui-card-meta-gap) !important;
	opacity: 1 !important;
	text-align: center !important;
	text-transform: none !important;
}

html body .graph-card .video-card-tags,
html body .video-card-list--hub .loop-video .video-card-tags--tags,
html body .thumb-block .entry-header .video-card-tags--tags,
html body .graph-card__promo-copy,
html body .graph-card__promo-label,
html body .graph-card__promo-text {
	color: var(--ui-text-secondary) !important;
	display: -webkit-box !important;
	font-size: var(--ui-font-size-card-title) !important;
	font-weight: var(--ui-font-weight-regular) !important;
	line-height: 1.2 !important;
	margin-top: 0 !important;
	min-height: var(--ui-card-title-min-height) !important;
	max-height: 2.4em !important;
	overflow: hidden !important;
	text-align: center !important;
	text-overflow: ellipsis !important;
	text-transform: none !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 2 !important;
	line-clamp: 2 !important;
	white-space: normal !important;
}

html body .graph-card__promo-copy,
html body .graph-card__promo-label,
html body .graph-card__promo-text {
	padding-top: var(--ui-card-copy-gap) !important;
}

html body .graph-card__media {
	border-radius: var(--ui-radius-sm);
}

/* Feature-ID: GRAPH-CARD-AD-DISCLOSURE-001 -- Industry-standard compact
 * advertising disclosure for AD, CTA, and affiliate promo thumbnails. */
html body .graph-card__promo-media {
	position: relative;
}

html body .graph-card__promo-badge {
	background: rgba(43, 43, 43, 0.76);
	border: 0px solid rgba(90, 90, 90, 0.52);
	border-radius: var(--ui-radius-sm);
	box-sizing: border-box;
	color: #fff;
	display: inline-flex;
	font-size: var(--ui-font-size-xs);
	font-weight: var(--ui-font-weight-semibold);
	left: auto;
	line-height: 1;
	padding: 0.3rem 0.45rem;
	position: absolute;
	right: var(--ui-space-2);
	text-transform: uppercase;
	top: var(--ui-space-2);
	white-space: nowrap;
	z-index: 4;
}

html body .graph-card__media + .graph-card__title {
	margin-top: 0 !important;
}

/* Feature-ID: UI-CARD-COPY-ALIGNMENT-002 -- Actor names are normally a
 * single line; do not reserve a second title line before the video count.
 * Video tag labels keep the shared two-line box, with a matching line-height
 * and hard clip so a third line cannot bleed into the card metadata. */
html body .graph-card--actor .graph-card__title .cat-title {
	min-height: 1.35em !important;
}

html body .video-card-list--hub .loop-video .video-card-tags--tags {
	height: var(--ui-card-title-min-height) !important;
	line-height: var(--ui-line-card) !important;
	max-height: var(--ui-card-title-min-height) !important;
	min-height: var(--ui-card-title-min-height) !important;
	overflow: hidden !important;
}

/* Bug-ID: VIDEO-CARD-METRIC-SPACING-001 -- Legacy discovery cards should let
 * the visible title/tag height drive the metadata position. */
html body .video-card-list--hub .loop-video .entry-header,
html body .video-card-list--hub .loop-video .video-card-tags--title,
html body .video-card-list--hub .loop-video .video-card-tags--tags {
	height: auto !important;
	min-height: 0 !important;
}

html body .context-sidebar__hub-label,
html body .context-sidebar__link {
	font-size: var(--ui-font-size-card-title) !important;
	font-weight: var(--ui-font-weight-medium) !important;
	text-align: center !important;
	text-transform: none !important;
}

@media only screen and (max-width: 767.98px) {
	html body .widget-title,
	html body .page-title,
	html body .page .entry-title,
	html body .comments-title,
	html body .comment-reply-title {
		font-size: var(--ui-font-size-section-title-mobile) !important;
	}

	html body h1.widget-title {
		font-size: var(--ui-font-size-page-title-mobile) !important;
	}

	html body h2:not(.screen-reader-text):not(.ui-subsection-title) {
		font-size: var(--ui-font-size-section-title-mobile) !important;
	}

	html body .graph-card__title,
	html body .video-card-list--hub .loop-video .entry-header,
	html body .thumb-block .entry-header {
		font-size: var(--ui-font-size-card-title-mobile) !important;
	}
}

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

	.ui-avatar {
		height: 48px;
		width: 48px;
	}
}

/* Feature-ID: SEARCHER-HERO-001 -- Shared Hero typography for page-owned content. */
.ui-hero-eyebrow {
	align-items: center;
	color: var(--ui-text-secondary, #d7dbe2);
	display: flex;
	font-size: var(--ui-font-size-xs, .6875rem) !important;
	font-weight: 700 !important;
	gap: .5rem;
	letter-spacing: .04em;
	margin: 0 0 .75rem !important;
	text-transform: uppercase;
}

.ui-hero-eyebrow .fa {
	color: var(--ui-success, #47b96b);
	font-size: .55rem;
}

.ui-hero-title {
	display: block;
	font-size: 2rem !important;
	font-weight: 700 !important;
	letter-spacing: 0;
	line-height: .98 !important;
	text-transform: none !important;
	white-space: normal;
}

.ui-hero-description {
	color: var(--ui-text-secondary, #d7dbe2);
	font-size: var(--ui-font-size-body, .875rem) !important;
	font-weight: 400 !important;
	letter-spacing: 0;
	line-height: 1.5 !important;
	opacity: .94;
	text-transform: none !important;
}

/* Feature-ID: LZCAM-UI-13 -- Final cascade override for the shared Hero
 * heading after the archive typography scale is applied. */
html body .wpst-home-search-to-live__content h1:not(.screen-reader-text) {
	font-size: 2rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	text-transform: none !important;
	transform: none !important;
	transform-origin: center;
	width: 100% !important;
}

html body .wpst-home-search-to-live__content p.ui-body-copy {
	margin-top: 1.5rem !important;
}

@media only screen and (max-width: 767.98px) {
	html body .wpst-home-search-to-live__content h1:not(.screen-reader-text) {
		font-size: clamp(1.55rem, 7vw, 2rem) !important;
		line-height: 1 !important;
		box-sizing: border-box !important;
		max-width: calc(100vw - 32px) !important;
		width: calc(100vw - 32px) !important;
		min-width: 0 !important;
		overflow-wrap: anywhere !important;
		word-break: normal !important;
		transform: none !important;
		width: 100% !important;
		white-space: normal !important;
	}

	html body .ui-hero-title {
		font-size: clamp(1.35rem, 6vw, 1.75rem) !important;
		max-width: 100% !important;
		width: 100% !important;
		display: block !important;
		text-align: center !important;
		white-space: normal !important;
	}

	html body .ui-hero-description {
		font-size: .75rem !important;
	}

	html body .wpst-home-search-to-live__content p.ui-body-copy {
		display: block !important;
		margin-top: .75rem !important;
		max-width: 280px !important;
		width: 280px !important;
		overflow-wrap: anywhere !important;
		word-break: normal !important;
		white-space: normal !important;
		text-align: center !important;
	}
}
