/* ==========================================================================
   anujbisht – Blog styles (single post + Blog page template)
   --------------------------------------------------------------------------
   Loaded by inc/blog.php on single posts and the Blog page only. Everything
   is scoped to body.ab-news so nothing leaks into the rest of the site.
   Sections 1–6 + 8 = single post, 7 = shared cards, 10 = Blog page.

   Design tokens are taken straight from the parent assets/css/style.css:
     teal            #1A9F9A
     footer black    #1D1C1C
     body grey       #7A7A7A
     dark text       #404041
     border grey     #D9D9D9
     light surface   #f3f3f3
     headings        'LibreBaskerville-Bold'
     body / UI       'Branding-SF-Medium' / 'Branding-SF-Semibold'
   ========================================================================== */

body.ab-news {
	--ab-teal: #1A9F9A;
	--ab-teal-dark: #158680;
	--ab-teal-tint: #E8F5F4;
	--ab-black: #000000;
	--ab-ink: #1D1C1C;
	--ab-text: #404041;
	--ab-muted: #7A7A7A;
	--ab-border: #D9D9D9;
	--ab-surface: #f3f3f3;
	--ab-white: #ffffff;

	--ab-serif: 'LibreBaskerville-Bold', 'Libre Baskerville', Georgia, 'Times New Roman', serif;
	--ab-serif-regular: 'LibreBaskerville-Regular', 'Libre Baskerville', Georgia, serif;
	--ab-sans: 'Branding-SF-Medium', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--ab-sans-semibold: 'Branding-SF-Semibold', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

	--ab-radius: 8px;
	--ab-ease: .35s ease-out;
}

/* --------------------------------------------------------------------------
   1. HERO
   Builds on the parent's .single-listing-details (teal → white gradient at
   80%) so the featured image "breaks out" of the teal block like the
   existing single pages.
   -------------------------------------------------------------------------- */
.ab-news .ab-hero .single-listing-details {
	padding-top: 72px;
}

/* No featured image: solid teal block, tidy bottom spacing. */
.ab-news .ab-hero--no-image .single-listing-details {
	background: var(--ab-teal);
	padding-bottom: 64px;
}

.ab-news .ab-hero__inner {
	max-width: 1000px;
	margin: 0 auto;
}

/* Category pill */
.ab-news .ab-cat {
	display: inline-block;
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	line-height: 1;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-white);
	border: 1px solid rgba(255, 255, 255, .6);
	border-radius: 50px;
	padding: 9px 18px 8px;
	margin-bottom: 26px;
	transition: background var(--ab-ease), color var(--ab-ease), border-color var(--ab-ease);
}

.ab-news .ab-cat:hover,
.ab-news .ab-cat:focus {
	background: var(--ab-white);
	color: var(--ab-teal);
	border-color: var(--ab-white);
	text-decoration: none;
}

/* Title – h1 for SEO, styled like the parent's h2 hero title */
.ab-news .ab-hero__title {
	font-family: var(--ab-serif);
	font-size: 48px;
	line-height: 60px;
	color: var(--ab-white);
	margin: 0 auto 28px;
	max-width: 900px;
	text-wrap: balance;
}

/* Meta row: avatar + author · date · reading time */
.ab-news .ab-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 14px;
	font-family: var(--ab-sans);
	font-size: 16px;
	line-height: 22px;
	color: var(--ab-white);
}

.ab-news .ab-meta a {
	color: var(--ab-white);
	border-bottom: 1px solid transparent;
	transition: border-color var(--ab-ease);
}

.ab-news .ab-meta a:hover,
.ab-news .ab-meta a:focus {
	border-bottom-color: var(--ab-white);
	text-decoration: none;
}

.ab-news .ab-meta__author {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.ab-news .ab-meta__avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, .7);
	object-fit: cover;
}

.ab-news .ab-meta__sep {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .7);
}

/* Parent gives p.news-date extra padding – we use <time>, keep it flush */
.ab-news .ab-meta__date {
	display: inline-flex;
	align-items: center;
	padding: 0;
	margin: 0;
}

.ab-news .ab-meta__date img {
	margin-right: 10px;
	width: 18px;
	height: 18px;
}

.ab-news .ab-meta__read {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* Featured image – overrides parent's fixed 73px top margin */
.ab-news .ab-hero__media {
	margin: 56px 0 0;
}

.ab-news .ab-hero__img.single-market-img {
	margin-top: 0;
	width: 100%;
	max-height: 640px;
	object-fit: cover;
	border-radius: var(--ab-radius);
	box-shadow: 0 24px 60px -24px rgba(29, 28, 28, .45);
}

/* --------------------------------------------------------------------------
   2. TOOLBAR – back link + share
   -------------------------------------------------------------------------- */
.ab-news .ab-body {
	padding-top: 40px;
}

.ab-news .ab-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px 24px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--ab-border);
}

.ab-news .ab-back {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--ab-sans);
	font-size: 18px;
	color: var(--ab-teal);
	transition: color var(--ab-ease);
}

