/* Perfect Pickleball Paddles — data-driven components.
   Colours and fonts read the Elementor global variables (Site Settings → Variables),
   with fallbacks so the components render the same if a variable is renamed. */
:root {
	--_ink: var(--ppp-ink, #0b0b0c);
	--_ink-2: var(--ppp-ink-soft, #1c1c1e);
	--_text: var(--ppp-text, #333333);
	--_muted: var(--ppp-muted, #6e6e73);
	--_line: var(--ppp-line, #e5e5e5);
	--_surface: var(--ppp-surface, #f2f2f2);
	--_white: var(--ppp-white, #ffffff);
	--_accent: var(--ppp-accent, #d4f03c);
	--_accent-ink: var(--ppp-accent-ink, #0b0b0c);
	--_good: var(--ppp-good, #1f7a4d);
	--_warn: var(--ppp-warn, #b4452f);
	--_radius: var(--ppp-radius, 6px);
	--_radius-sm: 4px;
	--_shadow: 0 1px 2px rgba(18, 24, 33, .05), 0 8px 24px -12px rgba(18, 24, 33, .18);
	--_shadow-hover: 0 2px 4px rgba(18, 24, 33, .06), 0 18px 40px -18px rgba(18, 24, 33, .30);
	--_font-head: var(--ppp-font-heading, "Space Grotesk"), system-ui, sans-serif;
	--_font-display: var(--ppp-font-display, "Anton"), Impact, "Arial Narrow", sans-serif;
	--_font-body: var(--ppp-font-body, "Source Sans 3"), system-ui, sans-serif;
}

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}

/* Shortcode output is placed inside paragraph widgets; reset inherited paragraph styling. */
.ppp-sc { display: block; font-family: var(--_font-body); color: var(--_text); font-size: 1rem; line-height: 1.6; }
.ppp-sc :where(h2, h3, h4) { font-family: var(--_font-head); color: var(--_ink); margin: 0; letter-spacing: -.01em; }
.ppp-sc :where(p) { margin: 0; }
.ppp-sc a { color: inherit; }

/* Placeholders (editors only) */
.ppp-ph {
	display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; border-radius: 6px;
	background: repeating-linear-gradient(-45deg, #fff8d6, #fff8d6 6px, #fff2b8 6px, #fff2b8 12px);
	border: 1px dashed #d6b400; color: #6a5600; font: 600 12px/1.5 var(--_font-body); letter-spacing: .01em;
}
.ppp-ph--media { position: absolute; left: 12px; bottom: 12px; right: 12px; justify-content: center; }
.ppp-empty { color: var(--_muted); }
.ppp-editor-note { margin-top: 12px; font-size: 13px; color: #6a5600; }
.ppp-empty-state { padding: 28px; border: 1px dashed var(--_line); border-radius: var(--_radius); text-align: center; color: var(--_muted); background: var(--_white); }

/* Buttons */
.ppp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 18px;
	border-radius: 999px; font: 700 14px/1 var(--_font-head); letter-spacing: .01em; text-decoration: none !important;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease; white-space: nowrap; cursor: pointer;
}
.ppp-btn--primary { background: var(--_accent); color: var(--_accent-ink) !important; border: 1px solid var(--_accent); }
.ppp-btn--primary:hover { background: var(--_ink); border-color: var(--_ink); color: var(--_white) !important; }
.ppp-btn--ghost { background: transparent; color: var(--_ink) !important; border: 1px solid var(--_line); }
.ppp-btn--ghost:hover { border-color: var(--_ink); }
.ppp-btn--sm { min-height: 36px; padding: 8px 14px; font-size: 13px; }
.ppp-btn--disabled { background: var(--_surface); border-color: var(--_line); cursor: default; }
.ppp-btn:focus-visible, .ppp-card a:focus-visible, .ppp-brand-card:focus-visible, .ppp-style-card:focus-visible, .ppp-textlink:focus-visible {
	outline: 3px solid var(--_accent); outline-offset: 3px;
}
.ppp-textlink { font: 700 14px/1 var(--_font-head); color: var(--_ink) !important; text-decoration: none; }
.ppp-textlink:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Grids */
.ppp-grid { display: grid; gap: 24px; }
.ppp-grid--cards { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ppp-grid--cards.ppp-cols-4 { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.ppp-grid--alts { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.ppp-grid--posts { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 28px; }
.ppp-grid--brands { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.ppp-grid--styles { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }

/* Product card */
.ppp-card {
	position: relative; display: flex; flex-direction: column; background: var(--_white); border: 1px solid var(--_line);
	border-radius: var(--_radius); overflow: hidden; box-shadow: var(--_shadow); transition: box-shadow .2s ease, transform .2s ease;
}
.ppp-card:hover { box-shadow: var(--_shadow-hover); transform: translateY(-2px); }
.ppp-card__media { position: relative; display: block; aspect-ratio: 4 / 3; background: radial-gradient(120% 90% at 50% 10%, #ffffff 0%, var(--_surface) 70%); }
.ppp-card__media img, .ppp-card__img { width: 100%; height: 100%; object-fit: contain; padding: 18px; box-sizing: border-box; }
.ppp-media-fallback { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 160px; }
.ppp-paddle-art { height: 78%; width: auto; transform: rotate(-12deg); filter: drop-shadow(0 18px 18px rgba(18, 24, 33, .22)); }
.ppp-card__badge {
	position: absolute; top: 14px; left: 14px; padding: 6px 10px; border-radius: 999px; background: var(--_ink); color: var(--_white);
	font: 700 11px/1 var(--_font-head); letter-spacing: .08em; text-transform: uppercase;
}
.ppp-card__body { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px 22px; flex: 1; }
.ppp-card__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ppp-card__brand { font: 700 12px/1 var(--_font-head); letter-spacing: .12em; text-transform: uppercase; color: var(--_muted); margin: 0; }
.ppp-card__title { font: 800 21px/1.2 var(--_font-head); letter-spacing: -.015em; color: var(--_ink); margin: 0; }
.ppp-card__title a { color: inherit; text-decoration: none; }
.ppp-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.ppp-card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ppp-card__type { font-size: 14px; color: var(--_muted); margin: -4px 0 0; }
.ppp-card__specs { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 4px 0 0; background: var(--_line); border: 1px solid var(--_line); border-radius: var(--_radius-sm); overflow: hidden; }
.ppp-card__specs div { background: var(--_white); padding: 8px 10px; }
.ppp-card__specs dt { font: 600 11px/1.3 var(--_font-body); text-transform: uppercase; letter-spacing: .08em; color: var(--_muted); }
.ppp-card__specs dd { margin: 2px 0 0; font: 600 14px/1.3 var(--_font-body); color: var(--_ink); }
.ppp-card__desc { font-size: 15px; line-height: 1.55; color: var(--_text); margin: 0; }
.ppp-card__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--_line); }
.ppp-card__actions { display: flex; gap: 8px; flex-wrap: wrap; position: relative; z-index: 1; }
.ppp-card--compact .ppp-card__body { padding: 16px 18px 18px; }
.ppp-card--compact .ppp-card__title { font-size: 18px; }
.ppp-card--compact .ppp-card__foot { flex-direction: column; align-items: stretch; }
.ppp-card--compact .ppp-card__actions .ppp-btn { flex: 1; }
.ppp-card--skeleton { box-shadow: none; border-style: dashed; }
.ppp-card--skeleton:hover { transform: none; box-shadow: none; }

/* Price + score */
.ppp-price { font: 800 20px/1 var(--_font-head); color: var(--_ink); font-variant-numeric: tabular-nums; }
.ppp-price--none { font-size: 14px; font-weight: 600; color: var(--_muted); }
.ppp-price-date { display: block; margin-top: 6px; font-size: 12px; color: var(--_muted); }
.ppp-score { display: inline-flex; align-items: baseline; gap: 2px; font-family: var(--_font-head); font-variant-numeric: tabular-nums; }
.ppp-score--pill { padding: 5px 9px; border-radius: 999px; background: var(--_ink); color: var(--_white); position: relative; z-index: 1; }
.ppp-score--pill .ppp-score__value { font-weight: 800; font-size: 14px; }
.ppp-score--pill .ppp-score__max { font-size: 11px; opacity: .7; }
.ppp-score--pill.ppp-score--pending { background: var(--_surface); color: var(--_muted); padding: 5px 10px; }
.ppp-score--pill .ppp-score__label { font: 600 11px/1 var(--_font-body); letter-spacing: .04em; }
.ppp-score--badge {
	flex-direction: row; flex-wrap: wrap; align-items: baseline; padding: 14px 18px; border-radius: 14px; background: var(--_ink); color: var(--_white);
}
.ppp-score--badge .ppp-score__value { font-weight: 800; font-size: 40px; line-height: 1; color: var(--_accent); }
.ppp-score--badge .ppp-score__max { font-size: 16px; opacity: .7; margin-right: 10px; }
.ppp-score--badge .ppp-score__label { font: 600 12px/1.2 var(--_font-body); text-transform: uppercase; letter-spacing: .1em; opacity: .75; }
.ppp-score--badge.ppp-score--pending { background: var(--_surface); color: var(--_muted); }

/* CTA box */
.ppp-cta { display: flex; flex-direction: column; gap: 14px; }
.ppp-cta--row { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.ppp-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.ppp-cta__actions .ppp-btn { min-height: 52px; padding: 14px 28px; font-size: 16px; }
.ppp-cta__retailer { font-size: 13px; color: var(--_muted); }
.ppp-cta .ppp-price { font-size: 28px; }

/* Spec table */
.ppp-specs { margin: 0; border: 1px solid var(--_line); border-radius: var(--_radius); overflow: hidden; background: var(--_white); display: grid; grid-template-columns: 1fr 1fr; }
.ppp-specs__row { display: flex; justify-content: space-between; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--_line); }
.ppp-specs__row:nth-child(odd) { border-right: 1px solid var(--_line); }
.ppp-specs dt { font-size: 14px; color: var(--_muted); }
.ppp-specs dd { margin: 0; font: 700 15px/1.4 var(--_font-body); color: var(--_ink); text-align: right; }

/* Rating bars */
.ppp-bars { display: grid; gap: 12px; }
.ppp-bar { display: grid; grid-template-columns: 96px 1fr 40px; align-items: center; gap: 12px; }
.ppp-bar__label { font: 600 14px/1 var(--_font-body); color: var(--_ink); }
.ppp-bar__track { height: 8px; border-radius: 999px; background: var(--_surface); overflow: hidden; }
.ppp-bar__fill { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--_ink) 0%, var(--_ink-2) 100%); }
.ppp-bar__num { font: 800 15px/1 var(--_font-head); text-align: right; color: var(--_ink); font-variant-numeric: tabular-nums; }

/* Review sections */
.ppp-review-sections { display: grid; gap: 0; }
.ppp-review-section { padding: 26px 0; border-top: 1px solid var(--_line); }
.ppp-review-section:first-child { border-top: 0; padding-top: 0; }
.ppp-review-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.ppp-review-section__head :is(h2, h3, h4) { font: 800 22px/1.25 var(--_font-head); color: var(--_ink); margin: 0; }
.ppp-review-section__rating { font: 800 20px/1 var(--_font-head); color: var(--_ink); }
.ppp-review-section__rating small { font-size: 13px; color: var(--_muted); font-weight: 600; }
.ppp-review-section p { margin: 0 0 12px; font-size: 17px; line-height: 1.7; }

/* Lists */
.ppp-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ppp-list li { position: relative; padding-left: 30px; font-size: 16px; line-height: 1.5; color: var(--_text); }
.ppp-list li::before { position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; font: 800 12px/1 var(--_font-head); }
.ppp-list--check li::before { content: "✓"; background: var(--_ink); color: var(--_accent); }
.ppp-list--pros li::before { content: "+"; background: #e3f3ea; color: var(--_good); font-size: 15px; }
.ppp-list--cons li::before { content: "−"; background: #f8e6e1; color: var(--_warn); font-size: 15px; }
.ppp-proscons { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ppp-proscons__col { padding: 24px; border-radius: var(--_radius); border: 1px solid var(--_line); background: var(--_white); }
.ppp-proscons__col--pros { border-top: 4px solid var(--_good); }
.ppp-proscons__col--cons { border-top: 4px solid var(--_warn); }
.ppp-proscons__title { font: 800 18px/1 var(--_font-head); margin: 0 0 16px !important; color: var(--_ink); }

/* FAQ */
.ppp-faq { display: grid; gap: 10px; }
.ppp-faq__item { border: 1px solid var(--_line); border-radius: 12px; background: var(--_white); }
.ppp-faq__item summary { list-style: none; cursor: pointer; padding: 18px 52px 18px 20px; position: relative; }
.ppp-faq__item summary::-webkit-details-marker { display: none; }
.ppp-faq__item summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font: 400 24px/1 var(--_font-head); color: var(--_ink); }
.ppp-faq__item[open] summary::after { content: "−"; }
.ppp-faq__item summary:focus-visible { outline: 3px solid var(--_accent); outline-offset: 2px; border-radius: 12px; }
.ppp-faq__q { font: 700 17px/1.4 var(--_font-head) !important; color: var(--_ink); margin: 0; display: inline; }
.ppp-faq__a { padding: 0 20px 18px; color: var(--_text); line-height: 1.7; }
.ppp-faq__a p { margin: 0 0 10px; }

/* Final summary */
.ppp-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ppp-summary__box { padding: 22px; border-radius: var(--_radius); background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.ppp-summary__box h3 { font: 800 15px/1.2 var(--_font-head); letter-spacing: .06em; text-transform: uppercase; margin: 0 0 10px; color: var(--_accent); }
.ppp-summary__box p { margin: 0; line-height: 1.6; color: rgba(255, 255, 255, .85); }

/* Comparison */
.ppp-compare { display: grid; gap: 18px; }
.ppp-filters {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; align-items: end; padding: 18px;
	border-radius: var(--_radius); background: var(--_white); border: 1px solid var(--_line); box-shadow: var(--_shadow);
}
.ppp-filter { display: grid; gap: 6px; }
.ppp-filter label { display: flex; justify-content: space-between; font: 700 12px/1.2 var(--_font-body); text-transform: uppercase; letter-spacing: .08em; color: var(--_muted); }
.ppp-filter output { color: var(--_ink); text-transform: none; letter-spacing: 0; }
.ppp-filter select {
	width: 100%; min-height: 42px; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--_line); background: var(--_surface);
	font: 600 14px/1.2 var(--_font-body); color: var(--_ink);
}
.ppp-filter input[type=range] { width: 100%; accent-color: var(--_ink); min-height: 42px; }
.ppp-filters__reset { justify-self: start; }
.ppp-table-wrap { overflow-x: auto; border: 1px solid var(--_line); border-radius: var(--_radius); background: var(--_white); box-shadow: var(--_shadow); }
.ppp-table-wrap:focus-visible { outline: 3px solid var(--_accent); outline-offset: 2px; }
.ppp-table { width: 100%; min-width: 1080px; border-collapse: collapse; font-size: 14px; margin: 0; }
.ppp-table thead th {
	position: sticky; top: 0; background: var(--_ink); color: var(--_white); text-align: left; padding: 14px 14px;
	font: 700 12px/1.2 var(--_font-head); text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; border: 0;
}
.ppp-table tbody :is(th, td) { padding: 14px; border: 0; border-bottom: 1px solid var(--_line); vertical-align: middle; text-align: left; color: var(--_text); background: var(--_white); }
.ppp-table tbody tr:hover :is(th, td) { background: #fafbfc; }
.ppp-table tbody tr[hidden] { display: none; }
.ppp-table__paddle { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--_ink) !important; font: 800 15px/1.25 var(--_font-head); min-width: 190px; }
.ppp-table__paddle small { display: block; font: 700 11px/1.2 var(--_font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--_muted); margin-bottom: 2px; }
.ppp-table__thumb { flex: 0 0 48px; height: 48px; border-radius: 10px; background: var(--_surface); display: grid; place-items: center; overflow: hidden; }
.ppp-table__thumb img { width: 100%; height: 100%; object-fit: contain; }
.ppp-table__thumb .ppp-paddle-art { height: 40px; filter: none; }
.ppp-table .ppp-price { font-size: 16px; }
.ppp-table__actions { white-space: nowrap; }
.ppp-table__actions .ppp-btn + .ppp-btn { margin-left: 6px; }
.ppp-mini { display: inline-block; width: 54px; height: 6px; border-radius: 999px; background: var(--_surface); overflow: hidden; vertical-align: middle; margin-right: 8px; }
.ppp-mini__fill { display: block; height: 100%; background: var(--_ink); border-radius: inherit; }
.ppp-mini__num { font: 800 14px/1 var(--_font-head); color: var(--_ink); font-variant-numeric: tabular-nums; }
.ppp-compare__meta { font-size: 13px; color: var(--_muted); margin: 0; }
.ppp-compare__count { font-weight: 700; color: var(--_ink); margin-right: 6px; }

@media (max-width: 767px) {
	.ppp-table-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none; }
	.ppp-table { min-width: 0; }
	.ppp-table thead { display: none; }
	.ppp-table, .ppp-table tbody, .ppp-table tr { display: block; }
	.ppp-table tbody tr { margin-bottom: 14px; border: 1px solid var(--_line); border-radius: var(--_radius); background: var(--_white); overflow: hidden; box-shadow: var(--_shadow); display: grid; grid-template-columns: 1fr 1fr; }
	.ppp-table tbody :is(th, td) { display: block; padding: 10px 14px; border-bottom: 1px solid var(--_line); }
	.ppp-table tbody td::before { content: attr(data-label); display: block; font: 700 11px/1.3 var(--_font-body); text-transform: uppercase; letter-spacing: .08em; color: var(--_muted); margin-bottom: 4px; }
	.ppp-table tbody th, .ppp-table__actions { grid-column: 1 / -1; }
	.ppp-table tbody th { background: var(--_surface); }
	.ppp-table__actions { display: flex !important; gap: 8px; border-bottom: 0 !important; }
	.ppp-table__actions::before { display: none !important; }
	.ppp-table__actions .ppp-btn { flex: 1; }
	.ppp-table__actions .ppp-btn + .ppp-btn { margin-left: 0; }
	.ppp-specs { grid-template-columns: 1fr; }
	.ppp-specs__row:nth-child(odd) { border-right: 0; }
	.ppp-proscons, .ppp-summary { grid-template-columns: 1fr; }
	.ppp-card__title { font-size: 19px; }
}

/* Brand + style cards */
.ppp-brand-card {
	position: relative; display: flex; flex-direction: column; gap: 6px; padding: 22px; min-height: 170px; border-radius: var(--_radius);
	background: var(--_white); border: 1px solid var(--_line); text-decoration: none !important; color: var(--_ink) !important;
	transition: border-color .15s ease, box-shadow .2s ease, transform .2s ease;
}
.ppp-brand-card:hover { border-color: var(--_ink); box-shadow: var(--_shadow-hover); transform: translateY(-2px); }
.ppp-brand-card__mark { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--_ink); color: var(--_accent); font: 800 20px/1 var(--_font-head); margin-bottom: 10px; }
.ppp-brand-card__name { font: 800 20px/1.2 var(--_font-head) !important; letter-spacing: -.01em; margin: 0; color: var(--_ink); }
.ppp-brand-card__meta { font-size: 14px; color: var(--_muted); line-height: 1.4; }
.ppp-brand-card__go { margin-top: auto; padding-top: 12px; font: 700 13px/1 var(--_font-head); color: var(--_ink); }
.ppp-style-card {
	position: relative; display: flex; flex-direction: column; gap: 6px; padding: 20px 48px 20px 20px; border-radius: 14px; text-decoration: none !important;
	background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .12); color: var(--_white) !important; transition: background-color .15s ease, border-color .15s ease;
}
.ppp-style-card:hover { background: var(--_accent); border-color: var(--_accent); color: var(--_accent-ink) !important; }
.ppp-style-card__name { font: 800 19px/1.2 var(--_font-head) !important; margin: 0; color: inherit !important; }
.ppp-style-card__desc { font-size: 14px; line-height: 1.45; opacity: .75; }
.ppp-style-card__go { position: absolute; right: 18px; top: 20px; font: 700 18px/1 var(--_font-head); }

/* Post cards */
.ppp-post-card { display: flex; flex-direction: column; background: var(--_white); border-radius: var(--_radius); overflow: hidden; border: 1px solid var(--_line); transition: box-shadow .2s ease; }
.ppp-post-card:hover { box-shadow: var(--_shadow-hover); }
.ppp-post-card__media { display: block; aspect-ratio: 16 / 10; background: var(--_surface); overflow: hidden; }
.ppp-post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ppp-post-card__body { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px 22px; flex: 1; }
.ppp-post-card__kicker { font: 700 11px/1 var(--_font-head); letter-spacing: .12em; text-transform: uppercase; color: var(--_muted); margin: 0; }
.ppp-post-card__title { font: 800 20px/1.25 var(--_font-head) !important; letter-spacing: -.01em; margin: 0; }
.ppp-post-card__title a { color: var(--_ink); text-decoration: none; }
.ppp-post-card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ppp-post-card__excerpt { font-size: 15px; line-height: 1.6; color: var(--_text); margin: 0; }
.ppp-post-card__foot { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--_line); font-size: 13px; color: var(--_muted); }

/* Pagination */
.ppp-pagination { margin-top: 40px; }
.ppp-pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; padding: 0; margin: 0; }
.ppp-pagination :is(a, span) { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 0 14px; border-radius: 999px; border: 1px solid var(--_line); text-decoration: none; color: var(--_ink); font: 700 14px/1 var(--_font-head); }
.ppp-pagination .current { background: var(--_ink); color: var(--_white); border-color: var(--_ink); }

/* TOC */
.ppp-toc { padding: 20px 22px; border-radius: var(--_radius); background: var(--_surface); border: 1px solid var(--_line); }
.ppp-toc__title { font: 800 13px/1 var(--_font-head); text-transform: uppercase; letter-spacing: .1em; color: var(--_ink); margin: 0 0 12px; }
.ppp-toc__list { margin: 0; padding: 0 0 0 18px; display: grid; gap: 8px; font-size: 15px; }
.ppp-toc__list li.is-sub { margin-left: 14px; list-style: circle; font-size: 14px; }
.ppp-toc__list a { color: var(--_text); text-decoration: none; }
.ppp-toc__list a:hover, .ppp-toc__list a.is-active { color: var(--_ink); text-decoration: underline; text-underline-offset: 3px; }

/* Breadcrumbs, disclosure, meta */
.ppp-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; font-size: 13px; color: var(--_muted); }
.ppp-breadcrumbs li + li::before { content: "/"; margin-right: 6px; opacity: .5; }
.ppp-breadcrumbs a { color: inherit; text-decoration: none; }
.ppp-breadcrumbs a:hover { color: var(--_ink); text-decoration: underline; }
.ppp-breadcrumbs [aria-current] { color: var(--_ink); font-weight: 600; }
.ppp-disclosure { padding: 12px 16px; border-radius: 12px; background: var(--_surface); border-left: 3px solid var(--_accent); font-size: 13px; line-height: 1.55; color: var(--_text); }
.ppp-disclosure p { margin: 0; }
.ppp-disclosure a { color: var(--_ink); font-weight: 600; }
.ppp-updated { font-size: 14px; color: var(--_muted); }
.ppp-brand-link { color: inherit; text-decoration: none; }
.ppp-brand-link:hover { text-decoration: underline; }
.ppp-prose { font-size: 17px; line-height: 1.75; color: var(--_text); }
.ppp-prose :is(h2, h3) { margin: 1.6em 0 .5em; }
.ppp-prose p { margin: 0 0 1em; }

/* Long-form article body (Post Content widget in templates) */
.ppp-article { font-family: var(--_font-body); font-size: 18px; line-height: 1.75; color: var(--_text); }
.ppp-article :is(h2) { font: 800 30px/1.2 var(--_font-head); letter-spacing: -.02em; color: var(--_ink); margin: 1.8em 0 .5em; scroll-margin-top: 110px; }
.ppp-article :is(h3) { font: 800 22px/1.3 var(--_font-head); color: var(--_ink); margin: 1.5em 0 .4em; scroll-margin-top: 110px; }
.ppp-article p, .ppp-article ul, .ppp-article ol { margin: 0 0 1.1em; }
.ppp-article a { color: var(--_ink); text-decoration-color: var(--_accent); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ppp-article img { border-radius: var(--_radius); height: auto; }
.ppp-article blockquote { margin: 1.5em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--_accent); font-size: 20px; color: var(--_ink); }
.ppp-article table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0 0 1.4em; }
.ppp-article :is(th, td) { border-bottom: 1px solid var(--_line); padding: 10px 12px; text-align: left; }
.ppp-article th { background: var(--_surface); color: var(--_ink); }

@media (prefers-reduced-motion: reduce) {
	.ppp-card, .ppp-brand-card, .ppp-btn { transition: none; }
	.ppp-card:hover, .ppp-brand-card:hover { transform: none; }
}

/* v1.1 — section titles, finder, sitemap */
.ppp-sc-title { font: 800 clamp(26px, 3vw, 36px)/1.1 var(--_font-head); letter-spacing: -.02em; color: var(--_ink); margin: 0 0 24px !important; }
.ppp-section-dark .ppp-sc-title { color: var(--_white); }

.ppp-finder { display: grid; gap: 28px; }
.ppp-finder__step { border: 0; margin: 0; padding: 0; min-width: 0; }
.ppp-finder__step legend { display: flex; align-items: center; gap: 12px; padding: 0; margin-bottom: 14px; font: 800 20px/1.3 var(--_font-head); color: var(--_ink); }
.ppp-finder__num { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: var(--_ink); color: var(--_accent); font-size: 14px; flex: 0 0 32px; }
.ppp-finder__options { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.ppp-finder__option { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 18px 20px; border: 1px solid var(--_line); border-radius: 14px; background: var(--_white); cursor: pointer; transition: border-color .15s ease, background-color .15s ease; }
.ppp-finder__option:hover { border-color: var(--_ink); }
.ppp-finder__option input { position: absolute; opacity: 0; pointer-events: none; }
.ppp-finder__option:has(input:checked) { border-color: var(--_ink); background: var(--_ink); }
.ppp-finder__option:has(input:checked) .ppp-finder__label { color: var(--_accent); }
.ppp-finder__option:has(input:checked) .ppp-finder__hint { color: rgba(255, 255, 255, .75); }
.ppp-finder__option:has(input:focus-visible) { outline: 3px solid var(--_accent); outline-offset: 3px; }
.ppp-finder__label { font: 800 17px/1.2 var(--_font-head); color: var(--_ink); }
.ppp-finder__hint { font-size: 14px; color: var(--_muted); line-height: 1.4; }
.ppp-finder__result { padding: clamp(24px, 4vw, 40px); border-radius: 20px; background: radial-gradient(70% 120% at 100% 0%, rgba(212, 240, 60, .2) 0%, rgba(212, 240, 60, 0) 55%), var(--_ink); color: var(--_white); display: grid; gap: 12px; }
.ppp-finder__kicker { margin: 0; font: 700 12px/1 var(--_font-head); letter-spacing: .16em; text-transform: uppercase; color: var(--_accent); }
.ppp-finder__title { margin: 0; font: 800 clamp(26px, 3vw, 36px)/1.1 var(--_font-head); letter-spacing: -.02em; color: var(--_white) !important; }
.ppp-finder__tip { margin: 0; font-size: 17px; line-height: 1.6; color: rgba(255, 255, 255, .8); max-width: 60ch; }
.ppp-finder__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.ppp-finder__actions .ppp-btn--ghost { color: var(--_white) !important; border-color: rgba(255, 255, 255, .3); }
.ppp-finder__actions .ppp-btn--ghost:hover { border-color: var(--_white); }

.ppp-sitemap { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 32px 40px; }
.ppp-sitemap__group h2 { font: 800 20px/1.2 var(--_font-head); color: var(--_ink); margin: 0 0 12px; padding-bottom: 10px; border-bottom: 2px solid var(--_ink); }
.ppp-sitemap__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ppp-sitemap__list a { color: var(--_text); text-decoration: none; }
.ppp-sitemap__list a:hover { color: var(--_ink); text-decoration: underline; text-underline-offset: 3px; }

/* v1.2 — article rhythm inside Elementor widgets, TOC, dark panels, review hero image */
.ppp-article :is(h2.e-heading-base, h2) { font: 800 30px/1.2 var(--_font-head) !important; letter-spacing: -.02em !important; color: var(--_ink) !important; margin: 1.8em 0 .5em !important; scroll-margin-top: 130px; }
.ppp-article :is(h3.e-heading-base, h3) { margin: 1.4em 0 .4em !important; scroll-margin-top: 130px; }
.ppp-article > :is(p, span).e-paragraph-base { display: block; margin: 0 0 1.1em !important; font-family: var(--_font-body); font-size: 18px; line-height: 1.75; color: var(--_text); cursor: auto; }
.ppp-article > .e-heading-base:first-child, .ppp-article > .elementor-widget:first-child + .e-heading-base { margin-top: 0 !important; }
.ppp-article ul { padding-left: 1.2em; }
.ppp-article li { margin-bottom: .45em; }
.ppp-article li::marker { color: var(--_ink); }
.ppp-toc__list { list-style: none; padding-left: 0; counter-reset: none; }
.ppp-toc__list li.is-sub { list-style: none; margin-left: 12px; }
.ppp-toc__list li { padding-left: 12px; border-left: 2px solid var(--_line); }
.ppp-toc__list li:hover { border-left-color: var(--_ink); }
[class*="ppp-section-dark"] .ppp-price, .ppp-dark .ppp-price { color: var(--_white); }
[class*="ppp-section-dark"] .ppp-price-date, .ppp-dark .ppp-price-date, .ppp-dark .ppp-cta__retailer { color: rgba(255, 255, 255, .65); }
.ppp-hero-img { width: 100%; height: 100%; object-fit: contain; }
.ppp-media-fallback--hero { min-height: 320px; }
.ppp-media-fallback--hero .ppp-paddle-art { height: 82%; }

/* v1.3 — sortable column headers, no-match row */
.ppp-sort { all: unset; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; white-space: nowrap; }
.ppp-sort:hover { color: var(--_accent); }
.ppp-sort:focus-visible { outline: 2px solid var(--_accent); outline-offset: 3px; border-radius: 4px; }
.ppp-sort__icon { display: inline-block; width: 8px; height: 10px; opacity: .45; background: linear-gradient(to bottom, currentColor 0 0) 0 0 / 0 0 no-repeat; position: relative; }
.ppp-sort__icon::before, .ppp-sort__icon::after { content: ""; position: absolute; left: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; }
.ppp-sort__icon::before { top: 0; border-bottom: 4px solid currentColor; }
.ppp-sort__icon::after { bottom: 0; border-top: 4px solid currentColor; }
.ppp-sort.is-active { color: var(--_accent); }
.ppp-sort.is-active .ppp-sort__icon { opacity: 1; }
.ppp-sort.is-active:not(.is-asc) .ppp-sort__icon::before, .ppp-sort.is-asc .ppp-sort__icon::after { opacity: .25; }
.ppp-table tbody tr.ppp-table__nomatch td { text-align: center; padding: 28px 16px; color: var(--_muted); }
.ppp-table__nomatch .ppp-clear { all: unset; cursor: pointer; font-weight: 700; color: var(--_ink); text-decoration: underline; text-underline-offset: 3px; margin-left: 6px; }
.ppp-compare__preview { margin: 0; padding: 12px 16px; border: 1px dashed #d6b400; border-radius: 12px; background: #fffbe6; }
@media (max-width: 767px) {
	.ppp-table tbody tr.ppp-table__nomatch { display: block; }
	.ppp-table tbody tr.ppp-table__nomatch[hidden] { display: none; }
	.ppp-table tbody tr.ppp-table__nomatch td::before { display: none; }
}

/* v1.4.1 — override the theme's default <button> styles (pink border/hover) on plugin controls */
.ppp-compare .ppp-table thead button.ppp-sort,
.ppp-compare .ppp-table thead button.ppp-sort:hover,
.ppp-compare .ppp-table thead button.ppp-sort:focus,
.ppp-compare .ppp-table thead button.ppp-sort:active,
.ppp-compare .ppp-table tbody button.ppp-clear,
.ppp-compare .ppp-table tbody button.ppp-clear:hover,
.ppp-compare .ppp-table tbody button.ppp-clear:focus {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
	box-shadow: none;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	line-height: inherit;
}
.ppp-compare .ppp-table thead button.ppp-sort { color: var(--_white); }
.ppp-compare .ppp-table thead button.ppp-sort:hover,
.ppp-compare .ppp-table thead button.ppp-sort.is-active { color: var(--_accent); }
.ppp-compare .ppp-table thead button.ppp-sort:focus-visible { outline: 2px solid var(--_accent); outline-offset: 3px; }
.ppp-compare .ppp-table tbody button.ppp-clear { color: var(--_ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; margin-left: 6px; }

/* v1.5.1 — keep the placeholder paddle drawing inside the review image frame */
.ppp-media-fallback.ppp-media-fallback--hero { min-height: 0; height: 100%; width: 100%; }
.ppp-media-fallback--hero .ppp-paddle-art { height: auto; width: min(46%, 250px); max-height: 100%; }

/* v2.1 — bold sports-retail style: black / white / grey tiles, display headlines, square-ish corners */
.ppp-sc-title { font-family: var(--_font-display) !important; font-weight: 400 !important; text-transform: uppercase; letter-spacing: .01em !important; line-height: 1 !important; font-size: clamp(30px, 3.6vw, 46px); margin: 0 0 20px !important; }
.ppp-card { border: 0; box-shadow: none; background: transparent; }
.ppp-card:hover { box-shadow: none; transform: none; }
.ppp-card__media { background: var(--_surface); border-radius: var(--_radius); overflow: hidden; transition: background-color .2s ease; }
.ppp-card:hover .ppp-card__media { background: #e9e9e9; }
.ppp-card__media img, .ppp-card__img { transition: transform .3s ease; }
.ppp-card:hover .ppp-card__media img, .ppp-card:hover .ppp-paddle-art { transform: scale(1.04); }
.ppp-card:hover .ppp-paddle-art { transform: rotate(-12deg) scale(1.04); }
.ppp-card__body { padding: 16px 2px 4px; }
.ppp-card__badge { border-radius: 4px; background: var(--_accent); color: var(--_accent-ink); }
.ppp-card__title { font-weight: 700; font-size: 19px; letter-spacing: -.01em; }
.ppp-card__foot { border-top: 0; padding-top: 6px; }
.ppp-card--compact .ppp-card__body { padding: 14px 2px 4px; }
.ppp-score--pill { border-radius: 4px; }
.ppp-score--badge { border-radius: var(--_radius); }
.ppp-score--badge .ppp-score__value { font-family: var(--_font-display); font-weight: 400; font-size: 48px; }
.ppp-price { font-weight: 700; }
.ppp-table-wrap { box-shadow: none; }
.ppp-table thead th { font-family: var(--_font-head); }
.ppp-faq__item, .ppp-proscons__col, .ppp-brand-card, .ppp-style-card, .ppp-finder__option, .ppp-post-card, .ppp-toc, .ppp-disclosure { border-radius: var(--_radius); }
.ppp-brand-card__mark, .ppp-finder__num, .ppp-table__thumb { border-radius: 4px; }
.ppp-brand-card__mark { font-family: var(--_font-display); font-weight: 400; }
.ppp-finder__result { border-radius: var(--_radius); }
.ppp-post-card { border: 0; }
.ppp-post-card:hover { box-shadow: none; }
.ppp-summary__box h3, .ppp-toc__title { font-family: var(--_font-head); }
@media (max-width: 767px) { .ppp-table tbody tr { box-shadow: none; } }

/* v2.2 — compact, colour-coded comparison table (fits the page width; no sideways scrolling) */
.ppp-compare { --_power: #ff6b2c; --_power-ink: #c2410c; --_control: #2f7cf6; --_control-ink: #1d4ed8; --_spin: #8b5cf6; --_spin-ink: #6d28d9; }
.ppp-filters { box-shadow: none; border-top: 4px solid var(--_accent); }
.ppp-filter input[type=range] { accent-color: var(--_power); }
.ppp-table { min-width: 0; font-size: 13px; }
.ppp-table thead th { padding: 11px 10px; font-size: 11px; letter-spacing: .07em; border-bottom: 3px solid var(--_accent); }
.ppp-table thead th:nth-child(5) .ppp-sort::before,
.ppp-table thead th:nth-child(6) .ppp-sort::before,
.ppp-table thead th:nth-child(7) .ppp-sort::before { content: ""; width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.ppp-table thead th:nth-child(5) .ppp-sort::before { background: var(--_power); }
.ppp-table thead th:nth-child(6) .ppp-sort::before { background: var(--_control); }
.ppp-table thead th:nth-child(7) .ppp-sort::before { background: var(--_spin); }
.ppp-table tbody :is(th, td) { padding: 10px; }
.ppp-table tbody tr:nth-child(even) :is(th, td) { background: #fafafa; }
.ppp-table tbody tr:hover :is(th, td) { background: #f8fbe6; }
.ppp-table__paddle { min-width: 0; gap: 10px; font-size: 14px; font-weight: 700; }
.ppp-table__thumb { flex-basis: 40px; height: 40px; }
.ppp-table__thumb .ppp-paddle-art { height: 34px; }
.ppp-table__best { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 230px; margin-top: 3px; font: 400 12px/1.35 var(--_font-body); font-style: normal; color: var(--_muted); }
.ppp-tscore { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; padding: 7px 8px 6px; border-radius: 6px; font: 400 20px/1 var(--_font-display); letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.ppp-tscore--top { background: var(--_accent); color: var(--_accent-ink); }
.ppp-tscore--high { background: #16a34a; color: #fff; }
.ppp-tscore--mid { background: #f59e0b; color: #1c1917; }
.ppp-tscore--low { background: #9ca3af; color: #fff; }
.ppp-table .ppp-price { font-size: 15px; }
.ppp-table .ppp-price-date { font-size: 11px; margin-top: 3px; }
.ppp-table__specs span { display: block; white-space: nowrap; font-size: 12.5px; line-height: 1.45; color: var(--_text); }
.ppp-table__specs span:first-child { font-weight: 600; color: var(--_ink); }
.ppp-rate { white-space: nowrap; }
.ppp-rate .ppp-mini__num { display: inline-block; min-width: 34px; font-size: 14px; }
.ppp-rate .ppp-mini { width: 42px; height: 7px; margin: 0 0 0 4px; background: #ececec; }
.ppp-rate--power .ppp-mini__num { color: var(--_power-ink); }
.ppp-rate--power .ppp-mini__fill { background: var(--_power); }
.ppp-rate--control .ppp-mini__num { color: var(--_control-ink); }
.ppp-rate--control .ppp-mini__fill { background: var(--_control); }
.ppp-rate--spin .ppp-mini__num { color: var(--_spin-ink); }
.ppp-rate--spin .ppp-mini__fill { background: var(--_spin); }
.ppp-table__actions { white-space: nowrap; width: 1%; }
.ppp-table__actions .ppp-btn { display: flex; width: 100%; min-width: 112px; }
.ppp-table__review { display: block; margin-top: 6px; text-align: center; font: 600 12px/1.2 var(--_font-head); color: var(--_ink) !important; text-decoration: underline; text-underline-offset: 3px; }
.ppp-table__review:hover { color: var(--_control-ink) !important; }

/* Stack rows as cards below 960px so the buy button is always visible */
@media (max-width: 960px) {
	.ppp-table-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none; }
	.ppp-table thead { display: none; }
	.ppp-table, .ppp-table tbody, .ppp-table tr { display: block; }
	.ppp-table tbody tr { margin-bottom: 14px; border: 1px solid var(--_line); border-top: 4px solid var(--_accent); border-radius: var(--_radius); background: var(--_white); overflow: hidden; display: grid; grid-template-columns: repeat(3, 1fr); }
	.ppp-table tbody tr.ppp-table__nomatch { display: block; border-top-width: 1px; }
	.ppp-table tbody :is(th, td) { display: block; padding: 10px 14px; border-bottom: 1px solid var(--_line); background: var(--_white) !important; }
	.ppp-table tbody td::before { content: attr(data-label); display: block; font: 700 11px/1.3 var(--_font-body); text-transform: uppercase; letter-spacing: .08em; color: var(--_muted); margin-bottom: 4px; }
	.ppp-table tbody th, .ppp-table__actions, .ppp-table__specs { grid-column: 1 / -1; }
	.ppp-table tbody td[data-label="Price"] { grid-column: span 2; }
	.ppp-table tbody th { background: var(--_surface) !important; }
	.ppp-table__specs span { display: inline; }
	.ppp-table__specs span + span::before { content: " · "; color: var(--_muted); }
	.ppp-table__best { max-width: none; }
	.ppp-table__actions { width: auto; display: flex !important; align-items: center; gap: 14px; border-bottom: 0 !important; }
	.ppp-table__actions::before { display: none !important; }
	.ppp-table__actions .ppp-btn { flex: 1; width: auto; }
	.ppp-table__review { margin-top: 0; flex: 0 0 auto; }
}
@media (max-width: 480px) {
	.ppp-table tbody tr { grid-template-columns: 1fr 1fr; }
	.ppp-table tbody td[data-label="Score"], .ppp-table tbody td[data-label="Price"] { grid-column: span 1; }
}

/* v2.3 — colour-coded reviews: one colour per rating, score bands, tinted pros/cons */
:root {
	--_c-power: #ff6b2c; --_c-power-ink: #c2410c; --_c-power-bg: #fff1ea;
	--_c-control: #2f7cf6; --_c-control-ink: #1d4ed8; --_c-control-bg: #eaf2ff;
	--_c-spin: #8b5cf6; --_c-spin-ink: #6d28d9; --_c-spin-bg: #f3eeff;
	--_c-sweet: #16a34a; --_c-sweet-ink: #15803d; --_c-sweet-bg: #eafaf0;
	--_c-feel: #ec4899; --_c-feel-ink: #be185d; --_c-feel-bg: #fdeef6;
	--_c-move: #06b6d4; --_c-move-ink: #0e7490; --_c-move-bg: #e6f9fc;
	--_c-stable: #f59e0b; --_c-stable-ink: #b45309; --_c-stable-bg: #fff6e5;
	--_c-build: #64748b; --_c-build-ink: #334155; --_c-build-bg: #f1f5f9;
}

/* Score bands (cards, review header, list pills) */
.ppp-score--pill.ppp-score--top { background: var(--_accent); color: var(--_accent-ink); }
.ppp-score--pill.ppp-score--high { background: #16a34a; color: #fff; }
.ppp-score--pill.ppp-score--mid { background: #f59e0b; color: #1c1917; }
.ppp-score--pill.ppp-score--low { background: #9ca3af; color: #fff; }
.ppp-score--badge { border-left: 6px solid var(--_accent); }
.ppp-score--badge.ppp-score--high { border-left-color: #22c55e; }
.ppp-score--badge.ppp-score--high .ppp-score__value { color: #4ade80; }
.ppp-score--badge.ppp-score--mid { border-left-color: #f59e0b; }
.ppp-score--badge.ppp-score--mid .ppp-score__value { color: #fbbf24; }
.ppp-score--badge.ppp-score--low { border-left-color: #9ca3af; }
.ppp-score--badge.ppp-score--low .ppp-score__value { color: #e5e7eb; }

/* Card rating strip */
.ppp-card__rates { display: grid; gap: 6px; margin: 2px 0 4px; }
.ppp-card__rate { display: grid; grid-template-columns: 58px 1fr 34px; align-items: center; gap: 8px; }
.ppp-card__rate-label { font: 700 11px/1 var(--_font-head); text-transform: uppercase; letter-spacing: .06em; }
.ppp-card__track { height: 7px; border-radius: 999px; background: #ececec; overflow: hidden; }
.ppp-card__track > span { display: block; height: 100%; border-radius: inherit; }
.ppp-card__rate-num { font: 700 13px/1 var(--_font-head); text-align: right; font-variant-numeric: tabular-nums; }
.ppp-card__rate--power .ppp-card__rate-label, .ppp-card__rate--power .ppp-card__rate-num { color: var(--_c-power-ink); }
.ppp-card__rate--power .ppp-card__track > span { background: var(--_c-power); }
.ppp-card__rate--control .ppp-card__rate-label, .ppp-card__rate--control .ppp-card__rate-num { color: var(--_c-control-ink); }
.ppp-card__rate--control .ppp-card__track > span { background: var(--_c-control); }
.ppp-card__rate--spin .ppp-card__rate-label, .ppp-card__rate--spin .ppp-card__rate-num { color: var(--_c-spin-ink); }
.ppp-card__rate--spin .ppp-card__track > span { background: var(--_c-spin); }
.ppp-card__media { background: linear-gradient(160deg, #f4f4f4 0%, #eceff3 100%); }
.ppp-card:hover .ppp-card__media { background: linear-gradient(160deg, #f7fbe0 0%, #eef5c9 100%); }

/* Review rating bars */
.ppp-bar { grid-template-columns: 104px 1fr 48px; }
.ppp-bar__label { display: inline-flex; align-items: center; gap: 8px; }
.ppp-bar__label::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--_ink); flex: 0 0 10px; }
.ppp-bar__track { height: 10px; background: #ececec; }
.ppp-bar--power .ppp-bar__label::before, .ppp-bar--power .ppp-bar__fill { background: var(--_c-power); }
.ppp-bar--power .ppp-bar__num { color: var(--_c-power-ink); }
.ppp-bar--control .ppp-bar__label::before, .ppp-bar--control .ppp-bar__fill { background: var(--_c-control); }
.ppp-bar--control .ppp-bar__num { color: var(--_c-control-ink); }
.ppp-bar--spin .ppp-bar__label::before, .ppp-bar--spin .ppp-bar__fill { background: var(--_c-spin); }
.ppp-bar--spin .ppp-bar__num { color: var(--_c-spin-ink); }
.ppp-bar--sweet-spot .ppp-bar__label::before, .ppp-bar--sweet-spot .ppp-bar__fill { background: var(--_c-sweet); }
.ppp-bar--sweet-spot .ppp-bar__num { color: var(--_c-sweet-ink); }

/* Review sections: coloured side stripe + rating chip */
.ppp-review-section { --_sc: var(--_ink); --_sc-ink: var(--_ink); --_sc-bg: var(--_surface); position: relative; padding-left: 20px; }
.ppp-review-section::before { content: ""; position: absolute; left: 0; top: 26px; bottom: 26px; width: 4px; border-radius: 4px; background: var(--_sc); }
.ppp-review-section:first-child::before { top: 0; }
.ppp-review-section__head :is(h2, h3, h4) { color: var(--_sc-ink); }
.ppp-review-section__rating { padding: 6px 10px; border-radius: 6px; background: var(--_sc-bg); color: var(--_sc-ink); }
.ppp-review-section--power { --_sc: var(--_c-power); --_sc-ink: var(--_c-power-ink); --_sc-bg: var(--_c-power-bg); }
.ppp-review-section--control { --_sc: var(--_c-control); --_sc-ink: var(--_c-control-ink); --_sc-bg: var(--_c-control-bg); }
.ppp-review-section--spin { --_sc: var(--_c-spin); --_sc-ink: var(--_c-spin-ink); --_sc-bg: var(--_c-spin-bg); }
.ppp-review-section--sweet-spot { --_sc: var(--_c-sweet); --_sc-ink: var(--_c-sweet-ink); --_sc-bg: var(--_c-sweet-bg); }
.ppp-review-section--feel { --_sc: var(--_c-feel); --_sc-ink: var(--_c-feel-ink); --_sc-bg: var(--_c-feel-bg); }
.ppp-review-section--maneuverability { --_sc: var(--_c-move); --_sc-ink: var(--_c-move-ink); --_sc-bg: var(--_c-move-bg); }
.ppp-review-section--stability { --_sc: var(--_c-stable); --_sc-ink: var(--_c-stable-ink); --_sc-bg: var(--_c-stable-bg); }
.ppp-review-section--build-quality { --_sc: var(--_c-build); --_sc-ink: var(--_c-build-ink); --_sc-bg: var(--_c-build-bg); }

/* Specs: lime label accents and zebra rows */
.ppp-specs { border-top: 4px solid var(--_accent); }
.ppp-specs__row:nth-child(4n+1), .ppp-specs__row:nth-child(4n+2) { background: #fafafa; }
.ppp-specs dt { display: inline-flex; align-items: center; gap: 8px; }
.ppp-specs dt::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--_accent); box-shadow: 0 0 0 2px #0b0b0c; flex: 0 0 6px; }

/* Pros / cons tinted panels */
.ppp-proscons__col--pros { background: #f0fdf4; border-color: #bbf7d0; border-top-color: #16a34a; }
.ppp-proscons__col--cons { background: #fef2f2; border-color: #fecaca; border-top-color: #dc2626; }
.ppp-proscons__col--pros .ppp-proscons__title { color: #15803d; }
.ppp-proscons__col--cons .ppp-proscons__title { color: #b91c1c; }
.ppp-list--pros li::before { background: #16a34a; color: #fff; }
.ppp-list--cons li::before { background: #dc2626; color: #fff; }
.ppp-list--check li::before { background: var(--_accent); color: var(--_ink); }

/* FAQ: lime marker when open */
.ppp-faq__item { border-left: 4px solid var(--_line); }
.ppp-faq__item:hover { border-left-color: #c9e22e; }
.ppp-faq__item[open] { border-left-color: var(--_accent); background: #fbfdf0; }
.ppp-faq__item summary::after { color: var(--_c-control-ink); }

/* Final summary boxes */
.ppp-summary__box { border-top: 4px solid var(--_accent); }
.ppp-summary__box--good { border-top-color: #22c55e; }
.ppp-summary__box--good h3 { color: #4ade80; }
.ppp-summary__box--warn { border-top-color: #f59e0b; }
.ppp-summary__box--warn h3 { color: #fbbf24; }
.ppp-summary__box--neutral { border-top-color: #60a5fa; }
.ppp-summary__box--neutral h3 { color: #93c5fd; }

/* Comparison table uses the same palette */
.ppp-compare { --_power: var(--_c-power); --_power-ink: var(--_c-power-ink); --_control: var(--_c-control); --_control-ink: var(--_c-control-ink); --_spin: var(--_c-spin); --_spin-ink: var(--_c-spin-ink); }

/* v2.3.3 — outline the whole card (image through price and buttons) */
.ppp-card { border: 1px solid #dcdcdc; border-radius: var(--_radius); background: var(--_white); padding: 10px; transition: border-color .15s ease, box-shadow .15s ease; }
.ppp-card:hover { border-color: var(--_ink); box-shadow: 0 0 0 1px var(--_ink); transform: none; }
.ppp-card:focus-within { border-color: var(--_ink); box-shadow: 0 0 0 2px var(--_accent); }
.ppp-card__media { border-radius: calc(var(--_radius) - 2px); }
.ppp-card__body, .ppp-card--compact .ppp-card__body { padding: 14px 8px 6px; }
.ppp-card__foot { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--_line); }
.ppp-card--skeleton { border-style: dashed; }

/* v2.4 — table of contents on every long page: sidebar list or chip bar under the intro */
[data-ppp-toc-target] { scroll-margin-top: 130px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.ppp-toc { background: var(--_white); border: 1px solid var(--_line); border-left: 4px solid var(--_accent); }
.ppp-toc__list a.is-active { color: var(--_ink); font-weight: 700; }
.ppp-toc--list .ppp-toc__list li:has(a.is-active) { border-left-color: var(--_accent); }
.ppp-toc--bar { display: flex; align-items: center; gap: 12px 16px; padding: 12px 16px; }
.ppp-toc--bar .ppp-toc__title { margin: 0; flex: 0 0 auto; white-space: nowrap; }
.ppp-toc--bar .ppp-toc__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ppp-toc--bar .ppp-toc__list li { padding: 0; border: 0; }
.ppp-toc--bar .ppp-toc__list a { display: inline-block; padding: 7px 12px; border-radius: 999px; background: var(--_surface); color: var(--_ink); font: 600 13px/1.2 var(--_font-head); text-decoration: none; white-space: nowrap; transition: background-color .15s ease; }
.ppp-toc--bar .ppp-toc__list a:hover, .ppp-toc--bar .ppp-toc__list a.is-active { background: var(--_accent); color: var(--_accent-ink); text-decoration: none; }
@media (max-width: 767px) {
	.ppp-toc--bar { flex-direction: column; align-items: stretch; gap: 10px; }
	.ppp-toc--bar .ppp-toc__list { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
}

/* v2.4.1 — pinned header: the black bar stays on screen, the lime announcement bar scrolls away.
   --ppp-ann-h is measured by ppp.js; the admin-bar offsets only apply to logged-in editors. */
.elementor-location-header { position: sticky; top: calc(0px - var(--ppp-ann-h, 0px)); z-index: 1000; }
body.admin-bar .elementor-location-header { top: calc(32px - var(--ppp-ann-h, 0px)); }
@media (max-width: 782px) { body.admin-bar .elementor-location-header { top: calc(46px - var(--ppp-ann-h, 0px)); } }
@media (max-width: 600px) { body.admin-bar .elementor-location-header { top: calc(0px - var(--ppp-ann-h, 0px)); } }
.elementor-location-header > .e-con { box-shadow: 0 1px 0 rgba(255, 255, 255, .06); }
[data-ppp-toc-target] { scroll-margin-top: 100px; }

/* v2.5 — automatic award tiles */
.ppp-awards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 1024px) { .ppp-awards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .ppp-awards { grid-template-columns: 1fr; } }
.ppp-award { --_aw: var(--_accent); --_aw-ink: var(--_ink); position: relative; display: flex; flex-direction: column; gap: 10px; min-height: 230px; padding: 20px; background: var(--_white); border: 1px solid #dcdcdc; border-top: 5px solid var(--_aw); border-radius: var(--_radius); transition: border-color .15s ease, box-shadow .15s ease; }
.ppp-award:hover { box-shadow: 0 0 0 1px var(--_ink); }
.ppp-award__top { display: flex; align-items: center; gap: 10px; }
.ppp-award__num { font: 400 22px/1 var(--_font-display); color: var(--_aw-ink); }
.ppp-award__label { font: 700 12px/1.2 var(--_font-head); text-transform: uppercase; letter-spacing: .08em; color: var(--_aw-ink); }
.ppp-award__paddle { display: flex; align-items: center; gap: 12px; color: var(--_ink) !important; text-decoration: none; }
.ppp-award__paddle small { display: block; font: 700 11px/1.2 var(--_font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--_muted); margin-bottom: 2px; }
.ppp-award__thumb { flex: 0 0 52px; height: 52px; border-radius: 4px; background: var(--_surface); display: grid; place-items: center; overflow: hidden; }
.ppp-award__thumb img { width: 100%; height: 100%; object-fit: contain; }
.ppp-award__thumb .ppp-paddle-art { height: 44px; filter: none; }
.ppp-award__name { display: block; margin: 0; font: 700 17px/1.25 var(--_font-head); color: var(--_ink); }
.ppp-award__paddle:hover .ppp-award__name { text-decoration: underline; text-underline-offset: 3px; }
.ppp-award__stat { margin: 0; display: flex; align-items: baseline; gap: 6px; }
.ppp-award__metric { font: 700 11px/1 var(--_font-head); text-transform: uppercase; letter-spacing: .08em; color: var(--_muted); }
.ppp-award__stat strong { font: 400 26px/1 var(--_font-display); color: var(--_aw-ink); }
.ppp-award__max { font-size: 12px; color: var(--_muted); }
.ppp-award__why { margin: 0; font-size: 14px; line-height: 1.5; color: var(--_text); }
.ppp-award__link { margin-top: auto; font: 700 14px/1 var(--_font-head); color: var(--_ink) !important; text-decoration: none; }
.ppp-award__link:hover { text-decoration: underline; text-underline-offset: 4px; }
.ppp-award--overall { --_aw: var(--_accent); --_aw-ink: #0b0b0c; }
.ppp-award--premium { --_aw: #0b0b0c; --_aw-ink: #0b0b0c; }
.ppp-award--power { --_aw: var(--_c-power); --_aw-ink: var(--_c-power-ink); }
.ppp-award--control { --_aw: var(--_c-control); --_aw-ink: var(--_c-control-ink); }
.ppp-award--spin { --_aw: var(--_c-spin); --_aw-ink: var(--_c-spin-ink); }
.ppp-award--intermediate { --_aw: var(--_c-move); --_aw-ink: var(--_c-move-ink); }
.ppp-award--advanced { --_aw: var(--_c-feel); --_aw-ink: var(--_c-feel-ink); }
.ppp-award--beginner { --_aw: var(--_c-sweet); --_aw-ink: var(--_c-sweet-ink); }
.ppp-award--cta { background: var(--_ink); border-color: var(--_ink); border-top-color: var(--_accent); align-items: flex-start; }
.ppp-award--cta .ppp-award__why { color: rgba(255, 255, 255, .75); }
.ppp-award__cta-title { margin: 0; font: 700 20px/1.25 var(--_font-head); color: var(--_white); }
.ppp-award--cta .ppp-btn { margin-top: auto; }
.ppp-award--cta .ppp-btn--primary:hover { background: var(--_white); border-color: var(--_white); color: var(--_ink) !important; }
.ppp-awards__note { margin: 14px 0 0; font-size: 13px; color: var(--_muted); }
.ppp-awards__note a { color: var(--_ink); }

/* v2.6 — header Brands dropdown (desktop) and expandable list (mobile menu) */
.ppp-sc--ppp-brand-menu { display: contents; }
.ppp-bmenu { position: relative; display: inline-flex; align-items: center; }
.ppp-bmenu__toggle { display: inline-flex; align-items: center; gap: 6px; font: 600 15px/1.2 var(--_font-head); color: var(--_white) !important; text-decoration: none; padding: 8px 0; }
.ppp-bmenu__toggle:hover, .ppp-bmenu.is-open .ppp-bmenu__toggle { color: var(--_accent) !important; }
.ppp-bmenu__chev { width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .15s ease; }
.ppp-bmenu.is-open .ppp-bmenu__chev { transform: rotate(-135deg) translate(-2px, 0); }
.ppp-bmenu__panel { position: absolute; top: 100%; left: -16px; z-index: 1100; min-width: 240px; padding: 8px; background: var(--_white); border: 1px solid var(--_line); border-top: 4px solid var(--_accent); border-radius: var(--_radius); box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .45); display: none; }
.ppp-bmenu.is-open .ppp-bmenu__panel, .ppp-bmenu:focus-within .ppp-bmenu__panel { display: grid; gap: 2px; }
.ppp-bmenu__panel::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.ppp-bmenu__link { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 10px 12px; border-radius: 4px; font: 700 15px/1.2 var(--_font-head); color: var(--_ink) !important; text-decoration: none; white-space: nowrap; }
.ppp-bmenu__link:hover, .ppp-bmenu__link:focus-visible { background: #f4f9d8; }
.ppp-bmenu__count { font: 500 12px/1 var(--_font-body); color: var(--_muted); }
.ppp-bmenu__all { margin-top: 4px; border-top: 1px solid var(--_line); border-radius: 0 0 4px 4px; font-size: 14px; }
/* Mobile menu */
.ppp-bmenu-m { border-bottom: 1px solid rgba(255, 255, 255, .12); }
.ppp-bmenu-m__summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 14px; font: 700 18px/1.2 var(--_font-head); color: var(--_white); border-left: 3px solid transparent; }
.ppp-bmenu-m__summary::-webkit-details-marker { display: none; }
.ppp-bmenu-m__summary::after { content: "+"; font-weight: 400; font-size: 22px; color: var(--_accent); }
.ppp-bmenu-m[open] > .ppp-bmenu-m__summary::after { content: "−"; }
.ppp-bmenu-m__summary:hover, .ppp-bmenu-m__summary:focus-visible { color: var(--_accent); background: rgba(212, 240, 60, .12); border-left-color: var(--_accent); }
.ppp-bmenu-m__list { display: grid; padding: 0 0 10px 17px; }
.ppp-bmenu-m .ppp-bmenu__link { color: var(--_white) !important; font-size: 16px; padding: 10px 12px; }
.ppp-bmenu-m .ppp-bmenu__link:hover { background: rgba(212, 240, 60, .12); color: var(--_accent) !important; }
.ppp-bmenu-m .ppp-bmenu__count { color: rgba(255, 255, 255, .55); }
.ppp-bmenu-m .ppp-bmenu__all { border-top-color: rgba(255, 255, 255, .12); }

/* v2.7 — collapsible "On this page" dropdown (bar layout) */
.ppp-toc--bar { display: block; padding: 0; }
.ppp-toc--bar .ppp-toc__details > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; margin: 0; padding: 12px 16px; user-select: none; }
.ppp-toc--bar .ppp-toc__details > summary::-webkit-details-marker { display: none; }
.ppp-toc--bar .ppp-toc__count { font: 600 12px/1 var(--_font-body); letter-spacing: 0; text-transform: none; color: var(--_muted); }
.ppp-toc--bar .ppp-toc__chev { width: 8px; height: 8px; margin-left: auto; border-right: 2px solid var(--_ink); border-bottom: 2px solid var(--_ink); transform: rotate(45deg) translateY(-2px); transition: transform .15s ease; }
.ppp-toc--bar .ppp-toc__details[open] .ppp-toc__chev { transform: rotate(-135deg) translate(-2px, 0); }
.ppp-toc--bar .ppp-toc__details > summary:hover { background: #f8fbe6; }
.ppp-toc--bar .ppp-toc__details > summary:focus-visible { outline: 3px solid var(--_accent); outline-offset: -3px; }
.ppp-toc--bar .ppp-toc__details[open] > summary { border-bottom: 1px solid var(--_line); }
.ppp-toc--bar .ppp-toc__list { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 16px 14px; }
@media (max-width: 767px) {
	.ppp-toc--bar { flex-direction: initial; }
	.ppp-toc--bar .ppp-toc__list { flex-direction: column; flex-wrap: nowrap; overflow: visible; gap: 2px; padding: 8px 10px 10px; }
	.ppp-toc--bar .ppp-toc__list a { display: block; white-space: normal; background: transparent; border-radius: 4px; padding: 10px 10px; font-size: 15px; }
}

/* v2.8 — full-width scrolling brand strip */
.ppp-sc--ppp-logo-marquee { display: block; }
.ppp-marquee { position: relative; width: 100%; background: var(--_ink); color: var(--_white); padding: 22px 0 26px; overflow: hidden; }
.ppp-marquee__label { margin: 0 0 14px; text-align: center; font: 700 12px/1 var(--_font-head); letter-spacing: .16em; text-transform: uppercase; color: var(--_accent); }
.ppp-marquee__viewport { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); }
.ppp-marquee__track { display: flex; width: max-content; animation: ppp-marquee var(--ppp-marquee-duration, 40s) linear infinite; }
.ppp-marquee:hover .ppp-marquee__track, .ppp-marquee:focus-within .ppp-marquee__track { animation-play-state: paused; }
.ppp-marquee__list { display: flex; align-items: center; margin: 0; padding: 0; list-style: none; flex-shrink: 0; }
.ppp-marquee__item { display: flex; align-items: center; padding: 0 clamp(22px, 3vw, 44px); position: relative; }
.ppp-marquee__item::after { content: ""; position: absolute; right: -4px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--_accent); }
.ppp-marquee__item a { display: flex; align-items: center; text-decoration: none; }
.ppp-marquee__word { font: 400 clamp(28px, 3.4vw, 44px)/1 var(--_font-display); text-transform: uppercase; letter-spacing: .03em; color: rgba(255, 255, 255, .72); white-space: nowrap; transition: color .15s ease; }
.ppp-marquee__logo { height: clamp(28px, 3vw, 40px); width: auto; max-width: 180px; object-fit: contain; filter: brightness(0) invert(1); opacity: .72; transition: opacity .15s ease; }
.ppp-marquee__item a:hover .ppp-marquee__word, .ppp-marquee__item a:focus-visible .ppp-marquee__word { color: var(--_accent); }
.ppp-marquee__item a:hover .ppp-marquee__logo, .ppp-marquee__item a:focus-visible .ppp-marquee__logo { opacity: 1; }
.ppp-marquee__item a:focus-visible { outline: 2px solid var(--_accent); outline-offset: 6px; border-radius: 2px; }
@keyframes ppp-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.ppp-marquee__track { animation: none; width: 100%; justify-content: center; flex-wrap: wrap; }
	.ppp-marquee__list[aria-hidden="true"] { display: none; }
	.ppp-marquee__list { flex-wrap: wrap; justify-content: center; row-gap: 14px; }
	.ppp-marquee__viewport { -webkit-mask-image: none; mask-image: none; }
}
