/* Dogsoria article brand layer. Structural fallbacks remain plugin-owned. */
.dogsoria-single-shell,
.dogsoria-single-shell .wp-block-post-content {
	min-width: 0;
}

/* Keep the article grid and every main-column component aligned with the
 * hero copy instead of letting nested constrained layouts center them. */
.dogsoria-article-template .dogsoria-layout {
	justify-content: start;
}

.dogsoria-article-template .dogsoria-main-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	margin-inline: 0 !important;
	max-width: 100% !important;
	width: 100%;
}

/* Article-only typography. Explicit specificity keeps WordPress block styles,
 * legacy Astra/UAG rules and editor defaults from replacing the approved fonts. */
.dogsoria-rendered-article .dogsoria-single-title,
.dogsoria-article-template :is(h1, h2, h3) {
	font-family: Georgia, "Times New Roman", serif !important;
}

.dogsoria-rendered-article .dogsoria-single-title {
	color: #103632;
	font-weight: 700;
}

.dogsoria-article-template,
.dogsoria-article-template :is(p, li, ul, ol, table, thead, tbody, th, td, details, summary, button, input, select, textarea, label, a),
.dogsoria-quick-answer,
.dogsoria-quick-answer :is(p, li) {
	font-family: Arial, Helvetica, sans-serif !important;
}

.dogsoria-article-template :is(p, li, td),
.dogsoria-quick-answer :is(p, li) {
	font-weight: 400 !important;
}

.dogsoria-article-template :is(strong, b, th, .dogsoria-eyebrow, .dogsoria-section-label) {
	font-weight: 700 !important;
}

/* Article Typography System
 * Scoped to Dogsoria single-post content. The plugin ships structural fallback
 * typography; this theme layer supplies the final editorial rhythm and tokens. */
.dogsoria-article-template .dogsoria-main-content {
	--dogsoria-article-heading: #103632;
	--dogsoria-article-body: #26312f;
	--dogsoria-article-accent: #ef6905;
	--dogsoria-article-body-size: 18px;
	--dogsoria-article-body-leading: 1.7;
	--dogsoria-article-caption-size: 14px;
	--dogsoria-article-flow-space: 1.45rem;
	color: var(--dogsoria-article-body);
	font-family: Arial, Helvetica, sans-serif;
	font-size: var(--dogsoria-article-body-size);
	line-height: var(--dogsoria-article-body-leading);
	min-width: 0;
}

/* The plugin's compatibility layer marks paragraph/list sizing as important.
 * Matching importance is required here for the theme's 18px body
 * token to be the computed value on both the front end and in the editor. */
.dogsoria-article-template .dogsoria-main-content :where(p, li) {
	color: var(--dogsoria-article-body);
	font-size: var(--dogsoria-article-body-size) !important;
	font-weight: 400;
	line-height: var(--dogsoria-article-body-leading) !important;
	overflow-wrap: anywhere;
	word-break: normal;
}

.dogsoria-article-template .dogsoria-main-content :where(
	p,
	li,
	ul,
	ol,
	blockquote,
	cite,
	figcaption,
	.wp-element-caption,
	table,
	thead,
	tbody,
	th,
	td,
	a
) {
	font-family: Arial, Helvetica, sans-serif;
}

/* Ordinary article headings. Component headings are intentionally excluded;
 * the approved Editorial Section Heading rules remain below this section. */
.dogsoria-article-template .dogsoria-main-content > :where(h2, .wp-block-heading:is(h2)),
.dogsoria-article-template .dogsoria-main-content > .dogsoria-section:not(
	.dogsoria-comparison-table,
	.dogsoria-comparison,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule,
	.dogsoria-vet-warning,
	.dogsoria-faq,
	.dogsoria-sources
) > :where(h2, .wp-block-heading:is(h2)) {
	color: var(--dogsoria-article-heading);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(34px, 3vw, 42px) !important;
	font-weight: 700;
	letter-spacing: -.02em;
	line-height: 1.15 !important;
	margin-block: 0 1rem;
	overflow-wrap: anywhere;
	text-wrap: pretty;
}

