/*
Theme Name:   PressPoint News
Theme URI:    https://example.com/presspoint-news
Description:  A news and blog child theme for Astra. Navy and red editorial palette, Plus Jakarta Sans typography, breaking-news ticker, category badges and card-based archives. All Astra defaults are overridden.
Author:       PressPoint
Author URI:   https://example.com
Template:     astra
Version:      1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  presspoint
Tags:         news, blog, magazine, two-columns, custom-menu, editor-style, featured-images
*/

/* ==========================================================================
   1. Design tokens
   ========================================================================== */

:root {
	/* Brand */
	--pp-navy:        #00003e;
	--pp-navy-deep:   #000030;
	--pp-navy-soft:   #12124f;
	--pp-red:         #dd4537;
	--pp-red-dark:    #bf3527;
	--pp-red-soft:    #fdece9;

	/* Surfaces */
	--pp-paper:       #fffefa;
	--pp-surface:     #ffffff;
	--pp-surface-alt: #f6f4ee;
	--pp-border:      #e7e4dc;
	--pp-border-soft: #f0ede6;

	/* Text */
	--pp-text:        #0d0d14;
	--pp-text-soft:   #3f3f4d;
	--pp-muted:       #6e6e7c;
	--pp-on-dark:     #ffffff;
	--pp-on-dark-mut: #b9b9d0;

	/* Type */
	--pp-font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--pp-fs-meta: 0.78rem;
	--pp-fs-badge: 0.66rem;
	--pp-lh-tight: 1.28;
	--pp-lh-body: 1.65;

	/* Shape & motion */
	--pp-radius: 10px;
	--pp-radius-lg: 16px;
	--pp-radius-pill: 999px;
	--pp-shadow: 0 1px 2px rgba(0, 0, 62, .06), 0 8px 24px rgba(0, 0, 62, .05);
	--pp-shadow-lift: 0 6px 14px rgba(0, 0, 62, .10), 0 18px 40px rgba(0, 0, 62, .08);
	--pp-ease: cubic-bezier(.2, .6, .3, 1);

	/* Rhythm */
	--pp-gap: 24px;
	--pp-section-space: clamp(40px, 6vw, 72px);
	--pp-container: 1240px;
}

/* Astra global palette + typography variables.
   Overriding these re-skins every Astra component in one pass. */
:root {
	--ast-global-color-0: #00003e; /* primary   */
	--ast-global-color-1: #dd4537; /* secondary */
	--ast-global-color-2: #0d0d14; /* headings  */
	--ast-global-color-3: #3f3f4d; /* body text */
	--ast-global-color-4: #fffefa; /* bg        */
	--ast-global-color-5: #ffffff; /* surface   */
	--ast-global-color-6: #e7e4dc; /* border    */
	--ast-global-color-7: #00003e;
	--ast-global-color-8: #dd4537;
	--ast-global-color-primary: var(--ast-global-color-0);
	--ast-global-color-secondary: var(--ast-global-color-1);
	--ast-global-color-alternate-background: #f6f4ee;
	--ast-global-color-subtle-background: #f0ede6;
	--ast-border-color: #e7e4dc;

	--ast-body-font-size: 16px;
	--ast-container-default-xlg-padding: 3em;
	--ast-container-default-lg-padding: 2.5em;
	--ast-container-default-slg-padding: 2em;
	--ast-container-default-md-padding: 1.5em;
	--ast-container-default-sm-padding: 1.5em;
	--ast-container-default-xs-padding: 1.2em;
	--ast-container-default-xxs-padding: 1em;
}

/* ==========================================================================
   2. Base & typography
   ========================================================================== */

html {
	scroll-behavior: smooth;
}

body,
body.ast-separate-container,
body.ast-plain-container,
body.ast-page-builder-template {
	background-color: var(--pp-paper);
	color: var(--pp-text-soft);
	font-family: var(--pp-font);
	font-size: 16px;
	line-height: var(--pp-lh-body);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: "kern" 1, "liga" 1;
}

body #page,
body .site-content {
	background-color: var(--pp-paper);
}

