/**
 * WordPress overrides so design CSS (authored for buttons + SPA views)
 * matches real theme markup (anchors + single-page templates).
 */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/*
 * Mockup uses <button> for most UI; WP uses <a>. Browsers underline links by
 * default — design CSS only sets `a { color: inherit }`, so reset decoration.
 */
a {
	text-decoration: none;
	color: inherit;
}

/* Mockup-only chrome */
.variant-bar {
	display: none !important;
}

/* Sticky header sat under the 32px mockup bar — pin to top in WP */
.site-header {
	top: 0 !important;
}

/* SPA view toggles — each WP template is one “active” view */
.view {
	display: block !important;
}

/* ---------- Nav: design styles .nav button; we use <a class="goto"> ---------- */
/* Do NOT use `.nav a.goto` — that also hits `.nav-drop a` and breaks the dropdown. */
.nav > .nav-item,
.nav > a.goto,
.nav > a {
	flex-shrink: 0;
}

.nav > a.goto,
.nav .nav-item > a.goto {
	font-family: var(--font-body);
	font-size: var(--nav, 13px);
	font-weight: 500;
	text-transform: none;
	letter-spacing: var(--tracking-none);
	padding: 0 10px;
	line-height: 1;
	height: 100%;
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	color: inherit;
	text-decoration: none;
}

.nav > a.goto span,
.nav .nav-item > a.goto span {
	padding: 3px 5px 4px;
	border-bottom: 1px solid transparent;
}

.nav > a.goto:hover,
.nav .nav-item > a.goto:hover {
	text-decoration: none;
}

.nav > a.goto:hover span,
.nav .nav-item:hover > a.goto span {
	background: transparent;
	color: var(--muted);
	text-decoration: none;
}

/* Dropdown panel: match design .nav-drop button/a (block rows) */
.nav-drop a.goto,
.nav-drop a {
	display: block;
	width: 100%;
	box-sizing: border-box;
	height: auto;
	padding: 14px 18px;
	margin: 0;
	line-height: 1.25;
	font-family: var(--font-body);
	font-size: var(--nav);
	font-weight: 500;
	text-transform: none;
	letter-spacing: var(--tracking-none);
	white-space: normal;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: inherit;
	text-decoration: none;
}

.nav-drop a.goto:hover,
.nav-drop a:hover,
.nav-drop a.goto:focus-visible,
.nav-drop a:focus-visible {
	background: var(--border);
	color: inherit;
	text-decoration: none;
}

.nav-drop a.nav-drop-all {
	border-top: 1px solid var(--border);
	font-weight: 500;
}

/* Search panel form inside flex bar */
#searchPanel .searchbar {
	display: flex;
	align-items: center;
	gap: 16px;
}
#searchPanel .searchbar form {
	flex: 1;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}
#searchPanel .searchbar input {
	width: 100%;
	min-width: 0;
}

/* Footer / drawer links that were buttons in the mockup */
.footer a.goto,
.drawer-links a.goto,
.drawer-nav > a.goto {
	display: block;
}

/* Logo link reset */
.site-header .logo {
	text-decoration: none;
	color: inherit;
}

.site-header .logo img,
.footer .logo img {
	display: block;
	height: 32px;
	width: auto;
	max-width: none;
}

/* Cards / rows: allow <a> where mockup used <button> */
/* Hero image must stay inside its grid track (WP <a> + tall titles). */
.home-hero-media,
a.home-hero-media {
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
}
.home-hero-media .photo {
	width: 100%;
	height: auto;
	min-height: 0;
	overflow: hidden;
}

a.home-hero-media,
a.home-hero-feature,
a.home-event-card,
a.home-market-item,
a.home-mag-feature,
a.home-mag-row,
a.home-trend-item,
a.home-practice-card,
a.home-behind-feature,
a.home-behind-row,
a.home-more,
a.home-more:hover,
a.home-more:focus,
a.home-more:focus-visible,
a.post-profile,
a.cat-card,
a.cat-topic,
a.mn-item,
a.mn-topic,
a.dp-item,
a.bh-item,
a.bh-more-card,
a.ev-story,
a.feat-event,
a.chip,
a.member-name,
a.member-profile-link,
a.member-article,
a.profile-peer,
a.profile-related-item,
a.ev-cover,
a.btn-yellow {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	border: 0;
	background: none;
	font: inherit;
	text-align: inherit;
}
a.member-profile-link {
	font-weight: 600;
}