.ab-news .ab-back img {
	padding-left: 0;
	transform: rotate(180deg);
	transition: transform var(--ab-ease);
}

.ab-news .ab-back:hover {
	color: var(--ab-black);
	text-decoration: none;
}

.ab-news .ab-back:hover img {
	transform: rotate(180deg) translateX(4px);
}

/* Share buttons */
.ab-news .ab-share {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.ab-news .ab-share__label {
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-muted);
	margin-right: 4px;
}

.ab-news .ab-share__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--ab-border);
	background: var(--ab-white);
	color: var(--ab-ink);
	padding: 0;
	cursor: pointer;
	transition: background var(--ab-ease), color var(--ab-ease), border-color var(--ab-ease), transform var(--ab-ease);
}

.ab-news .ab-share__btn:hover,
.ab-news .ab-share__btn:focus-visible {
	background: var(--ab-teal);
	border-color: var(--ab-teal);
	color: var(--ab-white);
	transform: translateY(-2px);
	outline: none;
	text-decoration: none;
}

.ab-news .ab-share__btn:focus-visible {
	box-shadow: 0 0 0 3px rgba(26, 159, 154, .35);
}

.ab-news .ab-share__icon {
	display: inline-flex;
}

.ab-news .ab-share__icon--done {
	display: none;
}

.ab-news .ab-share__btn.is-copied {
	background: var(--ab-teal);
	border-color: var(--ab-teal);
	color: var(--ab-white);
}

.ab-news .ab-share__btn.is-copied .ab-share__icon--default {
	display: none;
}

.ab-news .ab-share__btn.is-copied .ab-share__icon--done {
	display: inline-flex;
}

.ab-news .ab-share__tooltip {
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	white-space: nowrap;
	font-family: var(--ab-sans);
	font-size: 12px;
	line-height: 1;
	padding: 6px 10px;
	border-radius: 4px;
	background: var(--ab-ink);
	color: var(--ab-white);
	pointer-events: none;
}

.ab-news .ab-share__tooltip:empty {
	display: none;
}

/* --------------------------------------------------------------------------
   3. CONTENT – full container width (1240px), editorial typography
   -------------------------------------------------------------------------- */
.ab-news .ab-content.detail-listing {
	padding: 48px 0 40px;
}

.ab-news .ab-content > * {
	max-width: 100%;
}

.ab-news .ab-content p {
	font-family: var(--ab-sans);
	font-size: 18px;
	line-height: 30px;
	color: var(--ab-text);
	padding-bottom: 0;
	margin: 0 0 24px;
}

.ab-news .ab-content p:last-child {
	margin-bottom: 0;
}

.ab-news .ab-content h2,
.ab-news .ab-content h3,
.ab-news .ab-content h4 {
	color: var(--ab-black);
	margin: 48px 0 18px;
}

.ab-news .ab-content h2 {
	font-family: var(--ab-serif);
	font-size: 32px;
	line-height: 42px;
	margin-bottom: 18px;
}

.ab-news .ab-content h3 {
	font-family: var(--ab-serif);
	font-size: 24px;
	line-height: 32px;
}

.ab-news .ab-content h4 {
	font-family: var(--ab-sans-semibold);
	font-size: 20px;
	line-height: 28px;
}

.ab-news .ab-content h2:first-child,
.ab-news .ab-content h3:first-child {
	margin-top: 0;
}

/* Links */
.ab-news .ab-content a:not(.btn-green):not(.btn-black) {
	color: var(--ab-teal);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--ab-ease);
}

.ab-news .ab-content a:not(.btn-green):not(.btn-black):hover {
	color: var(--ab-black);
}

/* Lists */
.ab-news .ab-content ul,
.ab-news .ab-content ol {
	font-family: var(--ab-sans);
	font-size: 18px;
	line-height: 30px;
	color: var(--ab-text);
	margin: 0 0 24px;
	padding-left: 28px;
}

.ab-news .ab-content li {
	margin-bottom: 10px;
}

.ab-news .ab-content li::marker {
	color: var(--ab-teal);
	font-family: var(--ab-sans-semibold);
}

/* Blockquote – e.g. the Google review pull-quote */
.ab-news .ab-content blockquote {
	margin: 40px 0;
	padding: 32px 36px 32px 40px;
	background: var(--ab-surface);
	border-left: 4px solid var(--ab-teal);
	border-radius: 0 var(--ab-radius) var(--ab-radius) 0;
}

.ab-news .ab-content blockquote p {
	font-family: var(--ab-serif-regular);
	font-style: italic;
	font-size: 21px;
	line-height: 34px;
	color: var(--ab-ink);
}

.ab-news .ab-content blockquote cite,
.ab-news .ab-content blockquote footer {
	display: block;
	margin-top: 12px;
	font-family: var(--ab-sans);
	font-style: normal;
	font-size: 15px;
	color: var(--ab-muted);
}