/* Astra applies its font stack through many handles, so reset broadly. */
body,
button,
input,
select,
optgroup,
textarea,
.site-title,
.site-title a,
.site-description,
.main-header-menu,
.ast-header-break-point .main-header-menu,
.entry-title,
.entry-title a,
h1, h2, h3, h4, h5, h6,
.widget-title,
.ast-button,
.ast-custom-button,
.wp-block-button__link {
	font-family: var(--pp-font);
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.entry-title a,
.widget-title,
.ast-archive-title {
	color: var(--pp-text);
	font-weight: 700;
	line-height: var(--pp-lh-tight);
	letter-spacing: -0.015em;
	margin: 0 0 .5em;
}

h1, .entry-title {
	font-size: clamp(2rem, 1.4rem + 2.4vw, 2.9rem);
	font-weight: 800;
	letter-spacing: -0.028em;
}

h2 {
	font-size: clamp(1.55rem, 1.2rem + 1.4vw, 2.1rem);
	font-weight: 800;
	letter-spacing: -0.022em;
}

h3 { font-size: clamp(1.25rem, 1.1rem + .7vw, 1.55rem); }
h4 { font-size: 1.15rem; }
h5 { font-size: 1rem; }
h6 { font-size: .9rem; }

p {
	margin: 0 0 1.4em;
}

.entry-content p,
.entry-content li {
	max-width: 72ch;
}

a {
	color: var(--pp-navy);
	text-decoration: none;
	transition: color .18s var(--pp-ease);
}

a:hover,
a:focus {
	color: var(--pp-red);
}

.entry-content a:not(.wp-block-button__link):not(.pp-btn) {
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(221, 69, 55, .45);
}

.entry-content a:not(.wp-block-button__link):not(.pp-btn):hover {
	text-decoration-color: var(--pp-red);
}

:where(a, button, input, select, textarea, .ast-button, summary):focus-visible {
	outline: 2px solid var(--pp-red);
	outline-offset: 2px;
	border-radius: 4px;
}

blockquote {
	border-left: 4px solid var(--pp-red);
	background: var(--pp-surface-alt);
	margin: 2em 0;
	padding: 1.25em 1.5em;
	border-radius: 0 var(--pp-radius) var(--pp-radius) 0;
	font-size: 1.1rem;
	color: var(--pp-text);
}

blockquote cite {
	display: block;
	margin-top: .6em;
	font-size: var(--pp-fs-meta);
	color: var(--pp-muted);
	font-style: normal;
}

hr,
.wp-block-separator {
	border: 0;
	border-top: 1px solid var(--pp-border);
	margin: 2.5em 0;
}

img,
figure img {
	max-width: 100%;
	height: auto;
}

code, kbd, pre {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	background: var(--pp-surface-alt);
	border-radius: 6px;
}

code { padding: .15em .4em; font-size: .9em; }
pre { padding: 1.2em; overflow: auto; border: 1px solid var(--pp-border); }

/* ==========================================================================
   3. Layout containers
   ========================================================================== */

.ast-container,
.ast-container-fluid,
.site-content > .ast-container {
	max-width: var(--pp-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}

.ast-separate-container .site-content > .ast-container {
	padding-top: var(--pp-section-space);
	padding-bottom: var(--pp-section-space);
}

.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single,
.ast-separate-container .comments-area .comment-respond,
.ast-separate-container .ast-comment-list li.depth-1,
.ast-separate-container .ast-woocommerce-container {
	background-color: var(--pp-surface);
	border: 1px solid var(--pp-border);
	border-radius: var(--pp-radius-lg);
	box-shadow: var(--pp-shadow);
	padding: clamp(20px, 3vw, 40px);
}

/* Full-bleed helper for dark editorial bands */
.pp-bleed {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* ==========================================================================
   4. Top utility bar (date + tagline + actions)
   ========================================================================== */

.pp-topbar {
	background: var(--pp-navy-deep);
	color: var(--pp-on-dark-mut);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .01em;
}

.pp-topbar__inner {
	max-width: var(--pp-container);
	margin: 0 auto;
	padding: 9px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.pp-topbar__date {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.pp-topbar__links {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pp-topbar a {
	color: var(--pp-on-dark-mut);
}

.pp-topbar a:hover,
.pp-topbar a:focus {
	color: var(--pp-on-dark);
}

/* ==========================================================================
   5. Site header & navigation
   ========================================================================== */

.site-header,
.ast-primary-header-bar,
.main-header-bar,
.ast-header-break-point .main-header-bar,
.ast-above-header,
.ast-below-header {
	background-color: var(--pp-navy) !important;
	border-bottom: 0;
	box-shadow: none;
}

.main-header-bar,
.ast-primary-header-bar {
	padding-top: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}

.site-header.pp-is-stuck {
	box-shadow: 0 6px 24px rgba(0, 0, 62, .28);
}

/* Branding */
.site-title,
.site-title a,
.site-title a:hover,
.site-title a:focus {
	color: var(--pp-on-dark);
	font-size: 1.75rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	margin: 0;
}

.site-description {
	color: var(--pp-on-dark-mut);
	font-size: .78rem;
	font-weight: 500;
	margin: 2px 0 0;
}

.ast-site-identity {
	padding: 0;
}

.custom-logo-link img {
	max-height: 44px;
	width: auto;
}

/* Desktop menu */
.main-header-menu,
.main-header-menu .sub-menu {
	background-color: transparent;
}

.main-header-menu > li > a,
.main-header-menu .menu-link,
.main-navigation ul li a {
	color: var(--pp-on-dark) !important;
	font-size: .9rem;
	font-weight: 500;
	letter-spacing: -0.005em;
	padding-left: 14px;
	padding-right: 14px;
	position: relative;
}

.main-header-menu > li > a:hover,
.main-header-menu > li.current-menu-item > a,
.main-header-menu > li.current-menu-ancestor > a {
	color: #ffffff !important;
}

.main-header-menu > li > a::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 6px;
	height: 2px;
	background: var(--pp-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s var(--pp-ease);
}

.main-header-menu > li:hover > a::after,
.main-header-menu > li.current-menu-item > a::after,
.main-header-menu > li.current-menu-ancestor > a::after {
	transform: scaleX(1);
}

/* Dropdowns */
.main-header-menu .sub-menu {
	background-color: var(--pp-navy-soft);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: var(--pp-radius);
	overflow: hidden;
	padding: 6px;
	min-width: 220px;
	box-shadow: 0 20px 40px rgba(0, 0, 62, .3);
}

.main-header-menu .sub-menu li a {
	color: var(--pp-on-dark-mut) !important;
	border-bottom: 0 !important;
	border-radius: 6px;
	padding: 9px 12px;
	font-size: .86rem;
}

.main-header-menu .sub-menu li a:hover {
	background: rgba(221, 69, 55, .16);
	color: #fff !important;
}

/* Header action button (Astra custom button / our fallback) */
.ast-custom-button,
.site-header .ast-button,
.pp-header-cta {
	background-color: var(--pp-red);
	color: #fff;
	border: 0;
	border-radius: var(--pp-radius-pill);
	padding: 10px 22px;
	font-size: .86rem;
	font-weight: 600;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: background-color .18s var(--pp-ease), transform .18s var(--pp-ease);
}

.ast-custom-button:hover,
.site-header .ast-button:hover,
.pp-header-cta:hover,
.pp-header-cta:focus {
	background-color: var(--pp-red-dark);
	color: #fff;
	transform: translateY(-1px);
}

/* Search icon in header */
.site-header .ast-search-menu-icon .search-field {
	background: rgba(255, 255, 255, .1);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: var(--pp-radius-pill);
}

.site-header .ast-icon svg,
.site-header .ast-search-menu-icon .slide-search a .astra-search-icon {
	fill: #fff;
	color: #fff;
}

/* Mobile header */
.ast-header-break-point .main-navigation ul li a,
.ast-header-break-point .main-header-menu .menu-link {
	color: var(--pp-on-dark) !important;
	border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}

.ast-header-break-point .main-header-menu {
	background-color: var(--pp-navy) !important;
}

.ast-mobile-menu-buttons-minimal.menu-toggle,
.ast-button-wrap .menu-toggle {
	background: rgba(255, 255, 255, .12) !important;
	color: #fff !important;
	border-radius: 8px;
	padding: 8px 10px;
}

.ast-mobile-menu-buttons-minimal.menu-toggle svg,
.menu-toggle .ast-mobile-svg {
	fill: #fff;
}

/* ==========================================================================
   6. Breaking news ticker
   ========================================================================== */

.pp-ticker {
	background: var(--pp-red);
	color: #fff;
	overflow: hidden;
	position: relative;
}

.pp-ticker__inner {
	max-width: var(--pp-container);
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	align-items: stretch;
	gap: 0;
}

.pp-ticker__label {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--pp-navy);
	color: #fff;
	font-size: var(--pp-fs-badge);
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	padding: 0 16px;
	margin-right: 18px;
	white-space: nowrap;
}

.pp-ticker__label::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #fff;
	animation: pp-pulse 1.6s infinite;
}

@keyframes pp-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: .25; }
}

.pp-ticker__viewport {
	overflow: hidden;
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	min-width: 0;
}

.pp-ticker__track {
	display: flex;
	align-items: center;
	gap: 42px;
	white-space: nowrap;
	padding: 9px 0;
	animation: pp-marquee 42s linear infinite;
	will-change: transform;
}

.pp-ticker:hover .pp-ticker__track,
.pp-ticker__track:focus-within {
	animation-play-state: paused;
}

@keyframes pp-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

.pp-ticker__item {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: .84rem;
	font-weight: 500;
}

.pp-ticker__item a {
	color: #fff;
}

.pp-ticker__item a:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pp-ticker__item + .pp-ticker__item::before {
	content: "";
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .55);
	margin-right: 6px;
}

/* ==========================================================================
   7. Buttons
   ========================================================================== */

.ast-button,
.button,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.wp-block-button__link,
.pp-btn {
	background-color: var(--pp-navy);
	color: #fff;
	border: 1px solid transparent;
	border-radius: var(--pp-radius-pill);
	font-family: var(--pp-font);
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 12px 26px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	cursor: pointer;
	transition: background-color .18s var(--pp-ease), color .18s var(--pp-ease), transform .18s var(--pp-ease);
}

.ast-button:hover,
.button:hover,
button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.pp-btn:hover,
.ast-button:focus,
.wp-block-button__link:focus,
.pp-btn:focus {
	background-color: var(--pp-red);
	color: #fff;
	transform: translateY(-1px);
}

.pp-btn--accent {
	background-color: var(--pp-red);
}

.pp-btn--accent:hover {
	background-color: var(--pp-navy);
}

.pp-btn--ghost,
.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--pp-navy);
	border-color: var(--pp-border);
}

