/**
 * Mobile layout consistency — Iola Register (Option A)
 *
 * Contract at ≤767px:
 * - Gazet numbers: size / weight / line-height / spacing (see tokens + COMPONENT-SPEC)
 * - Register fonts: Castoro (headings) + Source Sans 3 (meta/UI) — never Newsreader here
 * - One gutter (24px), one rule color, one article gap for every homepage card type
 * - Kadence = desktop structure only; do not retune mobile per-block in the editor
 *
 * Goals:
 * 1. Drop leftover desktop column borders (right dividers that look random when stacked).
 * 2. One content gutter (24px) — strip nested column padding that made some blocks narrower.
 * 3. Mobile header / drawer CTA chrome for Search, e-edition, account.
 * 4. Homepage mid-page sections: compact cards, three-up gaps, top stories,
 *    category type/borders, Watch videos heading + row dividers.
 */

@media screen and (max-width: 767px) {
	/* —— Gutters: one 24px rail —— */
	:root {
		--iola-mobile-gutter: 24px;
		--iola-mobile-rule: #dedede;
		--iola-mobile-article-gap: 1.25rem;
		/* Gazet section head → content (mb-6) and compact section stack */
		--iola-mobile-section-head-gap: 1.5rem; /* 24px */
		--iola-mobile-section-gap: 3rem; /* 48px — Gazet mt-12 compact */
		/* Gazet @390px type scale (families stay on theme: Castoro / Source Sans) */
		--iola-size-hero-title: 1.25rem;
		--iola-lh-hero-title: 1.75rem;
		--iola-size-featured-title: 1.125rem;
		--iola-lh-featured-title: 1.40625rem;
		--iola-size-list-title: 1rem;
		--iola-lh-list-title: 1.15;
		--iola-size-excerpt: 1rem;
		--iola-lh-excerpt: 1.5rem;
		--iola-size-section-title: 1.5rem;
		--iola-lh-section-title: 1;
		--iola-size-meta: 0.8rem;
		--iola-lh-meta: 1.25;
		--iola-size-category: 0.8rem;
		--iola-weight-headings: 500;
		--iola-weight-semibold: 600;
		--iola-weight-section: 600;
	}

	/*
	 * Kadence rows already pad 24px on .kt-row-column-wrap.
	 * Nested .kt-inside-inner-col often keep desktop gap padding (10–24px) + a right border.
	 * On a single-column stack that becomes an uneven right inset and a stray vertical line.
	 */
	.kt-row-column-wrap.kt-mobile-layout-row > .wp-block-kadence-column > .kt-inside-inner-col,
	.kt-row-column-wrap.kt-mobile-layout-row .kt-inside-inner-col {
		border-left-width: 0 !important;
		border-right-width: 0 !important;
		border-left-style: none !important;
		border-right-style: none !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/*
	 * Kadence columns sometimes keep a desktop bottom border. On mobile that
	 * stacks under our card border and reads as a double rule (e.g. Midwest).
	 * Card borders live on .kb-query-item / post-grid items only.
	 */
	.entry-content .kt-inside-inner-col:has(.kb-query-item),
	.entry-content .kt-inside-inner-col:has(.kt-blocks-post-grid-item) {
		border-bottom-width: 0 !important;
		border-bottom-style: none !important;
	}

	/* Consistent vertical gap when multi-col rows stack (Flu / three-up, etc.) */
	.kt-row-column-wrap.kt-mobile-layout-row {
		row-gap: var(--iola-mobile-article-gap) !important;
	}

	/*
	 * .three-category-section (Flu / Lancers / Congress): desktop uses column
	 * right borders. Those are stripped on mobile, so add bottom rules between
	 * stacked cards. Not .kb-query-item — these are Kadence posts lists.
	 */
	.three-category-section .kt-row-column-wrap.kt-mobile-layout-row {
		row-gap: 0 !important;
	}

	/*
	 * The three-up shares .kt-has-3-columns.kt-row-layout-equal with
	 * State / National / World, so it picked up that section's 48px top pad and
	 * 48px row-gap on top of its own dividers. Article-gap dividers only here.
	 */
	.entry-content .three-category-section .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-equal.kt-mobile-layout-row {
		padding-top: 0 !important;
		row-gap: 0 !important;
	}

	.three-category-section .kt-row-column-wrap.kt-mobile-layout-row > .wp-block-kadence-column:not(:last-child) > .kt-inside-inner-col {
		border-bottom: 1px solid var(--iola-mobile-rule) !important;
		padding-bottom: var(--iola-mobile-article-gap) !important;
		margin-bottom: var(--iola-mobile-article-gap) !important;
	}

	/*
	 * Three-up (Flu / Lancers / Congress) uses Kadence Posts List (.entry-title),
	 * not query h1 / post-grid — so the general title rules miss it.
	 */
	.three-category-section .entry-title,
	.three-category-section .entry-title a {
		font-family: var(--global-heading-font-family, Castoro, serif) !important;
		font-size: var(--iola-size-featured-title) !important;
		line-height: var(--iola-lh-featured-title) !important;
		font-weight: var(--iola-weight-headings) !important;
		font-style: normal !important;
	}

	.three-category-section .entry-taxonomies a,
	.three-category-section .entry-taxonomies .category-links a,
	.three-category-section .category-links a,
	.three-category-section .term-links a {
		font-family: var(--global-body-font-family, "Source Sans 3", sans-serif) !important;
		font-size: var(--iola-size-category) !important;
		font-weight: var(--iola-weight-semibold) !important;
		letter-spacing: normal !important;
		text-transform: uppercase !important;
		line-height: 1.25 !important;
		color: var(--global-palette1, #088ccb) !important;
	}

	/* —— Mobile header utilities (search beside hamburger) —— */
	.site-header-item-navgation-popup-toggle {
		display: flex;
		align-items: center;
		gap: 0.25rem;
	}

	.iola-mobile-search-wrap {
		display: flex;
		align-items: center;
	}

	.iola-mobile-search-wrap .search-toggle-open {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 41px;
		height: 41px;
		padding: 0;
		border: 0;
		background: transparent;
		color: inherit;
		cursor: pointer;
	}

	.iola-mobile-search-wrap .search-toggle-icon {
		display: inline-flex;
		line-height: 0;
	}

	.iola-mobile-search-wrap .search-toggle-icon svg {
		width: 20px;
		height: 20px;
	}

	/* —— Drawer CTAs under the mobile nav —— */
	.iola-mobile-drawer-ctas {
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
		margin: 1.25rem 0 0;
		padding: 1.25rem 0 0;
		border-top: 1px solid rgba(255, 255, 255, 0.18);
	}

	.iola-mobile-drawer-ctas .iola-hdr-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.45em;
		width: 100%;
		box-sizing: border-box;
		padding: 0.7em 1em;
		border-radius: 4px;
		text-align: center;
		text-decoration: none;
		font-size: 1rem;
		line-height: 1.3;
		font-weight: 600;
	}

	.iola-mobile-drawer-ctas .iola-hdr-btn__icon {
		flex-shrink: 0;
	}

	/* My Account / Log in — readable on dark drawer (avoid light fill + white type) */
	.iola-mobile-drawer-ctas .iola-hdr-btn:not(.iola-hdr-btn--edition):not(.iola-hdr-btn--subscribe) {
		background: #ffffff;
		border: 1px solid #ffffff;
		color: #0d0d0d;
	}

	.iola-mobile-drawer-ctas .iola-hdr-btn:not(.iola-hdr-btn--edition):not(.iola-hdr-btn--subscribe) .iola-hdr-btn__icon {
		stroke: currentColor;
	}

	/* Open e-edition / Subscribe — keep brand blue, center label */
	.iola-mobile-drawer-ctas .iola-hdr-btn--edition,
	.iola-mobile-drawer-ctas .iola-hdr-btn--subscribe {
		background: var(--global-palette1, #088ccb);
		border: 1px solid var(--global-palette1, #088ccb);
		color: #ffffff;
	}

	/* —— Section 2: featured grid (leads + Surviving/Wildcats) + Flu three-up —— */

	/*
	 * Desktop “image on the right” uses direction:rtl + 20%/80px thumbs.
	 * On mobile that RTL still right-packs short titles (Wildcats). Force LTR stack.
	 */
	.hero-right-2-article .kt-blocks-post-grid-item-inner-wrap,
	.hero-right-2-article .kt-blocks-post-grid-item-inner-wrap.kt-feat-image-align-left,
	.hero-right-2-article .kt-blocks-post-grid-item-inner-wrap.kt-feat-image-mobile-align-top {
		display: flex !important;
		flex-direction: column !important;
		grid-template-columns: minmax(0, 1fr) !important;
		direction: ltr !important;
		text-align: left !important;
		align-items: stretch !important;
		gap: 0.75rem !important;
	}

	.hero-right-2-article .kt-blocks-post-grid-item-inner {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		box-sizing: border-box;
	}

	.kt-blocks-post-grid-item .kt-blocks-post-grid-item-inner-wrap.kt-feat-image-align-left,
	.kt-blocks-post-grid-item .kt-blocks-post-grid-item-inner-wrap.kt-feat-image-mobile-align-top {
		display: flex !important;
		flex-direction: column !important;
		grid-template-columns: minmax(0, 1fr) !important;
		direction: ltr !important;
		align-items: stretch !important;
		gap: 0.75rem;
	}

	.kt-blocks-post-grid-item .kt-feat-image-align-left .kadence-post-image,
	.kt-blocks-post-grid-item .kt-feat-image-mobile-align-top .kadence-post-image,
	.hero-right-2-article .kt-blocks-post-grid-item-inner-wrap .kadence-post-image {
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		float: none !important;
		margin: 0 0 0.25rem !important;
		overflow: hidden;
		padding: 0 !important;
	}

	.kt-blocks-post-grid-item .kt-feat-image-align-left .kadence-post-image-intrisic,
	.kt-blocks-post-grid-item .kt-feat-image-mobile-align-top .kadence-post-image-intrisic {
		width: 100% !important;
		max-width: 100% !important;
		height: 0 !important;
		padding-bottom: 56.25% !important;
	}

	.kt-blocks-post-grid-item .kt-feat-image-align-left .kadence-post-image-inner-intrisic,
	.kt-blocks-post-grid-item .kt-feat-image-mobile-align-top .kadence-post-image-inner-intrisic {
		width: 100% !important;
		height: 100% !important;
		inset: 0;
	}

	.kt-blocks-post-grid-item .kt-feat-image-align-left img.wp-post-image,
	.kt-blocks-post-grid-item .kt-feat-image-mobile-align-top img.wp-post-image,
	.hero-right-2-article .kt-blocks-post-grid-item-inner-wrap .wp-post-image {
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		object-fit: cover;
	}

	/*
	 * Every other homepage card thumbnail (query cards, posts lists, post-grids
	 * outside .hero-right-2-article): fill the card. Kadence image blocks keep a
	 * per-block max-width / auto margins, so a small source image would sit
	 * narrow and centered.
	 */
	.entry-content .kb-query-item figure.wp-block-kadence-image,
	.entry-content .kb-query-item figure.wp-block-kadence-image .kb-is-ratio-image,
	.entry-content .kb-query-item figure.wp-block-kadence-image img.kb-img,
	.entry-content .kb-post-list-item .post-thumbnail,
	.entry-content .kb-post-list-item .post-thumbnail img.wp-post-image,
	.entry-content .wp-block-kadence-postgrid:not(.hero-right-2-article) .kt-blocks-post-grid-item .kadence-post-image,
	.entry-content .wp-block-kadence-postgrid:not(.hero-right-2-article) .kt-blocks-post-grid-item .kadence-post-image img.wp-post-image {
		width: 100% !important;
		max-width: 100% !important;
		margin-inline: 0 !important;
	}

	/*
	 * Bylines — Gazet meta is ~12.8px / weight 500. Keep Register “by Author / Date”
	 * order; only match size/weight (families stay Source Sans from theme).
	 * Applies to featured grid + Local News / Sports / Opinions query cards.
	 */
	.entry-content .kb-query-item [class*="kb-section-dir"] .kt-inside-inner-col {
		align-items: baseline !important;
		column-gap: 0.35em !important;
	}

	.entry-content .kb-query-item [class*="kb-section-dir"] .kt-inside-inner-col > .wp-block-kadence-advancedheading {
		font-family: var(--global-body-font-family, "Source Sans 3", sans-serif) !important;
		font-size: var(--iola-size-meta) !important;
		line-height: var(--iola-lh-meta) !important;
		font-weight: var(--iola-weight-headings) !important;
		font-style: normal !important;
		color: #707070 !important;
	}

	.entry-content .kb-query-item [class*="kb-section-dir"] .kt-inside-inner-col > .wp-block-kadence-advancedheading a,
	.entry-content .kb-query-item [class*="kb-section-dir"] .wp-block-kadence-advancedheading a {
		font-size: inherit !important;
		font-weight: var(--iola-weight-semibold) !important;
		color: var(--global-palette1, #088ccb) !important;
	}

	/* Author name block (often bold gray from Kadence) → brand + semibold */
	.entry-content .kb-query-item [class*="kb-section-dir"] .wp-block-kadence-advancedheading:has(> a) {
		font-weight: var(--iola-weight-semibold) !important;
		color: var(--global-palette1, #088ccb) !important;
	}

	.hero-right-2-article .kt-blocks-post-top-meta,
	.entry-content .kb-query-item .kt-blocks-post-top-meta {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		justify-content: flex-start !important;
		align-items: baseline !important;
		gap: 0.35em !important;
		margin: 0 !important;
		font-family: var(--global-body-font-family, "Source Sans 3", sans-serif) !important;
		font-size: var(--iola-size-meta) !important;
		line-height: var(--iola-lh-meta) !important;
		font-weight: var(--iola-weight-headings) !important;
		color: #707070 !important;
	}

	.hero-right-2-article .kt-blocks-post-author,
	.entry-content .kb-query-item .kt-blocks-post-author {
		order: 1 !important;
		color: inherit !important;
	}

	.hero-right-2-article .kt-blocks-author-pretext,
	.entry-content .kb-query-item .kt-blocks-author-pretext {
		color: #707070 !important;
		font-weight: var(--iola-weight-headings) !important;
	}

	.hero-right-2-article .kt-blocks-post-author-link,
	.entry-content .kb-query-item .kt-blocks-post-author-link {
		color: var(--global-palette1, #088ccb) !important;
		font-weight: var(--iola-weight-semibold) !important;
	}

	.hero-right-2-article .kt-blocks-meta-divider,
	.entry-content .kb-query-item .kt-blocks-meta-divider {
		order: 2 !important;
		display: inline !important;
		width: auto !important;
		height: auto !important;
		margin: 0 !important;
		border: 0 !important;
		color: #c8c8c8 !important;
	}

	.hero-right-2-article .kt-blocks-meta-divider::before,
	.entry-content .kb-query-item .kt-blocks-meta-divider::before {
		content: "/";
	}

	.hero-right-2-article .kt-blocks-date,
	.entry-content .kb-query-item .kt-blocks-date {
		order: 3 !important;
	}

	.hero-right-2-article .kt-blocks-post-date,
	.entry-content .kb-query-item .kt-blocks-post-date {
		color: #707070 !important;
		font-size: inherit !important;
		font-weight: var(--iola-weight-headings) !important;
	}

	/* Post-grid / column gaps were stacking on card margins (24+20 ≈ uneven) */
	.hero-right-2-article .kt-post-grid-layout-grid-wrap,
	.hero-right-2-article .kt-post-grid-wrap {
		gap: 0 !important;
		row-gap: 0 !important;
		column-gap: 0 !important;
	}

	.featured-grid-1 .kt-row-column-wrap {
		row-gap: 0 !important;
		padding-bottom: 0 !important;
		margin-bottom: 0 !important;
	}

	.featured-grid-1 .kt-row-column-wrap .kt-inside-inner-col {
		padding-bottom: 0 !important;
	}

	.featured-grid-1 .kb-query-grid-wrap {
		gap: 0 !important;
		row-gap: 0 !important;
	}

	/*
	 * One card rhythm sitewide: pad under content → rule → margin before next card.
	 * Same gap + rule for featured leads, compact post-grid, and category query lists.
	 */
	.featured-grid-1 .kb-query-item.kb-query-block-post,
	.hero-right-2-article .kt-blocks-post-grid-item,
	.hero-right-2-article .kt-blocks-post-grid-item:last-child,
	.kt-post-grid-layout-grid-wrap .kt-blocks-post-grid-item:has(.kt-feat-image-align-left),
	.kt-post-grid-layout-grid-wrap .kt-blocks-post-grid-item:has(.kt-feat-image-align-left):last-child,
	.entry-content .kb-query-grid-wrap > .kb-query-item.kb-query-block-post {
		border-bottom: 1px solid var(--iola-mobile-rule) !important;
		padding-top: 0 !important;
		padding-bottom: var(--iola-mobile-article-gap) !important;
		margin-top: 0 !important;
		margin-bottom: var(--iola-mobile-article-gap) !important;
	}

	.featured-grid-1 + .kb-row-layout-wrap {
		margin-top: 0 !important;
	}

	/*
	 * Compact cards → three-up: the last compact card's rule was followed by the
	 * desktop full-bleed row border (two rules ~45px apart). Keep the card rule
	 * only; the card's own article-gap margin is the single gap to the three-up.
	 */
	.featured-grid-1 > .kt-row-column-wrap {
		border-bottom: 0 !important;
	}

	.entry-content .featured-grid-1 .kt-inside-inner-col > .kb-row-layout-wrap > .kt-row-column-wrap:has(.hero-right-2-article) {
		padding-bottom: 0 !important;
	}

	/*
	 * Second featured lead sat 24px low: its single-column wrap kept the
	 * section-head pad on top of the previous card's margin. Selector is longer
	 * than it looks like it needs to be — it has to out-rank the
	 * ".kt-inside-inner-col > .kb-row-layout-wrap .kt-row-column-wrap:has(.kb-query-item)"
	 * pad rule further down.
	 */
	.entry-content .featured-grid-1 .kt-inside-inner-col > .kb-row-layout-wrap > .kt-row-column-wrap.kt-has-1-columns {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	/* Compact hero cards print an empty post footer that still reserves 24px. */
	.hero-right-2-article .kt-blocks-post-footer {
		display: none !important;
	}

	/* —— Trending Now / Yesterday’s Top Stories —— */
	.wp-block-iola-top-stories.iola-top-stories {
		margin-block: var(--iola-mobile-section-gap) !important;
	}

	.wp-block-iola-top-stories .iola-top-stories__inner {
		padding-block: var(--iola-mobile-section-head-gap) !important;
		row-gap: var(--iola-mobile-section-head-gap) !important;
	}

	.wp-block-iola-top-stories .iola-story-list {
		--iola-story-list-gap: 0.9rem;
		gap: 0.9rem !important;
	}

	.wp-block-iola-top-stories .iola-story-list > .iola-story-list__item > .iola-story-list__title {
		margin-bottom: 0 !important;
	}

	/*
	 * —— Article typography (Gazet mobile scale, Register families) ——
	 * Hero 20/500 · mid 18/500 · list 16/500 · section 24/600 ·
	 * category 12.8/600 · meta 12.8/500 · excerpt 16/400
	 */

	/* Section heads: Local News / Sports / Opinions (first h2 only).
	 * Skip Photo galleries promo — that title is Source Sans uppercase + blue rule. */
	.entry-content .kt-inside-inner-col:not(:has(.rpv-shortcode-wrap)):not(:has(> h2 a[href*="photos"])) > h2.wp-block-kadence-advancedheading:first-of-type {
		font-family: var(--global-heading-font-family, Castoro, serif) !important;
		font-size: var(--iola-size-section-title) !important;
		line-height: var(--iola-lh-section-title) !important;
		font-weight: var(--iola-weight-section) !important;
		margin-bottom: 6px !important; /* beat theme -10px that pulled articles up */
	}

	/*
	 * State / National / World — Kadence puts a 3px double rule on the h2 with
	 * padding-bottom: 0, so the line sits on the baseline. Space it off the type
	 * and put one Gazet head→content gap below the rule.
	 */
	.entry-content .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-equal > .wp-block-kadence-column > .kt-inside-inner-col > h2.wp-block-kadence-advancedheading {
		padding-bottom: 0.75rem !important;
		margin-bottom: var(--iola-mobile-section-head-gap) !important;
	}

	/*
	 * Local News / Sports / Opinions section head (title + SEE ALL + rule):
	 * No pad under the title (the 3px rule sits directly under the type) and
	 * no margin under the rule — the article row’s padding-top owns the 24px gap.
	 * (Was 12px pad + 20px margin + 24px next wrap pt ≈ 44–59px.)
	 */
	.entry-content .kb-row-layout-wrap .kt-inside-inner-col:has(> h2.wp-block-kadence-advancedheading):has(.wp-block-kadence-advancedbtn),
	.entry-content .kb-row-layout-wrap .kt-inside-inner-col:has(> h2.wp-block-kadence-advancedheading):has(.kb-button) {
		padding-bottom: 0 !important;
		margin-bottom: 0 !important;
	}

	/*
	 * SEE ALL in those heads was 29px tall (6/3px pad, 19.6px line) against a
	 * 24px title, so it poked above the title. Match the title height; the head
	 * is already flex-end, so bottoms stay aligned.
	 */
	.entry-content .kb-section-dir-horizontal .kb-button {
		padding-top: 5px !important;
		padding-bottom: 5px !important;
		line-height: 1 !important;
	}

	/*
	 * Article grids under a section head — one 24px Gazet gap from rule → first card.
	 * Also keep 24px under the block so stacked sections (Local→Sports) read as ~48px.
	 */
	.entry-content .kt-inside-inner-col > .kb-row-layout-wrap .kt-row-column-wrap:has(.kb-query-grid-wrap),
	.entry-content .kt-inside-inner-col > .kb-row-layout-wrap .kt-row-column-wrap:has(.kb-query-item) {
		padding-top: var(--iola-mobile-section-head-gap) !important;
		padding-bottom: var(--iola-mobile-section-head-gap) !important;
	}

	/* Don’t let outer category-section wraps add a second top pad above the head */
	.entry-content > .kb-row-layout-wrap:has(h2.wp-block-kadence-advancedheading):has(.kb-query-item) > .kt-row-column-wrap,
	.entry-content > .kb-row-layout-wrap:has(h2.wp-block-kadence-advancedheading):has(.kb-query-grid-wrap) > .kt-row-column-wrap {
		padding-top: var(--iola-mobile-section-head-gap) !important;
		padding-bottom: 0 !important;
	}

	/* Watch videos / State-National-World: kill leftover 60px Kadence band padding */
	.entry-content .kt-row-column-wrap:has(> .wp-block-kadence-column .rpv-shortcode-wrap),
	.entry-content .kt-inside-inner-col:has(> .rpv-shortcode-wrap) {
		padding-bottom: var(--iola-mobile-section-head-gap) !important;
	}

	.entry-content .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-equal {
		padding-top: var(--iola-mobile-section-gap) !important;
		padding-bottom: var(--iola-mobile-section-head-gap) !important;
		row-gap: var(--iola-mobile-section-gap) !important;
	}

	/* Default homepage article titles → list size (16px / 500), Castoro */
	.entry-content .kb-row-layout-wrap h1.wp-block-kadence-advancedheading,
	.entry-content .kb-query-item h1.wp-block-kadence-advancedheading,
	.entry-content .kt-blocks-post-grid-item .entry-title,
	.entry-content .kt-blocks-post-grid-item .entry-title a {
		font-family: var(--global-heading-font-family, Castoro, serif) !important;
		font-size: var(--iola-size-list-title) !important;
		line-height: var(--iola-lh-list-title) !important;
		font-weight: var(--iola-weight-headings) !important;
		font-style: normal !important;
	}

	/* Featured-grid leads (Aikins / Midwest) → hero 20px / 500 */
	.entry-content .featured-grid-1 .kb-query-item h1.wp-block-kadence-advancedheading {
		font-family: var(--global-heading-font-family, Castoro, serif) !important;
		font-size: var(--iola-size-hero-title) !important;
		line-height: var(--iola-lh-hero-title) !important;
		font-weight: var(--iola-weight-headings) !important;
	}

	/* Compact cards under hero (Surviving / Wildcats) → mid 18px / 500 */
	.entry-content .hero-right-2-article .kt-blocks-post-grid-item .entry-title,
	.entry-content .hero-right-2-article .kt-blocks-post-grid-item .entry-title a {
		font-family: var(--global-heading-font-family, Castoro, serif) !important;
		font-size: var(--iola-size-featured-title) !important;
		line-height: var(--iola-lh-featured-title) !important;
		font-weight: var(--iola-weight-headings) !important;
	}

	/*
	 * Category-section featured lead — the lone card in a 3-col query row
	 * (Local left / Sports center / Opinions left). :first-child is wrong here
	 * because each column has its own grid.
	 */
	.entry-content .kt-has-3-columns .kb-query-grid-wrap > .kb-query-item:only-child h1.wp-block-kadence-advancedheading {
		font-family: var(--global-heading-font-family, Castoro, serif) !important;
		font-size: var(--iola-size-featured-title) !important;
		line-height: var(--iola-lh-featured-title) !important;
		font-weight: var(--iola-weight-headings) !important;
	}

	/* Excerpts / deks under featured + category leads — Gazet text-base 16/400 */
	.entry-content .featured-grid-1 .kb-query-item p.wp-block-kadence-advancedheading,
	.entry-content .kt-has-3-columns .kb-query-grid-wrap > .kb-query-item:only-child p.wp-block-kadence-advancedheading {
		font-family: var(--global-heading-font-family, Castoro, serif) !important;
		font-size: var(--iola-size-excerpt) !important;
		line-height: var(--iola-lh-excerpt) !important;
		font-weight: 400 !important;
	}

	/* Category eyebrows (SPORTS / LOCAL NEWS) — ~12.8px / 600 / uppercase */
	.entry-content .kb-dynamic-list .kb-dynamic-list-item .kb-dynamic-list-item-link,
	.entry-content .kb-dynamic-list-item-link {
		font-family: var(--global-body-font-family, "Source Sans 3", sans-serif) !important;
		font-size: var(--iola-size-category) !important;
		font-weight: var(--iola-weight-semibold) !important;
		letter-spacing: normal !important;
		text-transform: uppercase !important;
		line-height: 1.25 !important;
	}

	/* Top Stories list titles — Gazet mid/list weight */
	.wp-block-iola-top-stories .iola-story-list__title,
	.wp-block-iola-top-stories .iola-story-list__title a {
		font-family: var(--global-heading-font-family, Castoro, serif) !important;
		font-size: var(--iola-size-featured-title) !important;
		line-height: var(--iola-lh-featured-title) !important;
		font-weight: var(--iola-weight-headings) !important;
	}

	.wp-block-iola-top-stories .iola-story-heading {
		font-family: var(--global-body-font-family, "Source Sans 3", sans-serif) !important;
		font-size: var(--iola-size-meta) !important;
		font-weight: var(--iola-weight-bold, 700) !important;
		letter-spacing: normal !important;
		margin-bottom: 18px !important;
	}

	/* Don’t let nested column gaps double the article rhythm.
	 * Keep row-gap on State/National/World equal 3-col — that stack needs
	 * section spacing between categories when columns wrap on mobile. */
	.entry-content .kb-row-layout-wrap:not(.featured-grid-1) .kb-query-grid-wrap {
		gap: 0 !important;
		row-gap: 0 !important;
	}

	.entry-content .kb-row-layout-wrap:not(.featured-grid-1) .kt-row-column-wrap:not(.kt-row-layout-equal) {
		row-gap: 0 !important;
	}

	/*
	 * State / National / World — stacked columns need a clear section gap
	 * between the last article of one category and the next category title.
	 */
	.entry-content .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-equal.kt-mobile-layout-row {
		row-gap: var(--iola-mobile-section-gap) !important;
	}

	.entry-content .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-equal.kt-mobile-layout-row > .wp-block-kadence-column:not(:last-child) {
		margin-bottom: 0 !important; /* row-gap owns the space; avoid double */
	}

	/* —— Watch Today’s Videos: gutter on title + line; 2-up grid + row divider —— */
	.kt-inside-inner-col:has(> .rpv-shortcode-wrap) > h2.wp-block-kadence-advancedheading {
		box-sizing: border-box;
		width: auto;
		max-width: none;
		margin-left: var(--iola-mobile-gutter) !important;
		margin-right: var(--iola-mobile-gutter) !important;
		margin-bottom: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		/* Space the rule off the type (Kadence had 1px dark flush on the baseline) */
		padding-bottom: 0.75rem !important;
		border-bottom: 1px solid var(--iola-mobile-rule) !important;
		/* Match Local News / Sports section head */
		font-family: var(--global-heading-font-family, Castoro, serif) !important;
		font-size: var(--iola-size-section-title) !important;
		line-height: var(--iola-lh-section-title) !important;
		font-weight: var(--iola-weight-section) !important;
	}

	/* Gap under the title rule before the video grid */
	.kt-inside-inner-col:has(> .rpv-shortcode-wrap) {
		padding-bottom: 0 !important;
	}

	.kt-inside-inner-col:has(> .rpv-shortcode-wrap) > h2.wp-block-kadence-advancedheading + .rpv-shortcode-wrap,
	.kt-inside-inner-col:has(> .rpv-shortcode-wrap) > .rpv-shortcode-wrap {
		margin-top: 1.25rem !important;
	}

	.rpv-shortcode-wrap .video-section {
		box-sizing: border-box;
		padding-left: var(--iola-mobile-gutter) !important;
		padding-right: var(--iola-mobile-gutter) !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/*
	 * Plugin ships desktop carousel CSS (25% width, min 180px, negative margins,
	 * left borders between slides). On mobile: clean 2×2, no vertical rules
	 * (those read as an accidental table cross with the row divider).
	 */
	.rpv-shortcode-wrap .video-grid {
		display: flex !important;
		flex-wrap: wrap !important;
		align-items: stretch !important;
		column-gap: 1rem !important;
		row-gap: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-bottom: 0 !important;
		box-sizing: border-box;
		overflow: visible !important;
	}

	.rpv-shortcode-wrap .video-card {
		box-sizing: border-box;
		flex: 1 1 calc(50% - 0.5rem) !important;
		width: calc(50% - 0.5rem) !important;
		min-width: 0 !important;
		max-width: calc(50% - 0.5rem) !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		border-left: 0 !important;
	}

	.rpv-shortcode-wrap .video-title {
		font-size: var(--iola-size-list-title) !important;
		line-height: var(--iola-lh-list-title) !important;
		font-weight: var(--iola-weight-headings) !important;
	}

	/* One horizontal rule under the first row only — same language as article lists */
	.rpv-shortcode-wrap .video-card:nth-child(-n + 2) {
		border-bottom: 1px solid var(--iola-mobile-rule) !important;
		padding-bottom: 1rem !important;
		margin-bottom: 1rem !important;
	}

	/*
	 * Photo galleries promo — keep Kadence title (Source Sans uppercase ~md +
	 * blue underline). Only rein in “view all:” / list link sizes if needed;
	 * do not force Castoro 24px section-title styles onto “Photo galleries”.
	 */
	.entry-content .kt-inside-inner-col:has(> h6.wp-block-kadence-advancedheading):has(> h2 a[href*="photos"]) > h2.wp-block-kadence-advancedheading:first-of-type,
	.entry-content .kt-inside-inner-col:has(> h6.wp-block-kadence-advancedheading):has(> h2 a[href*="photos"]) > h2.wp-block-kadence-advancedheading:first-of-type a {
		font-family: var(--global-body-font-family, "Source Sans 3", sans-serif) !important;
		font-size: var(--global-kb-font-size-md, 1.25rem) !important;
		line-height: 1.2 !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
	}

	.entry-content .kt-inside-inner-col:has(> h6.wp-block-kadence-advancedheading):has(> h2 a[href*="photos"]) > h6.wp-block-kadence-advancedheading {
		font-size: 1.0625rem !important; /* ~17px — original block size */
		line-height: 1.5 !important;
		font-weight: 400 !important;
		margin-top: 0.5rem !important;
		margin-bottom: 1.25rem !important;
	}

	.entry-content .kt-inside-inner-col:has(> h6.wp-block-kadence-advancedheading):has(> h2 a[href*="photos"]) > h2.wp-block-kadence-advancedheading:not(:first-of-type),
	.entry-content .kt-inside-inner-col:has(> h6.wp-block-kadence-advancedheading):has(> h2 a[href*="photos"]) > h2.wp-block-kadence-advancedheading:not(:first-of-type) a {
		font-family: var(--global-body-font-family, "Source Sans 3", sans-serif) !important;
		font-size: var(--global-kb-font-size-sm, 0.9rem) !important;
		line-height: 1.25 !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
		letter-spacing: normal !important;
	}

	.entry-content .kt-inside-inner-col:has(> h6.wp-block-kadence-advancedheading):has(> h2 a[href*="photos"]) > p.wp-block-kadence-advancedheading {
		font-size: var(--iola-size-meta) !important;
		line-height: 1.4 !important;
		font-weight: var(--iola-weight-headings) !important;
		margin-bottom: 0.35rem !important;
	}
}
