@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&display=swap");

/*
 * Single Post Styles (Kadence-ported)
 *
 * All rules scoped under .kadence-single-post to prevent
 * leakage into the m2p header/footer.
 *
 * Sources:
 *   kadence/assets/css/global.min.css
 *   kadence/assets/css/content.min.css
 *   kadence/assets/css/author-box.min.css
 *   kadence/assets/css/comments.min.css
 *   kadence/assets/css/related-posts.min.css
 */

/* ==========================================================================
   A) CSS Custom Properties
   ========================================================================== */

/* Apply the editorial gradient to the body. background-attachment: fixed
   anchors the gradient to the viewport instead of the body box, so the
   peach end colour always sits at the visible bottom — no white slack
   strip appears between the wrapper and the footer on short pages. */
body:has(.kadence-single-post) {
	background: linear-gradient(180deg, #FFFFFF 0%, #FFECD2 100%) !important;
	background-attachment: fixed !important;
}

.kadence-single-post {
	/* Spacing */
	--global-gray-400: #CBD5E0;
	--global-gray-500: #A0AEC0;
	--global-xs-spacing: 1em;
	--global-sm-spacing: 1.5rem;
	--global-md-spacing: 2rem;
	--global-lg-spacing: 2.5em;
	--global-xl-spacing: 3.5em;
	--global-xxl-spacing: 5rem;
	--global-edge-spacing: 1.5rem;
	--global-boxed-spacing: 2rem;
	--global-content-edge-padding: 1.5rem;
	--global-content-width: 1290px;
	--global-content-narrow-width: 842px;
	--global-content-boxed-padding: 2rem;

	/* Font sizes */
	--global-font-size-small: clamp(0.8rem, 0.73rem + 0.217vw, 0.9rem);
	--global-font-size-medium: clamp(1.1rem, 0.995rem + 0.326vw, 1.25rem);
	--global-font-size-large: clamp(1.75rem, 1.576rem + 0.543vw, 2rem);
	--global-font-size-larger: clamp(2rem, 1.6rem + 1vw, 2.5rem);

	/* Palette (kadence defaults — verify against live site) */
	--global-palette1: #2B6CB0;
	--global-palette2: #215387;
	--global-palette3: #1A202C;
	--global-palette4: #2D3748;
	--global-palette5: #4A5568;
	--global-palette6: #718096;
	--global-palette7: #FFF5EB;
	--global-palette8: #F7FAFC;
	--global-palette9: #ffffff;
	--global-palette-highlight: #fb6b00;
	--global-palette-highlight-alt: #c85600;
	--global-palette-btn: #ffffff;

	/* Typography */
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	font-size: 17px;
	font-weight: 400;

	/* Box sizing */
	box-sizing: border-box;
	line-height: 1.6;
	color: var(--global-palette4);
	background: linear-gradient(180deg, #FFFFFF 0%, #FFECD2 100%) !important;
	background-attachment: fixed !important;
}

.kadence-single-post *,
.kadence-single-post *::before,
.kadence-single-post *::after {
	box-sizing: inherit;
}

/* ==========================================================================
   A2) Override m2p global resets and heading styles
   ========================================================================== */

.kadence-single-post .entry-taxonomies {
	margin-bottom: 0.75em;
}

.kadence-single-post .entry-taxonomies .category-links a {
	color: #fb6b00;
	text-decoration: none;
	text-transform: uppercase;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.kadence-single-post .entry-taxonomies .category-links a:hover {
	color: #b95001;
}

.kadence-single-post h1.entry-title {
	font-size: 32px !important;
	text-align: left !important;
	margin-bottom: 0 !important;
	color: var(--global-palette3) !important;
	font-weight: 700;
	line-height: 1.5;
}

.kadence-single-post .single-content h2 {
	font-size: clamp(1.3rem, 1.1rem + 0.5vw, 1.75rem) !important;
	text-align: left !important;
	margin-bottom: var(--global-sm-spacing) !important;
	color: var(--global-palette3) !important;
}

.kadence-single-post .single-content h3 {
	font-size: clamp(1.1rem, 1rem + 0.3vw, 1.4rem) !important;
	text-align: left !important;
	margin-bottom: var(--global-sm-spacing) !important;
	color: var(--global-palette3) !important;
}

.kadence-single-post .single-content h4,
.kadence-single-post .single-content h5,
.kadence-single-post .single-content h6 {
	text-align: left !important;
	color: var(--global-palette3) !important;
}

.kadence-single-post .single-content ul,
.kadence-single-post .comment-content ul {
	list-style-type: disc;
}

.kadence-single-post .single-content ol,
.kadence-single-post .comment-content ol {
	list-style-type: decimal;
}

.kadence-single-post .comment-list,
.kadence-single-post .comment-list .children {
	list-style-type: none;
}

/* ==========================================================================
   B) Layout & Structure
   ========================================================================== */

.kadence-single-post .content-area {
	margin: 0 0 var(--global-xxl-spacing);
	padding-top: 0;
}

.kadence-single-post .site-container {
	max-width: var(--global-content-narrow-width, 842px);
	margin: 0 auto;
	padding: 0 var(--global-content-edge-padding);
}

.kadence-single-post .site-main {
	min-width: 0;
}

.kadence-single-post .content-wrap {
	position: relative;
}

/* ==========================================================================
   C) Article / Entry
   ========================================================================== */

.kadence-single-post .entry.single-entry {
	background: var(--global-palette9);
	border-radius: 1rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
	overflow: hidden;
}

.kadence-single-post .entry-content-wrap {
	display: flex;
	flex-direction: column;
	/* No justify-content: this wrap is a flex child that the site-wide
	   body{min-height:100vh} chain stretches taller than its content on
	   short posts. With justify-content:center the surplus height was split
	   above/below the children, vertically centering the article and opening
	   a large blank gap between the header meta and the content. Default
	   (flex-start) keeps the title/meta/content flowing from the top; any
	   surplus height simply sits below the content, harmlessly. */
	padding: var(--global-boxed-spacing);
}

/* ==========================================================================
   D) Entry Header
   ========================================================================== */

.kadence-single-post .entry-header {
	margin-bottom: 1em;
}

.kadence-single-post .entry-title {
	margin: 0;
	word-wrap: break-word;
	line-height: 1.3;
}

/* ==========================================================================
   E) Entry Meta
   ========================================================================== */

.kadence-single-post .entry-meta {
	font-size: 80%;
	margin: 1em 0;
	display: flex;
	flex-wrap: wrap;
	color: var(--global-palette5);
}

.kadence-single-post .entry-meta > * {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
}

.kadence-single-post .entry-meta > * time {
	white-space: nowrap;
}

.kadence-single-post .entry-meta a {
	color: inherit;
	text-decoration: none;
}

.kadence-single-post .entry-meta a:hover {
	color: var(--global-palette-highlight);
}

.kadence-single-post .entry-meta .meta-label {
	margin-right: 0.2rem;
}

/* Author avatar — small circular photo before the byline label ($M2P_MESSAGES['post_meta_by']) */
.kadence-single-post .entry-meta .posted-by .author-avatar {
	display: inline-flex;
	margin-right: 0.5rem;
	vertical-align: middle;
}

.kadence-single-post .entry-meta .posted-by .author-avatar img {
	width: 4rem;
	height: 4rem;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

/* Dot divider */
.kadence-single-post .entry-meta.entry-meta-divider-dot > *::after {
	margin-left: 0.5rem;
	margin-right: 0.5rem;
	content: "";
	display: inline-block;
	background-color: currentColor;
	height: 0.25rem;
	width: 0.25rem;
	opacity: 0.8;
	border-radius: 9999px;
	vertical-align: 0.1875em;
}

.kadence-single-post .entry-meta > *:last-child::after {
	display: none;
}

/* Mobile: stack the meta row so the date always sits on its own line directly
   below the author block. Relying on flex-wrap alone was width-dependent — at
   some widths the date crammed next to the author name, at others it dropped an
   extra line down. Switching the container to column makes each child
   (.posted-by, then .posted-on) take its own row deterministically. The dot
   dividers (generated > *::after) are meaningless once items stack vertically,
   so suppress them. */
@media screen and (max-width: 767px) {
	.kadence-single-post .entry-meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
	}

	.kadence-single-post .entry-meta.entry-meta-divider-dot > *::after {
		content: none;
	}

	/* The byline (.posted-by) is as tall as the 64px avatar, so its centered
	   "By <author>" text sits at the avatar's vertical middle. The date
	   (.posted-on) is a separate sibling that would otherwise start BELOW the
	   full avatar, leaving a big gap between the name and the date.
	   - margin-left: 72px  -> indent the date under the byline TEXT, not the
	     avatar (4rem/64px img + 0.5rem/8px margin = 72px footprint).
	   - margin-top: -1rem  -> pull the date up so it sits one comfortable line
	     below the author name (instead of dropping below the full 64px avatar,
	     which left a big gap). -1rem gives a normal name/date line spacing;
	     a larger negative value crams them together, a smaller one re-opens the
	     gap. Adjust together with the avatar size above if it ever changes.
	     rem here is root-relative, unaffected by the .entry-meta font-size:80%
	     context. */
	.kadence-single-post .entry-meta .posted-on {
		margin-left: 72px;
		margin-top: -1rem;
	}
}

/* ==========================================================================
   F) Entry Content
   ========================================================================== */

.kadence-single-post .entry-content {
	margin: 0;
}

.kadence-single-post .entry-content::after {
	display: table;
	clear: both;
	content: "";
}

.kadence-single-post .single-content p,
.kadence-single-post .single-content figure,
.kadence-single-post .single-content table,
.kadence-single-post .single-content hr,
.kadence-single-post .single-content pre,
.kadence-single-post .single-content blockquote,
.kadence-single-post .single-content .wp-block-group,
.kadence-single-post .single-content .wp-block-buttons,
.kadence-single-post .single-content .wp-block-columns,
.kadence-single-post .single-content .wp-block-image,
.kadence-single-post .single-content .wp-block-media-text {
	margin-top: 0;
	margin-bottom: var(--global-md-spacing);
}

/* Inline links in main article content and author bio — always orange underline */
.kadence-single-post .single-content a,
.kadence-single-post .entry-author-description a {
	color: var(--global-palette4);
	text-decoration: underline;
	text-decoration-color: var(--global-palette-highlight);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
	transition: color 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .single-content a:hover,
.kadence-single-post .single-content a:focus-visible,
.kadence-single-post .entry-author-description a:hover,
.kadence-single-post .entry-author-description a:focus-visible {
	color: var(--global-palette-highlight);
}

/* Featured image — floated right next to the opening paragraph */
.kadence-single-post .single-content .post-featured-image {
	float: right;
	width: 46%;
	max-width: 440px;
	margin: 0 0 var(--global-md-spacing) var(--global-md-spacing);
	padding: 0;
	border-radius: 0.75rem;
	overflow: hidden;
	shape-outside: margin-box;
	box-shadow: 0 4px 16px -4px rgba(15, 15, 15, 0.10), 0 2px 4px rgba(15, 15, 15, 0.04);
}

.kadence-single-post .single-content .post-featured-image img {
	display: block;
	width: 100%;
	height: auto;
}

.kadence-single-post .single-content h1,
.kadence-single-post .single-content h2,
.kadence-single-post .single-content h3,
.kadence-single-post .single-content h4,
.kadence-single-post .single-content h5,
.kadence-single-post .single-content h6 {
	margin-top: var(--global-md-spacing);
}

.kadence-single-post .comments-title,
.kadence-single-post .comment-reply-title {
	font-size: clamp(1.3rem, 1.1rem + 0.5vw, 1.75rem);
	text-align: left;
	color: var(--global-palette3);
}

.kadence-single-post .single-content > p:first-of-type::first-letter {
	float: left;
	font-size: 3.5em;
	line-height: 0.8;
	font-weight: 700;
	color: #fb6b00;
	margin-right: 0.08em;
	margin-top: 0.05em;
	font-family: Georgia, "Times New Roman", Times, serif;
}

.kadence-single-post .single-content *:last-child {
	margin-bottom: 0;
}

.kadence-single-post .single-content ul,
.kadence-single-post .single-content ol {
	margin-top: 0;
	margin-bottom: var(--global-md-spacing);
	padding-left: 1.5em;
}

.kadence-single-post .single-content img {
	display: block;
	height: auto;
	max-width: 100%;
}

.kadence-single-post .single-content .wp-block-quote {
	border-left: 4px solid #fb6b00 !important;
	padding-left: 1.5em;
	margin-left: 0;
	margin-right: 0;
}

.kadence-single-post .single-content .wp-block-quote p {
	margin-bottom: var(--global-sm-spacing);
	font-size: 1.15em;
	font-style: normal;
	line-height: 1.7;
	color: var(--global-palette4);
}

.kadence-single-post .single-content .wp-block-quote p:last-child {
	margin-bottom: 0;
}

.kadence-single-post .single-content .wp-block-quote cite {
	font-size: 0.85em;
	font-style: normal;
	color: var(--global-palette5);
}

.kadence-single-post .single-content pre {
	background: var(--global-palette7) !important;
	padding: 1.5em !important;
	border-radius: 0.25rem;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	overflow-x: auto;
	font-family: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "Courier New", Courier, monospace;
	font-size: 0.85em;
	line-height: 1.75;
	white-space: pre;
	word-wrap: normal;
}

.kadence-single-post .single-content pre code {
	background: transparent !important;
	padding: 0;
	font-size: inherit;
	font-family: inherit;
}

.kadence-single-post .single-content code {
	background: var(--global-palette7) !important;
	padding: 0.2em 0.4em;
	border-radius: 0.2rem;
	font-family: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "Courier New", Courier, monospace;
	font-size: 0.85em;
}

/* Horizontal rule */
.kadence-single-post .single-content hr {
	border: none !important;
	border-top: 2px solid #fb6b00 !important;
}

/* Media & Text block */
.kadence-single-post .single-content .wp-block-media-text {
	gap: 1em;
}

.kadence-single-post .single-content .wp-block-media-text .wp-block-media-text__content {
	padding: 0;
}

/* Details/expand block */
.kadence-single-post .single-content .wp-block-details {
	margin-bottom: var(--global-md-spacing);
}

/* Embeds (YouTube, etc.) */
.kadence-single-post .single-content .wp-block-embed {
	margin-top: 0;
	margin-bottom: var(--global-md-spacing);
}

.kadence-single-post .single-content .wp-block-embed .wp-block-embed__wrapper {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}

.kadence-single-post .single-content .wp-block-embed .wp-block-embed__wrapper iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
}

.kadence-single-post .single-content iframe {
	max-width: 100%;
}

.kadence-single-post .page-links {
	clear: both;
	margin: var(--global-md-spacing) 0;
}

/* Alignments */
.kadence-single-post .entry-content .alignwide {
	margin-left: -2rem;
	margin-right: -2rem;
	max-width: unset;
	width: unset;
}

.kadence-single-post .entry-content .alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
	width: 100vw;
}

/* ==========================================================================
   G) Entry Footer / Tags
   ========================================================================== */

.kadence-single-post .entry-footer {
	clear: both;
}

.kadence-single-post .entry-tags {
	margin-top: var(--global-xs-spacing);
}

.kadence-single-post .entry-tags .tags-links {
	display: flex;
	flex-wrap: wrap;
}

.kadence-single-post .entry-tags a.tag-link {
	margin-right: 0.5em;
	padding: 0.4em 0.6em;
	margin-top: 0.5em;
	font-size: 80%;
	border: 1px solid var(--global-gray-500);
	border-radius: 0.25rem;
	color: var(--global-palette5);
	text-decoration: none;
}

.kadence-single-post .entry-tags a.tag-link:hover {
	background: var(--global-palette-highlight);
	color: var(--global-palette-btn);
	border-color: var(--global-palette-highlight);
}

.kadence-single-post .entry-tags a.tag-link:last-child {
	margin-right: 0;
}

/* --------------------------------------------------------------------------
   G.1) End-of-post follow CTA (.m2p-post-social)
   A small editorial sign-off line inside the author bio block. The whole
   sentence is plain copy; the trailing #hashtag is a brand-orange in-page
   anchor to the footer socials block (#social). On RU translation posts an
   inline link to the EN original is interpolated mid-sentence — it shares
   the same brand-orange link treatment as the hashtag so EN and RU CTAs
   read with identical visual weight.
   -------------------------------------------------------------------------- */
.kadence-single-post .m2p-post-social {
	margin: var(--global-sm-spacing) 0 0;
	padding-top: 0.9rem;
	border-top: 1px solid var(--global-gray-300, #e2e8f0);
	color: var(--global-palette5);
	font-size: 0.92rem;
	line-height: 1.55;
	letter-spacing: 0.005em;
}

/* RU translation CTA renders as a sibling of .entry-author-profile (full card
   width) rather than inside .entry-author-description (narrow text column).
   Give it a touch more breathing room above so the divider feels like a true
   card-level separator, not a bio-paragraph continuation. */
.kadence-single-post .m2p-post-social--translation {
	margin-top: 1.5rem;
	padding-top: 1.1rem;
	width: 100%;
}

.kadence-single-post .m2p-post-social__hashtag,
.kadence-single-post .m2p-post-social__original {
	color: #c85600; /* palette-highlight-alt — AA contrast on white surfaces */
	font-weight: 500;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.18s ease, color 0.18s ease;
}

.kadence-single-post .m2p-post-social__hashtag:hover,
.kadence-single-post .m2p-post-social__hashtag:focus-visible,
.kadence-single-post .m2p-post-social__original:hover,
.kadence-single-post .m2p-post-social__original:focus-visible {
	color: #a04400;
	border-bottom-color: currentColor;
	outline: none;
}

/* Native smooth scroll for the #social anchor (and any other in-page hash
   link). Scoped to html so it doesn't interfere with the jQuery-animated
   "back to top" handler bound to .arrow-top a. */
html {
	scroll-behavior: smooth;
}

/* --------------------------------------------------------------------------
   G.2) AI-course promotional callout (.m2p-info-callout)
   A conditional "info" box rendered between .entry-content-wrap and the
   author card on AI-course-tagged posts (see single.php). Soft cream peach
   surface with a circled brand-orange "i", reusing the card radius (1rem)
   and content margins (--global-md-spacing) of the .entry-author block, plus
   the peach/orange notice vocabulary (palette7 / palette-highlight).

   The cream fill sits one step lighter than the page gradient's #FFECD2 end
   so the box reads as a distinct surface against it. The border is a soft
   tint of brand-orange #fb6b00 rather than the full-strength hue. Body copy
   is palette3 (#1A202C, AA-safe on the cream); the orange is reserved for the
   icon (a graphical element) and the course link, which uses the AA-safe
   palette-highlight-alt (#c85600), matching the follow-CTA link treatment.
   -------------------------------------------------------------------------- */
.kadence-single-post .m2p-info-callout {
	display: flex;
	align-items: flex-start;
	/* Restored to 0.875rem (was trimmed to 0.625rem only to cram the old 14px
	   sentence). At 17px the text still clears one line with room to spare, so
	   the original visual balance comes back. */
	gap: 0.875rem;
	margin: var(--global-md-spacing) 0;
	/* Restored to 1.5rem horizontal (was trimmed to 1rem to widen the text
	   column for 14px). The callout's outer box is the full .site-container
	   inner width — 794px on a single post (NOT the 730px content-wrap inner I
	   previously assumed; the callout sits outside .entry-content-wrap's 2rem
	   padding). With 1.5rem padding + 1px border + 28px icon + 0.875rem gap the
	   text column is ~702px. Measured one-line widths in the live render font
	   (Kadence pins the content root to system-sans, see note below): RU 685px
	   (+17), EN 673px (+30) at 17px — both fit comfortably. */
	padding: 1.25rem 1.5rem;
	background: #FFF4EA; /* one step lighter than the page gradient end (#FFECD2) */
	border: 1px solid rgba(251, 107, 0, 0.32); /* soft tint of brand-orange #fb6b00 */
	border-radius: 1rem; /* matches .entry-author card radius */
}

/* Icon: graduation cap built as inline SVG (matches the theme's footer/social
   SVG convention). currentColor lets a single color: rule drive the whole
   glyph. Brand orange here is a graphic, not text, so the AA 4.5:1 body-text
   threshold doesn't apply. */
.kadence-single-post .m2p-info-callout__icon {
	flex: 0 0 auto;
	display: inline-flex;
	color: var(--global-palette-highlight); /* #fb6b00 */
	line-height: 0;
	/* Optical alignment: nudge the icon to sit on the first text line. */
	margin-top: 0.1rem;
}

.kadence-single-post .m2p-info-callout__icon svg {
	display: block;
	/* Restored to 28px (was reduced to 24px to buy text-column width for 14px).
	   At 17px the cap reads in proportion with the larger sentence again. */
	width: 28px;
	height: 28px;
}

.kadence-single-post .m2p-info-callout__text {
	margin: 0;
	flex: 1 1 auto; /* fill the row so text-align:center is relative to full width */
	/* 14px -> 17px. The earlier 14px was needlessly small: it left the box ~60%
	   empty (the text column is 702px but 14px RU only spans ~565px, +137 slack).
	   The original "662px column / 783px Montserrat" figures were wrong — the
	   callout actually renders at the 794px container width, and the Kadence
	   content root pins this area to SYSTEM-SANS (not the body's Montserrat), so
	   the real strings are narrower. Re-measured on the live single post in the
	   actual render font at the real 702px text column:
	     14px  RU 565 (+137)  EN 554 (+148)   — far too small
	     17px  RU 685 (+17)   EN 673 (+30)     — largest size that holds one line
	     18px  RU 727 (-25)                     — overflows, wraps to 2 lines
	   17px also matches the content base font-size, so the callout reads at the
	   same scale as the surrounding body copy instead of looking shrunken. */
	font-size: 1.0625rem; /* 17px */
	font-weight: 400; /* normal weight */
	line-height: 1.5;
	/* Imperceptible tightening — cheap insurance so a minor font-metric shift or
	   future copy edit (the RU/EN strings are user-maintained) won't tip the
	   +17px RU margin into a 2nd line. */
	letter-spacing: -0.005em;
	text-align: center; /* horizontally centered within the callout */
	color: var(--global-palette3); /* #1A202C — AA-safe on the cream surface */
}

.kadence-single-post .m2p-info-callout__course {
	/* Brand orange to match the site-wide content-link scheme (styles.css
	   a:link #fb6b00 / a:hover #c45500). Requested so the course name reads as
	   "the same style as other links."
	   CONTRAST CAVEAT: this callout sits on the peach #FFF4EA surface, where
	   #fb6b00 is only ~2.69:1 — it FAILS WCAG AA (4.5:1) and even the 3:1
	   large-text bar. The AA-safe brand alternative is #E65C00 (the footer
	   surface swap). Shipping #fb6b00 per explicit request; swap to #E65C00 if
	   AA on the callout is later required. */
	color: #fb6b00;
	/* Match the underline treatment now used by other content links:
	   underline, same color as the text. Replaces the old hover-only
	   border-bottom. width is unchanged (white-space:nowrap below keeps the
	   course name on one line), so the one-line desktop fit still holds. */
	text-decoration: underline;
	text-decoration-color: currentColor;
	/* Keep the course name unbroken so it never splits mid-word into the ugly
	   "AI-/приложения" wrap. On desktop the whole sentence is one line anyway;
	   on mobile (where the sentence does wrap) this guarantees the link drops
	   to its own clean line instead of breaking inside the name. */
	white-space: nowrap;
	transition: color 0.18s ease;
}

.kadence-single-post .m2p-info-callout__course:hover,
.kadence-single-post .m2p-info-callout__course:focus-visible {
	color: #c45500; /* matches the global a:hover */
	text-decoration: underline;
	text-decoration-color: currentColor;
	outline: none;
}

.kadence-single-post .m2p-info-callout__course:visited {
	color: #a86a3c; /* matches the global a:visited */
}

/* Mobile — one line isn't feasible here at a readable size (the text column is
   only ~200px), so the sentence wraps gracefully and stays centered. The
   course-link nowrap (above) keeps the name on its own unbroken line. Font is
   16px: a touch below desktop's 17px to respect the narrower column, but no
   longer smaller than the old desktop value. Padding/gap stay slightly tighter
   than desktop so the wrapped block doesn't feel bulky on a 390px screen. */
@media screen and (max-width: 767px) {
	.kadence-single-post .m2p-info-callout {
		padding: 1rem 1.125rem;
		gap: 0.625rem;
	}

	.kadence-single-post .m2p-info-callout__text {
		font-size: 1rem; /* 16px */
	}

	/* Override the desktop nowrap on the course link: the ~200px mobile text
	   column can't hold the multi-word title on one unbroken line, so nowrap
	   forces it past the callout's right edge (horizontal overflow / cut-off
	   link). Let it wrap; overflow-wrap:anywhere breaks an over-long token
	   rather than overflowing. Desktop keeps nowrap (the sentence is one line
	   there anyway). */
	.kadence-single-post .m2p-info-callout__course {
		white-space: normal;
		overflow-wrap: anywhere;
	}
}

/* ==========================================================================
   H) Author Box
   ========================================================================== */

.kadence-single-post .entry-author {
	margin: var(--global-lg-spacing) auto var(--global-md-spacing);
	background: var(--global-palette9);
	padding: var(--global-boxed-spacing);
	border-radius: 1rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
}

.kadence-single-post .entry-author-profile {
	position: relative;
	padding-left: 180px;
}

.kadence-single-post .entry-author-avatar {
	position: absolute;
	left: 0;
}

.kadence-single-post .entry-author-avatar img {
	width: 160px;
	height: 160px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.kadence-single-post .entry-author-name {
	font-size: 120%;
}

/* Author name (e.g. "Lilia Urmazova") in the bio block. It is a link, so the
   site-wide a:link/visited/hover rules (styles.css) would otherwise paint it
   brand-orange and underline it. The name should read as a plain black heading,
   not a link, so force black + no underline in every state. `!important` is
   required to beat the global link rules' high :not()-chain specificity. */
.kadence-single-post .entry-author-name a,
.kadence-single-post .entry-author-name a:link,
.kadence-single-post .entry-author-name a:visited,
.kadence-single-post .entry-author-name a:hover,
.kadence-single-post .entry-author-name a:focus-visible {
	color: #000 !important;
	text-decoration: none !important;
}

.kadence-single-post .entry-author-profile p {
	margin: 1em 0;
}

.kadence-single-post .entry-author-profile p.entry-author-occupation {
	margin: 0;
	font-size: 90%;
}

.kadence-single-post .entry-author-description {
	margin: 0.5em 0;
	color: var(--global-palette5);
}

.kadence-single-post .entry-author-follow {
	margin-top: 1em;
}

.kadence-single-post .entry-author-follow .social-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2em;
	height: 2em;
	margin-right: 0.5em;
	color: var(--global-palette5);
	text-decoration: none;
}

.kadence-single-post .entry-author-follow .social-button:hover {
	color: var(--global-palette-highlight);
}

.kadence-single-post .entry-author-follow .social-button svg {
	width: 1.2em;
	height: 1.2em;
	fill: currentColor;
}

/* Center style author box */
.kadence-single-post .entry-author-style-center {
	padding-bottom: var(--global-md-spacing);
	border-bottom: 1px solid var(--global-gray-500);
}

.kadence-single-post .entry-author-style-center .entry-author-profile {
	text-align: center;
	padding-left: 0;
}

.kadence-single-post .entry-author-style-center .entry-author-avatar {
	position: relative;
	margin-bottom: 0.5em;
}

.kadence-single-post .entry-author-style-center .entry-author-avatar img {
	margin: 0 auto;
}

/* ==========================================================================
   I) Post Navigation
   ========================================================================== */

/* Post navigation: The Reading Ribbon with feature images */
.kadence-single-post .post-navigation {
	margin: var(--global-md-spacing) auto var(--global-xl-spacing);
	padding: 0;
	background: transparent;
	border-radius: 0;
}

.kadence-single-post .post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--global-md-spacing);
	padding-top: var(--global-md-spacing);
}

.kadence-single-post .post-navigation .nav-previous,
.kadence-single-post .post-navigation .nav-next {
	position: relative;
}

.kadence-single-post .post-navigation .nav-next {
	grid-column-start: 2;
}

.kadence-single-post .post-navigation a {
	display: flex;
	align-items: center;
	gap: var(--global-md-spacing);
	text-decoration: none;
	color: inherit;
	padding: 0.25rem 0;
	position: relative;
}

/* Next-link lays out media on the right, text on the left */
.kadence-single-post .nav-next a {
	flex-direction: row-reverse;
	text-align: right;
}

/* Give each link a small indent on the arrow side */
.kadence-single-post .nav-previous a {
	padding-left: 1.75rem;
}

.kadence-single-post .nav-next a {
	padding-right: 1.75rem;
}

/* Arrow glyphs — typographic lead characters in accent orange */
.kadence-single-post .nav-previous a::before,
.kadence-single-post .nav-next a::after {
	position: absolute;
	top: 50%;
	font-size: 1.5em;
	line-height: 1;
	color: var(--global-palette-highlight);
	transform: translateY(-50%);
	transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .nav-previous a::before {
	content: "\2190"; /* ← */
	left: 0;
}

.kadence-single-post .nav-next a::after {
	content: "\2192"; /* → */
	right: 0;
}

/* Feature image slot — rounded square, fixed size */
.kadence-single-post .post-navigation-media {
	flex: 0 0 auto;
	width: 5rem;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--global-palette9);
	border-radius: 0.75rem;
}

.kadence-single-post .post-navigation-image,
.kadence-single-post .post-navigation-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 480ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Text body — flex child that can shrink */
.kadence-single-post .post-navigation-body {
	flex: 1 1 auto;
	min-width: 0;
}

/* Small-caps label sits quietly above the title */
.kadence-single-post .post-navigation-sub {
	display: block;
	margin-bottom: 0.25rem;
}

.kadence-single-post .post-navigation-sub small {
	font-size: 0.6875rem;
	text-transform: uppercase;
	display: inline-block;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--global-palette5);
}