.pp-btn--ghost:hover,
.is-style-outline .wp-block-button__link:hover {
	background: var(--pp-navy);
	color: #fff;
	border-color: var(--pp-navy);
}

/* Read more link under excerpts */
.ast-blog-single-element.ast-read-more-container a,
.read-more a,
.more-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--pp-red);
	font-size: .86rem;
	font-weight: 600;
	background: none;
	padding: 0;
	border-radius: 0;
}

.ast-blog-single-element.ast-read-more-container a:hover,
.more-link:hover {
	color: var(--pp-navy);
	background: none;
	transform: none;
}

/* ==========================================================================
   8. Section headings (red marker + title + "See all")
   ========================================================================== */

.widget-title,
.ast-archive-title,
.pp-section-title,
.comments-title,
.comment-reply-title,
.related-posts-title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 1.35rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--pp-text);
	margin-bottom: 20px;
}

.widget-title::before,
.ast-archive-title::before,
.pp-section-title::before,
.comments-title::before,
.comment-reply-title::before,
.related-posts-title::before {
	content: "";
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
	background: var(--pp-red);
	border-radius: 2px;
}

.pp-section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
	flex-wrap: wrap;
}

.pp-section-head .pp-section-title {
	margin-bottom: 0;
}

.pp-section-head__link {
	font-size: .84rem;
	font-weight: 600;
	color: var(--pp-navy);
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.pp-section-head__link:hover {
	color: var(--pp-red);
}

/* ==========================================================================
   9. Archive & blog cards
   ========================================================================== */

.ast-separate-container .ast-article-post,
.blog .ast-article-post,
.archive .ast-article-post,
.search .ast-article-post {
	padding: 0;
	overflow: hidden;
	transition: box-shadow .22s var(--pp-ease), transform .22s var(--pp-ease), border-color .22s var(--pp-ease);
	display: flex;
	flex-direction: column;
}

.ast-separate-container .ast-article-post:hover {
	box-shadow: var(--pp-shadow-lift);
	border-color: #dcd8ce;
	transform: translateY(-2px);
}

.ast-article-post .post-thumb,
.ast-article-post .ast-blog-featured-section {
	margin: 0;
}

.ast-article-post .post-thumb img,
.ast-article-post .ast-blog-featured-section img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
	border-radius: 0;
	transition: transform .4s var(--pp-ease);
}