.dogsoria-article-template .dogsoria-main-content > :where(h3, .wp-block-heading:is(h3)),
.dogsoria-article-template .dogsoria-main-content > .dogsoria-section:not(
	.dogsoria-comparison-table,
	.dogsoria-comparison,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule,
	.dogsoria-vet-warning,
	.dogsoria-faq,
	.dogsoria-sources
) > :where(h3, .wp-block-heading:is(h3)) {
	color: var(--dogsoria-article-heading);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(25px, 2.2vw, 30px) !important;
	font-weight: 700;
	letter-spacing: -.012em;
	line-height: 1.22 !important;
	margin-block: 0 .8rem;
	overflow-wrap: anywhere;
	text-wrap: pretty;
}

/* Standard Gutenberg flow spacing. This does not target the approved
 * Short Answer or editorial component containers. */
.dogsoria-article-template .dogsoria-main-content > :where(p, ul, ol, blockquote, figure),
.dogsoria-article-template .dogsoria-main-content > .dogsoria-section:not(
	.dogsoria-comparison-table,
	.dogsoria-comparison,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule,
	.dogsoria-vet-warning,
	.dogsoria-faq,
	.dogsoria-sources
) > :where(p, ul, ol, blockquote, figure) {
	margin-block: 0 var(--dogsoria-article-flow-space);
}

.dogsoria-article-template .dogsoria-main-content :where(ul, ol):not(.dogsoria-toc ul) {
	color: var(--dogsoria-article-body);
	padding-inline-start: 1.4em;
}

.dogsoria-article-template .dogsoria-main-content :where(ul, ol):not(.dogsoria-toc ul) > li + li {
	margin-block-start: .45em;
}

/* Native ordered-list markers have variable visual widths. Reserve one fixed
 * marker column for ordinary article lists without changing component lists. */
.dogsoria-article-template .dogsoria-main-content > ol.wp-block-list,
.dogsoria-article-template .dogsoria-main-content > .dogsoria-section:not(
	.dogsoria-comparison-table,
	.dogsoria-comparison,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule,
	.dogsoria-vet-warning,
	.dogsoria-faq,
	.dogsoria-sources
) > ol.wp-block-list {
	counter-reset: dogsoria-article-ordered-list;
	list-style: none;
	padding-inline-start: 2.75rem !important;
}

.dogsoria-article-template .dogsoria-main-content > ol.wp-block-list > li,
.dogsoria-article-template .dogsoria-main-content > .dogsoria-section:not(
	.dogsoria-comparison-table,
	.dogsoria-comparison,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule,
	.dogsoria-vet-warning,
	.dogsoria-faq,
	.dogsoria-sources
) > ol.wp-block-list > li {
	counter-increment: dogsoria-article-ordered-list;
	list-style: none;
	position: relative;
}

.dogsoria-article-template .dogsoria-main-content > ol.wp-block-list > li::before,
.dogsoria-article-template .dogsoria-main-content > .dogsoria-section:not(
	.dogsoria-comparison-table,
	.dogsoria-comparison,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule,
	.dogsoria-vet-warning,
	.dogsoria-faq,
	.dogsoria-sources
) > ol.wp-block-list > li::before {
	color: inherit;
	content: counter(dogsoria-article-ordered-list) ".";
	font-variant-numeric: tabular-nums;
	inset-inline-start: -2.75rem;
	position: absolute;
	text-align: right;
	width: 2rem;
}

.dogsoria-article-template .dogsoria-main-content > blockquote,
.dogsoria-article-template .dogsoria-main-content > .dogsoria-section:not(
	.dogsoria-comparison-table,
	.dogsoria-comparison,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule,
	.dogsoria-vet-warning,
	.dogsoria-faq,
	.dogsoria-sources
) blockquote {
	border-inline-start: 3px solid var(--dogsoria-article-accent);
	color: var(--dogsoria-article-body);
	font-size: var(--dogsoria-article-body-size);
	line-height: var(--dogsoria-article-body-leading);
	margin-inline: 0;
	padding: .25rem 0 .25rem 1.5rem;
}

.dogsoria-article-template .dogsoria-main-content blockquote > :first-child {
	margin-block-start: 0;
}

.dogsoria-article-template .dogsoria-main-content blockquote > :last-child {
	margin-block-end: 0;
}

.dogsoria-article-template .dogsoria-main-content blockquote cite {
	color: var(--dogsoria-article-body);
	display: block;
	font-size: var(--dogsoria-article-caption-size);
	font-style: normal;
	font-weight: 700;
	line-height: 1.5;
	margin-block-start: .75rem;
}

