/*
Theme Name: PFD Lite
Theme URI: https://propfirmdiscount.com
Author: PropFirmDiscount
Description: Minimal self-contained theme for PropFirmDiscount. All styling lives in this one file; every class is prefixed pfd- and shared by all templates.
Version: 2.0
License: GNU General Public License v2 or later
Text Domain: pfd-lite
*/

/* ==========================================================================
   1. Tokens & base
   ========================================================================== */
:root {
	--pfd-accent: #fa9e19;
	--pfd-accent-dark: #e89100;
	--pfd-bg: #f2f2f2;
	--pfd-card: #ffffff;
	--pfd-border: #e0e0e0;
	--pfd-text: #333333;
	--pfd-muted: #999999;
	--pfd-dark: #1a1a1a;
	--pfd-nav-bg: var(--pfd-accent);
	--pfd-nav-text: #ffffff;
	--pfd-nav-text-hover: var(--pfd-dark);
	--pfd-footer-bg: #111111;
	--pfd-blue: #1da1f2;
	--pfd-green: #2e9e44;
}

*,
*::before,
*::after { box-sizing: border-box; }

/* Icon font — used by the pfd-brand-search plugin's <i class="rhicon rhi-search">.
   Only woff2 + the single search glyph are kept (theme self-containment). */
@font-face {
	font-family: 'rhicons';
	src: url('fonts/rhicons.woff2?3oibrk') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}
.rhicon {
	font-family: 'rhicons' !important;
	font-style: normal;
	font-weight: normal;
	text-transform: none;
	line-height: 1;
	display: inline-block;
	-webkit-font-smoothing: antialiased;
}
.rhi-search:before { content: "\f002"; }
.rhi-scissors:before { content: "\e922"; }
.rhi-external-link:before { content: "\f08e"; }
.fa-rotate-180 { transform: rotate(180deg); }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--pfd-bg);
	color: var(--pfd-text);
	font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
body.pfd-menu-open { overflow: hidden; }

img { max-width: 100%; height: auto; border: 0; }

a { color: var(--pfd-accent); }
a:hover { color: var(--pfd-accent-dark); }

h1, h2, h3, h4, h5, h6 { line-height: 1.25; margin: 0 0 .6em; }

.pfd-site { min-height: 100vh; display: flex; flex-direction: column; }
.pfd-site-body { flex: 1; }

/* ==========================================================================
   2. Layout
   ========================================================================== */
.pfd-container { max-width: 1200px; margin: 0 auto; padding: 0 15px; }

.pfd-layout {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	padding: 20px 0 30px;
}
.pfd-layout--full { display: block; }
.pfd-main { flex: 1 1 auto; min-width: 0; }
.pfd-sidebar-col { width: 320px; flex: 0 0 320px; }
.pfd-sidebar-col.pfd-stuck { position: sticky; }

@media (max-width: 991px) {
	.pfd-layout { display: block; }
	.pfd-sidebar-col { width: auto; flex: none; margin-top: 20px; }
	.pfd-sidebar-col.pfd-stuck { position: static !important; top: auto !important; }
}

/* ==========================================================================
   3. Header
   ========================================================================== */
.pfd-header { background: #fff; position: relative; z-index: 500; }

.pfd-header-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	padding: 12px 0;
}
.pfd-logo img { max-height: 100px; width: auto; display: block; }
.pfd-header-marquee { flex: 1 1 auto; min-width: 0; text-align: center; overflow: hidden; }
.pfd-header-search { flex: 0 0 auto; }

@media (max-width: 991px) {
	.pfd-header-top { flex-wrap: wrap; justify-content: center; }
	.pfd-header-marquee, .pfd-header-search { display: none; }
}

/* Dark navigation bar */
.pfd-navbar { background: var(--pfd-nav-bg); }
.pfd-navbar .pfd-container { display: flex; align-items: center; justify-content: space-between; }

.pfd-nav { list-style: none; display: flex; flex-wrap: wrap; margin: 0; padding: 0; }
.pfd-nav li { position: relative; margin: 0; }
.pfd-nav > li > a {
	display: block;
	padding: 10px 16px;
	color: var(--pfd-nav-text);
	font-size: 16px;
	line-height: 1.25;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
	letter-spacing: .3px;
}
.pfd-nav > li > a:hover,
.pfd-nav > li:hover > a,
.pfd-nav > li.current-menu-item > a,
.pfd-nav > li.current-menu-ancestor > a { color: var(--pfd-nav-text-hover); }

