/* ==========================================================================
   Long-form content — ported from tokens/wordpress.css (.prose)
   Wired to core post content: every rule targets both `.prose` (class-based,
   for patterns/classic markup) and `.wp-block-post-content` (block themes).
   Values reference --wp--preset--* / --wp--custom--* only.
   Note: .alignwide/.alignfull are intentionally NOT ported — theme.json
   layout (contentSize 720 / wideSize 1140 / root-padding-aware) handles them.
   ========================================================================== */

.prose {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 300;
	font-size: var(--wp--preset--font-size--base);
	line-height: var(--wp--custom--leading--relaxed);
	color: var(--wp--custom--color--text-primary);
	max-width: 940px;
	margin-inline: auto;
}

.wp-block-post-content {
	line-height: var(--wp--custom--leading--relaxed);
}

:is(.prose, .wp-block-post-content) p {
	margin: 0 0 1.4em;
}

/* Content links only — scoped to text containers so buttons, cards, and
   section links inside page content keep their own treatments. */
:is(.prose, .wp-block-post-content) :is(p, li, figcaption, td, cite) a:not(.wp-element-button):not(.sheris-recipe-card__wrap) {
	color: var(--wp--custom--color--text-link);
	text-decoration: underline;
	text-underline-offset: 3px;
}

:is(.prose, .wp-block-post-content) :is(p, li, figcaption, td, cite) a:not(.wp-element-button):not(.sheris-recipe-card__wrap):hover {
	color: var(--wp--custom--color--text-link-hover);
}

:is(.prose, .wp-block-post-content) :is(h1, h2, h3, h4) {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	line-height: var(--wp--custom--leading--tight);
	margin: 2em 0 0.6em;
}

:is(.prose, .wp-block-post-content) h1 { font-size: var(--wp--preset--font-size--3-xl); }
:is(.prose, .wp-block-post-content) h2 { font-size: var(--wp--preset--font-size--2-xl); }
:is(.prose, .wp-block-post-content) h3 { font-size: var(--wp--preset--font-size--xl); }
:is(.prose, .wp-block-post-content) h4 { font-size: var(--wp--preset--font-size--lg); }

:is(.prose, .wp-block-post-content) :is(ul, ol) {
	margin: 0 0 1.4em;
	padding-left: 1.4em;
}

:is(.prose, .wp-block-post-content) li {
	margin-bottom: 0.5em;
}

:is(.prose, .wp-block-post-content) li::marker {
	color: var(--wp--preset--color--teal-500);
	font-weight: 700;
}

/* Decorative rule for plain content <hr> — excludes the core Separator block,
   which keeps its own block styling (e.g. the full-width hairline on Our Story). */
:is(.prose, .wp-block-post-content) hr:not(.wp-block-separator) {
	border: none;
	border-top: 3px solid var(--wp--preset--color--ink-900);
	width: 72px;
	margin: 3em auto;
}

/* Content images only — cover/section backgrounds must stay square-edged
   and keep their own sizing (the :not guards exclude them). */
:is(.prose, .wp-block-post-content) img:not(.wp-block-cover__image-background) {
	max-width: 100%;
	height: auto;
}

:is(.prose, .wp-block-post-content) :is(figure, p) > img,
:is(.prose, .wp-block-post-content) figure.wp-block-image img {
	border-radius: var(--wp--custom--radius--card);
}

/* Blockquote — teal rule + generous inset */
:is(.prose, .wp-block-post-content) blockquote {
	margin: 2.2em 0;
	padding: 0.2em 0 0.2em 28px;
	border-left: 3px solid var(--wp--preset--color--teal-500);
	font-size: var(--wp--preset--font-size--lg);
	font-style: italic;
	color: var(--wp--preset--color--ink-700);
}

:is(.prose, .wp-block-post-content) blockquote cite {
	display: block;
	margin-top: 0.8em;
	font-style: normal;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: var(--wp--custom--tracking--wider);
	text-transform: uppercase;
	color: var(--wp--custom--color--text-secondary);
}

/* Pull quote — script + Anton emphasis moment (one per post) */
.pullquote {
	margin: 2.6em 0;
	text-align: center;
}

.pullquote .script {
	font-family: var(--wp--preset--font-family--script);
	font-size: 44px;
	line-height: 0.9;
	color: var(--wp--preset--color--teal-500);
}

.pullquote .line {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 400;
	text-transform: uppercase;
	font-size: var(--wp--preset--font-size--2-xl);
	line-height: 1;
	margin-top: 2px;
}

.pullquote .line em {
	font-style: normal;
	color: var(--wp--preset--color--coral);
}

/* Code */
:is(.prose, .wp-block-post-content) code {
	font-family: ui-monospace, 'SF Mono', Menlo, monospace;
	font-size: 0.85em;
	background: var(--wp--preset--color--cream-100);
	border-radius: var(--wp--custom--radius--sm);
	padding: 2px 7px;
}

:is(.prose, .wp-block-post-content) pre {
	background: var(--wp--preset--color--ink-900);
	color: var(--wp--preset--color--cream-100);
	border-radius: var(--wp--custom--radius--card);
	padding: 22px 26px;
	overflow: auto;
	margin: 0 0 1.6em;
}

:is(.prose, .wp-block-post-content) pre code {
	background: none;
	padding: 0;
	color: inherit;
	font-size: 14px;
	line-height: 1.7;
}

/* Tables */
:is(.prose, .wp-block-post-content) table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 1.6em;
	font-size: var(--wp--preset--font-size--sm);
}

:is(.prose, .wp-block-post-content) th {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: var(--wp--custom--tracking--wider);
	text-transform: uppercase;
	text-align: left;
	color: var(--wp--custom--color--text-secondary);
	padding: 12px 14px;
	border-bottom: 3px solid var(--wp--preset--color--ink-900);
}

:is(.prose, .wp-block-post-content) td {
	padding: 14px;
	border-bottom: 1px solid var(--wp--custom--color--border-subtle);
}

:is(.prose, .wp-block-post-content) tbody tr:hover {
	background: var(--wp--preset--color--cream-100);
}

/* Figure + caption */
:is(.prose, .wp-block-post-content) figure {
	margin: 2.2em 0;
}

:is(.prose, .wp-block-post-content) figcaption {
	margin-top: 12px;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	letter-spacing: var(--wp--custom--tracking--wide);
	text-transform: uppercase;
	color: var(--wp--custom--color--text-secondary);
	text-align: center;
}
