/* Deliberately unlayered: adapters for core and plugin-owned content. */

/* One table skin. Intrinsic column sizing lets short tables fit. */
.gp-tablecard, .gp-tablewrap { min-width: 0; max-width: 100%; margin-inline: 0; padding: 0; overflow-x: auto; background: var(--gp-surface); border: 1px solid var(--gp-line); border-radius: var(--gp-r-lg); scrollbar-color: var(--gp-soft) var(--gp-paper-2); }
.gp-prose .gp-tablewrap { margin-block: var(--gp-compat-paragraph-space); }
/* The cue appears only when the table is wider than its card (nav.js sets .is-scrollable). */
:is(.gp-tablecard, .gp-tablewrap).is-scrollable::before { content: "Swipe to see more →"; display: block; position: sticky; left: 0; width: fit-content; max-width: 100%; box-sizing: border-box; padding: var(--gp-s2) var(--gp-s4); color: var(--gp-muted); background: var(--gp-paper-2); font: var(--gp-fs-sm)/var(--gp-lh-compact) var(--gp-font); }
:is(.gp-tablecard, .gp-tablewrap):focus-visible { outline: 2px solid var(--gp-ink); outline-offset: var(--gp-focus-width); }
:is(.gp-tablecard, .gp-tablewrap, .gp-prose) table { width: 100% !important; min-width: 0 !important; height: auto !important; margin: 0; border-collapse: separate !important; border-spacing: 0 !important; border: 0 !important; background: var(--gp-surface) !important; font: var(--gp-fs-md)/var(--gp-lh-compact) var(--gp-font); }
:is(.gp-tablecard, .gp-tablewrap, .gp-prose) :is(th, td) { padding: var(--gp-s3) var(--gp-s4) !important; border: 0 !important; border-top: 1px solid var(--gp-line-2) !important; color: var(--gp-ink-2) !important; background: var(--gp-surface) !important; text-align: left !important; vertical-align: top !important; font-size: var(--gp-fs-md) !important; font-weight: 400; min-width: var(--gp-verdict-label-width); overflow-wrap: break-word; }
:is(.gp-tablecard, .gp-tablewrap, .gp-prose) :is(thead th, th[scope], tbody > tr > th) { background: var(--gp-paper-2) !important; color: var(--gp-ink) !important; font-weight: 600; }
:is(.gp-tablecard, .gp-tablewrap, .gp-prose) :is(thead, tfoot) { border: 0 !important; }
:is(.gp-tablecard, .gp-tablewrap, .gp-prose) :is(td, th) > p { margin: 0; }
.gp-prose figure.gp-tablewrap figcaption { padding: var(--gp-s3) var(--gp-s4); border-top: 1px solid var(--gp-line-2); }
/* Builder paints nested text as well as cells; leave status icons intact. */
.gp-prose .wptb-table :is(.wptb-cell-content, .wptb-styled-list-item-text, .wptb-styled-list-item-text :is(p, span, strong, b), .wptb-text-container, .wptb-text-container :is(div, p, span, strong, b, ul, ol, li)) { background: var(--gp-transparent) !important; color: var(--gp-ink-2) !important; font-family: var(--gp-font) !important; font-size: var(--gp-fs-md) !important; font-weight: 400 !important; text-align: left !important; line-height: var(--gp-lh-compact) !important; white-space: normal !important; }
.gp-prose .wptb-table .wptb-text-container { padding: 0 !important; margin: 0 !important; }
.gp-prose .wptb-table .wptb-text-container p { margin-block: 0 var(--gp-s2) !important; }
.gp-prose .wptb-table .wptb-text-container :is(ul, ol) { padding-inline-start: var(--gp-s5) !important; }
.gp-prose .wptb-table .wptb-text-container ul { list-style: disc; }
.gp-prose .wptb-table .wptb-text-container ol { list-style: decimal; }
.gp-prose .wptb-table :is(th[scope="row"], th[scope="row"] .wptb-text-container *) { font-weight: 600 !important; }
.gp-prose .tablepress { --head-bg-color: var(--gp-paper-2); --head-text-color: var(--gp-ink); --odd-bg-color: var(--gp-surface); --even-bg-color: var(--gp-surface); --hover-bg-color: var(--gp-paper-2); --text-color: var(--gp-ink-2); --border-color: var(--gp-line-2); }