/* Title is the hero — editorial display scale */
.kadence-single-post .post-navigation-title {
	display: block;
	width: fit-content;
	font-family: var(--global-heading-font-family, inherit);
	font-size: clamp(1rem, 1.4vw, 1.25rem);
	line-height: 1.3;
	font-weight: 600;
	color: var(--global-palette3);

	/* Per-line underline — appears on hover, follows text contour exactly */
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: text-decoration-color 280ms cubic-bezier(0.2, 0.8, 0.2, 1),
	            color 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Next-nav title pushed to the right edge of its body column */
.kadence-single-post .nav-next .post-navigation-title {
	margin-left: auto;
}

/* Hover & focus — arrow travels, title goes orange, underline appears, thumbnail zooms */
.kadence-single-post .post-navigation a:hover .post-navigation-title,
.kadence-single-post .post-navigation a:focus-visible .post-navigation-title {
	color: var(--global-palette-highlight);
	text-decoration-color: var(--global-palette-highlight);
}

.kadence-single-post .post-navigation a:hover .post-navigation-image,
.kadence-single-post .post-navigation a:focus-visible .post-navigation-image {
	transform: scale(1.04);
}

.kadence-single-post .nav-previous a:hover::before,
.kadence-single-post .nav-previous a:focus-visible::before {
	transform: translate(-4px, -50%);
}

.kadence-single-post .nav-next a:hover::after,
.kadence-single-post .nav-next a:focus-visible::after {
	transform: translate(4px, -50%);
}

.kadence-single-post .post-navigation a:focus-visible {
	outline: 2px solid var(--global-palette-highlight);
	outline-offset: 6px;
	border-radius: 2px;
}

/* Empty state — only prev or only next exists */
.kadence-single-post .post-navigation .nav-links:has(.nav-previous:only-child),
.kadence-single-post .post-navigation .nav-links:has(.nav-next:only-child) {
	grid-template-columns: 1fr;
}

.kadence-single-post .post-navigation .nav-links .nav-next:only-child {
	grid-column-start: 1;
}

@media (prefers-reduced-motion: reduce) {
	.kadence-single-post .post-navigation a,
	.kadence-single-post .post-navigation-title,
	.kadence-single-post .post-navigation-image,
	.kadence-single-post .nav-previous a::before,
	.kadence-single-post .nav-next a::after {
		transition: none;
	}
}

/* ==========================================================================
   J) Related Posts
   ========================================================================== */

/* Related posts: Stacked Column of Cuttings */
.kadence-single-post .entry-related {
	margin-top: 0;
	margin-bottom: var(--global-lg-spacing);
	background: var(--global-palette7);
	padding: var(--global-xl-spacing) var(--global-sm-spacing);
	border-radius: 1rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
	overflow: hidden;
}

.kadence-single-post .entry-related-inner {
	max-width: 44rem;
	margin: 0 auto;
}

/* Single-line editorial label above the stack */
.kadence-single-post .entry-related-header {
	margin-bottom: var(--global-lg-spacing);
}

.kadence-single-post .entry-related-eyebrow {
	display: block;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: var(--global-palette5);
	margin: 0;
}

/* Stacked list — replaces the 3-column grid */
.kadence-single-post .entry-related-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
}