/* Images, figures, embeds, tables */
.ab-news .ab-content img {
	max-width: 100%;
	height: auto;
	border-radius: var(--ab-radius);
}

.ab-news .ab-content figure,
.ab-news .ab-content .wp-caption {
	margin: 36px 0;
	max-width: 100%;
}

.ab-news .ab-content figcaption,
.ab-news .ab-content .wp-caption-text {
	font-family: var(--ab-sans);
	font-size: 14px;
	line-height: 20px;
	color: var(--ab-muted);
	text-align: center;
	margin-top: 10px;
}

.ab-news .ab-content iframe {
	max-width: 100%;
}

.ab-news .ab-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 32px;
	font-family: var(--ab-sans);
	font-size: 16px;
	color: var(--ab-text);
}

.ab-news .ab-content th,
.ab-news .ab-content td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--ab-border);
	text-align: left;
}

.ab-news .ab-content th {
	font-family: var(--ab-sans-semibold);
	color: var(--ab-black);
	border-bottom: 2px solid var(--ab-teal);
}

.ab-news .ab-content hr {
	border: 0;
	border-top: 1px solid var(--ab-border);
	margin: 40px 0;
}

/* Paginated posts */
.ab-news .ab-pages {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 32px;
	font-family: var(--ab-sans);
}

.ab-news .ab-pages__label {
	color: var(--ab-muted);
	margin-right: 4px;
}

.ab-news .ab-pages a,
.ab-news .ab-pages > span:not(.ab-pages__label) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border-radius: 50px;
	border: 1px solid var(--ab-border);
	color: var(--ab-ink);
}

.ab-news .ab-pages > span:not(.ab-pages__label),
.ab-news .ab-pages a:hover {
	background: var(--ab-teal);
	border-color: var(--ab-teal);
	color: var(--ab-white);
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   4. POST FOOTER – tags + share
   -------------------------------------------------------------------------- */
.ab-news .ab-post-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px 24px;
	padding: 28px 0;
	border-top: 1px solid var(--ab-border);
	border-bottom: 1px solid var(--ab-border);
	background: transparent; /* guard: parent paints <footer> elements black */
	color: inherit;
}

.ab-news .ab-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.ab-news .ab-tags__label {
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-muted);
	margin-right: 6px;
}

.ab-news .ab-tags a {
	display: inline-block;
	font-family: var(--ab-sans);
	font-size: 14px;
	line-height: 1;
	color: var(--ab-ink);
	background: var(--ab-surface);
	border-radius: 50px;
	padding: 10px 16px 9px;
	transition: background var(--ab-ease), color var(--ab-ease);
}

.ab-news .ab-tags a:hover {
	background: var(--ab-teal);
	color: var(--ab-white);
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   5. AUTHOR BOX
   -------------------------------------------------------------------------- */
.ab-news .ab-author {
	display: flex;
	gap: 32px;
	align-items: flex-start;
	margin-top: 48px;
	padding: 40px;
	background: var(--ab-surface);
	border-radius: 12px;
}

.ab-news .ab-author__avatar img {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	object-fit: cover;
	border: 4px solid var(--ab-white);
	box-shadow: 0 8px 24px -10px rgba(29, 28, 28, .35);
}

.ab-news .ab-author__eyebrow {
	display: block;
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-teal);
	margin-bottom: 8px;
}

.ab-news .ab-author__name {
	font-family: var(--ab-serif);
	font-size: 26px;
	line-height: 34px;
	color: var(--ab-black);
	margin: 0 0 12px;
}

.ab-news .ab-author__bio {
	font-family: var(--ab-sans);
	font-size: 17px;
	line-height: 28px;
	color: var(--ab-text);
	margin: 0 0 18px;
	padding: 0;
}

.ab-news .ab-author__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--ab-sans);
	font-size: 17px;
	color: var(--ab-teal);
	transition: color var(--ab-ease), gap var(--ab-ease);
}

.ab-news .ab-author__link:hover {
	color: var(--ab-black);
	gap: 14px;
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   6. PREVIOUS / NEXT
   -------------------------------------------------------------------------- */
.ab-news .ab-postnav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-top: 32px;
}

.ab-news .ab-postnav__item {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 28px 32px;
	border: 1px solid var(--ab-border);
	border-radius: 12px;
	background: var(--ab-white);
	color: var(--ab-black);
	transition: border-color var(--ab-ease), box-shadow var(--ab-ease), transform var(--ab-ease);
}

.ab-news .ab-postnav__item--next {
	text-align: right;
	align-items: flex-end;
}

.ab-news .ab-postnav__item--empty {
	border: 0;
	background: transparent;
	padding: 0;
}

.ab-news .ab-postnav__item:not(.ab-postnav__item--empty):hover {
	border-color: var(--ab-teal);
	box-shadow: 0 20px 40px -24px rgba(26, 159, 154, .45);
	transform: translateY(-3px);
	text-decoration: none;
}

.ab-news .ab-postnav__label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-teal);
}