/* Dropdown — pure CSS, works on hover and keyboard focus */
.pfd-nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 999;
	min-width: 220px;
	list-style: none;
	margin: 0;
	padding: 6px 0;
	background: #fff;
	border: 1px solid var(--pfd-border);
	box-shadow: 0 8px 20px rgba(0, 0, 0, .15);
}
.pfd-nav li:hover > .sub-menu,
.pfd-nav li:focus-within > .sub-menu { display: block; }
.pfd-nav .sub-menu a {
	display: block;
	padding: 8px 16px;
	color: var(--pfd-text);
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}
.pfd-nav .sub-menu a:hover { color: var(--pfd-accent); background: #fdf8f0; }
.pfd-nav .sub-menu .sub-menu { top: 0; left: 100%; }

/* Mobile toggle (hamburger) */
.pfd-nav-toggle {
	display: none;
	background: none;
	border: 0;
	padding: 10px 0;
	cursor: pointer;
	color: var(--pfd-nav-text);
}
.pfd-nav-toggle svg { width: 28px; height: 28px; stroke: currentColor; stroke-width: 2.5; fill: none; }
.pfd-mobile-search { display: none; }

@media (max-width: 991px) {
	.pfd-nav { display: none; }
	.pfd-nav-toggle { display: block; }
	.pfd-navbar .pfd-container { justify-content: flex-end; gap: 10px; }
	.pfd-mobile-search { display: block; }
	.pfd-mobile-search button {
		background: none; border: 0; color: var(--pfd-nav-text); padding: 10px 0; cursor: pointer;
		display: flex; align-items: center;
	}
}

/* Slide-in mobile menu panel */
.pfd-mobile-menu {
	position: fixed;
	top: 0;
	right: -300px;
	width: 280px;
	height: 100%;
	background: var(--pfd-dark);
	z-index: 10000;
	transition: right .3s ease;
	overflow-y: auto;
	padding-bottom: 30px;
}
.pfd-mobile-menu.pfd-open { right: 0; }
.pfd-mobile-menu-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px;
	border-bottom: 1px solid #333;
}
.pfd-mobile-menu-head img { max-width: 160px; }
.pfd-mobile-menu-close {
	background: none; border: 0; color: #fff;
	font-size: 28px; line-height: 1; cursor: pointer; padding: 0 4px;
}
.pfd-mobile-menu-search { padding: 15px; }
.pfd-mobile-menu-search .pfbs-search-form .pfbs-input { width: 100%; box-sizing: border-box; border-radius: 0; }
.pfd-mobile-menu .menu { list-style: none; margin: 0; padding: 0; }
.pfd-mobile-menu .menu li { border-bottom: 1px solid #2a2a2a; }
.pfd-mobile-menu .menu a { display: block; padding: 12px 15px; color: #eee; text-decoration: none; font-size: 14px; }
.pfd-mobile-menu .menu a:hover { color: var(--pfd-accent); }
/* Collapsible submenu (accordion): hidden until its li carries .pfd-open */
.pfd-mobile-menu .menu li.menu-item-has-children > a { padding-right: 44px; }
.pfd-mobile-submenu-toggle {
	position: absolute; top: 0; right: 0; width: 44px; height: 44px;
	display: flex; align-items: center; justify-content: center;
	background: none; border: 0; cursor: pointer; color: #eee; padding: 0;
}
.pfd-mobile-submenu-toggle svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 2.5; fill: none; transition: transform .25s ease; }
.pfd-mobile-menu .menu li.menu-item-has-children { position: relative; }
.pfd-mobile-menu .menu li.menu-item-has-children.pfd-open > .pfd-mobile-submenu-toggle svg { transform: rotate(180deg); }
.pfd-mobile-menu .menu .sub-menu {
	display: none; position: static; background: #141414; border: 0; box-shadow: none; min-width: 0; padding: 0;
}
.pfd-mobile-menu .menu li.pfd-open > .sub-menu { display: block; }
.pfd-mobile-menu .menu .sub-menu a { padding-left: 30px; font-size: 13px; color: #bbb; }
.pfd-mobile-menu .menu .sub-menu li a { padding-right: 44px; }
.pfd-mobile-menu .menu .sub-menu .sub-menu a { padding-left: 45px; }

/* ==========================================================================
   4. Buttons (shared)
   ========================================================================== */
.pfd-btn {
	display: inline-block;
	background: var(--pfd-accent);
	color: #fff;
	border: 0;
	padding: 9px 18px;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: .3px;
	cursor: pointer;
	transition: background-color .2s ease;
}
.pfd-btn:hover { background: var(--pfd-accent-dark); color: #fff; }
.pfd-btn:active { transform: translateY(1px); }
.pfd-btn--block { display: block; width: 100%; text-align: center; }
.pfd-btn--lg { padding: 12px 30px; font-size: 15px; }

/* ==========================================================================
   5. Footer (dark)
   ========================================================================== */
.pfd-footer {
	background: var(--pfd-footer-bg);
	color: #bbbbbb;
	margin-top: 30px;
	font-size: 14px;
	line-height: 20px;
}
.pfd-footer a { color: #dddddd; }
.pfd-footer a:hover { color: var(--pfd-accent); }
/* spaceless: thu gọn khoảng cách giữa các dòng/chữ trong footer */
.pfd-footer p,
.pfd-footer li,
.pfd-footer ul,
.pfd-footer ol,
.pfd-footer h1,
.pfd-footer h2,
.pfd-footer h3,
.pfd-footer h4,
.pfd-footer h5,
.pfd-footer h6,
.pfd-footer .textwidget > * {
	line-height: 20px;
	margin-top: 0;
	margin-bottom: 4px;
}
.pfd-footer ul,
.pfd-footer ol { padding-left: 18px; }
.pfd-footer .pfd-widget-title { margin-bottom: 8px; }
.pfd-footer-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 25px;
	padding: 20px 0 10px;
}
.pfd-footer-col { min-width: 0; }
.pfd-footer .pfd-widget { background: none; border: 0; padding: 0; margin: 0; }
.pfd-footer .pfd-widget-title {
	color: #fff;
	border-bottom-color: var(--pfd-accent);
}
.pfd-footer-disclaimer {
	color: #777;
	font-size: 12px;
	line-height: 20px;
	text-align: center;
	max-width: 1000px;
	margin: 0 auto;
	padding: 5px 0 15px;
}
@media (max-width: 768px) {
	.pfd-footer-grid { grid-template-columns: 1fr; gap: 20px; padding: 25px 0 10px; }
}

/* ==========================================================================
   6. Widgets (sidebar / footer / dealstore)
   ========================================================================== */
.pfd-widget {
	background: var(--pfd-card);
	border: 1px solid var(--pfd-border);
	padding: 15px;
	margin-bottom: 15px;
	overflow-wrap: break-word;
}
.pfd-widget-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--pfd-text);
	margin: 0 0 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--pfd-accent);
}
.pfd-widget img { max-width: 100%; height: auto; }
.pfd-widget ul { margin: 0; padding-left: 18px; }