.kadence-single-post .related-post-card {
	background: transparent;
	border-radius: 0;
	overflow: visible;
}

.kadence-single-post .related-post-card + .related-post-card {
	margin-top: var(--global-md-spacing);
	padding-top: var(--global-md-spacing);
	border-top: 1px solid color-mix(in srgb, var(--global-gray-500) 60%, transparent);
}

.kadence-single-post .related-post-link {
	display: grid;
	grid-template-columns: 7.5rem 1fr;
	gap: var(--global-md-spacing);
	align-items: start;
	text-decoration: none;
	color: inherit;
	padding: 0.25rem 0;
	position: relative;
}

/* Media slot — rounded square, always present, holds image OR numeral */
.kadence-single-post .related-post-media {
	aspect-ratio: 1 / 1;
	width: 7.5rem;
	background: var(--global-palette9);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	border-radius: 0.75rem;
}

.kadence-single-post .related-post-image,
.kadence-single-post .related-post-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 480ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .related-post-card.no-thumb .related-post-media {
	border: 1px solid color-mix(in srgb, var(--global-gray-500) 40%, transparent);
}

.kadence-single-post .related-post-index {
	font-family: var(--global-heading-font-family, inherit);
	font-size: 3.5rem;
	line-height: 1;
	font-weight: 700;
	color: var(--global-palette-highlight);
	font-feature-settings: "tnum", "lnum";
	letter-spacing: -0.03em;
	transition: transform 280ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .related-post-body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 0;
}