.ab-news .ab-postnav__item--prev .ab-postnav__label svg {
	transform: rotate(180deg);
}

.ab-news .ab-postnav__title {
	font-family: var(--ab-serif);
	font-size: 20px;
	line-height: 28px;
	color: var(--ab-black);
	text-wrap: balance;
}

/* --------------------------------------------------------------------------
   7. NEWS CARD (shared) + RELATED NEWS
   Uses the theme's .related-news / .news-complete classes. style.css
   positions the card title absolutely (built for the old archive), so we
   make the card layout static + robust for any title length here.
   -------------------------------------------------------------------------- */
.ab-news .ab-related {
	margin-top: 72px;
	padding: 80px 0 0;
	background: var(--ab-surface);
}

.ab-news .ab-related .related-news {
	margin-bottom: 0;
	padding-bottom: 40px;
}

.ab-news .ab-related .related-news h2 {
	text-align: center;
	color: var(--ab-black);
	margin-bottom: 8px;
}

.ab-news .ab-related .news-complete.ab-card {
	height: calc(100% - 96px);
	margin-top: 40px;
	margin-bottom: 56px;
}

.ab-news .news-complete.ab-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	background: var(--ab-white);
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--ab-border);
	transition: box-shadow var(--ab-ease), transform var(--ab-ease), border-color var(--ab-ease);
}

.ab-news .news-complete.ab-card:hover {
	transform: translateY(-4px);
	border-color: transparent;
	box-shadow: 0 30px 60px -30px rgba(29, 28, 28, .35);
}

.ab-news .ab-card__media {
	display: block;
	position: relative;
	overflow: hidden;
}

/* Category badge on the image (Blog page) */
.ab-news .ab-card__cat {
	position: absolute;
	top: 14px;
	left: 14px;
	font-family: var(--ab-sans-semibold);
	font-size: 11px;
	line-height: 1;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-white);
	background: rgba(29, 28, 28, .72);
	border-radius: 50px;
	padding: 7px 12px 6px;
	backdrop-filter: blur(4px);
}

/* Reading time after the date */
.ab-news .ab-card__read {
	display: inline-block;
	margin-left: 12px;
	padding-left: 12px;
	border-left: 1px solid var(--ab-border);
}

.ab-news .ab-card__img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	transition: transform .6s ease;
}

.ab-news .ab-card__img--placeholder {
	background: linear-gradient(135deg, var(--ab-teal) 0%, var(--ab-teal-dark) 100%);
}

.ab-news .news-complete.ab-card:hover .ab-card__img {
	transform: scale(1.04);
}

.ab-news .news-complete.ab-card .news-date {
	padding: 22px 28px 0;
	margin: 0;
	font-family: var(--ab-sans);
	font-size: 14px;
	color: var(--ab-muted);
}

.ab-news .news-complete.ab-card .news-date img {
	width: 16px;
	height: 16px;
	margin-right: 10px;
	vertical-align: -2px;
}

.ab-news .news-complete.ab-card > a h5 {
	position: static;           /* parent: absolute */
	margin: 14px 28px 0;
	font-family: var(--ab-serif);
	font-size: 20px;
	line-height: 28px;
	color: var(--ab-black);
	transition: color var(--ab-ease);
}

.ab-news .news-complete.ab-card > a:hover h5 {
	color: var(--ab-teal);
}

.ab-news .ab-card .news-excer {
	margin: 0;                  /* parent: 100px */
	padding: 0 28px;
	flex: 1 1 auto;
}

.ab-news .ab-card .news-excer p {
	margin-top: 12px;
	font-family: var(--ab-sans);
	font-size: 15px;
	line-height: 24px;
	color: var(--ab-muted);
}

.ab-news .ab-card .view-more-link {
	padding: 20px 28px 26px;
}

.ab-news .ab-card .view-more-link a {
	float: none;
	display: inline-block;
}

.ab-news .ab-card .view-more-link h5 {
	position: static;           /* style.css: absolute */
	margin: 0;
	display: inline-flex;
	align-items: center;
	font-family: var(--ab-sans);
	font-size: 16px;
	color: var(--ab-teal);
	transition: color var(--ab-ease);
}

.ab-news .ab-card .view-more-link img {
	padding-left: 12px;
	transition: transform var(--ab-ease);
}

.ab-news .ab-card .view-more-link a:hover h5 {
	color: var(--ab-black);
}

.ab-news .ab-card .view-more-link a:hover img {
	transform: translateX(4px);
}

/* --------------------------------------------------------------------------
   8. COMMENTS (light touch – WordPress default markup)
   -------------------------------------------------------------------------- */
.ab-news .ab-comments {
	padding: 64px 0 80px;
	font-family: var(--ab-sans);
	color: var(--ab-text);
}

.ab-news .ab-comments .comments-title,
.ab-news .ab-comments .comment-reply-title {
	font-family: var(--ab-serif);
	font-size: 28px;
	line-height: 36px;
	color: var(--ab-black);
}