.ast-article-post:hover .post-thumb img {
	transform: scale(1.03);
}

.ast-article-post .ast-blog-featured-section {
	overflow: hidden;
}

.ast-article-post .entry-header,
.ast-article-post .entry-content,
.ast-article-post .entry-meta,
.ast-article-post .ast-blog-single-element:not(.ast-blog-featured-section) {
	padding-left: 20px;
	padding-right: 20px;
}

.ast-article-post .entry-header {
	padding-top: 18px;
}

.ast-article-post .ast-read-more-container {
	padding-bottom: 20px;
}

.ast-article-post .entry-title {
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.38;
	letter-spacing: -0.012em;
	margin-bottom: 10px;
}

.ast-article-post .entry-title a {
	color: var(--pp-text);
}

.ast-article-post .entry-title a:hover {
	color: var(--pp-red);
}

.ast-article-post .entry-content p,
.ast-article-post .ast-excerpt-container p {
	font-size: .9rem;
	color: var(--pp-muted);
	line-height: 1.6;
	margin-bottom: 14px;
}

/* Grid spacing for Astra's blog grid columns */
.ast-grid-common-col {
	padding-left: 12px;
	padding-right: 12px;
	margin-bottom: 24px;
}

.ast-row {
	margin-left: -12px;
	margin-right: -12px;
}