.kadence-single-post .related-post-title {
	font-family: var(--global-heading-font-family, inherit);
	font-size: clamp(1.125rem, 1.8vw, 1.375rem);
	line-height: 1.25;
	font-weight: 600;
	color: var(--global-palette3);
	margin: 0;
	width: fit-content;

	/* Per-line underline — appears on hover, follows text contour exactly */
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: text-decoration-color 280ms cubic-bezier(0.2, 0.8, 0.2, 1),
	            color 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .related-post-meta {
	font-size: 80%;
	color: var(--global-palette5);
	display: flex;
	gap: 0.5rem;
	align-items: center;
	flex-wrap: wrap;
}

/* Category keeps the small-caps label treatment */
.kadence-single-post .related-post-cat {
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: var(--global-palette-highlight);
}

/* Date matches the category label size — plain case, no letter-spacing */
.kadence-single-post .related-post-meta time {
	font-size: 0.6875rem;
	white-space: nowrap;
}

.kadence-single-post .related-post-sep {
	opacity: 0.5;
}

/* Hover & focus — the row lights up like a highlighted cutting */
.kadence-single-post .related-post-link:hover .related-post-title,
.kadence-single-post .related-post-link:focus-visible .related-post-title {
	color: var(--global-palette-highlight);
	text-decoration-color: var(--global-palette-highlight);
}

.kadence-single-post .related-post-link:hover .related-post-image,
.kadence-single-post .related-post-link:focus-visible .related-post-image {
	transform: scale(1.04);
}

.kadence-single-post .related-post-link:hover .related-post-index,
.kadence-single-post .related-post-link:focus-visible .related-post-index {
	transform: translateX(-2px);
}

/* Left-edge accent rule — the "pinned cutting" focus indicator */
.kadence-single-post .related-post-link::before {
	content: "";
	position: absolute;
	left: -0.75rem;
	top: 0;
	bottom: 0;
	width: 2px;
	background: var(--global-palette-highlight);
	transform: scaleY(0);
	transform-origin: top;
	transition: transform 280ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .related-post-link:hover::before,
.kadence-single-post .related-post-link:focus-visible::before {
	transform: scaleY(1);
}

.kadence-single-post .related-post-link:focus-visible {
	outline: 2px solid transparent;
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--global-palette-highlight) 30%, transparent);
	border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.kadence-single-post .related-post-link,
	.kadence-single-post .related-post-image,
	.kadence-single-post .related-post-title,
	.kadence-single-post .related-post-link::before,
	.kadence-single-post .related-post-index {
		transition: none;
	}
}