/* ==========================================================================
   7. Page titles / descriptions / notices
   ========================================================================== */
.pfd-page-title {
	font-size: 24px;
	font-weight: 700;
	color: var(--pfd-text);
	margin: 0 0 15px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--pfd-accent);
}
.pfd-page-title-row { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; }
.pfd-page-title-row .pfd-page-title { flex: 1; }

.pfd-page-desc,
.pfd-seo-text {
	background: var(--pfd-card);
	border: 1px solid var(--pfd-border);
	padding: 15px 18px;
	margin-bottom: 15px;
	font-size: 14px;
	color: #555;
}
.pfd-seo-text { margin-top: 20px; }

.pfd-notice {
	border-left: 3px solid var(--pfd-accent);
	background: var(--pfd-card);
	padding: 20px;
	margin: 20px 0;
	color: #495057;
}

.pfd-section-title {
	font-size: 19px;
	font-weight: 700;
	color: var(--pfd-text);
	margin: 0 0 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--pfd-accent);
}
.pfd-section-title a { color: inherit; text-decoration: none; }
.pfd-section-title a:hover { color: var(--pfd-accent); }
.pfd-section-title h1, .pfd-section-title h2, .pfd-section-title h3 { font-size: inherit; font-weight: inherit; margin: 0; }

/* ==========================================================================
   8. Deal list + deal card (archives, front page, dealstore page)
   ========================================================================== */
.pfd-deal-list { margin-bottom: 10px; }

.pfd-deal-card {
	background: var(--pfd-card);
	border: 1px solid var(--pfd-border);
	padding: 15px;
	margin-bottom: 10px;
}
.pfd-deal-card-row { display: flex; align-items: flex-start; gap: 15px; }

.pfd-logo-col { width: 120px; flex: 0 0 120px; }
.pfd-logo-frame {
	width: 120px;
	height: 120px;
	border: 1px solid var(--pfd-border);
	background: #fff;
	overflow: hidden;
	margin-bottom: 8px;
}
.pfd-logo-frame img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pfd-store-name { text-align: center; font-size: 13px; color: var(--pfd-muted); line-height: 1.3; }
.pfd-store-name a { color: inherit; text-decoration: none; }
.pfd-store-name a:hover { text-decoration: underline; color: var(--pfd-accent); }

.pfd-verified {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 13px;
	height: 13px;
	min-width: 13px;
	background: var(--pfd-blue);
	border-radius: 50%;
	color: #fff;
	font-size: 8px;
	font-weight: 700;
	line-height: 1;
	vertical-align: middle;
	margin-left: 3px;
	padding: 0;
}
.pfd-verified--lg { width: 18px; height: 18px; min-width: 18px; font-size: 12px; }

.pfd-deal-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.pfd-deal-title { font-size: 20px; font-weight: 700; margin: 0 0 5px; line-height: 1.2; }
.pfd-deal-title a { color: var(--pfd-accent); text-decoration: none; }
.pfd-deal-title a:hover { text-decoration: underline; }
.pfd-deal-date { font-size: 13px; font-style: italic; color: var(--pfd-muted); margin: 0 0 5px; }
.pfd-deal-date a { color: inherit; text-decoration: none; }
.pfd-deal-date a:hover { text-decoration: underline; }
.pfd-deal-desc { font-size: 15px; line-height: 1.4; color: #666; margin: 0 0 10px; overflow-wrap: break-word; }
.pfd-deal-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; margin-top: auto; }
.pfd-deal-discount { font-size: 15px; font-weight: 600; color: var(--pfd-text); }

/* Active / Expired badge (dealstore posts only) — inline meta marker, not a chip */
.pfd-badge { white-space: nowrap; font-style: normal; }
.pfd-badge-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 4px; vertical-align: middle; position: relative; top: -1px; }
.pfd-badge--active { color: var(--pfd-green); font-weight: 600; }
.pfd-badge--active .pfd-badge-dot { background: var(--pfd-green); }
.pfd-badge--expired { color: var(--pfd-muted); font-weight: 600; }
.pfd-badge--expired .pfd-badge-dot { background: var(--pfd-muted); }

/* Mobile variant of the deal card */
.pfd-deal-card--mobile { padding: 10px; }
.pfd-mobile-header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.pfd-mobile-logo { width: 50px; height: 50px; flex: 0 0 50px; overflow: hidden; }
.pfd-mobile-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pfd-mobile-info { flex: 1; min-width: 0; line-height: 1.2; }
.pfd-mobile-store { font-size: 15px; font-weight: 600; color: var(--pfd-text); margin: 0; display: flex; align-items: center; gap: 4px; }
.pfd-mobile-store a { color: inherit; text-decoration: none; }
.pfd-mobile-date { font-size: 12px; font-style: italic; color: var(--pfd-muted); margin: 2px 0 0; }
.pfd-mobile-tag { font-size: 12px; font-style: italic; color: var(--pfd-muted); display: block; margin-top: 2px; }
.pfd-mobile-tag a { color: inherit; text-decoration: none; }
.pfd-mobile-title { font-size: 15px; font-weight: 700; line-height: 1.3; margin: 0 0 8px; }
.pfd-mobile-title a { color: var(--pfd-accent); text-decoration: none; }
.pfd-mobile-desc { font-size: 14px; line-height: 1.35; color: #666; margin: 0 0 10px; }
.pfd-mobile-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.pfd-mobile-discount { font-size: 13px; font-weight: 600; color: var(--pfd-text); }

.pfd-desktop-only { display: block; }
.pfd-mobile-only { display: none; }
@media (max-width: 768px) {
	.pfd-desktop-only { display: none !important; }
	.pfd-mobile-only { display: block !important; }
	.pfd-deal-title { font-size: 17px; }
}

/* ==========================================================================
   9. Pagination (paginate_links output)
   ========================================================================== */
.pfd-pagination { text-align: center; margin: 25px 0; }
.pfd-pagination .page-numbers {
	display: inline-block;
	padding: 8px 14px;
	margin: 0 2px 4px;
	border: 1px solid var(--pfd-border);
	background: #fff;
	color: #555;
	font-size: 14px;
	text-decoration: none;
}
.pfd-pagination a.page-numbers:hover,
.pfd-pagination .page-numbers.current {
	background: var(--pfd-accent);
	border-color: var(--pfd-accent);
	color: #fff;
}

/* ==========================================================================
   10. Front page
   ========================================================================== */
.pfd-home-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 20px;
	align-items: start;
	padding: 20px 0 30px;
}
.pfd-home-main { min-width: 0; }
.pfd-home-side { min-width: 0; }
@media (max-width: 991px) {
	.pfd-home-grid { grid-template-columns: 1fr; }
}