.ab-news .ab-comments .comment-list {
	list-style: none;
	padding: 0;
}

.ab-news .ab-comments .comment-body {
	padding: 24px 0;
	border-bottom: 1px solid var(--ab-border);
}

.ab-news .ab-comments input[type="text"],
.ab-news .ab-comments input[type="email"],
.ab-news .ab-comments input[type="url"],
.ab-news .ab-comments textarea {
	width: 100%;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius);
	padding: 12px 14px;
	font-family: var(--ab-sans);
	font-size: 16px;
}

.ab-news .ab-comments input[type="submit"] {
	border: 0;
	border-radius: 50px;
	background: var(--ab-teal);
	color: var(--ab-white);
	font-family: var(--ab-sans);
	font-size: 18px;
	text-transform: uppercase;
	padding: 12px 30px;
	min-width: 191px;
	cursor: pointer;
	transition: background var(--ab-ease);
}

.ab-news .ab-comments input[type="submit"]:hover {
	background: var(--ab-black);
}

/* --------------------------------------------------------------------------
   9. RESPONSIVE
   Breakpoints mirror the parent: 1200 / 991 / 767 / 575
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
	.ab-news .ab-hero__title {
		font-size: 40px;
		line-height: 50px;
	}

	.ab-news .ab-related .news-complete.ab-card {
		height: auto;
		margin-bottom: 24px;
	}
}

@media (max-width: 767px) {
	.ab-news .ab-hero .single-listing-details {
		padding-top: 48px;
	}

	.ab-news .ab-hero__title {
		font-size: 32px;
		line-height: 42px;
		margin-bottom: 22px;
	}

	.ab-news .ab-hero__media {
		margin-top: 40px;
	}

	.ab-news .ab-meta {
		gap: 10px;
		font-size: 15px;
	}

	.ab-news .ab-content.detail-listing {
		padding: 36px 0 32px;
	}

	.ab-news .ab-content p,
	.ab-news .ab-content ul,
	.ab-news .ab-content ol {
		font-size: 17px;
		line-height: 28px;
	}

	.ab-news .ab-content h2 {
		font-size: 27px;
		line-height: 36px;
		margin-top: 36px;
	}

	.ab-news .ab-content blockquote {
		padding: 24px 24px 24px 28px;
	}

	.ab-news .ab-content blockquote p {
		font-size: 18px;
		line-height: 30px;
	}

	.ab-news .ab-author {
		flex-direction: column;
		gap: 20px;
		padding: 28px 24px;
	}

	.ab-news .ab-author__avatar img {
		width: 88px;
		height: 88px;
	}

	.ab-news .ab-postnav {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.ab-news .ab-postnav__item--empty {
		display: none;
	}

	.ab-news .ab-postnav__item--next {
		text-align: left;
		align-items: flex-start;
	}

	.ab-news .ab-postnav__item--next .ab-postnav__label {
		flex-direction: row-reverse;
	}

	.ab-news .ab-related {
		margin-top: 56px;
		padding-top: 56px;
	}

	.ab-news .ab-related .news-complete.ab-card {
		margin-top: 24px;
		margin-bottom: 8px;
	}

	.ab-news .ab-related .related-news {
		padding-bottom: 56px;
	}
}

@media (max-width: 575px) {
	.ab-news .ab-hero__title {
		font-size: 28px;
		line-height: 36px;
	}

	.ab-news .ab-meta__sep {
		display: none;
	}

	.ab-news .ab-meta {
		flex-direction: column;
		gap: 12px;
	}

	.ab-news .ab-hero__img.single-market-img {
		border-radius: 6px;
	}

	.ab-news .ab-toolbar,
	.ab-news .ab-post-footer {
		justify-content: center;
		text-align: center;
	}

	.ab-news .ab-share {
		flex-wrap: wrap;
		justify-content: center;
	}

	.ab-news .ab-share__btn {
		width: 40px;
		height: 40px;
	}

	.ab-news .ab-tags {
		justify-content: center;
	}
}

/* Respect users who prefer less motion */
@media (prefers-reduced-motion: reduce) {
	.ab-news .ab-share__btn,
	.ab-news .ab-postnav__item,
	.ab-news .news-complete.ab-card,
	.ab-news .ab-card__img,
	.ab-news .ab-back img,
	.ab-news .view-more-link img {
		transition: none;
	}

	.ab-news .ab-share__btn:hover,
	.ab-news .ab-postnav__item:hover,
	.ab-news .news-complete.ab-card:hover,
	.ab-news .news-complete.ab-card:hover .ab-card__img {
		transform: none;
	}
}

/* ==========================================================================
   10. BLOG PAGE  (template-blog.php → /blog/)
   The standard sub-header banner comes from header.php; everything below
   sits in the 1240px container like the rest of the site.
   ========================================================================== */
.ab-news .ab-blog {
	padding: 64px 0 120px;
}