/* ==========================================================================
   10. Category badge on thumbnails
   ========================================================================== */

.pp-thumb {
	position: relative;
	display: block;
	overflow: hidden;
	line-height: 0;
}

.pp-badge {
	position: absolute;
	left: 12px;
	bottom: 12px;
	z-index: 2;
	background: var(--pp-red);
	color: #fff;
	font-size: var(--pp-fs-badge);
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: 4px;
	line-height: 1;
}

.pp-badge:hover {
	background: var(--pp-navy);
	color: #fff;
}

.pp-badge--navy {
	background: var(--pp-navy);
}

/* Inline (non-overlay) category label */
.pp-cat-label {
	display: inline-block;
	font-size: var(--pp-fs-badge);
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--pp-red);
	margin-bottom: 8px;
}

/* ==========================================================================
   11. Post meta
   ========================================================================== */

.entry-meta,
.entry-meta *,
.ast-blog-meta-container,
.post-meta,
.ast-excerpt-container + .entry-meta {
	font-size: var(--pp-fs-meta);
	font-weight: 500;
	color: var(--pp-muted);
	line-height: 1.5;
}

.entry-meta a,
.ast-blog-meta-container a {
	color: var(--pp-muted);
	font-weight: 600;
}

.entry-meta a:hover,
.ast-blog-meta-container a:hover {
	color: var(--pp-red);
}

.entry-meta .posted-on,
.entry-meta .comments-link {
	margin-right: 4px;
}

.entry-meta img.avatar,
.ast-author-avatar img {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	margin-right: 7px;
	vertical-align: middle;
	object-fit: cover;
}

.pp-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: var(--pp-fs-meta);
	color: var(--pp-muted);
	font-weight: 500;
}

.pp-meta__sep {
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: currentColor;
	opacity: .5;
}

/* ==========================================================================
   12. Sidebar widgets
   ========================================================================== */

.widget,
.sidebar-main .widget {
	background: var(--pp-surface);
	border: 1px solid var(--pp-border);
	border-radius: var(--pp-radius-lg);
	padding: 22px;
	margin-bottom: 24px;
	box-shadow: var(--pp-shadow);
}

