/**
 * Real Estate Social Pro — the standalone public Post page (Frontend\
 * PostTemplate's own selectable/default template, and the pre-publish
 * `/social/{id}/` fallback — see post-template.php / post-single.php).
 *
 * Visual register deliberately matches Real Estate Data Pro's own public
 * Report page (public/css/report-page.css) — full-bleed hero with a
 * tracked-caps eyebrow, a sticky reveal top bar, a narrative body, and a
 * share/agent-card footer — since that's the suite's own established
 * "content this plugin publishes to the public web" look, not a bespoke
 * one for Social Pro. Everything here reads Core's --rep-* tokens
 * directly (no separate alias layer, unlike Data Pro's --rep-data-*
 * — Social Pro has nothing that needs a second color scale) so a Design
 * Template/brand color change re-skins this page automatically.
 */

.rep-social-post-page__wrap {
	background: var(--rep-background, #f7f8fa);
	overflow-x: hidden;
}

body.rep-social-post-page {
	margin: 0;
	background: var(--rep-background, #f7f8fa);
	font-family: var(--rep-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
	color: var(--rep-text, #12151c);
}

/* -----------------------------------------------------------------
 * Top bar — a persistent, always-visible header (not the scroll-reveal
 * bar an earlier version used) since it's this page's only way back into
 * the rest of the site: the real site navigation menu renders inside it
 * (Frontend\PostTemplate::render_nav()), so a visitor landing here from a
 * shared link is never stranded on a page with no way out.
 * -------------------------------------------------------------- */

.rep-social-post-page__topbar {
	position: sticky;
	top: 0;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--rep-space-md, 16px);
	padding: var(--rep-space-sm, 8px) clamp(20px, 5vw, 64px);
	background: var(--rep-surface, #fff);
	border-bottom: 1px solid var(--rep-border, rgba(18, 21, 28, 0.1));
}

body.admin-bar .rep-social-post-page__topbar {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .rep-social-post-page__topbar {
		top: 46px;
	}
}

.rep-social-post-page__topbar-brand {
	display: flex;
	align-items: center;
	font-weight: var(--rep-weight-semibold, 600);
	color: var(--rep-text, #12151c);
	text-decoration: none;
	white-space: nowrap;
}

.rep-social-post-page__topbar-brand img {
	max-height: 32px;
	width: auto;
	display: block;
}

.rep-social-post-page__topbar-nav {
	flex: 1 1 auto;
	min-width: 0;
}

.rep-social-post-page__topbar-nav ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--rep-space-md, 16px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rep-social-post-page__topbar-nav li {
	position: relative;
}

.rep-social-post-page__topbar-nav a {
	color: var(--rep-text, #12151c);
	text-decoration: none;
	font-size: var(--rep-control-size, 0.85rem);
	font-weight: var(--rep-weight-semibold, 600);
}

.rep-social-post-page__topbar-nav a:hover,
.rep-social-post-page__topbar-nav a:focus-visible {
	color: var(--rep-primary, #3452ff);
}

.rep-social-post-page__topbar-nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 21;
	min-width: 180px;
	margin-top: var(--rep-space-sm, 8px);
	padding: var(--rep-space-sm, 8px);
	background: var(--rep-surface, #fff);
	border: 1px solid var(--rep-border, rgba(18, 21, 28, 0.1));
	border-radius: var(--rep-radius-md, 12px);
	box-shadow: var(--rep-shadow-md, 0 4px 14px rgba(18, 21, 28, 0.1));
	flex-direction: column;
	gap: var(--rep-space-sm, 8px);
}

.rep-social-post-page__topbar-nav li:hover > .sub-menu,
.rep-social-post-page__topbar-nav li:focus-within > .sub-menu {
	display: flex;
}

.rep-social-post-page__topbar-copy {
	appearance: none;
	display: inline-block;
	border: 1px solid var(--rep-border, rgba(18, 21, 28, 0.1));
	background: transparent;
	color: var(--rep-text, #12151c);
	font: inherit;
	font-size: var(--rep-control-size, 0.85rem);
	font-weight: var(--rep-weight-semibold, 600);
	padding: 0.4em 1em;
	border-radius: var(--rep-radius-pill, 999px);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--rep-transition-fast, 130ms ease), color var(--rep-transition-fast, 130ms ease), border-color var(--rep-transition-fast, 130ms ease);
}

.rep-social-post-page__topbar-copy:hover,
.rep-social-post-page__topbar-copy:focus-visible {
	background: var(--rep-primary, #3452ff);
	border-color: var(--rep-primary, #3452ff);
	color: var(--rep-on-primary, #fff);
}

/* -----------------------------------------------------------------
 * Hero
 * -------------------------------------------------------------- */

.rep-social-post-page__hero {
	position: relative;
	padding: clamp(72px, 14vw, 148px) clamp(20px, 6vw, 64px) clamp(56px, 10vw, 96px);
	text-align: center;
	background:
		linear-gradient(to right, color-mix(in srgb, var(--rep-text, #12151c) 4%, transparent) 1px, transparent 1px),
		linear-gradient(to bottom, color-mix(in srgb, var(--rep-text, #12151c) 4%, transparent) 1px, transparent 1px),
		var(--rep-surface, #fff);
	background-size: 32px 32px, 32px 32px, auto;
	border-bottom: 1px solid var(--rep-border, rgba(18, 21, 28, 0.1));
}

.rep-social-post-page__eyebrow {
	display: block;
	margin: 0 0 var(--rep-space-md, 16px);
	color: var(--rep-primary, #3452ff);
	font-family: var(--rep-font-mono, ui-monospace, monospace);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.28em;
	text-transform: uppercase;
}

.rep-social-post-page__title {
	margin: 0 auto;
	max-width: 22ch;
	font-size: clamp(2rem, 5.5vw, var(--rep-text-hero, 3.4rem));
	line-height: 1.05;
	font-weight: var(--rep-weight-black, 800);
	letter-spacing: -0.01em;
	color: var(--rep-text, #12151c);
}

.rep-social-post-page__subtitle {
	margin: var(--rep-space-md, 16px) auto 0;
	max-width: 56ch;
	font-size: clamp(1rem, 2vw, 1.25rem);
	color: var(--rep-muted, #5b6472);
}

.rep-social-post-page__meta {
	margin: var(--rep-space-lg, 24px) 0 0;
	font-family: var(--rep-font-mono, ui-monospace, monospace);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rep-muted, #5b6472);
}

.rep-social-post-page__scroll-cue {
	display: block;
	width: 10px;
	height: 10px;
	margin: var(--rep-space-xl, 32px) auto 0;
	border-right: 2px solid var(--rep-muted, #5b6472);
	border-bottom: 2px solid var(--rep-muted, #5b6472);
	transform: rotate(45deg);
	opacity: 0.6;
	animation: rep-social-post-bounce 1.8s ease-in-out infinite;
}

@keyframes rep-social-post-bounce {
	0%, 100% { transform: rotate(45deg) translate(0, 0); }
	50%      { transform: rotate(45deg) translate(4px, 4px); }
}

@media (prefers-reduced-motion: reduce) {
	.rep-social-post-page__scroll-cue {
		animation: none;
	}
}

/* -----------------------------------------------------------------
 * Body
 * -------------------------------------------------------------- */

.rep-social-post-page__body {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp(48px, 8vw, 88px) clamp(20px, 6vw, 32px);
}

.rep-social-post-page__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--rep-radius-md, 12px);
	margin-bottom: clamp(32px, 6vw, 48px);
}

.rep-social-post-page__prose {
	line-height: var(--rep-leading-relaxed, 1.7);
	font-size: 1.05rem;
	color: var(--rep-text, #12151c);
	opacity: 0;
	transform: translateY(18px);
	transition: opacity var(--rep-transition-slow, 420ms ease), transform var(--rep-transition-slow, 420ms ease);
}

.rep-social-post-page__prose.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.rep-social-post-page__prose > *:first-child {
	margin-top: 0;
}

.rep-social-post-page__prose > *:last-child {
	margin-bottom: 0;
}

.rep-social-post-page__cta {
	margin: clamp(32px, 6vw, 48px) 0 0;
	text-align: center;
}

.rep-social-post-page__cta-btn {
	display: inline-block;
	background: var(--rep-primary, #3452ff);
	color: var(--rep-on-primary, #fff);
	font-weight: var(--rep-weight-semibold, 600);
	font-size: calc(var(--rep-control-size, 0.85rem) * 1.15);
	padding: 0.9em 2.4em;
	border-radius: var(--rep-radius-pill, 999px);
	text-decoration: none;
	transition: transform var(--rep-transition-fast, 130ms ease), box-shadow var(--rep-transition-fast, 130ms ease);
}

.rep-social-post-page__cta-btn:hover,
.rep-social-post-page__cta-btn:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--rep-shadow-md, 0 4px 14px rgba(18, 21, 28, 0.1));
	color: var(--rep-on-primary, #fff);
}

/* -----------------------------------------------------------------
 * Footer: disclaimer, share bar, agent card
 * -------------------------------------------------------------- */

.rep-social-post-page__foot {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 clamp(20px, 6vw, 32px) clamp(56px, 10vw, 96px);
	opacity: 0;
	transform: translateY(18px);
	transition: opacity var(--rep-transition-slow, 420ms ease), transform var(--rep-transition-slow, 420ms ease);
	position: relative;
}

.rep-social-post-page__foot.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.rep-social-post-page__disclaimer {
	margin: 0 0 var(--rep-space-xs, 4px);
	font-family: var(--rep-font-mono, ui-monospace, monospace);
	font-size: 11px;
	letter-spacing: 0.02em;
	color: var(--rep-muted, #5b6472);
	line-height: 1.6;
	text-align: center;
}

.rep-social-post-page__share {
	margin-top: var(--rep-space-xl, 32px);
	padding: var(--rep-space-lg, 24px);
	background: var(--rep-surface-alt, #eef0f4);
	border-radius: var(--rep-radius-md, 12px);
	text-align: center;
}

.rep-social-post-page__share-label {
	display: block;
	margin-bottom: var(--rep-space-md, 16px);
	font-family: var(--rep-font-mono, ui-monospace, monospace);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rep-muted, #5b6472);
}

.rep-social-post-page__share-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--rep-space-sm, 8px);
}

.rep-social-post-page__share-btn {
	appearance: none;
	border: 1px solid var(--rep-border, rgba(18, 21, 28, 0.1));
	background: var(--rep-surface, #fff);
	color: var(--rep-text, #12151c);
	font: inherit;
	font-size: var(--rep-control-size, 0.85rem);
	font-weight: var(--rep-weight-semibold, 600);
	padding: 0.55em 1.2em;
	border-radius: var(--rep-radius-pill, 999px);
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
	transition: background-color var(--rep-transition-fast, 130ms ease), color var(--rep-transition-fast, 130ms ease), border-color var(--rep-transition-fast, 130ms ease), transform var(--rep-transition-fast, 130ms ease);
}

.rep-social-post-page__share-btn:hover,
.rep-social-post-page__share-btn:focus-visible {
	background: var(--rep-primary, #3452ff);
	border-color: var(--rep-primary, #3452ff);
	color: var(--rep-on-primary, #fff);
	transform: translateY(-2px);
}

.rep-social-post-page__agent {
	display: flex;
	align-items: center;
	gap: var(--rep-space-md, 16px);
	margin-top: var(--rep-space-xl, 32px);
	padding: var(--rep-space-md, 16px);
	border-left: 3px solid var(--rep-primary, #3452ff);
	background: var(--rep-surface, #fff);
	border-radius: var(--rep-radius-md, 12px);
}

.rep-social-post-page__agent-photo {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	flex: none;
}

.rep-social-post-page__agent-photo--logo {
	border-radius: var(--rep-radius-md, 12px);
	object-fit: contain;
	background: var(--rep-background, #f7f8fa);
	padding: 6px;
}

.rep-social-post-page__agent strong {
	display: block;
	color: var(--rep-text, #12151c);
}

.rep-social-post-page__agent span,
.rep-social-post-page__agent > div > a {
	display: inline-block;
	margin-right: var(--rep-space-sm, 8px);
	font-size: var(--rep-meta-size, 0.72rem);
	color: var(--rep-muted, #5b6472);
}

.rep-social-post-page__agent > div > a {
	color: var(--rep-primary, #3452ff);
	text-decoration: none;
}

.rep-social-post-page__brokerage {
	display: block;
	width: 100%;
	margin-top: var(--rep-space-xs, 4px);
	padding-top: var(--rep-space-xs, 4px);
	border-top: 1px solid var(--rep-border, rgba(18, 21, 28, 0.1));
	line-height: 1.5;
}

.rep-social-post-page__agent-btn {
	flex: none;
	margin-left: auto;
	display: inline-block;
	background: var(--rep-primary, #3452ff);
	color: var(--rep-on-primary, #fff) !important;
	font-weight: var(--rep-weight-semibold, 600);
	font-size: calc(var(--rep-control-size, 0.85rem) * 1.1) !important;
	padding: 0.85em 2em;
	border-radius: var(--rep-radius-pill, 999px);
	white-space: nowrap;
	text-decoration: none;
	transition: transform var(--rep-transition-fast, 130ms ease), box-shadow var(--rep-transition-fast, 130ms ease);
}

.rep-social-post-page__agent-btn:hover,
.rep-social-post-page__agent-btn:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--rep-shadow-md, 0 4px 14px rgba(18, 21, 28, 0.1));
}

.rep-social-post-page__comments {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 clamp(20px, 6vw, 32px) clamp(56px, 10vw, 96px);
}

@media (prefers-reduced-motion: reduce) {
	.rep-social-post-page__prose,
	.rep-social-post-page__foot {
		opacity: 1;
		transform: none;
	}
}

@media print {
	.rep-social-post-page__topbar,
	.rep-social-post-page__scroll-cue,
	.rep-social-post-page__share {
		display: none;
	}

	.rep-social-post-page__prose,
	.rep-social-post-page__foot {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 640px) {
	.rep-social-post-page__agent {
		flex-direction: column;
		text-align: center;
	}

	.rep-social-post-page__agent-btn {
		margin-left: 0;
		margin-top: var(--rep-space-xs, 4px);
	}
}