/* Review prose is never a wide comparison table. */
.gp-prose .review-penguin { min-width: 0; }
.gp-prose .review-penguin table { table-layout: fixed; }
.gp-prose .review-penguin :is(td, p) { min-width: 0; white-space: normal !important; overflow-wrap: anywhere; }
.gp-prose .review-penguin :is(.review-title, .penguin-review-h2, .penguin-review-h3) { color: var(--gp-ink); font: 600 var(--gp-fs-lg)/var(--gp-lh-toc) var(--gp-font); }
.gp-prose .review-penguin td[colspan] > div { gap: var(--gp-s4); }
.gp-prose .review-penguin td[colspan] > div > div { min-width: 0; }
.gp-prose .review-penguin .gp-tablewrap::before { content: none; }
@media (max-width: 40rem) {
	.gp-prose .review-penguin td[colspan] > div { flex-direction: column; }
	.gp-prose .review-penguin td[colspan] > div > div { width: 100% !important; }
}

/* WS Form keeps its grid, validation visibility and anti-spam hooks. */
.gp-form .wsf-form { color: var(--gp-ink-2); font: var(--gp-fs-md)/var(--gp-lh-compact) var(--gp-font); position: relative; z-index: var(--gp-z-art); min-width: 0; }
.gp-form .wsf-form .wsf-label { color: var(--gp-ink-2) !important; font: 500 var(--gp-fs-sm)/var(--gp-lh-compact) var(--gp-font); }
.gp-form .wsf-form :is(input.wsf-field:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), textarea.wsf-field, select.wsf-field) { box-sizing: border-box; width: 100%; min-width: 0; min-height: var(--gp-compat-button-height); padding: var(--gp-s3) var(--gp-space-label); border: 1px solid var(--gp-line-strong) !important; border-radius: var(--gp-r-sm); background: var(--gp-surface) !important; color: var(--gp-ink) !important; font: inherit; box-shadow: none; }
.gp-form .wsf-form textarea.wsf-field { min-height: var(--gp-textarea-height); }
.gp-form .wsf-form .wsf-field::placeholder, .gp-intake input::placeholder, .gp-intake textarea::placeholder { color: var(--gp-soft) !important; opacity: 1; }
.gp-form .wsf-form :is([type="checkbox"], [type="radio"]) { accent-color: var(--gp-ink); width: var(--gp-space-panel); height: var(--gp-space-panel); border-color: var(--gp-line-strong); }
.gp-form .wsf-form :is(.wsf-label-position-right, .wsf-label-position-left) { min-height: var(--gp-control-size-fixed); padding-block: var(--gp-s3); }
.gp-form .wsf-form :is(button[type="submit"], input[type="submit"]) { min-height: var(--gp-compat-button-height); padding: var(--gp-s3) var(--gp-s5); border: 1px solid var(--gp-ink); border-radius: var(--gp-r-sm); background: var(--gp-ink) !important; color: var(--gp-surface) !important; font: 500 var(--gp-fs-md)/var(--gp-lh-toc) var(--gp-font); cursor: pointer; }
.gp-form .wsf-form :is(button[type="submit"], input[type="submit"]):hover { background: var(--gp-ink-2) !important; text-decoration: none; }
.gp-form .wsf-form :is(input, textarea, select, button):focus-visible { outline: 2px solid var(--gp-ink); outline-offset: var(--gp-focus-width); box-shadow: none; }
.gp-form .wsf-form .wsf-help { color: var(--gp-muted); font-size: var(--gp-fs-sm); }
.gp-form .wsf-form :is(.wsf-invalid-feedback, .wsf-text-danger) { color: var(--gp-warn-ink) !important; font-size: var(--gp-fs-md); }
.gp-form .wsf-form :is(.wsf-field[aria-invalid="true"], .wsf-field.wsf-invalid), .gp-form .wsf-form.wsf-validated .wsf-field:invalid { border-color: var(--gp-warn-ink) !important; }
.gp-form .wsf-form :disabled { opacity: 0.65; cursor: not-allowed; }
.gp-form .wsf-form[data-id="2"] .wsf-fields, .gp-form .wsf-form[data-id="14"] .wsf-fields { align-items: flex-start; }
@media (max-width: 40rem) {
	.gp-form .wsf-form:is([data-id="2"], [data-id="14"]) .wsf-field-wrapper { --wsf-c: 12; }
}