/* Intro copy from the page editor */
.ab-news .ab-blog__intro {
	max-width: 820px;
	margin: 0 auto 40px;
	text-align: center;
}

.ab-news .ab-blog__intro p {
	font-family: var(--ab-sans);
	font-size: 18px;
	line-height: 30px;
	color: var(--ab-text);
	margin-bottom: 16px;
}

/* Filter bar --------------------------------------------------------------- */
.ab-news .ab-blog__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px 32px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--ab-border);
}

.ab-news .ab-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.ab-news .ab-filter__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--ab-sans);
	font-size: 15px;
	line-height: 1;
	color: var(--ab-ink);
	background: var(--ab-surface);
	border: 1px solid transparent;
	border-radius: 50px;
	padding: 11px 18px 10px;
	transition: background var(--ab-ease), color var(--ab-ease), border-color var(--ab-ease);
}

.ab-news .ab-filter__item:hover {
	border-color: var(--ab-teal);
	color: var(--ab-teal);
	text-decoration: none;
}

.ab-news .ab-filter__item.is-active {
	background: var(--ab-teal);
	border-color: var(--ab-teal);
	color: var(--ab-white);
}

.ab-news .ab-filter__count {
	font-size: 12px;
	opacity: .7;
}

/* Search */
.ab-news .ab-search {
	display: flex;
	align-items: center;
	flex: 0 1 300px;
	min-width: 220px;
	border: 1px solid var(--ab-border);
	border-radius: 50px;
	background: var(--ab-white);
	overflow: hidden;
	transition: border-color var(--ab-ease), box-shadow var(--ab-ease);
}

.ab-news .ab-search:focus-within {
	border-color: var(--ab-teal);
	box-shadow: 0 0 0 3px rgba(26, 159, 154, .18);
}

.ab-news .ab-search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	outline: 0;
	background: transparent;
	padding: 11px 6px 10px 20px;
	font-family: var(--ab-sans);
	font-size: 15px;
	color: var(--ab-ink);
	-webkit-appearance: none;
	appearance: none;
}

.ab-news .ab-search input[type="search"]::placeholder {
	color: var(--ab-muted);
}

.ab-news .ab-search button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 42px;
	border: 0;
	background: transparent;
	color: var(--ab-teal);
	cursor: pointer;
	transition: color var(--ab-ease);
}

.ab-news .ab-search button:hover {
	color: var(--ab-black);
}

/* Result summary when filtered */
.ab-news .ab-blog__summary {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin: 28px 0 -8px;
	font-family: var(--ab-sans);
	font-size: 16px;
	color: var(--ab-muted);
}

.ab-news .ab-blog__summary strong {
	color: var(--ab-ink);
	font-weight: normal;
	font-family: var(--ab-sans-semibold);
}

.ab-news .ab-blog__clear {
	color: var(--ab-teal);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ab-news .ab-blog__clear:hover {
	color: var(--ab-black);
}

/* Featured (latest) post ---------------------------------------------------- */
.ab-news .ab-featured {
	display: grid;
	grid-template-columns: 7fr 5fr;
	margin: 48px 0 16px;
	background: var(--ab-white);
	border: 1px solid var(--ab-border);
	border-radius: 16px;
	overflow: hidden;
	transition: box-shadow var(--ab-ease), border-color var(--ab-ease);
}

.ab-news .ab-featured:hover {
	border-color: transparent;
	box-shadow: 0 40px 80px -40px rgba(29, 28, 28, .4);
}

.ab-news .ab-featured__media {
	display: block;
	overflow: hidden;
	min-height: 100%;
}

.ab-news .ab-featured__img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 420px;
	object-fit: cover;
	transition: transform .7s ease;
}

.ab-news .ab-featured:hover .ab-featured__img {
	transform: scale(1.03);
}

.ab-news .ab-featured__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 48px 52px;
}

.ab-news .ab-featured__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-teal);
	margin-bottom: 18px;
}

.ab-news .ab-featured__eyebrow a {
	color: var(--ab-muted);
}

.ab-news .ab-featured__eyebrow a:hover {
	color: var(--ab-teal);
}

.ab-news .ab-featured__dot {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--ab-border);
}

.ab-news .ab-featured__title {
	font-family: var(--ab-serif);
	font-size: 32px;
	line-height: 42px;
	margin: 0 0 18px;
	text-wrap: balance;
}

.ab-news .ab-featured__title a {
	color: var(--ab-black);
	transition: color var(--ab-ease);
}

.ab-news .ab-featured__title a:hover {
	color: var(--ab-teal);
	text-decoration: none;
}

.ab-news .ab-featured__excerpt {
	font-family: var(--ab-sans);
	font-size: 17px;
	line-height: 28px;
	color: var(--ab-text);
	margin: 0 0 22px;
}

.ab-news .ab-featured__meta.news-date {
	padding: 0;
	margin: 0 0 28px;
	font-family: var(--ab-sans);
	font-size: 14px;
	color: var(--ab-muted);
}