/* ==========================================================================
   K) Comments
   ========================================================================== */

.kadence-single-post .comments-area {
	margin: var(--global-xl-spacing) auto var(--global-lg-spacing);
	background: var(--global-palette9);
	padding: var(--global-boxed-spacing);
	border-radius: 1rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
}

/* Header block: eyebrow + heading + short orange section rule */
.kadence-single-post .comment-form-header {
	position: relative;
	padding-bottom: 1.25rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid var(--global-gray-500);
}

.kadence-single-post .comment-form-header::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 3rem;
	height: 2px;
	background: var(--global-palette-highlight);
}

.kadence-single-post .comment-form-eyebrow {
	display: block;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: var(--global-palette5);
	margin-bottom: 0.5rem;
}

.kadence-single-post .comments-title,
.kadence-single-post .comment-reply-title {
	font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem);
	line-height: 1.15;
	text-align: left;
	color: var(--global-palette3);
	margin: 0;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.kadence-single-post .comment-reply-title small {
	display: inline-block;
	margin-left: 1rem;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 600;
	vertical-align: middle;
}

/* Comments list header — eyebrow + big heading above existing comments */
.kadence-single-post .comments-list-header {
	position: relative;
	padding-bottom: 1.25rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid var(--global-gray-500);
}

.kadence-single-post .comments-list-header::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 3rem;
	height: 2px;
	background: var(--global-palette-highlight);
}

.kadence-single-post .comments-list-header .comment-form-eyebrow {
	display: block;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: var(--global-palette5);
	margin-bottom: 0.5rem;
}

.kadence-single-post .comments-title {
	font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem);
	line-height: 1.15;
	text-align: left;
	color: var(--global-palette3);
	margin: 0;
	font-weight: 700;
	letter-spacing: -0.01em;
}

/* Secondary form header — shown when comments list already has the eyebrow */
.kadence-single-post .comment-form-header.is-secondary {
	margin-top: 2.5rem;
	padding-bottom: 0;
	margin-bottom: 1.25rem;
	border-bottom: none;
}

.kadence-single-post .comment-form-header.is-secondary::after {
	display: none;
}

.kadence-single-post .comment-form-header.is-secondary .comment-reply-title {
	font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
	font-weight: 600;
}

/* Comment list — editorial stack (overrides Kadence comments.min.css) */
.kadence-single-post .comments-area .comment-list {
	padding: 0 !important;
	margin: 0 0 2rem !important;
	list-style: none !important;
}

.kadence-single-post .comments-area .comment-list ol,
.kadence-single-post .comments-area .comment-list ul {
	list-style: none;
	padding: 0;
}

.kadence-single-post .comments-area .comment-list li.comment,
.kadence-single-post .comments-area .comment-list .children > li {
	list-style: none;
	margin: 0;
}

/* Nested replies */
.kadence-single-post .comments-area .comment-list .children {
	margin: 0 0 0 2.5rem !important;
	padding: 0 0 0 1.25rem;
	border-left: 2px solid color-mix(in srgb, var(--global-palette-highlight) 25%, transparent);
}

/* Each comment body — normal block, no Kadence absolute positioning */
.kadence-single-post .comments-area .comment-body,
.kadence-single-post .comments-area article.comment-body {
	display: block !important;
	position: relative !important;
	padding: 1.25rem 0 !important;
	margin: 0 !important;
	border: none !important;
	border-bottom: 1px solid color-mix(in srgb, var(--global-gray-500) 60%, transparent) !important;
	background: transparent !important;
	color: inherit !important;
	box-shadow: none !important;
}

.kadence-single-post .comments-area .comment-list > li.comment:last-child > .comment-body,
.kadence-single-post .comments-area .comment-list .children > li:last-child > .comment-body {
	border-bottom: none !important;
}

/* Footer meta row — flex with avatar + author + date all in one row */
.kadence-single-post .comments-area .comment-body .comment-meta,
.kadence-single-post .comments-area .comment-body footer.comment-meta,
.kadence-single-post .comments-area .comment-body > footer {
	display: flex !important;
	align-items: center !important;
	gap: 0.875rem !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: inherit !important;
	position: static !important;
	background: transparent !important;
	color: inherit !important;
	box-shadow: none !important;
}

/* Author (wraps the avatar image + fn name) */
.kadence-single-post .comments-area .comment-body .comment-author {
	display: flex !important;
	align-items: center !important;
	gap: 0.875rem !important;
	font-size: 0.9375rem !important;
	line-height: 1.3 !important;
	color: var(--global-palette3) !important;
	margin: 0 !important;
	flex: 0 0 auto !important;
	background: transparent !important;
	padding: 0 !important;
}

/* Avatar — static position, larger size, circular */
.kadence-single-post .comments-area .comment-body .avatar {
	position: static !important;
	left: auto !important;
	flex-shrink: 0;
	width: 3rem !important;
	height: 3rem !important;
	border-radius: 50% !important;
	object-fit: cover;
	margin: 0 !important;
}

/* Author name */
.kadence-single-post .comments-area .comment-body .comment-author .fn,
.kadence-single-post .comments-area .comment-body .comment-author cite.fn {
	font-style: normal !important;
	font-weight: 600 !important;
	color: var(--global-palette3) !important;
	font-size: 0.9375rem !important;
}

.kadence-single-post .comments-area .comment-body .comment-author .fn a,
.kadence-single-post .comments-area .comment-body .comment-author cite.fn a {
	color: var(--global-palette3) !important;
	text-decoration: none !important;
}

.kadence-single-post .comments-area .comment-body .comment-author .fn a:hover,
.kadence-single-post .comments-area .comment-body .comment-author cite.fn a:hover {
	color: var(--global-palette-highlight) !important;
}

/* Hide "says:" filler */
.kadence-single-post .comments-area .comment-body .says {
	display: none !important;
}

/* Metadata (date link) — pushed to the right of the flex row */
.kadence-single-post .comments-area .comment-body .comment-metadata {
	font-size: 0.75rem !important;
	color: var(--global-palette5) !important;
	padding: 0 !important;
	margin: 0 0 0 auto !important;
	background: transparent !important;
	text-align: right !important;
}

.kadence-single-post .comments-area .comment-body .comment-metadata a,
.kadence-single-post .comments-area .comment-body .comment-metadata time {
	color: var(--global-palette5) !important;
	text-decoration: none !important;
	background: transparent !important;
	padding: 0 !important;
}

.kadence-single-post .comments-area .comment-body .comment-metadata a:hover {
	color: var(--global-palette-highlight) !important;
	text-decoration: none !important;
}