/* ID specificity and !important beat Forge's later per-ID all:initial. */
.gp-prose [id^="forge-cta-"].forge-cta { display: block !important; box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; margin-block: var(--gp-s6) !important; padding: var(--gp-s6) !important; border: 1px solid var(--gp-gold-line) !important; border-radius: var(--gp-r-lg) !important; background: var(--gp-gold-wash) !important; color: var(--gp-ink) !important; font: var(--gp-fs-base)/var(--gp-lh-compact) var(--gp-font) !important; box-shadow: none !important; overflow: visible !important; position: relative !important; }
.gp-prose [id^="forge-cta-"].forge-cta * { box-sizing: border-box; font-family: var(--gp-font) !important; min-width: 0; }
.gp-prose [id^="forge-cta-"].forge-cta :is(.forge-cta-content-wrapper, .forge-cta-side-layout, .forge-cta-buttons) { display: flex; flex-wrap: wrap !important; gap: var(--gp-s4) !important; }
.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-content { flex: 1 1 var(--gp-grid-card-min); }
.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-headline { color: var(--gp-ink) !important; font-size: var(--gp-fs-h3) !important; line-height: var(--gp-lh-title); }
.gp-prose [id^="forge-cta-"].forge-cta :is(.forge-cta-text, .forge-cta-phone, .forge-cta-fine-print) { color: var(--gp-ink-2) !important; opacity: 1 !important; white-space: normal !important; overflow-wrap: anywhere; }
.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-text { font-size: var(--gp-fs-base) !important; }
.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-fine-print { font-size: var(--gp-fs-sm) !important; }
.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-button { display: inline-flex; justify-content: center; align-items: center; min-height: var(--gp-control-size-fixed); max-width: 100%; padding: var(--gp-s3) var(--gp-s5) !important; border-radius: var(--gp-r-pill) !important; white-space: normal !important; font-size: var(--gp-fs-md) !important; text-decoration: none !important; transform: none !important; }
.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-button-primary { background: var(--gp-ink) !important; border-color: var(--gp-ink) !important; color: var(--gp-surface) !important; }
.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-button-secondary { background: var(--gp-surface) !important; border-color: var(--gp-line-strong) !important; color: var(--gp-ink) !important; }
.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-button:hover { background: var(--gp-paper-3) !important; color: var(--gp-ink) !important; }
.gp-prose [id^="forge-cta-"].forge-cta :is(a, button):focus-visible { outline: 2px solid var(--gp-ink); outline-offset: var(--gp-focus-width); }
.gp-prose [id^="forge-cta-"].forge-cta :is(.forge-cta-image-full, .forge-cta-image-top, .forge-cta-image-side) { max-width: 100%; height: auto; border-radius: var(--gp-r-md) !important; }
.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-bg-overlay { background: var(--gp-gold-wash) !important; opacity: 0.95 !important; }
@media (max-width: 40rem) {
	.gp-prose [id^="forge-cta-"].forge-cta .forge-cta-side-layout { flex-direction: column !important; align-items: stretch; }
}

.gp-prose ul.wp-block-list { list-style: disc; }
.gp-prose ol.wp-block-list { list-style: decimal; }
.gp-prose :is(ul, ol).wp-block-list { padding-inline-start: var(--gp-s6); }
.gp-prose ul.wp-block-list ul { list-style: circle; }
.gp-prose ol.wp-block-list ol { list-style: lower-alpha; }