/* Practice cards use a background image; restore cover after the link reset above. */
a.home-practice-card {
	background-color: var(--gray);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

/* Keep desktop stack separators (design border-top on rows). */
a.home-mag-row,
a.home-behind-row,
a.dp-item,
a.bh-item {
	border-top: 1px solid var(--border);
}
a.home-mag-row:first-child,
a.home-behind-row:first-child,
a.dp-item:first-child,
a.bh-item:first-child {
	border-top: 0;
}

/* Directory / related profile cards keep design border. */
a.post-profile {
	border: 1px solid var(--border);
}
a.post-profile:hover {
	border-color: var(--ink);
}

/* Sharebox: design styles buttons; WP also uses <a> */
.sharebox a,
.bh-share a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: inherit;
	text-decoration: none;
}

.sharebox a svg,
.bh-share a svg {
	width: 18px;
	height: 18px;
}

/* Design Practice / Behind: mockup used <button>; WP uses <a> */
a.dp-item,
a.bh-item {
	display: grid;
	color: inherit;
	text-decoration: none;
	box-sizing: border-box;
}
a.dp-item:hover,
a.bh-item:hover {
	text-decoration: none;
}

/* Keep Magazine dropdown visible above sticky header chrome */
.site-header,
.masthead,
.masthead-in {
	overflow: visible;
}
.nav-drop::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -14px;
	height: 14px;
}
.nav-more-drop .nav-more-sub {
	padding-left: 28px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	font-size: 13px;
}
a.member-name,
a.member-profile-link,
a.member-article,
a.wall-item,
a.bh-item,
a.bh-more-card,
a.ev-cover,
a.ev-story {
	color: inherit;
	text-decoration: none;
}

.member-name {
	
		font-family: var(--font-display)!important;
		font-size: 32px!important;
		line-height: 1.1!important;
		font-weight: 500!important;
		letter-spacing: var(--tracking-tight)!important;
		margin: 0!important;

}


/* Home BEHIND thumbs as <img> inside .video-still */
.home-behind-feature .video-still,
.home-behind-row .video-still {
	overflow: hidden;
}
.home-behind-feature .video-still img,
.home-behind-row .video-still img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* About: single cover + logo marquee images */
.about-hero-grid--single {
	grid-template-columns: 1fr;
	min-height: 280px;
}
.about-hero-grid--single span {
	min-height: 280px;
}
.about-brand-item--logo {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px 18px;
}
.about-brand-item--logo img {
	max-height: 36px;
	width: auto;
	object-fit: contain;
	filter: grayscale(1);
	opacity: .85;
}
.about-stat .ico img {
	width: 28px;
	height: 28px;
	object-fit: contain;
}
a.about-author {
	text-decoration: none;
	color: inherit;
}

/* Behind oEmbed player (ACF youtube field) */
.bh-player.is-embed,
.embed-container.bh-player {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
	overflow: hidden;
	border: 0;
	padding: 0;
}
.bh-player.is-embed iframe,
.embed-container.bh-player iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Reduce font-swap jank while webfonts settle */
html {
	font-synthesis: none;
}
body {
	text-rendering: optimizeLegibility;
}

/* Floating frontend admin bar */
.dw-admin-float {
	position: fixed;
	left: 50%;
	bottom: 16px;
	transform: translateX(-50%);
	z-index: 99999;
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 6px;
	background: #111;
	color: #fff;
	border-radius: 999px;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.28);
}
.dw-admin-float-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 999px;
	color: #fff;
	text-decoration: none;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1;
	white-space: nowrap;
}
.dw-admin-float-btn:hover {
	background: #2a2a2a;
	color: #fff;
	text-decoration: none;
}
.dw-admin-float-btn svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

/* Newsletter AJAX status */
.newsletter-status {
	margin: 0;
	font-size: 13px;
	line-height: 1.4;
}
.newsletter-status.is-ok {
	color: #1a5c2e;
}
.newsletter-status.is-error {
	color: #8a1f1f;
}
.newsletter .btn-subscribe:disabled {
	opacity: 0.6;
	cursor: wait;
}

/* Wall grid items as links */
a.wall-item {
	display: flex;
	align-items: flex-end;
	text-decoration: none;
	color: inherit;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

a.post-profile {
	padding: 18px 18px 16px;
}

/* Hero byline avatar as link */
a.dp-avatar {
	display: inline-block;
	flex-shrink: 0;
	text-decoration: none;
	color: inherit;
}
a.dp-avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: inherit;
}

.author-block .avatar a {
	display: block;
	width: 100%;
	height: 100%;
}
.author-block .avatar a img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Design CSS scopes some rules to #view-*; keep IDs on <main> */
main.view {
	display: block !important;
}

/* Active nav hint */
.nav a.is-current span,
.nav .nav-item.is-current > a.goto span {
	border-bottom: 1px solid var(--ink);
	padding-left: 0;
	padding-right: 0;
	padding-bottom: 4px;
}

/* Block editor image captions */
figcaption.wp-element-caption {
	font-size: 0.8rem;
	line-height: 1rem;
	text-align: center;
	padding-top: 5px;
	padding-bottom: 10px;
}