/* Content — full width below the meta row */
.kadence-single-post .comments-area .comment-body .comment-content {
	margin: 0.75rem 0 0 !important;
	padding: 0 0 0 3.875rem !important; /* align with text column: avatar (3rem) + gap (0.875rem) */
	font-size: 0.9375rem !important;
	line-height: 1.55 !important;
	color: var(--global-palette4) !important;
}

.kadence-single-post .comments-area .comment-body .comment-content p {
	margin: 0 0 0.75rem;
}

.kadence-single-post .comments-area .comment-body .comment-content p:last-child {
	margin-bottom: 0;
}

.kadence-single-post .comments-area .comment-body .comment-content a {
	color: var(--global-palette4);
	text-decoration: underline;
	text-decoration-color: var(--global-palette-highlight);
	text-underline-offset: 0.15em;
	word-wrap: break-word;
}

.kadence-single-post .comments-area .comment-body .comment-content a:hover {
	color: var(--global-palette-highlight);
}

/* Awaiting-moderation badge — sits inside .comment-metadata, just left of the date.
   The badge text comes from a CSS custom property injected via wp_head (see functions.php)
   so the Russian string stays in the messages file, not the stylesheet. */
.kadence-single-post .comments-area li.is-pending-moderation .comment-metadata::before {
	content: var(--m2p-comment-awaiting-mod, "");
	display: inline-block;
	margin-right: 0.5rem;
	padding: 0.2rem 0.5rem;
	background: #fdecea;
	border-radius: 0.25rem;
	color: #7a1d1b;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.4;
	vertical-align: baseline;
}

/* Reply link — small-caps editorial CTA */
.kadence-single-post .comments-area .comment-body .reply {
	margin: 0.75rem 0 0 !important;
	padding-left: 3.875rem !important;
	position: static !important;
	top: auto !important;
	right: auto !important;
}