/* wpDiscuz selectors retain editor, voting and reply behavior. */
#wpdcom { color: var(--gp-ink-2); font-family: var(--gp-font); max-width: 100%; }
#wpdcom .wpd-comment-text, #wpdcom .wpd-comment-text p, #wpdcom .ql-editor { color: var(--gp-ink-2); font: var(--gp-fs-base)/var(--gp-lh-body) var(--gp-font); overflow-wrap: anywhere; }
#wpdcom :is(.wpd-comment-author, .wpd-comment-author a, .wpd-comment-label, .wpd-auth) { color: var(--gp-ink) !important; font-size: var(--gp-fs-md); }
#wpdcom .wpd-comment-label { background: var(--gp-paper-3); border-radius: var(--gp-r-pill); padding: var(--gp-s1) var(--gp-s2); }
#wpdcom :is(.wpd-comment-date, .wpd-comment-date a, .wpd-vote-result) { color: var(--gp-muted); font-size: var(--gp-fs-sm); }
#wpdcom :is(input.wpd-field, textarea.wpd-field, .ql-container) { border: 1px solid var(--gp-line-strong); border-radius: var(--gp-r-sm); background: var(--gp-surface); color: var(--gp-ink); font: var(--gp-fs-md)/var(--gp-lh-compact) var(--gp-font); }
#wpdcom input.wpd-field { min-height: var(--gp-compat-button-height); }
#wpdcom ::placeholder { color: var(--gp-soft); opacity: 1; }
#wpdcom .wpd-prim-button { min-height: var(--gp-control-size-fixed); border: 1px solid var(--gp-ink); border-radius: var(--gp-r-pill); background: var(--gp-ink); color: var(--gp-surface); padding: var(--gp-s2) var(--gp-s4); font-size: var(--gp-fs-md); }
#wpdcom :is(.wpd-reply-button, .wpd-vote-up, .wpd-vote-down, .wpd-view-replies) { display: inline-flex; align-items: center; justify-content: center; min-width: var(--gp-control-size-fixed); min-height: var(--gp-control-size-fixed); color: var(--gp-ink-2); border-radius: var(--gp-r-pill); }
#wpdcom :is(.wpd-prim-button, .wpd-reply-button, .wpd-vote-up, .wpd-vote-down):hover { background: var(--gp-paper-3); color: var(--gp-ink); text-decoration: none; }
#wpdcom :is(a, button, input, textarea, [tabindex], .ql-editor):focus-visible { outline: 2px solid var(--gp-ink); outline-offset: var(--gp-focus-width); }

.gp-prose :is(.wp-block-coblocks-alert, .callout) { padding: var(--gp-s5) var(--gp-s6); border: var(--gp-border-dashed-width) dashed var(--gp-line-strong); border-radius: var(--gp-r-lg); background: var(--gp-gold-wash); color: var(--gp-ink-2); }
.gp-prose .callout { display: flex; align-items: flex-start; gap: var(--gp-s4); margin-block: var(--gp-s6); }
.gp-prose .callout .co_icon { flex: 0 0 auto; margin: 0; font-size: var(--gp-fs-h3); text-shadow: none; }
.gp-prose .callout .co_content { min-width: 0; font-size: var(--gp-fs-base); }
.gp-prose :is(.wp-block-coblocks-alert__title, .wp-block-coblocks-alert__text) { color: var(--gp-ink-2); }
.gp-prose .wp-block-coblocks-alert__title { font-size: var(--gp-fs-base); font-weight: 500; }
.gp-prose :is(.co_content, .wp-block-coblocks-alert) > :first-child { margin-top: 0; }
.gp-prose :is(.co_content, .wp-block-coblocks-alert) > :last-child { margin-bottom: 0; }