/*
 * WP adds body.tag on tag archives /tag/* — design .tag was for inline chips
 * and was collapsing the whole page to inline-block.
 */
body.tag {
	display: block;
	font-size: inherit;
	font-weight: inherit;
	text-transform: none;
	color: inherit;
	padding-right: 0;
	margin-right: 0;
	border-right: 0;
}

/* Wall grid alias — template uses .wall-grid to avoid body.wall collisions. */
.wall-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}
@media (max-width: 820px) {
	.wall-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Shared hero / about media: always cover the photo frame */
.page-hero-split-media .photo img,
.dp-hero-media .photo img,
.bh-hero-media .photo img,
.cm-hero-media .photo img,
.mn-hero-media .photo img,
.cat-hero-media .photo img,
.ev-hero-media .photo img,
.about-hero-media .photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.page-hero-split-media .photo,
.dp-hero-media .photo,
.bh-hero-media .photo,
.cm-hero-media .photo,
.mn-hero-media .photo,
.cat-hero-media .photo,
.ev-hero-media .photo,
.about-hero-media .photo {
	overflow: hidden;
	background: var(--service);
}
.photo.is-placeholder {
	background: var(--service);
}

.about-value .ico img,
.about-partner img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

/* About / author side-jump works on WP single-page (always "active") */
#view-about.view,
#view-author.view {
	display: block !important;
}

a.side-jump-back {
	display: inline-block;
	text-decoration: none;
	color: inherit;
}
a.side-jump-back:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Rank Math table of contents */
div#rank-math-toc {
	border-radius: 4px !important;
}
div#rank-math-toc h2 {
	padding-top: 0 !important;
	margin-top: 0;
    font-size: 1rem;
    text-transform: uppercase;
}
.wp-block-rank-math-toc-block {
	background: #fafafa !important;
	padding: 25px !important;
	margin-bottom: 25px !important;
}

/* WP quote blocks — align with article-body blockquote in main.css */
.bh-article blockquote,
.bh-article .wp-block-quote,
.market-article-lead .article-body blockquote,
.market-article-lead .article-body .wp-block-quote {
	margin: 36px 0;
	padding: 4px 0 4px 20px;
	border: 0;
	border-left: 3px solid var(--ink);
	box-sizing: border-box;
}
.bh-article blockquote p,
.bh-article .wp-block-quote p {
	font-family: var(--font-display);
	font-size: 22px;
	line-height: 1.35;
	font-weight: 500;
	margin: 0 0 12px;
}
.bh-article blockquote cite,
.bh-article .wp-block-quote cite,
.bh-article .wp-block-quote__citation {
	display: block;
	margin-top: 14px;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	font-style: normal;
	letter-spacing: var(--tracking-meta);
	text-transform: uppercase;
	color: var(--meta);
}

/* Anchor targets under sticky header (TOC links → headings). */
.article-body :is(h1, h2, h3, h4, h5, h6)[id],
.article-body :is(h1, h2, h3, h4, h5, h6),
.bh-article :is(h1, h2, h3, h4, h5, h6)[id],
.wp-block-heading[id],
[id^="toc-"],
span[id].rank-math-link {
	scroll-margin-top: var(--anchor-offset, 88px);
}

/* Contact Form 7 — match About page .about-form layout */
.about-form-embed.about-form {
	display: block;
}

.about-form-embed .wpcf7-form {
	display: grid;
	gap: 14px;
}

.about-form-embed .wpcf7-form > p,
.about-form-embed .about-form-row > p {
	margin: 0;
}

.about-form-embed .wpcf7-form-control-wrap {
	display: block;
}

.about-form-embed .wpcf7-not-valid-tip {
	font-size: 12px;
	font-weight: 500;
	margin-top: 4px;
}

.about-form-embed .wpcf7-response-output {
	margin: 0;
	padding: 12px 14px;
	border-radius: var(--radius);
	font-size: 13px;
}

.about-form-embed .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.about-form-embed .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: var(--tracking-none);
	color: var(--meta);
	cursor: pointer;
}

.about-form-embed .wpcf7-acceptance input {
	width: 16px;
	height: 16px;
	margin-top: 2px;
	padding: 0;
	border: 0;
	flex-shrink: 0;
	accent-color: var(--ink);
}

.about-form-embed .wpcf7-acceptance .wpcf7-list-item-label {
	line-height: 1.45;
}

.about-form-embed .wpcf7-acceptance .wpcf7-list-item-label a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.about-form-embed .about-form-actions input.wpcf7-submit,
.about-form-embed input.wpcf7-submit.btn-black {
	border: 0;
	cursor: pointer;
	padding: 12px 16px;
	font-size: 12px;
}