.ab-news .ab-featured__meta img {
	width: 16px;
	height: 16px;
	margin-right: 10px;
	vertical-align: -2px;
}

.ab-news .ab-featured__btn.btn-green {
	align-self: flex-start;
	margin-top: 0;
	text-transform: none;
	min-width: 0;
	padding: 12px 32px;
}

/* Grid ---------------------------------------------------------------------- */
.ab-news .ab-grid {
	margin-top: 40px;
}

.ab-news .ab-grid__col {
	margin-bottom: 30px;
}

/* Pagination ---------------------------------------------------------------- */
.ab-news .ab-pagination {
	margin-top: 32px;
}

.ab-news .ab-pagination .page-numbers {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ab-news .ab-pagination .page-numbers li {
	list-style: none;
}

.ab-news .ab-pagination a.page-numbers,
.ab-news .ab-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	border-radius: 50px;
	border: 1px solid var(--ab-border);
	font-family: var(--ab-sans);
	font-size: 16px;
	color: var(--ab-ink);
	background: var(--ab-white);
	transition: background var(--ab-ease), color var(--ab-ease), border-color var(--ab-ease);
}

.ab-news .ab-pagination a.page-numbers:hover {
	border-color: var(--ab-teal);
	color: var(--ab-teal);
	text-decoration: none;
}

.ab-news .ab-pagination span.page-numbers.current {
	background: var(--ab-teal);
	border-color: var(--ab-teal);
	color: var(--ab-white);
}

.ab-news .ab-pagination span.page-numbers.dots {
	border-color: transparent;
	color: var(--ab-muted);
}

.ab-news .ab-pagination .prev svg {
	transform: rotate(180deg);
}

/* Empty state --------------------------------------------------------------- */
.ab-news .ab-empty {
	text-align: center;
	padding: 80px 24px;
	margin-top: 40px;
	background: var(--ab-surface);
	border-radius: 16px;
}

.ab-news .ab-empty h3 {
	font-family: var(--ab-serif);
	color: var(--ab-black);
	margin-bottom: 12px;
}

.ab-news .ab-empty p {
	font-family: var(--ab-sans);
	font-size: 17px;
	line-height: 28px;
	color: var(--ab-text);
	margin-bottom: 24px;
}

/* Blog page – responsive */
@media (max-width: 991px) {
	.ab-news .ab-featured {
		grid-template-columns: 1fr;
	}

	.ab-news .ab-featured__img {
		min-height: 0;
		height: 320px;
	}

	.ab-news .ab-featured__body {
		padding: 32px 32px 36px;
	}

	.ab-news .ab-featured__title {
		font-size: 28px;
		line-height: 36px;
	}
}

@media (max-width: 767px) {
	.ab-news .ab-blog {
		padding: 40px 0 80px;
	}

	.ab-news .ab-blog__bar {
		flex-direction: column;
		align-items: stretch;
	}

	.ab-news .ab-search {
		flex-basis: auto;
	}

	.ab-news .ab-featured {
		margin-top: 32px;
	}

	.ab-news .ab-featured__img {
		height: 240px;
	}

	.ab-news .ab-featured__body {
		padding: 26px 24px 30px;
	}

	.ab-news .ab-featured__title {
		font-size: 24px;
		line-height: 32px;
	}

	.ab-news .ab-grid {
		margin-top: 32px;
	}

	.ab-news .ab-grid__col {
		margin-bottom: 20px;
	}
}

/* ==========================================================================
   11. TAG ARCHIVES  (tag.php + tag-{slug}.php → template-parts/blog/tag-archive.php)
   ========================================================================== */
.ab-news .ab-tag__intro {
	max-width: 860px;
	margin: 0 auto 44px;
	text-align: center;
}

.ab-news .ab-tag__eyebrow {
	display: inline-block;
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-teal);
	margin-bottom: 18px;
}

.ab-news .ab-tag__intro p {
	font-family: var(--ab-sans);
	font-size: 18px;
	line-height: 30px;
	color: var(--ab-text);
	margin: 0 0 18px;
	text-align: left;
}

.ab-news .ab-tag__intro p a {
	color: var(--ab-teal);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.ab-news .ab-tag__intro p a:hover {
	color: var(--ab-black);
}

.ab-news .ab-tag__cta.btn-green {
	margin-top: 10px;
	text-transform: none;
	min-width: 0;
	padding: 12px 32px;
}

.ab-news .ab-tag__bar {
	align-items: center;
}

.ab-news .ab-tag__count {
	font-family: var(--ab-sans);
	font-size: 16px;
	color: var(--ab-muted);
	margin: 0;
}

.ab-news .ab-tag__count strong {
	font-weight: normal;
	font-family: var(--ab-sans-semibold);
	color: var(--ab-ink);
}

.ab-news .ab-filter__label {
	align-self: center;
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-muted);
	margin-right: 6px;
}

.ab-news .ab-tag__all {
	text-align: center;
	margin: 48px 0 0;
}