/* Novashare keeps its brand-coloured circles; the icons on them are white. */
body .ns-buttons a.ns-button { transform: none; text-decoration: none; border-radius: var(--gp-r-pill); }
body .ns-buttons a.ns-button .ns-button-wrapper, body .ns-buttons a.ns-button .ns-button-icon { border-radius: var(--gp-r-pill) !important; }
body .ns-buttons a.ns-button .ns-button-icon { color: var(--gp-white) !important; }
body .ns-buttons a.ns-button:focus-visible { outline: 2px solid var(--gp-ink); outline-offset: var(--gp-focus-width); }

.gp-prose .wp-block-details { padding: 0; border: 1px solid var(--gp-line); border-radius: var(--gp-r-md); background: var(--gp-surface); }
.gp-prose .wp-block-details > summary { display: flex; justify-content: space-between; gap: var(--gp-s4); padding: var(--gp-s4) var(--gp-s5); font-weight: 500; list-style: none; cursor: pointer; }
.gp-prose .wp-block-details > summary::-webkit-details-marker { display: none; }
.gp-prose .wp-block-details > summary::after { content: "+"; font-family: var(--gp-mono); color: var(--gp-soft); }
.gp-prose .wp-block-details[open] > summary::after { content: "−"; }
.gp-prose .wp-block-details > summary:focus-visible { outline: 2px solid var(--gp-ink); outline-offset: var(--gp-focus-width); border-radius: var(--gp-r-md); }
.gp-prose .wp-block-details > :not(summary) { margin-inline: var(--gp-s5); }
.gp-prose .wp-block-details > :last-child:not(summary) { margin-bottom: var(--gp-s5); }

@media print {
	:is(.gp-tablecard, .gp-tablewrap) { overflow: visible; border-color: var(--gp-print-line); }
	:is(.gp-tablecard, .gp-tablewrap)::before { content: none; }
	:is(.gp-tablecard, .gp-tablewrap, .gp-prose) table { font-size: var(--gp-fs-print-table) !important; }
	:is(.gp-tablecard, .gp-tablewrap, .gp-prose) :is(th, td) { min-width: 0; padding: var(--gp-print-cell-block) var(--gp-print-cell-inline) !important; }
	:is(.gp-tablecard, .gp-tablewrap, .gp-prose) thead { display: table-header-group; }
	:is(.gp-tablecard, .gp-tablewrap, .gp-prose) tr { break-inside: avoid; }
}

/* Second pass from the post-fix capture: plugin text and controls that stayed under 14px / 44px on phones. */
:is(.gp-tablecard, .gp-tablewrap) :is(td, th) :is(strong, b, span, p, li) { font-size: inherit !important; }
#wpdcom :is(.wpd-comment-label, .wpd-comment-label span, .wpd-view-replies, .wpd-view-replies-text, .wpd-comment-last-edited) { font-size: var(--gp-fs-md) !important; }
#wpdcom .ql-toolbar button { width: var(--gp-control-size-fixed) !important; height: var(--gp-control-size-fixed) !important; padding: var(--gp-space-standard) !important; }
#wpdcom :is(.wc_tw, .wc_whatsapp, .wc_fb, .wc_vk, .wc_ok) { display: inline-grid !important; place-items: center; min-width: var(--gp-control-size-fixed); min-height: var(--gp-control-size-fixed); }
.gp-intake__plan input { width: var(--gp-space-panel); height: var(--gp-space-panel); }
.gp-form .wsf-form :is(button[type="submit"], input[type="submit"]) { border-color: var(--gp-ink) !important; box-shadow: none !important; }
#wpdcom :is(.wpd-vote-up, .wpd-vote-down, .wpd-reply-button) svg { width: var(--gp-space-control) !important; height: var(--gp-space-control) !important; }
#wpdcom .wpd-comment-label { background: var(--gp-paper-3) !important; color: var(--gp-ink-2) !important; border: 0 !important; }

/* WS Form reCAPTCHA: the floating badge is hidden; the footer carries the notice Google requires in its place. */
.grecaptcha-badge { visibility: hidden; }