.kadence-single-post .comments-area .comment-reply-link {
	display: inline-flex !important;
	align-items: center;
	gap: 0.375rem;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	font-size: 0.6875rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.12em !important;
	font-weight: 600 !important;
	color: var(--global-palette5) !important;
	text-decoration: none !important;
	line-height: 1 !important;
	transition: color 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .comments-area .comment-reply-link::before {
	content: "\21A9";
	font-size: 1em;
	color: var(--global-palette-highlight);
	transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .comments-area .comment-reply-link:hover,
.kadence-single-post .comments-area .comment-reply-link:focus-visible {
	color: var(--global-palette-highlight) !important;
	cursor: pointer;
	border: none !important;
}

.kadence-single-post .comments-area .comment-reply-link:hover::before,
.kadence-single-post .comments-area .comment-reply-link:focus-visible::before {
	transform: translateX(-2px);
}

/* Mobile: tighten the content indent on narrow screens */
@media (max-width: 480px) {
	.kadence-single-post .comments-area .comment-body .comment-content,
	.kadence-single-post .comments-area .comment-body .reply {
		padding-left: 0 !important;
	}
}

/* Comment form — editorial "Manuscript" treatment */
.kadence-single-post .comment-form {
	line-height: 1.5;
}

/* Reset the WP default <p> rhythm; we control spacing per-group */
.kadence-single-post .comment-form p {
	margin: 0;
}

/* Subtitle (was "comment-notes" italic fine-print) */
.kadence-single-post .comment-form .comment-notes {
	margin: 0 0 2rem;
	font-size: 0.875rem;
	font-style: normal;
	color: var(--global-palette5);
	line-height: 1.5;
}

/* Labels — small-caps eyebrow family */
.kadence-single-post .comment-form label {
	display: block;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: var(--global-palette5);
	margin-bottom: 0.5rem;
	padding-bottom: 0;
}

/* Helper line under the textarea label */
.kadence-single-post .comment-form-helper {
	display: block;
	margin-top: -0.25rem;
	margin-bottom: 0.5rem;
	font-size: 0.8125rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: var(--global-palette5);
	line-height: 1.4;
}

/* "Logged in as <user>. Edit profile. Log out?" — editorial badge: peach
   pill with brand-orange links matching the rest of the editorial site.
   Inline-block so the periods stay glued to the link text (flex `gap`
   would insert a visible space before every period). */
.kadence-single-post .comment-form .logged-in-as {
	display: inline-block;
	margin: 0 0 var(--global-md-spacing);
	padding: 0.5rem 0.875rem;
	background: var(--global-palette7);
	border-left: 3px solid var(--global-palette-highlight);
	border-radius: 0 0.5rem 0.5rem 0;
	font-size: 0.875rem;
	color: var(--global-palette4);
	line-height: 1.4;
}

.kadence-single-post .comment-form .logged-in-as a {
	color: var(--global-palette-highlight-alt);
	text-decoration: underline;
	text-decoration-color: var(--global-palette-highlight);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
	transition: color 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .comment-form .logged-in-as a:visited {
	color: var(--global-palette-highlight-alt);
}

.kadence-single-post .comment-form .logged-in-as a:hover,
.kadence-single-post .comment-form .logged-in-as a:focus-visible {
	color: var(--global-palette-highlight);
	text-decoration-color: var(--global-palette-highlight-alt);
}

/* Inputs + textarea — editorial, soft focus ring */
.kadence-single-post .comment-form input[type="text"],
.kadence-single-post .comment-form input[type="email"],
.kadence-single-post .comment-form input[type="url"],
.kadence-single-post .comment-form textarea {
	width: 100%;
	padding: 0.875rem 1rem;
	background: var(--global-palette9);
	border: 1px solid var(--global-gray-500);
	border-radius: 0.5rem;
	font-family: inherit;
	font-size: 1rem;
	color: var(--global-palette3);
	line-height: 1.5;
	transition:
		border-color 180ms cubic-bezier(0.2, 0.8, 0.2, 1),
		box-shadow 180ms cubic-bezier(0.2, 0.8, 0.2, 1),
		background-color 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
	-webkit-appearance: none;
	appearance: none;
}

.kadence-single-post .comment-form textarea {
	min-height: 10rem;
	padding: 1.125rem 1.25rem;
	resize: vertical;
}

.kadence-single-post .comment-form input[type="text"]:hover,
.kadence-single-post .comment-form input[type="email"]:hover,
.kadence-single-post .comment-form input[type="url"]:hover,
.kadence-single-post .comment-form textarea:hover {
	border-color: var(--global-palette4);
}

.kadence-single-post .comment-form input[type="text"]:focus-visible,
.kadence-single-post .comment-form input[type="email"]:focus-visible,
.kadence-single-post .comment-form input[type="url"]:focus-visible,
.kadence-single-post .comment-form textarea:focus-visible {
	outline: none;
	border-color: var(--global-palette-highlight);
	box-shadow: 0 0 0 3px rgba(251, 107, 0, 0.18);
	background: var(--global-palette7);
}

.kadence-single-post .comment-form input:user-invalid,
.kadence-single-post .comment-form textarea:user-invalid {
	border-color: #c8322f;
	box-shadow: 0 0 0 3px rgba(200, 50, 47, 0.12);
}

/* Textarea block spacing */
.kadence-single-post .comment-form-comment {
	margin-bottom: 1.5rem !important;
}

/* Wrapped Name/Email/Website row — grid on desktop */
.kadence-single-post .comment-form .comment-input-wrap {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	margin-bottom: 1.5rem;
}

/* Privacy notice — full-width sibling after the Name/Email row */
.kadence-single-post .comment-form > p.comment-notes,
.kadence-single-post .comment-form .comment-notes {
	display: block;
	margin: 0 0 1.5rem;
	font-size: 0.8125rem;
	color: var(--global-palette5);
	line-height: 1.4;
	font-style: normal;
}

/* Cookie consent — muted, small, sits above submit */
.kadence-single-post .comment-form-cookies-consent {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	margin: 1rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--global-palette5);
}

.kadence-single-post .comment-form-cookies-consent input[type="checkbox"] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin: 0.15rem 0 0;
	accent-color: var(--global-palette-highlight);
	cursor: pointer;
}

.kadence-single-post .comment-form-cookies-consent label {
	display: inline;
	font-size: inherit;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: inherit;
	margin: 0;
	cursor: pointer;
}

/* Submit block */
.kadence-single-post .comment-form .form-submit {
	margin: 1.25rem 0 0;
	padding-top: 0;
	border-top: none;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

/* Submit button — editorial CTA with sliding arrow */
.kadence-single-post .comment-form .form-submit button,
.kadence-single-post .comment-form .form-submit input[type="submit"] {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	background: var(--global-palette-highlight);
	color: var(--global-palette9);
	border: none;
	padding: 0.95rem 1.75rem;
	border-radius: 0.625rem;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(251, 107, 0, 0.22), 0 1px 2px rgba(0, 0, 0, 0.04);
	transition:
		background-color 180ms cubic-bezier(0.2, 0.8, 0.2, 1),
		box-shadow 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
		transform 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .comment-submit-arrow {
	display: inline-block;
	transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .comment-form .form-submit button:hover,
.kadence-single-post .comment-form .form-submit input[type="submit"]:hover {
	background: var(--global-palette-highlight-alt);
	box-shadow: 0 6px 18px rgba(200, 86, 0, 0.28), 0 2px 4px rgba(0, 0, 0, 0.06);
	transform: translateY(-1px);
}

.kadence-single-post .comment-form .form-submit button:hover .comment-submit-arrow {
	transform: translateX(4px);
}

.kadence-single-post .comment-form .form-submit button:focus-visible {
	outline: none;
	box-shadow:
		0 0 0 3px var(--global-palette9),
		0 0 0 6px var(--global-palette-highlight),
		0 6px 18px rgba(200, 86, 0, 0.28);
}

.kadence-single-post .comment-form .form-submit button:active {
	transform: translateY(0);
	box-shadow: 0 2px 6px rgba(200, 86, 0, 0.2);
}

.kadence-single-post #cancel-comment-reply-link {
	margin-left: 0.8em;
}

/* Desktop — Name/Email side by side */
@media (min-width: 768px) {
	.kadence-single-post .comment-form .comment-input-wrap {
		grid-template-columns: 1fr 1fr;
		gap: 1.25rem 1.5rem;
	}
}

/* Success banner — appears when WP redirects to #comment-N after submission.
   `content` is set at runtime from $M2P_MESSAGES['comment_moderation_notice']
   via wp_add_inline_style() in functions.php. */
.kadence-single-post .comments-area:target .comment-form::before,
.kadence-single-post .comment-form.is-submitted::before {
	display: block;
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	background: var(--global-palette7);
	border-left: 3px solid var(--global-palette-highlight);
	border-radius: 0.5rem;
	font-size: 0.9375rem;
	color: var(--global-palette3);
}

/* ==========================================================================
   L) ACF Custom Fields (PDF, Video)
   ========================================================================== */

.kadence-single-post .acf-pdf-embed {
	margin: var(--global-md-spacing) 0;
}

.kadence-single-post .acf-video-embed {
	margin: var(--global-md-spacing) 0;
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
}

.kadence-single-post .acf-video-embed iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.kadence-single-post p.embed_download a {
	border: 1px solid #fb6b00;
	padding: 10px 20px;
	margin: 30px;
	color: #000;
	top: 50px;
	position: relative;
}

/* ==========================================================================
   M) Responsive
   ========================================================================== */

@media screen and (max-width: 767px) {
	.kadence-single-post .site-container {
		padding: 0 0.75rem;
	}

	.kadence-single-post .entry-content-wrap {
		padding: 1rem;
	}

	/* Featured image — unfloat and go full-width above the paragraph */
	.kadence-single-post .single-content .post-featured-image {
		float: none;
		width: 100%;
		max-width: 100%;
		margin: 0 0 var(--global-md-spacing) 0;
	}

	/* Post navigation — stacked pair, both left-aligned */
	.kadence-single-post .post-navigation .nav-links {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.kadence-single-post .post-navigation .nav-next {
		grid-column-start: 1;
		text-align: left;
		border-top: 1px solid var(--global-gray-500);
		margin-top: var(--global-md-spacing);
		padding-top: var(--global-md-spacing);
	}

	/* Mobile: both nav cards stack with media on left, arrow on left */
	.kadence-single-post .nav-next a {
		flex-direction: row;
		text-align: left;
		padding-left: 1.75rem;
		padding-right: 0;
	}

	.kadence-single-post .nav-next .post-navigation-title {
		margin-left: 0;
	}

	.kadence-single-post .nav-next a::after {
		left: 0;
		right: auto;
	}

	.kadence-single-post .nav-next a:hover::after,
	.kadence-single-post .nav-next a:focus-visible::after {
		transform: translate(-4px, -50%);
	}

	/* Shrink the media slot on mobile to match the related-posts block */
	.kadence-single-post .post-navigation-media {
		width: 4rem;
	}

	/* Related posts — tighten media slot and spacing */
	.kadence-single-post .entry-related {
		padding: var(--global-lg-spacing) var(--global-sm-spacing);
	}

	.kadence-single-post .entry-related-header {
		margin-bottom: var(--global-md-spacing);
	}

	.kadence-single-post .related-post-link {
		grid-template-columns: 5rem 1fr;
		gap: var(--global-sm-spacing);
	}

	.kadence-single-post .related-post-media {
		width: 5rem;
	}

	.kadence-single-post .related-post-index {
		font-size: 2.25rem;
	}

	.kadence-single-post .related-post-title {
		font-size: 1.0625rem;
	}

	/* Bug 2 (title not wrapping): both related-post and post-navigation titles
	   use width:fit-content for the per-line hover underline. On a narrow mobile
	   body column a long unbroken word makes fit-content exceed the column and
	   forces horizontal overflow. min-width:0 lets the title shrink to its grid
	   track; overflow-wrap:anywhere breaks the word instead of pushing past the
	   card edge. Mirrors the .m2p-cat-entry__cta fix on the archive listing. */
	.kadence-single-post .related-post-title,
	.kadence-single-post .post-navigation-title {
		min-width: 0;
		overflow-wrap: anywhere;
	}

	/* Bug 1 (date wraps to wrong row): .related-post-meta is a flex-wrap row of
	   <category> · <date>. On the narrow mobile body column the long category
	   label fills the line and pushes the date to wrap, stranding the "·"
	   separator at the end of the category line. Hiding it across the mobile
	   range removes the dangling middot — category and date wrap cleanly, or sit
	   on one line when they fit (the numeric date already has white-space:nowrap).
	   Mirrors the .m2p-cat-entry__sep fix on the archive listing. */
	.kadence-single-post .related-post-sep {
		display: none;
	}

	.kadence-single-post .related-post-card + .related-post-card {
		margin-top: var(--global-sm-spacing);
		padding-top: var(--global-sm-spacing);
	}

	.kadence-single-post .entry-author-profile {
		padding-left: 0;
		text-align: center;
	}

	.kadence-single-post .entry-author-avatar {
		position: relative;
		margin-bottom: 0.5em;
	}

	.kadence-single-post .entry-author-avatar img {
		margin: 0 auto;
	}

	.kadence-single-post .entry-author-description {
		text-align: left;
	}

	.kadence-single-post .entry-content .alignwide {
		margin-left: 0;
		margin-right: 0;
	}
}

@media screen and (max-width: 767px) {
	/* Comment form — mobile */
	.kadence-single-post .comments-area {
		padding: 1.5rem 1.25rem;
		margin-top: var(--global-lg-spacing);
	}

	.kadence-single-post .comment-form textarea {
		min-height: 8.5rem;
		padding: 1rem;
	}

	.kadence-single-post .comment-form input[type="text"],
	.kadence-single-post .comment-form input[type="email"],
	.kadence-single-post .comment-form input[type="url"] {
		padding: 0.8125rem 0.9375rem;
	}

	.kadence-single-post .comment-form .form-submit {
		margin-top: 1.5rem;
		padding-top: 1.25rem;
	}

	.kadence-single-post .comment-form .form-submit button,
	.kadence-single-post .comment-form .form-submit input[type="submit"] {
		width: 100%;
		justify-content: center;
		padding: 1rem 1.5rem;
	}
}

/* ==========================================================================
   N) Alumni / diploma posts
   --------------------------------------------------------------------------
   Triggered by `is-diploma` modifier on `article.single-entry` (set in
   single.php when ACF `pdf` field is present or the post is in the
   `alumni` category). The PDF embed gets wrapped in <figure
   class="alumni-pdf-frame"> instead of the bare .acf-pdf-embed div, so the
   raw black Google Docs viewer chrome no longer bleeds against the page.
   ========================================================================== */

/* Tighten the eyebrow on diploma posts — "ALUMNI · Date issued: ..." reads
   as one editorial line rather than a category link followed by a
   sentence. */
.kadence-single-post .single-entry.is-diploma .entry-taxonomies {
	margin-bottom: 0.5em;
}

/* Diploma meta row: bigger, centered, with an accent rule so it reads as
   a credential statement, not a sidekick label. */
.kadence-single-post .single-entry.is-diploma .entry-meta,
.single-entry.is-diploma .entry-meta {
	display: inline-flex !important;
	align-items: baseline !important;
	gap: 0.65rem !important;
	padding: 0.5rem 1.1rem !important;
	margin: 1rem 0 0 !important;
	background: #FFF5EB !important;
	border-left: 3px solid #fb6b00 !important;
	border-radius: 0 0.5rem 0.5rem 0 !important;
}

.kadence-single-post .single-entry.is-diploma .entry-meta .meta-label,
.single-entry.is-diploma .entry-meta .meta-label {
	margin-right: 0 !important;
	font-size: 0.75rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.14em !important;
	font-weight: 700 !important;
	color: #fb6b00 !important;
}

.kadence-single-post .single-entry.is-diploma .entry-meta .posted-on,
.single-entry.is-diploma .entry-meta .posted-on {
	display: inline-flex !important;
	align-items: baseline !important;
	gap: 0.5rem !important;
}

.kadence-single-post .single-entry.is-diploma .entry-meta time,
.single-entry.is-diploma .entry-meta time {
	font-size: 1rem !important;
	font-weight: 600 !important;
	color: #1A202C !important;
	letter-spacing: 0 !important;
}

/* Plate figure: editorial frame around the embedded PDF.
   Soft off-white card, rounded corners, generous breathing room above
   and below — matches the .entry-author / .entry-related card vocabulary. */
.kadence-single-post .alumni-pdf-frame {
	margin: var(--global-md-spacing) 0 var(--global-lg-spacing);
	padding: var(--global-sm-spacing);
	background: var(--global-palette7); /* warm off-white #FFF5EB */
	border-radius: 1rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
	overflow: hidden;
}

/* Eyebrow "DIPLOMA" — matches comments / related-posts eyebrow rhythm */
.kadence-single-post .alumni-pdf-frame__eyebrow {
	display: block;
	margin: 0 0 var(--global-sm-spacing);
	padding: 0;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: var(--global-palette-highlight);
	text-align: left;
}

/* Plate: the actual rounded, clipped container that holds the iframe.
   We round + clip here (not on the figure) so the figure padding still
   reads as a "mat" around the plate. */
.kadence-single-post .alumni-pdf-frame__plate {
	position: relative;
	border-radius: 0.625rem;
	overflow: hidden;
	background: #1a1a1a; /* matches Google Docs viewer chrome — no jarring seam */
	box-shadow:
		inset 0 0 0 1px rgba(0, 0, 0, 0.08),
		0 8px 28px rgba(0, 0, 0, 0.18);
}

/* The embeddoc plugin emits a wrapper div with the iframe inside. Make
   sure the iframe fills the plate exactly, no inline-element gap. */
.kadence-single-post .alumni-pdf-frame__plate iframe {
	display: block;
	width: 100%;
	height: 70vh;
	min-height: 480px;
	border: 0;
	background: transparent;
}

/* Suppress the legacy `p.embed_download` link inside the alumni frame —
   we set download="none" on the shortcode so this should never render,
   but defensive in case the shortcode emits it anyway. */
.kadence-single-post .alumni-pdf-frame .embed_download {
	display: none !important;
}

/* Actions row: the editorial download CTA below the plate. */
.kadence-single-post .alumni-pdf-frame__actions {
	display: flex;
	justify-content: flex-start;
	margin-top: var(--global-sm-spacing);
}

/* Download button — same visual language as the comment-form submit:
   orange fill, soft shadow, animated arrow on hover (here it slides
   downward to imply "download" rather than the comment form's "→"). */
.kadence-single-post .alumni-pdf-frame__download {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	background: var(--global-palette-highlight);
	color: var(--global-palette9);
	padding: 0.85rem 1.5rem;
	border-radius: 0.625rem;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-decoration: none;
	box-shadow:
		0 2px 8px rgba(251, 107, 0, 0.22),
		0 1px 2px rgba(0, 0, 0, 0.04);
	transition:
		background-color 180ms cubic-bezier(0.2, 0.8, 0.2, 1),
		box-shadow 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
		transform 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* The single-content link rule above paints all anchors with an orange
   underline; for our pill button we want a clean fill. Override. */
.kadence-single-post .single-content .alumni-pdf-frame__download,
.kadence-single-post .alumni-pdf-frame__download {
	text-decoration: none;
}

.kadence-single-post .alumni-pdf-frame__download-arrow {
	display: inline-block;
	font-size: 1.05em;
	line-height: 1;
	transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.kadence-single-post .alumni-pdf-frame__download:hover,
.kadence-single-post .alumni-pdf-frame__download:focus-visible {
	background: var(--global-palette-highlight-alt);
	color: var(--global-palette9);
	box-shadow:
		0 6px 18px rgba(200, 86, 0, 0.28),
		0 2px 4px rgba(0, 0, 0, 0.06);
	transform: translateY(-1px);
	text-decoration: none;
}

.kadence-single-post .alumni-pdf-frame__download:hover .alumni-pdf-frame__download-arrow,
.kadence-single-post .alumni-pdf-frame__download:focus-visible .alumni-pdf-frame__download-arrow {
	transform: translateY(3px);
}

.kadence-single-post .alumni-pdf-frame__download:focus-visible {
	outline: none;
	box-shadow:
		0 0 0 3px var(--global-palette9),
		0 0 0 6px var(--global-palette-highlight),
		0 6px 18px rgba(200, 86, 0, 0.28);
}

.kadence-single-post .alumni-pdf-frame__download:active {
	transform: translateY(0);
	box-shadow: 0 2px 6px rgba(200, 86, 0, 0.2);
}

@media (prefers-reduced-motion: reduce) {
	.kadence-single-post .alumni-pdf-frame__download,
	.kadence-single-post .alumni-pdf-frame__download-arrow {
		transition: none;
	}
}

/* Mobile — tighten the mat, drop the embed height a touch */
@media screen and (max-width: 767px) {
	.kadence-single-post .alumni-pdf-frame {
		padding: 0.75rem;
		margin: var(--global-sm-spacing) 0 var(--global-md-spacing);
	}

	.kadence-single-post .alumni-pdf-frame__plate iframe {
		height: 60vh;
		min-height: 360px;
	}

	.kadence-single-post .alumni-pdf-frame__actions {
		justify-content: stretch;
	}

	.kadence-single-post .alumni-pdf-frame__download {
		flex: 1 1 auto;
		justify-content: center;
	}
}

/* ==========================================================================
   N.1) Alumni frame — unscoped fallback rules
   The scoped rules above (.kadence-single-post .alumni-pdf-frame...) match
   only when the figure renders inside the editorial wrapper. If a page
   variant strips that wrapper, the figure rendered as plain text. These
   unscoped rules keep the editorial frame regardless of wrapper context.
   ========================================================================== */

.alumni-pdf-frame {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 2rem 0 !important;
	padding: 1.5rem !important;
	background: #FFF5EB !important;
	border-radius: 1rem !important;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04) !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
}

.alumni-pdf-frame__eyebrow {
	display: block !important;
	margin: 0 0 1rem !important;
	padding: 0 !important;
	font-size: 0.6875rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.12em !important;
	font-weight: 700 !important;
	color: #fb6b00 !important;
	text-align: left !important;
}

.alumni-pdf-frame__plate {
	position: relative !important;
	border-radius: 0.625rem !important;
	overflow: hidden !important;
	background: #1a1a1a !important;
	box-shadow:
		inset 0 0 0 1px rgba(0, 0, 0, 0.08),
		0 8px 28px rgba(0, 0, 0, 0.18) !important;
}

/* Embed-Any-Document plugin wraps the iframe in nested divs with their
   own widths. Force every level to fill the plate horizontally. */
.alumni-pdf-frame__plate .ead-preview,
.alumni-pdf-frame__plate .ead-document,
.alumni-pdf-frame__plate .ead-iframe-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}

.alumni-pdf-frame__plate iframe,
.alumni-pdf-frame__plate .ead-iframe {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: 70vh !important;
	min-height: 480px !important;
	border: 0 !important;
	background: transparent !important;
	visibility: visible !important;
}

.alumni-pdf-frame .embed_download {
	display: none !important;
}

.alumni-pdf-frame__actions {
	display: flex !important;
	justify-content: flex-start !important;
	margin-top: 1rem !important;
}

.alumni-pdf-frame__download {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.625rem !important;
	background: #fb6b00 !important;
	color: #ffffff !important;
	padding: 0.85rem 1.5rem !important;
	border-radius: 0.625rem !important;
	font-family: inherit !important;
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	border: 0 !important;
	cursor: pointer !important;
	transition: background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease !important;
	box-shadow: 0 4px 14px rgba(251, 107, 0, 0.25) !important;
}

.alumni-pdf-frame__download:hover,
.alumni-pdf-frame__download:focus-visible {
	background: #c85600 !important;
	transform: translateY(-1px) !important;
	color: #ffffff !important;
	text-decoration: none !important;
}

.alumni-pdf-frame__download-arrow {
	display: inline-block !important;
	transition: transform 180ms ease !important;
}

.alumni-pdf-frame__download:hover .alumni-pdf-frame__download-arrow {
	transform: translateY(2px) !important;
}

@media screen and (max-width: 767px) {
	.alumni-pdf-frame {
		padding: 1rem !important;
		margin: 1.5rem auto !important;
	}
	.alumni-pdf-frame__plate iframe,
	.alumni-pdf-frame__plate .ead-iframe {
		height: 60vh !important;
		min-height: 360px !important;
	}
	.alumni-pdf-frame__download {
		width: 100% !important;
		justify-content: center !important;
	}
}