/* Carousel: white cards, logo left / text right, horizontal scroll */
.pfd-carousel {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 8px;
	margin-bottom: 28px;
}
.pfd-carousel::-webkit-scrollbar { height: 6px; }
.pfd-carousel::-webkit-scrollbar-thumb { background: #d5d5d5; border-radius: 3px; }
.pfd-carousel::-webkit-scrollbar-track { background: #efefef; }

.pfd-mini-card {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 0 0 300px;
	min-width: 0;
	background: var(--pfd-card);
	border: 1px solid var(--pfd-border);
	border-radius: 2px;
	padding: 10px;
	scroll-snap-align: start;
}
.pfd-mini-card-logo {
	width: 80px;
	height: 80px;
	flex: 0 0 80px;
	border: 1px solid var(--pfd-border);
	background: #fff;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.pfd-mini-card-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.pfd-mini-card-text { flex: 1 1 auto; min-width: 0; font-size: 14px; line-height: 1.35; }
.pfd-mini-card-text a { color: var(--pfd-text); text-decoration: none; font-weight: 600; }
.pfd-mini-card-text a:hover { color: var(--pfd-accent); }
@media (max-width: 768px) {
	.pfd-mini-card { flex-basis: 260px; }
}

/* Sidebar column blocks */
.pfd-banner { background: var(--pfd-card); padding: 15px; margin-bottom: 10px; border: 1px solid var(--pfd-border); }
.pfd-banner img { width: 100%; height: auto; display: block; }
.pfd-spacer { height: 10px; }

.pfd-telegram {
	background: var(--pfd-card);
	border: 1px solid #e3e3e3;
	padding: 14px;
	margin-bottom: 10px;
	font-size: 14px;
}
.pfd-telegram-title { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.pfd-telegram-desc { margin: 0 0 12px; font-size: 13px; color: #555; }
.pfd-telegram-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 10px 12px;
	background: transparent;
	color: var(--pfd-accent);
	font-weight: 800;
	text-decoration: none;
	border: 1px solid rgba(250, 158, 25, .65);
}
.pfd-telegram-btn:hover { background: rgba(250, 158, 25, .09); color: var(--pfd-accent); }
.pfd-telegram-btn svg { width: 18px; height: 18px; }

.pfd-more-btn-wrap { text-align: center; margin: 15px 0 5px; }

/* ==========================================================================
   11. Single post
   ========================================================================== */
.pfd-post {
	background: var(--pfd-card);
	border: 1px solid var(--pfd-border);
	padding: 20px;
	margin-bottom: 15px;
	overflow-wrap: break-word;
}
.pfd-post img { max-width: 100%; height: auto; }
.pfd-post a { overflow-wrap: break-word; }

/* Images in post content (Gutenberg wp-block-image figures) are centred.
   Covers both explicit .aligncenter and figures with no alignment set. */
.pfd-post .wp-block-image,
.pfd-post figure.wp-block-image {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	max-width: 100%;
}
.pfd-post .wp-block-image img { margin-left: auto; margin-right: auto; }
.pfd-post .wp-block-image figcaption { margin-top: 8px; font-size: 13px; color: var(--pfd-muted); }
/* Respect an author's explicit float: alignleft / alignright win over centring. */
.pfd-post .wp-block-image.alignleft,
.pfd-post .wp-block-image.alignright {
	display: block;
	max-width: 50%;
	margin: 4px 0 12px;
	text-align: inherit;
}
.pfd-post .wp-block-image.alignleft { float: left; margin-right: 20px; }
.pfd-post .wp-block-image.alignright { float: right; margin-left: 20px; }
.pfd-post .wp-block-image.alignleft img,
.pfd-post .wp-block-image.alignright img { margin: 0; }

/* Video embeds in post content (Gutenberg wp-block-embed / YouTube iframe):
   centred and fixed at 640x480, ignoring WP's default 16:9 fluid ratio.
   Max-width keeps it inside the column on narrow screens. */
.pfd-post .wp-block-embed,
.pfd-post figure.wp-block-embed {
	display: flex;
	justify-content: center;
	margin: 20px auto;
	max-width: 100%;
}
.pfd-post .wp-block-embed__wrapper,
.pfd-post .wp-block-embed iframe,
.pfd-post iframe[src*="youtube"],
.pfd-post iframe[src*="youtu.be"],
.pfd-post iframe[src*="vimeo"] {
	width: 640px;
	height: 480px;
	max-width: 100%;
}
.pfd-post .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper {
	/* override Gutenberg's padding-bottom aspect trick with the fixed box */
	position: static;
	padding-bottom: 0;
}
.pfd-post .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper iframe {
	position: static;
	width: 640px;
	height: 480px;
	max-width: 100%;
}

.pfd-ribbon {
	display: inline-block;
	background: var(--pfd-accent);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	padding: 4px 12px;
	margin-bottom: 10px;
}
.pfd-ribbon--2 { background: var(--pfd-accent); }
.pfd-ribbon--3 { background: var(--pfd-green); }
.pfd-ribbon--4 { background: var(--pfd-blue); }

.pfd-single-head { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 15px; }
.pfd-single-logo { width: 100px; flex: 0 0 100px; text-align: center; }
.pfd-single-logo img { max-width: 100px; width: 100%; height: auto; border: 1px solid var(--pfd-border); display: block; margin: 0 auto; }
.pfd-single-store { text-align: center; padding-top: 8px; font-size: 13px; color: var(--pfd-muted); line-height: 1.2; }
.pfd-single-store a { color: inherit; text-decoration: none; }
.pfd-single-store a:hover { color: var(--pfd-accent); }
.pfd-single-info { flex: 1 1 auto; min-width: 0; }
.pfd-single-title { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.pfd-single-desc { font-size: 13px; color: #666; line-height: 1.5; margin: 0 0 10px; }
.pfd-single-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 12px;
	color: var(--pfd-muted);
}
.pfd-single-meta a { color: inherit; text-decoration: none; }
.pfd-single-meta a:hover { text-decoration: underline; }

.pfd-discount-tag { text-align: center; margin-bottom: 10px; }
.pfd-discount-tag span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 80px;
	padding: 8px 14px;
	font-size: 22px;
	font-weight: 700;
	color: var(--pfd-green);
}

.pfd-brand-block { flex: 0 0 auto; max-width: 200px; margin: 0; text-align: center; align-self: flex-start; }
.pfd-brand-block img { max-width: 200px; width: 100%; height: auto; display: block; margin: 0 auto; }
.pfd-brand-tags { margin-top: 8px; }
.pfd-brand-tags a {
	display: inline-block;
	background: #f5f5f5;
	border: 1px solid var(--pfd-border);
	color: #555;
	font-size: 12px;
	padding: 3px 10px;
	text-decoration: none;
}
.pfd-brand-tags a:hover { border-color: var(--pfd-accent); color: var(--pfd-accent); }

/* Inlined [tpb_logo] compact buttons (was mu-plugin tp-trustpilot-bar). */
.pfd-brand-under-logo { display: flex; flex-direction: column; gap: 8px; width: 100%; margin-top: 10px; }
.pfd-tpb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: .45em .7em;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	border: 1px solid #00b67a;
	color: #00b67a;
	background: #fff;
	transition: opacity .15s;
}
.pfd-tpb-btn:hover { opacity: .85; }
.pfd-tpb-icon { width: 1em; height: 1em; display: inline-block; }

.pfd-offer-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	flex-wrap: wrap;
	border-top: 1px solid var(--pfd-border);
	border-bottom: 1px solid var(--pfd-border);
	padding: 16px 0;
	margin-bottom: 25px;
}
.pfd-offer-row-btns { width: auto; }
.pfd-offer-row-sep { margin-bottom: 25px; border-bottom: 1px solid rgba(206, 206, 206, .3); }

.pfd-news { border-top: 1px solid rgba(206, 206, 206, .3); padding-top: 20px; margin: 25px 0; }
.pfd-news-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; }
.pfd-news-card {
	display: block;
	background: #fff;
	border: 1px solid var(--pfd-border);
	padding: 12px;
	text-align: center;
	color: inherit;
	text-decoration: none;
}
.pfd-news-card:hover { border-color: var(--pfd-accent); }
.pfd-news-card img { width: 90px; height: 90px; object-fit: contain; margin: 0 auto 8px; display: block; }
.pfd-news-card span { display: block; font-size: 13px; line-height: 1.3; }
@media (max-width: 768px) {
	.pfd-single-head { flex-direction: column; align-items: center; text-align: center; }
	.pfd-single-logo { width: 100%; flex: none; max-width: 180px; }
	.pfd-brand-block { max-width: 160px; width: 100%; margin: 0 auto; }
	.pfd-single-title, .pfd-single-meta { text-align: center; justify-content: center; }
	.pfd-single-meta > div { width: 100%; }
	.pfd-news-grid { grid-template-columns: repeat(2, 1fr); }
	.pfd-offer-row { justify-content: center; }
}

.pfd-single-bottom { margin: 15px 0; text-align: center; }
/* [shortcut id="9717"] renders a max-width:970px block; centre it instead of
   leaving it flush-left when the column is wider than the block. */
.pfd-single-bottom > * { margin-left: auto; margin-right: auto; }

/* Every [shortcut] output is wrapped in .pfd-shortcut by the post-shortcuts
   plugin. Flex-column + centred aligns the snippet's top-level block(s)
   horizontally wherever they sit (page body, single bottom, sidebar), without
   editing each snippet's own markup. Works for the .pfd-tele-inline flex box
   (width:100%; max-width:970px), the AdSense <ins> wrappers and banner imgs —
   children that declare width:100% still fill, content-sized ones shrink and
   centre, and multiple children stack vertically instead of side by side. */
.pfd-shortcut {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
}

/* ==========================================================================
   12. Offer button block (rehub_generate_offerbtn) + quick_offer box
   ========================================================================== */
.pfd-offer-block { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pfd-price { font-size: 18px; font-weight: 700; color: var(--pfd-text); }

/* Desktop offer row: CLAIM DEAL and the code button sit on one baseline.
   The SHOW CODE button carries a .mt10 helper (needed when stacked on mobile);
   zero it here. */
.pfd-offer-desktop .pfd-offer-block { align-items: center; }
.pfd-offer-desktop .pfd-offer-block > div { display: flex; align-items: center; }
.pfd-offer-desktop .pfd-offer-block .mt10 { margin-top: 0; }

/* Reveal state: while .pfd-reveal-enabled is on the wrapper, hide the CLAIM
   button so only SHOW CODE (.pfd-coupon-btn) shows. main.js removes the class
   on the ?codeid=N page after revealing, which brings CLAIM back and swaps the
   masked button into the copy-code block. Covers offerbtn (.pfd-offer-block)
   and quick_offer (.pfd-offer-item) — both use .pfd-offer-btn for the claim. */
.pfd-reveal-enabled .pfd-offer-btn { display: none !important; }

/* Solid, identical buttons: a deal post's CLAIM DEAL and a coupon post's
   SHOW CODE share one box so the two post types look the same. */
.pfd-offer-btn,
.pfd-coupon-btn {
	display: inline-block;
	box-sizing: border-box;
	background: var(--pfd-accent);
	color: #fff;
	border: 0;
	padding: 11px 24px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: .3px;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	transition: background-color .2s ease;
}
.pfd-offer-btn:hover,
.pfd-coupon-btn:hover { background: var(--pfd-accent-dark); color: #fff; }

.pfd-shop-tag { font-size: 11px; font-weight: 400; opacity: .85; margin-left: 6px; text-transform: none; }

/* The revealed code block is not a button — it shows the coupon itself, so it
   keeps the old theme's .not_masked_coupon look: outlined dashed box + scissors
   icon, click to copy. Same outer height as the solid buttons (11px padding +
   1px border vs. no border), so it lines up beside CLAIM DEAL on ?codeid=N. */
.pfd-coupon-revealed {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-sizing: border-box;
	background: #fffdf6;
	border: 1px dashed var(--pfd-accent);
	color: var(--pfd-accent-dark);
	padding: 10px 24px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .3px;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	user-select: all;
	transition: background-color .2s ease, border-color .2s ease;
}
.pfd-coupon-revealed:hover { background: rgba(250, 158, 25, .12); border-color: var(--pfd-accent-dark); }
.pfd-coupon-revealed .rhicon { font-size: 15px; color: var(--pfd-accent); }
.pfd-coupon-code { font-weight: 700; letter-spacing: 1px; }

.pfd-offer-time { font-size: 12px; color: var(--pfd-muted); margin-top: 5px; width: 100%; }
.pfd-offer-expired { opacity: .55; }

/* quick_offer box */
.pfd-offer-item {
	background: var(--pfd-card);
	border: 1px solid var(--pfd-border);
	padding: 15px;
	margin-bottom: 15px;
}
.pfd-offer-desktop { display: flex; align-items: center; gap: 15px; }
.pfd-offer-thumb { width: 90px; flex: 0 0 90px; text-align: center; }
.pfd-offer-thumb img { max-width: 90px; height: auto; }
.pfd-offer-text { flex: 1 1 auto; min-width: 0; }
.pfd-offer-name { font-size: 17px; font-weight: 700; line-height: 1.3; }
.pfd-offer-desc { margin-top: 6px; color: #666; font-size: 13px; line-height: 1.45; }
.pfd-offer-btns { text-align: right; flex: 0 0 auto; }
.pfd-offer-btns .pfd-offer-block { justify-content: flex-end; }
.pfd-offer-mobile { display: none; flex-direction: column; align-items: center; text-align: center; }
.pfd-offer-mobile .pfd-offer-thumb { width: auto; flex: none; margin-bottom: 10px; }
.pfd-offer-mobile .pfd-offer-name { font-size: 18px; margin-bottom: 6px; }
.pfd-offer-mobile .pfd-offer-desc { margin-bottom: 12px; }
.pfd-offer-mobile .pfd-offer-block { justify-content: center; }

/* quick_offer box: CLAIM DEAL and the discount-code button stack top/bottom
   instead of side by side (the single-post offer row stays on one line).
   Tight 6px gap — .mt10 would otherwise add another 10px on top of it. */
.pfd-offer-item .pfd-offer-block { flex-direction: column; gap: 6px; }
.pfd-offer-item .pfd-offer-desktop .pfd-offer-block { align-items: flex-end; }
.pfd-offer-item .pfd-offer-mobile .pfd-offer-block { align-items: center; }
.pfd-offer-item .pfd-offer-block .mt10 { margin-top: 0; }

/* Mobile: in the single-post offer row the % discount gets its own line and the
   action buttons drop below it, instead of crowding the same row. Both the
   discount and the button cluster are centred. */
@media (max-width: 767px) {
	.pfd-offer-row .pfd-offer-block { justify-content: center; }
	.pfd-offer-row .pfd-offer-block .pfd-price { flex: 0 0 100%; text-align: center; }
}
@media (max-width: 767px) {
	.pfd-offer-desktop { display: none !important; }
	.pfd-offer-mobile { display: flex !important; }
}
@media (min-width: 768px) {
	.pfd-offer-desktop { display: flex !important; }
	.pfd-offer-mobile { display: none !important; }
}
.pfd-offer-disclaimer {
	background: #f7f7f7;
	color: var(--pfd-muted);
	font-size: 11px;
	line-height: 1.5;
	padding: 6px 15px;
	margin-bottom: 15px;
}

/* ==========================================================================
   13. Reveal-coupon modal (?codeid=N)
   ========================================================================== */
.pfd-modal-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(15, 15, 20, .6);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	z-index: 9000;
}

#pfd-coupon-modal {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 94%;
	max-width: 480px;
	max-height: 92vh;
	overflow-y: auto;
	background: #fff;
	border-radius: 0;
	z-index: 9020;
	box-shadow: 0 25px 70px rgba(0, 0, 0, .45);
	animation: pfd-modal-in .28s cubic-bezier(.2, .8, .3, 1);
}
@keyframes pfd-modal-in {
	from { opacity: 0; transform: translate(-50%, -46%) scale(.96); }
	to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
#pfd-coupon-modal.pfd-hidden { display: none; }

.pfd-modal-close {
	position: absolute;
	top: 12px;
	right: 14px;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 0;
	background: rgba(255, 255, 255, .22);
	color: #fff;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	z-index: 2;
	transition: background .2s ease, transform .25s ease;
}
.pfd-modal-close:hover { background: rgba(255, 255, 255, .4); transform: rotate(90deg); }

.pfd-modal-head {
	position: relative;
	background: linear-gradient(135deg, var(--pfd-accent) 0%, var(--pfd-accent-dark) 100%);
	color: #fff;
	text-align: center;
	padding: 26px 24px 30px;
	border-radius: 0;
}
.pfd-modal-head img { max-height: 62px; width: auto; margin: 0 auto; display: block; }
.pfd-modal-shoplink {
	display: block;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	margin-bottom: 10px;
}
.pfd-modal-title {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	opacity: .95;
	margin: 14px 0 16px;
}

/* The discount code — the hero of the popup. */
.pfd-modal-code-wrap { text-align: center; }
.pfd-modal-code {
	width: 100%;
	max-width: 320px;
	border: 0;
	border-radius: 0;
	background: #fff;
	color: var(--pfd-accent-dark);
	font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
	font-size: 30px;
	font-weight: 800;
	letter-spacing: 4px;
	text-align: center;
	text-transform: uppercase;
	padding: 16px 18px;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
	outline: none;
	transition: box-shadow .2s ease;
}
.pfd-modal-code:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .26); }
.pfd-modal-code::selection { background: var(--pfd-accent); color: #fff; }
.pfd-modal-code.pfd-copied { background: var(--pfd-green); color: #fff; }
.pfd-modal-code-hint {
	font-size: 12px;
	color: rgba(255, 255, 255, .9);
	margin-top: 10px;
	letter-spacing: .3px;
}

/* Activation CTA — stands out in green against the orange head. */
.pfd-modal-link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 22px 24px 4px;
	background: var(--pfd-green);
	color: #fff;
	font-size: 17px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .5px;
	text-decoration: none;
	padding: 16px 24px;
	border-radius: 0;
	box-shadow: 0 8px 20px rgba(46, 158, 68, .35);
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.pfd-modal-link::after { content: "\2192"; font-size: 20px; line-height: 1; }
.pfd-modal-link:hover {
	background: #27863a;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(46, 158, 68, .45);
}

.pfd-modal-body { padding: 20px 24px 26px; }
.pfd-modal-verify {
	display: inline-block;
	background: rgba(46, 158, 68, .12);
	color: var(--pfd-green);
	font-size: 12px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 0;
	margin-bottom: 12px;
}
.pfd-modal-body h3 { font-size: 19px; line-height: 1.3; margin: 0 0 8px; color: var(--pfd-text); overflow-wrap: break-word; }
.pfd-modal-desc { color: #666; font-size: 14px; line-height: 1.55; margin-bottom: 18px; }
.pfd-modal-body p { font-size: 14px; line-height: 1.5; margin: 0 0 10px; color: #555; }
.pfd-modal-body p a { color: var(--pfd-accent-dark); font-weight: 600; text-decoration: none; overflow-wrap: break-word; }
.pfd-modal-body p a:hover { text-decoration: underline; }
.pfd-modal-divider { border-top: 1px solid var(--pfd-border); margin: 2px 0; }
.pfd-modal-banner { padding: 18px 24px 24px; text-align: center; }
.pfd-modal-banner img { max-width: 100%; height: auto; border-radius: 0; }

@media (max-width: 480px) {
	.pfd-modal-head { padding: 22px 16px 26px; }
	.pfd-modal-code { font-size: 24px; letter-spacing: 2px; padding: 14px; }
	.pfd-modal-link { margin: 18px 16px 4px; font-size: 15px; padding: 15px 18px; }
	.pfd-modal-body { padding: 18px 16px 22px; }
	.pfd-modal-banner { padding: 16px; }
}

/* ==========================================================================
   14. Dealstore (prop firm brand) page
   ========================================================================== */
.pfd-brand-layout {
	display: grid;
	grid-template-columns: 320px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
	padding: 20px 0 30px;
}
.pfd-brand-col { min-width: 0; }
.pfd-brand-box {
	background: var(--pfd-card);
	border: 1px solid var(--pfd-border);
	padding: 15px;
	text-align: center;
	margin-bottom: 15px;
}
.pfd-brand-box img { max-width: 100%; height: auto; }
.pfd-brand-heading { position: relative; display: inline-block; margin-bottom: 4px; }
.pfd-brand-heading h2 { font-size: 20px; margin: 0; line-height: 1.2; display: inline-block; }
.pfd-brand-heading .pfd-verified--lg { position: absolute; top: 50%; right: -24px; transform: translateY(-50%); }
.pfd-brand-sub { font-size: 13px; text-transform: uppercase; color: #666; margin: 4px 0 0; font-weight: 600; }
.pfd-brand-score { margin: 10px 0; }
.pfd-brand-under-logo { margin-top: 8px; }
.pfd-brand-main { min-width: 0; }
.pfd-brand-side-widgets { margin-top: 15px; }
@media (max-width: 991px) {
	/* align-items:stretch overrides the desktop grid's `start`, which would
	   otherwise shrink these flex items to their content width on mobile. */
	.pfd-brand-layout { display: flex; flex-direction: column; align-items: stretch; gap: 20px; }
	/* Unwrap .pfd-brand-col so its children (brand boxes, info) sit alongside
	   .pfd-brand-main as flex items; then order pushes only the sidebar
	   widgets to the bottom, after the content. Brand boxes stay on top. */
	.pfd-brand-col { display: contents; }
	.pfd-brand-main { order: 1; }
	.pfd-brand-side-widgets { order: 2; margin-top: 0; }
	/* Flexbox does not collapse margins, so each block's own margin would
	   stack on top of the 20px gap and give uneven spacing (box 15px bottom,
	   plugin info 20px top). Zero them and let the gap be the only separator. */
	.pfd-brand-col > *,
	.pfd-brand-box,
	.std-dealstore-info.std-info-stacked { margin-top: 0; margin-bottom: 0; }
}

/* ==========================================================================
   15. Search form (WP get_search_form output)
   ========================================================================== */
.search-form { display: flex; gap: 0; max-width: 100%; }
.search-form label { flex: 1; display: flex; margin: 0; }
.search-form .search-field {
	flex: 1;
	min-width: 0;
	padding: 9px 12px;
	border: 1px solid var(--pfd-border);
	border-right: 0;
	font-size: 14px;
	background: #fff;
	color: var(--pfd-text);
}
.search-form .search-submit {
	background: var(--pfd-accent);
	color: #fff;
	border: 0;
	padding: 9px 16px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}
.search-form .search-submit:hover { background: var(--pfd-accent-dark); }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	word-wrap: normal !important;
}
.pfd-header-search .search-form .search-field { min-width: 220px; }

/* ==========================================================================
   16. 404
   ========================================================================== */
.pfd-error {
	background: var(--pfd-card);
	border: 1px solid var(--pfd-border);
	padding: 50px 20px;
	text-align: center;
	margin-bottom: 20px;
}
.pfd-error-text { display: block; font-size: 18px; color: #666; }
.pfd-error-code { font-size: 90px; font-weight: 800; color: var(--pfd-accent); line-height: 1.1; margin: 10px 0; }
.pfd-error .search-form { max-width: 420px; margin: 25px auto 0; }

/* ==========================================================================
   17. Static pages
   ========================================================================== */
.pfd-page-content {
	background: var(--pfd-card);
	border: 1px solid var(--pfd-border);
	padding: 20px;
	margin-bottom: 15px;
	overflow-wrap: break-word;
}
.pfd-page-content img { max-width: 100%; height: auto; }

/* wp_link_pages */
.pfd-page-link { margin: 15px 0; font-size: 14px; }
.pfd-page-link-title { font-weight: 700; margin-right: 8px; }
.pfd-page-link a, .pfd-page-link span {
	display: inline-block;
	padding: 4px 10px;
	border: 1px solid var(--pfd-border);
	margin-right: 4px;
	text-decoration: none;
	color: #555;
	background: #fff;
}

/* ==========================================================================
   18. Utility classes
   Small shared set — also used by plugin shortcode output.
   ========================================================================== */
.pfd-clearfix::after { content: ""; display: table; clear: both; }
.pfd-hidden { display: none !important; }
.pfd-text-center { text-align: center; }
.pfd-mt10 { margin-top: 10px; }
.pfd-mb10 { margin-bottom: 10px; }
.pfd-mt15 { margin-top: 15px; }
.pfd-mb15 { margin-bottom: 15px; }
.pfd-mt20 { margin-top: 20px; }
.pfd-mb20 { margin-bottom: 20px; }
.pfd-mb30 { margin-bottom: 30px; }

/* Legacy utilities kept for plugin shortcode output (post-shortcuts, pfd-reviews,
   pricing table, etc. emit some of these class names). */
.text-center { text-align: center; }
.mt10 { margin-top: 10px; }
.mb10 { margin-bottom: 10px; }
.mt15 { margin-top: 15px; }
.mt20 { margin-top: 20px; }
.mb15 { margin-bottom: 15px; }
.mb20 { margin-bottom: 20px; }
.mb25 { margin-bottom: 25px; }
.mb30 { margin-bottom: 30px; }
.pt5 { padding-top: 5px; }
.pb5 { padding-bottom: 5px; }
.pl15 { padding-left: 15px; }
.pr15 { padding-right: 15px; }
.mr5 { margin-right: 5px; }
.ml0 { margin-left: 0; }
.mr0 { margin-right: 0; }
.mt0 { margin-top: 0; }
.mb0 { margin-bottom: 0; }
.pb10 { padding-bottom: 10px; }
.pt10 { padding-top: 10px; }
.pl30 { padding-left: 30px; }
.pr30 { padding-right: 30px; }
.blockstyle { display: block; }
.inlinestyle { display: inline-block; }
.position-relative { position: relative; }
.flowhidden { overflow: hidden; }
.font60 { font-size: 60%; }
.font80 { font-size: 80%; }
.font90 { font-size: 90%; }
.font120 { font-size: 120%; }
.font150 { font-size: 150%; }
.fontbold { font-weight: 700; }
.fontitalic { font-style: italic; }
.greycolor { color: var(--pfd-muted); }
.whitecolor { color: #fff; }
.greencolor { color: var(--pfd-green); }
.lineheight15 { line-height: 1.5; }
.lineheight20 { line-height: 1.2; }
.lightgreybg { background: #f7f7f7; }
.roundborder8 { border-radius: 8px; }
.clearfix::after { content: ""; display: table; clear: both; }
.width-100p { width: 100%; }

/* Comments (disabled site-wide; minimal styling in case a page enables them) */
.pfd-comments { background: #fff; border: 1px solid var(--pfd-border); padding: 20px; margin-bottom: 15px; }

/* Missing-plugin notice on the front page */
.pfd-missing-plugin {
	background: #fff6e5;
	border: 1px solid var(--pfd-accent);
	padding: 20px;
	margin: 20px 0;
}