@media (max-width: 767px) {
	.ab-news .ab-tag__intro {
		margin-bottom: 32px;
	}

	.ab-news .ab-tag__intro p {
		font-size: 17px;
		line-height: 28px;
	}

	.ab-news .ab-tag__bar {
		align-items: flex-start;
	}
}

/* ==========================================================================
   12. AUTHOR ARCHIVE  (author.php)  +  author box additions
   ========================================================================== */
.ab-news .ab-profile {
	display: grid;
	grid-template-columns: 340px 1fr;
	gap: 56px;
	align-items: start;
	padding: 48px;
	background: var(--ab-surface);
	border-radius: 16px;
}

.ab-news .ab-profile__media {
	position: relative;
}

.ab-news .ab-profile__photo,
.ab-news .ab-profile__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 15%;
	border-radius: 12px;
	box-shadow: 0 30px 60px -30px rgba(29, 28, 28, .45);
}

.ab-news .ab-profile__eyebrow {
	display: block;
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-teal);
	margin-bottom: 12px;
}

.ab-news .ab-profile__name {
	font-family: var(--ab-serif);
	font-size: 40px;
	line-height: 50px;
	color: var(--ab-black);
	margin: 0 0 6px;
}

.ab-news .ab-profile__role {
	font-family: var(--ab-sans);
	font-size: 17px;
	line-height: 26px;
	color: var(--ab-muted);
	margin: 0 0 24px;
}

.ab-news .ab-profile__bio p {
	font-family: var(--ab-sans);
	font-size: 17px;
	line-height: 29px;
	color: var(--ab-text);
	margin: 0 0 16px;
}

.ab-news .ab-profile__bio a {
	color: var(--ab-teal);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ab-news .ab-profile__bio a:hover {
	color: var(--ab-black);
}

.ab-news .ab-profile__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 28px;
	margin-top: 26px;
}

.ab-news .ab-profile__btn.btn-green {
	margin-top: 0;
	text-transform: none;
	min-width: 0;
	padding: 12px 32px;
}

.ab-news .ab-profile__contact {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--ab-sans);
	font-size: 16px;
	color: var(--ab-ink);
	transition: color var(--ab-ease);
}

.ab-news .ab-profile__contact svg {
	color: var(--ab-teal);
}

.ab-news .ab-profile__contact:hover {
	color: var(--ab-teal);
	text-decoration: none;
}

.ab-news .ab-profile__social {
	display: flex;
	gap: 10px;
	margin-top: 24px;
}

/* Stats strip */
.ab-news .ab-profile__stats {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px 56px;
	padding: 28px 8px;
	margin-top: 8px;
	border-bottom: 1px solid var(--ab-border);
}

.ab-news .ab-stat {
	display: flex;
	align-items: baseline;
	gap: 10px;
}

.ab-news .ab-stat__value {
	font-family: var(--ab-serif);
	font-size: 30px;
	line-height: 1;
	color: var(--ab-black);
}

.ab-news .ab-stat__label {
	font-family: var(--ab-sans-semibold);
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-muted);
}

.ab-news .ab-stat--topics {
	align-items: center;
	gap: 14px;
	margin-left: auto;
}

.ab-news .ab-stat--topics .ab-filter {
	display: inline-flex;
}

.ab-news .ab-author-archive__heading {
	font-family: var(--ab-serif);
	font-size: 30px;
	line-height: 38px;
	color: var(--ab-black);
	margin: 48px 0 0;
}

/* Author box under posts – role + link row (new) */
.ab-news .ab-author__avatar a {
	display: block;
}

.ab-news .ab-author__avatar img {
	object-position: center 15%;
}

.ab-news .ab-author__role {
	font-family: var(--ab-sans);
	font-size: 15px;
	line-height: 22px;
	color: var(--ab-muted);
	margin: -6px 0 12px;
	padding: 0;
}

.ab-news .ab-author__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 28px;
}

.ab-news .ab-author__link--muted {
	color: var(--ab-muted);
}

.ab-news .ab-author__link--muted:hover {
	color: var(--ab-teal);
}

/* Author archive – responsive */
@media (max-width: 991px) {
	.ab-news .ab-profile {
		grid-template-columns: 260px 1fr;
		gap: 36px;
		padding: 36px;
	}

	.ab-news .ab-profile__name {
		font-size: 34px;
		line-height: 42px;
	}

	.ab-news .ab-stat--topics {
		margin-left: 0;
	}
}

@media (max-width: 767px) {
	.ab-news .ab-profile {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 24px;
	}

	.ab-news .ab-profile__media {
		max-width: 240px;
	}

	.ab-news .ab-profile__name {
		font-size: 30px;
		line-height: 38px;
	}

	.ab-news .ab-profile__stats {
		gap: 18px 32px;
		padding: 24px 0;
	}

	.ab-news .ab-author-archive__heading {
		font-size: 26px;
		line-height: 34px;
		margin-top: 36px;
	}
}