.widget ul,
.widget ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.widget li {
	padding: 11px 0;
	border-bottom: 1px solid var(--pp-border-soft);
	font-size: .92rem;
}

.widget li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.widget li a {
	color: var(--pp-text);
	font-weight: 600;
	line-height: 1.45;
}

.widget li a:hover {
	color: var(--pp-red);
}

/* Recent posts widget with thumbnails reads as the "Top stories" rail */
.widget_media_image img {
	border-radius: var(--pp-radius);
}

.widget .post-date,
.widget .rss-date {
	display: block;
	font-size: var(--pp-fs-meta);
	color: var(--pp-muted);
	font-weight: 500;
	margin-top: 3px;
}

.widget_categories li,
.widget_archive li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	color: var(--pp-muted);
}

.widget_tag_cloud a,
.tagcloud a {
	display: inline-block;
	font-size: .78rem !important;
	font-weight: 600;
	color: var(--pp-navy);
	background: var(--pp-surface-alt);
	border: 1px solid var(--pp-border);
	border-radius: var(--pp-radius-pill);
	padding: 6px 13px;
	margin: 0 6px 8px 0;
}

.widget_tag_cloud a:hover,
.tagcloud a:hover {
	background: var(--pp-red);
	border-color: var(--pp-red);
	color: #fff;
}

/* ==========================================================================
   13. Dark editorial band (Sports & Entertainment style)
   ========================================================================== */

.pp-dark {
	background: var(--pp-navy);
	color: var(--pp-on-dark);
	padding-block: var(--pp-section-space);
}

.pp-dark h1,
.pp-dark h2,
.pp-dark h3,
.pp-dark h4,
.pp-dark .pp-section-title,
.pp-dark .widget-title,
.pp-dark a {
	color: var(--pp-on-dark);
}

.pp-dark p,
.pp-dark .entry-meta,
.pp-dark .pp-meta {
	color: var(--pp-on-dark-mut);
}

.pp-dark a:hover {
	color: #fff;
	opacity: .85;
}

.pp-dark .widget {
	background: rgba(255, 255, 255, .05);
	border-color: rgba(255, 255, 255, .12);
	box-shadow: none;
}

/* ==========================================================================
   14. Single post
   ========================================================================== */

.single .entry-title,
.page .entry-title {
	font-size: clamp(2rem, 1.3rem + 2.6vw, 3rem);
	font-weight: 800;
	line-height: 1.14;
	letter-spacing: -0.03em;
	margin-bottom: 16px;
}

.single .ast-single-post-order .entry-meta,
.single .entry-header .entry-meta {
	padding-bottom: 18px;
	border-bottom: 1px solid var(--pp-border);
	margin-bottom: 24px;
}

.single .post-thumb img,
.single .ast-single-post-featured-section img {
	border-radius: var(--pp-radius-lg);
	width: 100%;
	object-fit: cover;
}

.single .entry-content {
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--pp-text-soft);
}

.single .entry-content h2,
.single .entry-content h3 {
	margin-top: 1.8em;
}

.entry-content figcaption,
.wp-element-caption {
	font-size: .8rem;
	color: var(--pp-muted);
	text-align: left;
	margin-top: 8px;
}

.post-navigation,
.ast-single-related-posts-container {
	border-top: 1px solid var(--pp-border);
	margin-top: 40px;
	padding-top: 28px;
}

.post-navigation .nav-links a {
	color: var(--pp-navy);
	font-weight: 700;
}

.post-navigation .nav-links a:hover {
	color: var(--pp-red);
}

/* Tags on single */
.entry-content .post-tags a,
.ast-terms-link a {
	display: inline-block;
	font-size: .78rem;
	font-weight: 600;
	background: var(--pp-red-soft);
	color: var(--pp-red-dark);
	border-radius: var(--pp-radius-pill);
	padding: 5px 12px;
	margin: 0 6px 8px 0;
}

.entry-content .post-tags a:hover {
	background: var(--pp-red);
	color: #fff;
}

/* Author box */
.ast-author-box,
.ast-author-meta {
	background: var(--pp-surface-alt);
	border: 1px solid var(--pp-border);
	border-radius: var(--pp-radius-lg);
	padding: 24px;
	margin-top: 36px;
}