.dogsoria-article-template .dogsoria-main-content a {
	color: var(--dogsoria-article-accent);
	overflow-wrap: anywhere;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .16em;
	word-break: normal;
}

.dogsoria-article-template .dogsoria-main-content a:hover {
	color: var(--dogsoria-article-heading);
}

.dogsoria-article-template .dogsoria-main-content :where(figcaption, .wp-element-caption) {
	color: var(--dogsoria-article-body);
	font-size: var(--dogsoria-article-caption-size);
	font-weight: 400;
	line-height: 1.5;
	margin-block: .6rem 0;
	overflow-wrap: anywhere;
	text-align: start;
}

.dogsoria-rendered-article .dogsoria-single-featured figcaption,
.dogsoria-article-template .dogsoria-main-content > .wp-block-table figcaption,
.dogsoria-article-template .dogsoria-main-content > .dogsoria-section:not(
	.dogsoria-comparison-table,
	.dogsoria-comparison,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule
) .wp-block-table figcaption {
	color: var(--dogsoria-article-body, #26312f);
	font-family: Arial, Helvetica, sans-serif;
	font-size: var(--dogsoria-article-caption-size, 14px);
	font-weight: 400;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

/* Ordinary Core Tables use the article scale. The comparison and semantic
 * component tables are excluded so their approved visual remains unchanged. */
.dogsoria-article-template .dogsoria-main-content > .wp-block-table :where(th, td),
.dogsoria-article-template .dogsoria-main-content > .dogsoria-section:not(
	.dogsoria-comparison-table,
	.dogsoria-comparison,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule
) .wp-block-table :where(th, td) {
	color: var(--dogsoria-article-body) !important;
	font-size: 17px !important;
	line-height: 1.55 !important;
	overflow-wrap: anywhere;
	word-break: normal;
}

.dogsoria-article-template .dogsoria-main-content :where(strong, b) {
	color: inherit;
	font-weight: 700;
}

/* theme.css uses .dogsoria-section for homepage bands. Remove that homepage
 * padding from article sections at low specificity. Component rules below can
 * then restore only their intentional local padding. */
.dogsoria-article-template :where(.dogsoria-main-content > .dogsoria-section) {
	padding-block: 0;
}

.dogsoria-article-template .dogsoria-main-content > .dogsoria-vet-warning {
	padding: 28px;
}

.dogsoria-article-template .dogsoria-main-content > .dogsoria-sources {
	padding-block: 34px 0;
}

/* Sources use a publisher/title hierarchy instead of the ordinary inline-link
 * treatment. The existing strong element identifies the publisher. */
.dogsoria-article-template .dogsoria-main-content .dogsoria-sources li > a {
	color: var(--dogsoria-article-body);
	text-decoration: none;
}

.dogsoria-article-template .dogsoria-main-content .dogsoria-sources li > a strong {
	color: var(--dogsoria-article-accent);
}

.dogsoria-article-template .dogsoria-main-content .dogsoria-sources li > a:hover {
	color: var(--dogsoria-article-heading);
}

.dogsoria-article-template .dogsoria-main-content .dogsoria-sources li > a:focus-visible {
	outline: 2px solid var(--dogsoria-article-accent);
	outline-offset: 3px;
}

.dogsoria-main-content > .dogsoria-quick-answer,
.dogsoria-article-template > .dogsoria-quick-answer {
	background: var(--wp--preset--color--warm-cream, #fff9ee);
	border: 0;
	border-inline-start: 3px solid var(--wp--preset--color--burgundy, #8b2626);
	border-radius: 0;
	box-shadow: none;
	color: var(--wp--preset--color--body-text, #26312f);
	margin: 28px 0 0 !important;
	max-width: none !important;
	padding: 30px 32px;
	width: 100%;
}

.dogsoria-main-content > .dogsoria-quick-answer > h2,
.dogsoria-article-template > .dogsoria-quick-answer > h2 {
	display: none !important;
}

.dogsoria-main-content > .dogsoria-quick-answer .dogsoria-eyebrow,
.dogsoria-article-template > .dogsoria-quick-answer .dogsoria-eyebrow {
	color: var(--wp--preset--color--orange, #ef6905) !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .12em !important;
	margin: 0 0 12px !important;
	text-transform: uppercase !important;
}

.dogsoria-main-content > .dogsoria-quick-answer :is(p, li),
.dogsoria-article-template > .dogsoria-quick-answer :is(p, li) {
	color: var(--wp--preset--color--body-text, #26312f) !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: clamp(18px, 1.45vw, 20px) !important;
	font-weight: 400 !important;
	line-height: 1.65 !important;
}

.dogsoria-main-content > .dogsoria-quick-answer > p:not(.dogsoria-eyebrow),
.dogsoria-article-template > .dogsoria-quick-answer > p:not(.dogsoria-eyebrow) {
	margin-block: 0 12px !important;
}

.dogsoria-main-content > .dogsoria-quick-answer > p:last-child,
.dogsoria-article-template > .dogsoria-quick-answer > p:last-child {
	margin-block-end: 0 !important;
}

:where(
	.dogsoria-comparison-table,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule
) {
	--dogsoria-component-border: rgba(16, 54, 50, 0.2);
	color: var(--wp--preset--color--body-text, #26312f);
	font-family: Arial, Helvetica, sans-serif;
}

:where(
	.dogsoria-comparison-table,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule
) > h2,
:where(
	.dogsoria-comparison-table,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule
) h3 {
	color: var(--wp--preset--color--deep-green, #103632);
	font-family: Georgia, "Times New Roman", serif;
}

.dogsoria-highlight-box {
	background: var(--wp--preset--color--warm-cream, #fff9ee);
	border-color: var(--dogsoria-component-border);
	border-inline-start: 6px solid var(--wp--preset--color--orange, #ef6905);
	margin-block: clamp(2rem, 5vw, 4rem);
	padding: clamp(1.5rem, 4vw, 2.5rem);
}

.dogsoria-highlight-box > h2:first-child {
	margin-block-start: 0;
}

.dogsoria-highlight-box > :last-child {
	margin-block-end: 0;
}

.dogsoria-care-steps ol {
	counter-reset: dogsoria-care-step;
	display: grid;
	gap: 1.25rem;
	list-style: none;
	padding: 0;
}

.dogsoria-care-steps ol > li {
	border-block-start: 1px solid var(--dogsoria-component-border);
	counter-increment: dogsoria-care-step;
	display: grid;
	gap: 1rem;
	grid-template-columns: 2.75rem minmax(0, 1fr);
	margin: 0;
	padding-block-start: 1.25rem;
}

.dogsoria-care-steps ol > li::before {
	align-items: center;
	background: var(--wp--preset--color--butter-yellow, #f1e5a1);
	border-radius: 50%;
	color: var(--wp--preset--color--burgundy, #8b2626);
	content: counter(dogsoria-care-step, decimal-leading-zero);
	display: flex;
	font-size: .82rem;
	font-weight: 700;
	height: 2.75rem;
	justify-content: center;
	letter-spacing: .05em;
	width: 2.75rem;
}

:where(.dogsoria-comparison-table, .dogsoria-coat-comparison, .dogsoria-care-schedule) .wp-block-table {
	border-block-start: 0;
}

.dogsoria-main-content :where(.dogsoria-comparison-table, .dogsoria-comparison) {
	background: var(--wp--preset--color--warm-cream, #fff9ee);
	padding: clamp(26px, 3vw, 38px);
}

.dogsoria-article-template .dogsoria-main-content :is(
	.dogsoria-comparison-table,
	.dogsoria-highlight-box,
	.dogsoria-care-steps,
	.dogsoria-coat-comparison,
	.dogsoria-care-schedule,
	.dogsoria-comparison
) > h2 {
	color: #103632 !important;
	font-family: Georgia, "Times New Roman", serif !important;
	font-size: clamp(56px, 5vw, 82px) !important;
	font-weight: 700 !important;
	letter-spacing: -.025em !important;
	line-height: .98 !important;
	max-width: none !important;
	width: 100%;
}

/* Comparison blocks have inset content padding. Let their heading reclaim that
 * space on the inline end while preserving the shared Section Heading type. */
.dogsoria-article-template .dogsoria-main-content :is(.dogsoria-comparison-table, .dogsoria-comparison) > h2 {
	width: calc(100% + clamp(52px, 6vw, 76px));
}

/* Legacy comparison groups do not consistently carry the inset padding the
 * expanded heading assumed. Keep them inside the article column while the
 * approved semantic comparison component retains its desktop treatment. */
.dogsoria-article-template .dogsoria-main-content .dogsoria-comparison:not(.dogsoria-comparison-table) > h2 {
	width: 100%;
}

/* Compact legacy comparison data without changing the approved semantic
 * At-a-glance component. The plugin's structural fallback uses important
 * cell padding, so one matching important override is required here. */
.dogsoria-article-template .dogsoria-main-content .dogsoria-comparison:not(.dogsoria-comparison-table) .wp-block-table tbody td {
	padding-block: 14px !important;
}

.dogsoria-article-template .dogsoria-main-content .dogsoria-comparison:not(.dogsoria-comparison-table) .wp-block-table table:has(thead tr > :nth-child(2):last-child) :where(th, td) {
	width: 50%;
}

:where(.dogsoria-comparison-table, .dogsoria-coat-comparison, .dogsoria-care-schedule) .wp-block-table thead th {
	background: transparent !important;
	border-block-end: 1px solid #d5cdbf !important;
	color: var(--wp--preset--color--burgundy, #8b2626) !important;
}

:where(.dogsoria-comparison-table, .dogsoria-coat-comparison, .dogsoria-care-schedule) .wp-block-table thead {
	background: transparent !important;
	border: 0 !important;
	border-block-end: 1px solid #d5cdbf !important;
}

:where(.dogsoria-comparison-table, .dogsoria-coat-comparison, .dogsoria-care-schedule) .wp-block-table tr {
	background: transparent !important;
}

.dogsoria-coat-comparison .dogsoria-details {
	background: var(--wp--preset--color--warm-cream, #fff9ee);
	border-color: var(--dogsoria-component-border);
}

@media (max-width: 900px) {
	.dogsoria-article-template .dogsoria-main-content :is(.dogsoria-comparison-table, .dogsoria-comparison) > h2 {
		width: 100%;
	}
}

@media (max-width: 600px) {
	/* Keep verbose, ordinary Gutenberg tables readable on narrow screens.
	 * The table wrapper retains horizontal scrolling; the established
	 * At-a-glance comparison component is explicitly excluded. */
	.dogsoria-article-template .dogsoria-main-content > :where(
		.wp-block-table,
		.dogsoria-data-table,
		.dogsoria-imported-table
	):not(.dogsoria-comparison-table):not(.dogsoria-comparison) table,
	.dogsoria-article-template .dogsoria-main-content > :not(
		.dogsoria-comparison-table,
		.dogsoria-comparison
	) :where(
		.wp-block-table,
		.dogsoria-data-table,
		.dogsoria-imported-table
	) table {
		min-width: 640px;
	}

	/* Legacy three-column comparisons need the ordinary verbose-table width;
	 * balanced two-column comparisons and the approved component stay at 520px. */
	.dogsoria-article-template .dogsoria-main-content .dogsoria-comparison:not(.dogsoria-comparison-table) .wp-block-table table:has(thead tr > :nth-child(3):last-child) {
		min-width: 640px;
	}

	.dogsoria-main-content > .dogsoria-quick-answer,
	.dogsoria-article-template > .dogsoria-quick-answer {
		padding: 20px;
	}

	.dogsoria-main-content > .dogsoria-quick-answer :is(p, li),
	.dogsoria-article-template > .dogsoria-quick-answer :is(p, li) {
		font-size: 18px !important;
	}

	.dogsoria-main-content :where(.dogsoria-comparison-table, .dogsoria-comparison) {
		padding: 22px 20px;
	}

	.dogsoria-article-template .dogsoria-main-content :is(
		.dogsoria-comparison-table,
		.dogsoria-highlight-box,
		.dogsoria-care-steps,
		.dogsoria-coat-comparison,
		.dogsoria-care-schedule,
		.dogsoria-comparison
	) > h2 {
		font-size: 48px !important;
		line-height: 1 !important;
		max-width: 100% !important;
		width: 100%;
	}

	:where(
		.dogsoria-comparison-table,
		.dogsoria-highlight-box,
		.dogsoria-care-steps,
		.dogsoria-coat-comparison,
		.dogsoria-care-schedule
	) {
		font-size: 1rem;
	}

	.dogsoria-care-steps ol > li {
		gap: .75rem;
		grid-template-columns: 2.35rem minmax(0, 1fr);
	}

	.dogsoria-care-steps ol > li::before {
		height: 2.35rem;
		width: 2.35rem;
	}
}