.ast-author-box .avatar,
.ast-author-meta .avatar {
	border-radius: 50%;
}

/* ==========================================================================
   15. Comments
   ========================================================================== */

.comments-area {
	margin-top: 44px;
}

.ast-comment-list li,
.comment-body {
	border: 0;
}

.ast-separate-container .ast-comment-list li.depth-1 {
	margin-bottom: 18px;
}

.comment-author .fn,
.comment-author b {
	font-weight: 700;
	color: var(--pp-text);
}

.comment-meta,
.comment-metadata a {
	font-size: var(--pp-fs-meta);
	color: var(--pp-muted);
}

.comment-reply-link {
	font-size: .8rem;
	font-weight: 600;
	color: var(--pp-red);
	background: none;
	padding: 0;
}

.comment-reply-link:hover {
	background: none;
	color: var(--pp-navy);
	transform: none;
}

/* ==========================================================================
   16. Forms & newsletter
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
select,
textarea {
	background: var(--pp-surface);
	border: 1px solid var(--pp-border);
	border-radius: var(--pp-radius);
	color: var(--pp-text);
	font-family: var(--pp-font);
	font-size: .92rem;
	padding: 12px 14px;
	width: 100%;
	transition: border-color .18s var(--pp-ease), box-shadow .18s var(--pp-ease);
}

input::placeholder,
textarea::placeholder {
	color: #9a9aa8;
}

input:focus,
select:focus,
textarea:focus {
	border-color: var(--pp-navy);
	box-shadow: 0 0 0 3px rgba(0, 0, 62, .10);
	outline: none;
}

.pp-newsletter {
	background: var(--pp-navy);
	color: #fff;
	border-radius: var(--pp-radius-lg);
	padding: clamp(28px, 5vw, 56px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
}

.pp-newsletter h2,
.pp-newsletter h3 {
	color: #fff;
	margin: 0 0 6px;
}

.pp-newsletter p {
	color: var(--pp-on-dark-mut);
	margin: 0;
	max-width: 46ch;
}

.pp-newsletter form,
.pp-newsletter .pp-newsletter__form {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	min-width: min(100%, 360px);
}

.pp-newsletter input[type="email"] {
	flex: 1 1 200px;
	background: rgba(255, 255, 255, .08);
	border-color: rgba(255, 255, 255, .2);
	color: #fff;
	border-radius: var(--pp-radius-pill);
	padding-inline: 20px;
}

.pp-newsletter input[type="email"]::placeholder {
	color: rgba(255, 255, 255, .6);
}

.pp-newsletter button,
.pp-newsletter input[type="submit"] {
	background: var(--pp-red);
	width: auto;
	flex: 0 0 auto;
}

.pp-newsletter button:hover {
	background: #fff;
	color: var(--pp-navy);
}

/* Search form */
.search-form,
.ast-search-menu-icon .search-form {
	display: flex;
	gap: 8px;
}

/* ==========================================================================
   17. Pagination
   ========================================================================== */

.ast-pagination .page-numbers,
.page-links .page-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--pp-border);
	border-radius: var(--pp-radius-pill);
	background: var(--pp-surface);
	color: var(--pp-navy);
	font-weight: 600;
	font-size: .88rem;
	margin: 0 4px 8px 0;
}

.ast-pagination .page-numbers.current,
.ast-pagination .page-numbers:hover {
	background: var(--pp-navy);
	border-color: var(--pp-navy);
	color: #fff;
}

.ast-pagination .page-numbers.current {
	background: var(--pp-red);
	border-color: var(--pp-red);
}

/* ==========================================================================
   18. Footer
   ========================================================================== */

.site-footer,
.ast-small-footer,
footer.site-footer,
.footer-adv,
.ast-footer-overlay,
.site-primary-footer-wrap,
.site-below-footer-wrap {
	background-color: var(--pp-navy) !important;
	color: var(--pp-on-dark-mut) !important;
	border-top: 3px solid var(--pp-red);
}

.site-below-footer-wrap {
	border-top: 1px solid rgba(255, 255, 255, .1);
}

.site-footer a,
.ast-small-footer a,
.site-primary-footer-wrap a {
	color: var(--pp-on-dark-mut) !important;
}

.site-footer a:hover,
.ast-small-footer a:hover,
.site-primary-footer-wrap a:hover {
	color: #fff !important;
}

.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer .widget-title,
.site-footer .widget-title a {
	color: #fff !important;
	font-size: 1rem;
	margin-bottom: 14px;
}

.site-footer .widget-title::before {
	width: 9px;
	height: 9px;
}

.site-footer .widget {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

.site-footer .widget li {
	border-bottom-color: rgba(255, 255, 255, .08);
	font-size: .88rem;
}

.site-footer .widget li a {
	color: var(--pp-on-dark-mut) !important;
	font-weight: 500;
}

.ast-small-footer {
	font-size: .82rem;
	padding: 18px 0;
}

/* Scroll to top */
#ast-scroll-top {
	background: var(--pp-red);
	color: #fff;
	border-radius: 50%;
}

#ast-scroll-top:hover {
	background: var(--pp-navy);
}

/* ==========================================================================
   19. Block editor front-end colours
   ========================================================================== */

.has-pp-navy-color { color: var(--pp-navy) !important; }
.has-pp-navy-background-color { background-color: var(--pp-navy) !important; }
.has-pp-red-color { color: var(--pp-red) !important; }
.has-pp-red-background-color { background-color: var(--pp-red) !important; }
.has-pp-paper-background-color { background-color: var(--pp-paper) !important; }
.has-pp-surface-alt-background-color { background-color: var(--pp-surface-alt) !important; }
.has-pp-ink-color { color: var(--pp-text) !important; }
.has-pp-muted-color { color: var(--pp-muted) !important; }

.wp-block-cover,
.wp-block-image img,
.wp-block-embed iframe {
	border-radius: var(--pp-radius-lg);
	overflow: hidden;
}

.wp-block-pullquote {
	border-top: 3px solid var(--pp-red);
	border-bottom: 3px solid var(--pp-red);
	background: transparent;
}

.wp-block-table table,
.wp-block-table td,
.wp-block-table th {
	border-color: var(--pp-border);
}

.wp-block-table th {
	background: var(--pp-surface-alt);
	font-weight: 700;
	color: var(--pp-text);
}

/* Latest posts / query loop blocks pick up the card styling */
.wp-block-post-template li,
.wp-block-latest-posts li {
	background: var(--pp-surface);
	border: 1px solid var(--pp-border);
	border-radius: var(--pp-radius-lg);
	overflow: hidden;
}

.wp-block-post-title a {
	color: var(--pp-text);
}

.wp-block-post-title a:hover {
	color: var(--pp-red);
}

/* ==========================================================================
   20. 404 & search results
   ========================================================================== */

.error404 .page-title,
.search-no-results .page-title {
	font-size: clamp(2.2rem, 6vw, 3.4rem);
	color: var(--pp-navy);
}

.error404 .page-content,
.search-no-results .page-content {
	max-width: 56ch;
}

/* ==========================================================================
   21. Responsive
   ========================================================================== */

@media (max-width: 921px) {
	:root {
		--pp-section-space: 40px;
	}

	.pp-topbar__inner {
		justify-content: center;
		text-align: center;
	}

	.pp-newsletter {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 544px) {
	.ast-container {
		padding-left: 16px;
		padding-right: 16px;
	}

	.pp-ticker__label {
		padding: 0 10px;
		margin-right: 12px;
	}

	.pp-topbar__links {
		gap: 12px;
	}

	.site-title,
	.site-title a {
		font-size: 1.4rem;
	}

	.ast-separate-container .ast-article-single {
		padding: 20px 18px;
	}
}

/* ==========================================================================
   22. Accessibility & print
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}

	.pp-ticker__track {
		animation: none;
		transform: none;
	}
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link:focus {
	background: var(--pp-red);
	color: #fff;
}

@media print {
	.site-header,
	.site-footer,
	.pp-ticker,
	.pp-topbar,
	.sidebar-main {
		display: none !important;
	}

	body {
		background: #fff;
		color: #000;
	}
}
