/* =====================================================================
   Planet 3DP UI 1.0  (direction A "Spec Sheet")
   Tokens on :root, dark palette on html[data-theme="dark"].
   Components are p3-* classes. New Elementor templates set NO colors in
   widget settings; everything comes from here so dark mode works.
   ===================================================================== */

:root {
  --p-font-head: 'Space Grotesk', system-ui, sans-serif;
  --p-font-body: 'Open Sans', system-ui, sans-serif;

  --p-bg: #FCFCFC;
  --p-surface: #FFFFFF;
  --p-surface-2: #F6F6F6;
  --p-photo: #FFFFFF;          /* product photos sit on white in both themes */
  --p-ink: #14254B;            /* headings, strong text */
  --p-text: #313135;
  --p-text-2: #4A505A;
  --p-mute: #5F6670;
  --p-line: #D4D6DD;
  --p-line-2: #E4E9E9;
  --p-accent: #29BFE4;         /* fills only; text on it is --p-on-accent */
  --p-on-accent: #14254B;
  --p-link: #065E99;
  --p-tint: #E6F7FC;
  --p-tint-ink: #065E99;
  --p-solid: #14254B;          /* primary button fill */
  --p-on-solid: #FFFFFF;
  --p-band: #14254B;           /* newsletter band */
  --p-band-2: #0F1D3D;
  --p-band-line: #3A4C75;
  --p-band-text: #C9D2E3;
  --p-video: #0D1A38;          /* video hero band, dark in both themes */
  --p-warn-bg: #FEE2E2;
  --p-warn-ink: #9F1D1D;
  --p-shadow: 0 1px 2px rgba(20, 37, 75, .04), 0 8px 24px rgba(20, 37, 75, .06);
  --p-shadow-lift: 0 2px 4px rgba(20, 37, 75, .05), 0 18px 40px rgba(20, 37, 75, .12);
  --p-radius: 14px;
  --p-radius-sm: 8px;
  --p-wrap: 1280px;
  --p-gutter: clamp(16px, 4vw, 40px);
  --p-ease: cubic-bezier(.2, .7, .2, 1);
  /* The page advertises "light dark", so without this a dark-OS visitor in light mode gets the browser's black canvas
     behind every transparent area (reported on /manufacturer/ 2026-10-08). */
  color-scheme: light;
}
html { background-color: var(--p-bg); }
html[data-theme="light"] body { background-color: var(--p-bg); }

html[data-theme="dark"] {
  --p-bg: #0B1530;
  --p-surface: #111E3D;
  --p-surface-2: #16264A;
  --p-ink: #F2F5FA;
  --p-text: #D7DEEA;
  --p-text-2: #B8C2D4;
  --p-mute: #93A0B8;
  --p-line: #2A3B63;
  --p-line-2: #22335A;
  --p-on-accent: #0B1530;
  --p-link: #6AD6F0;
  --p-tint: rgba(41, 191, 228, .14);
  --p-tint-ink: #7FDDF2;
  --p-solid: #29BFE4;
  --p-on-solid: #0B1530;
  --p-band: #16264A;
  --p-band-2: #0B1530;
  --p-band-line: #2A3B63;
  --p-video: #070F24;
  --p-warn-bg: rgba(239, 68, 68, .16);
  --p-warn-ink: #FCA5A5;
  --p-shadow: 0 1px 2px rgba(0, 0, 0, .3);
  --p-shadow-lift: 0 18px 40px rgba(0, 0, 0, .45);
  /* Voxel's own palette, flipped */
  --ts-shade-1: #E6EBF3;
  --ts-shade-2: #A9B4C8;
  --ts-shade-3: #5D6C8C;
  --ts-shade-4: #2A3B63;
  --ts-shade-5: #16264A;
  --ts-shade-6: #111E3D;
  --ts-shade-7: #0B1530;
  color-scheme: dark;
}

html.p3-theme-switching *, html.p3-theme-switching *::before, html.p3-theme-switching *::after {
  transition: background-color .3s ease, color .3s ease, border-color .3s ease !important;
}

/* ---------------------------------------------------------------- base */
.p3-scope { font-family: var(--p-font-body); color: var(--p-text); }
.p3-scope a { color: var(--p-link); }
.p3-scope img { max-width: 100%; height: auto; }
.p3-wrap { max-width: var(--p-wrap) !important; margin-inline: auto !important; padding-inline: var(--p-gutter) !important; box-sizing: border-box; width: 100%; }
.p3-wrap .p3-wrap { padding-inline: 0 !important; }
.p3-scope .elementor-widget { margin-bottom: 0; }
.p3-scope .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.p3-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.p3-eyebrow { font-family: var(--p-font-head); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--p-link); margin: 0 0 10px; }
.p3-h1 { font-family: var(--p-font-head); font-weight: 700; font-size: clamp(40px, 6vw, 84px); line-height: .98; letter-spacing: -.03em; color: var(--p-ink); margin: 0 0 22px; }
.p3-h1--page { font-size: clamp(36px, 5vw, 64px); line-height: 1; margin-bottom: 16px; }
.p3-h2 { font-family: var(--p-font-head); font-weight: 700; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.08; letter-spacing: -.02em; color: var(--p-ink); margin: 0; }
.p3-h3 { font-family: var(--p-font-head); font-weight: 700; font-size: 20px; line-height: 1.3; color: var(--p-ink); margin: 0; }
.p3-lead { font-size: 18px; line-height: 1.6; color: var(--p-text-2); margin: 0; max-width: 640px; }
.p3-muted { color: var(--p-mute); font-size: 14px; line-height: 1.6; }

.p3-head { display: flex; flex-wrap: wrap; gap: 16px 24px; justify-content: space-between; align-items: flex-end; margin-bottom: 28px; }
.p3-head-actions { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }

/* ---------------------------------------------------------------- buttons + links */
.p3-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px;
  border-radius: var(--p-radius-sm); border: 1.5px solid transparent; font-family: var(--p-font-head); font-weight: 700; font-size: 16px;
  line-height: 1; text-decoration: none !important; cursor: pointer; white-space: nowrap;
  transition: transform .2s var(--p-ease), box-shadow .2s var(--p-ease), background-color .2s, color .2s, border-color .2s;
}
.p3-btn:hover { transform: translateY(-1px); box-shadow: var(--p-shadow); }
.p3-btn:active { transform: translateY(0); box-shadow: none; }
.p3-btn:focus-visible, .p3-seg-btn:focus-visible, .p3-theme-toggle:focus-visible, .p3-card-link:focus-visible { outline: 3px solid var(--p-accent); outline-offset: 2px; }
.p3-btn--accent { background: var(--p-accent); color: var(--p-on-accent) !important; }
.p3-btn--accent:hover { background: #4FCBEA; }
.p3-btn--solid { background: var(--p-solid); color: var(--p-on-solid) !important; }
.p3-btn--solid:hover { filter: brightness(1.12); }
.p3-btn--outline { background: transparent; color: var(--p-ink) !important; border-color: var(--p-line); }
.p3-btn--outline:hover { border-color: var(--p-ink); }
.p3-btn--outline-strong { background: transparent; color: var(--p-ink) !important; border-color: var(--p-ink); }
.p3-btn--outline-strong:hover { background: var(--p-ink); color: var(--p-bg) !important; }
.p3-btn--inverse { background: transparent; color: #fff !important; border-color: #3A4C75; }
.p3-btn--inverse:hover { border-color: #fff; }
.p3-btn--sm { min-height: 44px; padding: 0 16px; font-size: 14px; }
.p3-btn--block { width: 100%; }
.p3-btn svg { flex: 0 0 auto; }

.p3-more { font-family: var(--p-font-head); font-weight: 700; color: var(--p-link) !important; text-decoration: none !important; display: inline-flex; align-items: center; gap: 6px; }
.p3-more::after { content: "\2192"; transition: transform .2s var(--p-ease); }
.p3-more:hover::after { transform: translateX(4px); }

.p3-tag { display: inline-flex; align-items: center; background: var(--p-tint); color: var(--p-tint-ink); font-family: var(--p-font-head); font-weight: 700; font-size: 12px; letter-spacing: .04em; border-radius: 999px; padding: 4px 10px; line-height: 1.3; }
.p3-tag--plain { background: var(--p-surface-2); color: var(--p-text-2); }
.p3-tag--warn { background: var(--p-warn-bg); color: var(--p-warn-ink); }
.p3-tag:empty, .p3-chip:empty { display: none; }

/* ---------------------------------------------------------------- header */
.p3-header { background: var(--p-surface); border-bottom: 1px solid var(--p-line); }
.p3-header .elementor-nav-menu--main .elementor-item { font-family: var(--p-font-head) !important; font-weight: 500; font-size: 16px; color: var(--p-ink) !important; padding: 10px 0 !important; position: relative; }
.p3-header .elementor-nav-menu--main .elementor-item::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 2.5px; background: var(--p-accent); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--p-ease); opacity: 1 !important; top: auto !important; }
.p3-header .elementor-nav-menu--main .elementor-item:hover::after,
.p3-header .elementor-nav-menu--main .elementor-item.elementor-item-active::after { transform: scaleX(1); }
.p3-header .elementor-nav-menu--main .elementor-item.elementor-item-active { font-weight: 700; }
.p3-header .elementor-nav-menu--main .elementor-item::before { display: none !important; }
.p3-header-tools { display: flex; align-items: center; gap: 10px; }
.p3-logo { display: inline-flex; align-items: center; }
.p3-logo img { height: 50px; width: auto; display: block; }
.p3-logo .p3-logo-dark { display: none; }
html[data-theme="dark"] .p3-logo .p3-logo-light { display: none; }
html[data-theme="dark"] .p3-logo .p3-logo-dark { display: block; }
.p3-header .elementor-menu-toggle { color: var(--p-ink) !important; background: transparent !important; }
.p3-header .elementor-menu-toggle svg { fill: var(--p-ink) !important; }
.p3-header .elementor-nav-menu--dropdown { background: var(--p-surface) !important; border: 1px solid var(--p-line); border-radius: 12px; box-shadow: var(--p-shadow-lift); }
.p3-header .elementor-nav-menu--dropdown a { color: var(--p-ink) !important; background: transparent !important; font-family: var(--p-font-head); font-weight: 600; }
.p3-header .elementor-nav-menu--dropdown a:hover, .p3-header .elementor-nav-menu--dropdown a.elementor-item-active { background: var(--p-surface-2) !important; }

.p3-theme-toggle { width: 46px; height: 46px; border-radius: 10px; border: 1.5px solid var(--p-line); background: transparent; color: var(--p-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; transition: border-color .2s, transform .2s var(--p-ease); }
.p3-theme-toggle:hover { border-color: var(--p-ink); transform: rotate(-12deg); }
.p3-theme-toggle .p3-i-sun { display: none; }
html[data-theme="dark"] .p3-theme-toggle .p3-i-sun { display: block; }
html[data-theme="dark"] .p3-theme-toggle .p3-i-moon { display: none; }

/* ---------------------------------------------------------------- footer */
.p3-footer { background: var(--p-surface); border-top: 1px solid var(--p-line); font-family: var(--p-font-body); }
.p3-footer-top { display: flex; flex-wrap: wrap; gap: 40px 64px; justify-content: space-between; padding-block: 56px 32px; }
.p3-footer-brand { flex: 1 1 260px; min-width: 0; }
.p3-footer-brand p { font-size: 14px; line-height: 1.6; color: var(--p-mute); margin: 16px 0 0; max-width: 300px; }
.p3-footer-cols { display: flex; flex-wrap: wrap; gap: 32px 64px; font-size: 14px; }
.p3-footer-col { display: flex; flex-direction: column; gap: 10px; }
.p3-footer-col h2 { font-family: var(--p-font-head); font-weight: 700; font-size: 15px; color: var(--p-ink); margin: 0 0 2px; }
.p3-footer a { color: var(--p-text-2) !important; text-decoration: none !important; transition: color .2s; }
.p3-footer a:hover { color: var(--p-link) !important; }
.p3-footer-bottom { display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: space-between; padding-block: 20px 32px; border-top: 1px solid var(--p-line-2); font-size: 13px; color: var(--p-mute); }
.p3-footer-legal { display: flex; flex-wrap: wrap; gap: 6px 18px; }

/* ---------------------------------------------------------------- page sections */
.p3-page { background: var(--p-bg); }
.p3-band-white { background: var(--p-surface) !important; background-image: none !important; border-bottom: 1px solid var(--p-line); }
.p3-band-white::before, .p3-band-white::after { display: none !important; }
.p3-section { padding-top: clamp(64px, 8vw, 96px); }
.p3-section--last { padding-bottom: clamp(64px, 8vw, 96px); }

/* hero (home) */
.p3-hero { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; padding-block: clamp(48px, 7vw, 96px) 56px; }
.p3-hero-copy { flex: 999 1 560px; min-width: 0; }
.p3-search { display: flex; border: 1.5px solid var(--p-ink); border-radius: 10px; overflow: hidden; max-width: 620px; background: var(--p-surface); }
.p3-search input { flex: 1 1 200px; min-width: 0; border: 0 !important; padding: 18px 20px !important; font: 16px var(--p-font-body); color: var(--p-ink); background: transparent !important; outline: none; box-shadow: none !important; }
.p3-search button { flex: 0 0 auto; border: 0; background: var(--p-solid); color: var(--p-on-solid); font: 700 16px var(--p-font-head); padding: 0 28px; min-height: 56px; cursor: pointer; transition: filter .2s; }
.p3-search button:hover { filter: brightness(1.12); }
.p3-try { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 18px; font-size: 14px; color: var(--p-mute); }
.p3-try a { color: var(--p-link); }

/* spec sheet card */
.p3-sheet { flex: 1 1 360px; min-width: 0; max-width: 460px; background: var(--p-surface); border: 1px solid var(--p-line); border-radius: var(--p-radius); overflow: hidden; transition: box-shadow .3s var(--p-ease), transform .3s var(--p-ease); }
.p3-sheet:hover { box-shadow: var(--p-shadow-lift); transform: translateY(-3px); }
.p3-sheet-top { display: flex; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid var(--p-line-2); font: 700 12px var(--p-font-head); letter-spacing: .1em; text-transform: uppercase; color: var(--p-mute); }
.p3-sheet-top span:last-child { color: var(--p-link); }
.p3-sheet-photo { background: var(--p-photo); padding: 20px; }
.p3-sheet-photo img { width: 100%; aspect-ratio: 4/3; object-fit: contain; display: block; transition: transform .5s var(--p-ease); }
.p3-sheet:hover .p3-sheet-photo img { transform: scale(1.04); }
.p3-sheet-body { padding: 0 20px 20px; }
.p3-sheet-brand { font-size: 13px; color: var(--p-mute); padding-top: 16px; }
.p3-sheet-name { font: 700 28px var(--p-font-head); color: var(--p-ink); margin: 2px 0 14px; }
.p3-dl { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--p-line-2); }
.p3-dl > div { padding: 12px 0; border-bottom: 1px solid var(--p-line-2); }
.p3-dl dt { font-size: 12px; color: var(--p-mute); }
.p3-dl dd { margin: 2px 0 0; font: 600 16px var(--p-font-head); color: var(--p-ink); }
.p3-sheet-actions { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }
.p3-sheet-actions .p3-btn { flex: 1 1 140px; }

/* stats rule */
.p3-stats { background: var(--p-surface); border-block: 1px solid var(--p-line); }
.p3-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.p3-stat { padding: 28px 24px; }
.p3-stat + .p3-stat { border-left: 1px solid var(--p-line-2); }
.p3-stat:first-child { padding-left: 0; }
.p3-stat b { display: block; font: 700 44px var(--p-font-head); letter-spacing: -.02em; color: var(--p-ink); }
.p3-stat span { font-size: 14px; color: var(--p-mute); }

/* ---------------------------------------------------------------- feeds: grid + table view */
.p3-seg { display: inline-flex; padding: 4px; gap: 4px; background: var(--p-surface); border: 1px solid var(--p-line); border-radius: 10px; }
.p3-seg-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border: 0; border-radius: 7px; background: transparent; color: var(--p-ink); font: 700 14px var(--p-font-head); cursor: pointer; transition: background-color .2s, color .2s; }
.p3-seg-btn[aria-pressed="true"] { background: var(--p-solid); color: var(--p-on-solid); }
.p3-seg-btn[aria-pressed="false"]:hover { background: var(--p-surface-2); }

.p3-feed .post-feed-header { font-size: 15px; color: var(--p-text); margin-bottom: 14px; }
.p3-feed .result-count { font-family: var(--p-font-head); font-weight: 600; color: var(--p-ink); }
.p3-feed .ts-load-more { background: transparent !important; color: var(--p-ink) !important; border: 1.5px solid var(--p-ink) !important; border-radius: var(--p-radius-sm) !important; font-family: var(--p-font-head) !important; font-weight: 700 !important; }
.p3-feed .ts-load-more:hover { background: var(--p-ink) !important; color: var(--p-bg) !important; }
.p3-feed .ts-load-more svg { fill: currentColor; }

/* printer card (template 6566) */
.p3-card { position: relative; background: var(--p-surface) !important; border: 1px solid var(--p-line) !important; border-radius: 16px !important; overflow: hidden; display: flex; flex-direction: column; height: 100%;
  transition: transform .3s var(--p-ease), box-shadow .3s var(--p-ease), border-color .3s; }
.p3-card:hover { transform: translateY(-4px); box-shadow: var(--p-shadow-lift); border-color: var(--p-ink) !important; }
.p3-card-media { position: relative; background: var(--p-photo); padding: 18px !important; aspect-ratio: 5/4; overflow: hidden; }
.p3-card-media .elementor-widget-image, .p3-card-media .elementor-widget-image a { height: 100%; }
.p3-card-media img { width: 100% !important; height: 100% !important; object-fit: contain !important; transition: transform .5s var(--p-ease); }
.p3-card:hover .p3-card-media img { transform: scale(1.05); }
.p3-card > .elementor-widget-text-editor { flex: 1 1 auto; display: flex; position: static !important; }
.p3-card-body { padding: 4px 20px 0; display: flex; flex-direction: column; gap: 6px; flex: 1 1 auto; font-family: var(--p-font-body); }
.p3-card-tags { position: absolute; top: 14px; left: 14px; display: flex; gap: 6px; flex-wrap: wrap; z-index: 2; }
.p3-card-meta { font-size: 13px; color: var(--p-mute); }
.p3-card-title { font: 700 20px/1.25 var(--p-font-head) !important; color: var(--p-ink) !important; margin: 0 !important; }
.p3-card-link { color: inherit !important; text-decoration: none !important; }
.p3-card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.p3-card-specs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.p3-chip { background: var(--p-surface-2); border-radius: 6px; padding: 4px 8px; font-size: 13px; color: var(--p-text-2); }
.p3-chip:has(.n:empty) { display: none; }
.p3-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; padding-top: 16px; }
.p3-price-label { display: block; font-size: 12px; color: var(--p-mute); }
.p3-price { display: block; font: 700 22px var(--p-font-head); color: var(--p-ink); }
.p3-price::before { content: "$"; }
.p3-price-box:has(.p3-price:empty) { visibility: hidden; }
.p3-card-actions { display: flex; gap: 8px; position: relative; z-index: 2; }
.p3-card-compare { position: relative; z-index: 2; display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 14px -20px 0; padding: 0 20px; border-top: 1px solid var(--p-line-2); font-size: 14px; font-weight: 600; color: var(--p-text-2) !important; text-decoration: none !important; transition: background-color .2s, color .2s; }
.p3-card-compare:hover { background: var(--p-surface-2); color: var(--p-link) !important; }
.p3-card-compare--row { display: none !important; }

/* table view: same card, laid out as a row */
.p3-thead { display: none; }
.p3-feed[data-view="table"] .p3-thead,
.p3-feed[data-view="table"] .post-feed-grid > .ts-preview .p3-card { display: grid; grid-template-columns: 64px minmax(180px, 2.2fr) minmax(90px, 1fr) minmax(120px, 1.2fr) minmax(90px, .9fr) minmax(80px, .8fr) auto; column-gap: 20px; align-items: center; }
.p3-feed[data-view="table"] .p3-thead { padding: 14px 20px; background: var(--p-surface-2); border: 1px solid var(--p-line); border-bottom: 0; border-radius: var(--p-radius) var(--p-radius) 0 0; font: 700 12px var(--p-font-head); letter-spacing: .08em; text-transform: uppercase; color: var(--p-mute); }
.p3-feed[data-view="table"] .p3-thead .c-printer { grid-column: 1 / span 2; }
.p3-feed[data-view="table"] .post-feed-grid { display: flex !important; flex-direction: column; gap: 0 !important; border: 1px solid var(--p-line); border-radius: 0 0 var(--p-radius) var(--p-radius); overflow: hidden; background: var(--p-surface); }
.p3-feed[data-view="table"] .post-feed-grid > .ts-preview { width: 100% !important; }
.p3-feed[data-view="table"] .post-feed-grid > .ts-preview + .ts-preview .p3-card { border-top: 1px solid var(--p-line-2) !important; }
.p3-feed[data-view="table"] .p3-card { border: 0 !important; border-radius: 0 !important; padding: 10px 20px; height: auto; grid-template-rows: auto auto; }
.p3-feed[data-view="table"] .p3-card:hover { transform: none; box-shadow: none; background: var(--p-surface-2) !important; }
.p3-feed[data-view="table"] .p3-card-media { grid-column: 1; grid-row: 1 / span 2; width: 64px; height: 64px; aspect-ratio: auto; padding: 4px !important; border: 1px solid var(--p-line-2); border-radius: 8px; }
.p3-feed[data-view="table"] .p3-card > .elementor-widget-text-editor,
.p3-feed[data-view="table"] .p3-card-body,
.p3-feed[data-view="table"] .p3-card-specs,
.p3-feed[data-view="table"] .p3-card-foot { display: contents; }
.p3-feed[data-view="table"] .p3-card-meta { grid-column: 2; grid-row: 1; align-self: end; }
.p3-feed[data-view="table"] .p3-card-title { grid-column: 2; grid-row: 2; align-self: start; font-size: 17px !important; }
.p3-feed[data-view="table"] .p3-card-tags { position: static; grid-column: 3; grid-row: 1 / span 2; }
.p3-feed[data-view="table"] .p3-col-vol { grid-column: 4; grid-row: 1 / span 2; }
.p3-feed[data-view="table"] .p3-col-speed { grid-column: 5; grid-row: 1 / span 2; }
.p3-feed[data-view="table"] .p3-chip { background: none; padding: 0; font-size: 15px; color: var(--p-text); white-space: nowrap; }
.p3-feed[data-view="table"] .p3-price-box { grid-column: 6; grid-row: 1 / span 2; }
.p3-feed[data-view="table"] .p3-price-label { display: none; }
.p3-feed[data-view="table"] .p3-price { font-size: 16px; }
.p3-feed[data-view="table"] .p3-card-actions { grid-column: 7; grid-row: 1 / span 2; }
.p3-feed[data-view="table"] .p3-card-compare { display: none !important; }
.p3-feed[data-view="table"] .p3-card-compare--row { display: inline-flex !important; }
@media (max-width: 860px) {
  .p3-feed[data-view="table"] .p3-thead { display: none; }
  .p3-feed[data-view="table"] .post-feed-grid { border-radius: var(--p-radius); }
  .p3-feed[data-view="table"] .post-feed-grid > .ts-preview .p3-card { grid-template-columns: 56px minmax(0, 1fr) auto; column-gap: 14px; grid-template-rows: auto auto auto; }
  .p3-feed[data-view="table"] .p3-card-media { grid-row: 1 / span 3; width: 56px; height: 56px; }
  .p3-feed[data-view="table"] .p3-card-tags, .p3-feed[data-view="table"] .p3-card-actions { display: none; }
  .p3-feed[data-view="table"] .p3-col-vol { grid-column: 2; grid-row: 3; font-size: 13px; }
  .p3-feed[data-view="table"] .p3-col-speed { display: none; }
  .p3-feed[data-view="table"] .p3-price-box { grid-column: 3; grid-row: 1 / span 3; }
}

/* manufacturer card (template 6588): a row in the directory, a compact cell on the home page */
.p3-mcard { position: relative; display: flex !important; flex-wrap: wrap; align-items: center; gap: 14px 28px; padding: 18px 22px !important; background: var(--p-surface) !important; border-bottom: 1px solid var(--p-line-2); transition: background-color .2s; }
.p3-mcard:hover { background: var(--p-surface-2) !important; }
.p3-mcard-logo { flex: 0 0 auto; width: 72px !important; height: 72px; border: 1px solid var(--p-line-2); border-radius: 10px; background: var(--p-photo); padding: 4px !important; overflow: hidden; }
.p3-mcard-logo img { width: 100% !important; height: 100% !important; object-fit: contain !important; transition: transform .4s var(--p-ease); }
.p3-mcard:hover .p3-mcard-logo img { transform: scale(1.06); }
.p3-mcard > .elementor-widget-text-editor { flex: 1 1 560px; min-width: 0; }
.p3-mcard-body { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; font-family: var(--p-font-body); }
.p3-mcard-main { flex: 3 1 300px; min-width: 0; }
.p3-mcard-name { font: 700 19px var(--p-font-head) !important; color: var(--p-ink) !important; margin: 0 8px 0 0 !important; display: inline; }
.p3-mcard-desc { font-size: 14px; line-height: 1.5; color: var(--p-text-2); margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.p3-mcard-facts { flex: 2 1 280px; min-width: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.p3-mcard-facts dt { font-size: 12px; color: var(--p-mute); }
.p3-mcard-facts dd { margin: 2px 0 0; font: 600 14px var(--p-font-head); color: var(--p-ink); }
.p3-mcard-facts dd:empty::before { content: "\2014"; color: var(--p-mute); }
.p3-mcard-cta { position: relative; z-index: 2; }
.p3-feed--brands .post-feed-grid { gap: 0 !important; border: 1px solid var(--p-line); border-radius: var(--p-radius); overflow: hidden; background: var(--p-surface); }
.p3-feed--brands .post-feed-grid { grid-template-columns: 1fr !important; }
/* home page: compact hairline grid of brands */
.p3-feed--brandgrid .post-feed-grid { gap: 0 !important; border-top: 1px solid var(--p-line); border-left: 1px solid var(--p-line); background: var(--p-surface); }
.p3-feed--brandgrid .p3-mcard { border-right: 1px solid var(--p-line); border-bottom: 1px solid var(--p-line); flex-wrap: nowrap; gap: 16px; padding: 20px !important; height: 100%; }
.p3-feed--brandgrid .p3-mcard-desc, .p3-feed--brandgrid .p3-mcard-facts, .p3-feed--brandgrid .p3-mcard-cta, .p3-feed--brandgrid .p3-tag { display: none !important; }
.p3-feed--brandgrid .p3-mcard-name { font-size: 18px !important; display: block; }
.p3-mcard-sub { display: none; font-size: 13px; color: var(--p-mute); margin-top: 2px; }
.p3-feed--brandgrid .p3-mcard-sub { display: block; }

/* ---------------------------------------------------------------- tables / spec sheets */
.p3-table-box { background: var(--p-surface); border: 1px solid var(--p-line); border-radius: var(--p-radius); overflow: hidden; }
.p3-table-box--scroll { overflow-x: auto; }
.p3-table { width: 100%; border-collapse: collapse; font-size: 15px; font-family: var(--p-font-body); }
.p3-table th, .p3-table td { padding: 14px 22px; text-align: left; vertical-align: top; border: 0; }
.p3-table tr + tr { border-top: 1px solid var(--p-line-2); }
.p3-table th[scope="row"] { width: 36%; font-weight: 400; color: var(--p-mute); }
.p3-table td { font: 600 15px var(--p-font-head); color: var(--p-ink); }
.p3-table thead th { background: var(--p-surface-2); font: 700 12px var(--p-font-head); letter-spacing: .08em; text-transform: uppercase; color: var(--p-mute); }

/* spec rows written as text widgets (single printer template) */
.p3-specs { background: var(--p-surface); border: 1px solid var(--p-line); border-radius: var(--p-radius); overflow: hidden; }
.p3-specs .elementor-widget { margin: 0 !important; }
.p3-spec-row { display: grid; grid-template-columns: minmax(140px, 36%) 1fr; gap: 16px; padding: 14px 22px; border-top: 1px solid var(--p-line-2); font-size: 15px; line-height: 1.5; }
.p3-specs > .elementor-widget:first-child .p3-spec-row, .p3-specs .elementor-widget:first-of-type .p3-spec-row { border-top: 0; }
.p3-spec-row .k { color: var(--p-mute); }
.p3-spec-row .v { font: 600 15px var(--p-font-head); color: var(--p-ink); }
.p3-spec-row .v a { color: var(--p-link); }
@media (max-width: 600px) { .p3-spec-row { grid-template-columns: 1fr; gap: 2px; } }

/* ---------------------------------------------------------------- single printer */
.p3-crumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--p-mute); padding-top: 22px; }
.p3-crumb a { color: var(--p-link); }
.p3-photo-panel { background: var(--p-photo) !important; border: 1px solid var(--p-line); border-radius: 18px; padding: clamp(20px, 3vw, 40px) !important; }
.p3-photo-panel img { width: 100% !important; aspect-ratio: 1/1; max-height: 560px; object-fit: contain !important; }
.p3-buybox { background: var(--p-surface); border: 1px solid var(--p-line); border-radius: 16px; overflow: hidden; }
.p3-buybox-price { padding: 20px 22px; display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--p-line-2); }
.p3-buybox-price .lbl { font: 700 12px var(--p-font-head); letter-spacing: .1em; color: var(--p-mute); }
.p3-buybox-price .big { font: 700 40px var(--p-font-head); letter-spacing: -.02em; color: var(--p-ink); }
.p3-buybox-price .to { font: 500 18px var(--p-font-head); color: var(--p-mute); }
.p3-buybox-price .note { font-size: 13px; line-height: 1.5; color: var(--p-mute); max-width: 220px; }
.p3-buybox .p3-dl { border-top: 0; }
.p3-buybox .p3-dl > div { padding: 14px 22px; }
.p3-buybox .p3-dl > div:nth-child(even) { border-left: 1px solid var(--p-line-2); }
.p3-buybox-actions { padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.p3-buybox-actions .elementor-widget { margin: 0 !important; }
.p3-disclosure { font-size: 13px; line-height: 1.5; color: var(--p-mute); margin: 0; }
.p3-disclosure a { color: var(--p-link); }
.p3-subnav { display: flex; flex-wrap: wrap; gap: 4px 28px; border-bottom: 1px solid var(--p-line); font: 600 15px var(--p-font-head); }
.p3-subnav a { color: var(--p-text-2) !important; text-decoration: none !important; padding: 12px 0; border-bottom: 2.5px solid transparent; margin-bottom: -1px; transition: color .2s, border-color .2s; }
.p3-subnav a:hover { color: var(--p-ink) !important; border-color: var(--p-accent); }

/* Elementor buttons inside our templates (buy buttons keep Voxel visibility rules) */
.p3-ebtn .elementor-button { width: 100%; min-height: 54px; border-radius: var(--p-radius-sm) !important; font-family: var(--p-font-head) !important; font-weight: 700 !important; font-size: 17px !important; transition: transform .2s var(--p-ease), box-shadow .2s var(--p-ease), filter .2s !important; }
.p3-ebtn .elementor-button:hover { transform: translateY(-1px); box-shadow: var(--p-shadow); }
.p3-ebtn--accent .elementor-button { background: var(--p-accent) !important; color: var(--p-on-accent) !important; }
.p3-ebtn--accent .elementor-button:hover { filter: brightness(1.08); }
.p3-ebtn--dark .elementor-button { background: var(--p-solid) !important; color: var(--p-on-solid) !important; }
.p3-ebtn--outline .elementor-button { background: transparent !important; color: var(--p-ink) !important; border: 1.5px solid var(--p-line) !important; }
.p3-ebtn--outline .elementor-button:hover { border-color: var(--p-ink) !important; }
.p3-ebtn .elementor-button-icon svg { fill: currentColor; width: 14px; }

/* ---------------------------------------------------------------- video (p3dp-youtube) */
.p3-video-band { background: var(--p-video); color: #fff; }
.p3-video-band .p3yt-feature { padding-block: clamp(48px, 6vw, 88px); }

/* ---------------------------------------------------------------- guides list + compare teaser + newsletter */
.p3-list { list-style: none; margin: 0; padding: 0; border-top: 1.5px solid var(--p-ink); }
.p3-list li { border-bottom: 1px solid var(--p-line); }
.p3-list a { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: baseline; padding: 22px 0; text-decoration: none !important; transition: padding-left .25s var(--p-ease); }
.p3-list a:hover { padding-left: 10px; }
.p3-list .k { flex: 0 0 120px; font: 700 12px var(--p-font-head); letter-spacing: .1em; text-transform: uppercase; color: var(--p-link); }
.p3-list .t { flex: 1 1 320px; min-width: 0; }
.p3-list .t b { display: block; font: 700 21px/1.3 var(--p-font-head); color: var(--p-ink); }
.p3-list a:hover .t b { color: var(--p-link); }
.p3-list .t span { display: block; font-size: 15px; line-height: 1.55; color: var(--p-mute); margin-top: 6px; }

.p3-panel { background: var(--p-surface-2); border-radius: 18px; padding: clamp(28px, 4vw, 56px); display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.p3-vs { width: 100%; border-collapse: collapse; background: var(--p-surface); border-radius: 12px; overflow: hidden; font-size: 15px; }
.p3-vs th, .p3-vs td { padding: 14px 18px; text-align: left; border: 0; }
.p3-vs tr + tr { border-top: 1px solid var(--p-line-2); }
.p3-vs thead img { width: 72px; height: 72px; object-fit: contain; background: var(--p-photo); border-radius: 8px; }
.p3-vs thead b { display: block; font: 700 16px var(--p-font-head); color: var(--p-ink); margin-top: 8px; }
.p3-vs th[scope="row"] { font-weight: 400; color: var(--p-mute); }
.p3-vs td { color: var(--p-text); }
.p3-vs td.p { font: 700 16px var(--p-font-head); color: var(--p-ink); }

.p3-news { background: var(--p-band); color: #fff; border-radius: 18px; padding: clamp(28px, 5vw, 64px); display: flex; flex-wrap: wrap; gap: 32px 56px; align-items: center; justify-content: space-between; }
html[data-theme="dark"] .p3-news { border: 1px solid var(--p-line); }
.p3-news h2 { font: 700 clamp(28px, 3vw, 40px)/1.1 var(--p-font-head); letter-spacing: -.02em; color: #fff; margin: 0 0 12px; }
.p3-news p { font-size: 17px; line-height: 1.6; color: var(--p-band-text); margin: 0; }
.p3-news .elementor-form .elementor-field { background: var(--p-band-2) !important; color: #fff !important; border: 1.5px solid var(--p-band-line) !important; border-radius: var(--p-radius-sm) !important; min-height: 54px; font-family: var(--p-font-body) !important; }
.p3-news .elementor-form .elementor-button { background: var(--p-accent) !important; color: #14254B !important; border-radius: var(--p-radius-sm) !important; font-family: var(--p-font-head) !important; font-weight: 700 !important; min-height: 54px; }
.p3-news .elementor-field-label { color: var(--p-band-text) !important; }

/* ---------------------------------------------------------------- compare page ([p3dp_compare] inside the account shell; accounts are off at launch)
   One sheet: the plugin's card row becomes the table header (a label cell + 4 slot columns), the spec table sits under it on the same columns.
   p3dp-ui.js adds the slot count, row groups, the <colgroup>, difference marks and the hero tools. */
.p3dp-sidebar-col { display: none !important; }
.p3dp-account-shell { background: var(--p-bg) !important; padding: 0 !important; }
.p3dp-account-shell-inner { display: block !important; max-width: var(--p-wrap) !important; margin-inline: auto !important; padding: 0 var(--p-gutter) clamp(64px, 8vw, 96px) !important; }
.p3dp-content-col { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; width: 100% !important; max-width: none !important; }

.p3dp-account-hero, .p3dp-compare-hero { background: var(--p-bg) !important; background-image: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
.p3dp-account-hero::before, .p3dp-account-hero::after, .p3dp-compare-hero::before { display: none !important; }
.p3dp-account-hero-inner, .p3dp-compare-hero-inner { max-width: var(--p-wrap) !important; margin-inline: auto !important; padding: 48px var(--p-gutter) 32px !important; text-align: left !important; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 48px; align-items: end; box-sizing: border-box; }
.p3dp-account-hero-inner > *, .p3dp-compare-hero-inner > * { grid-column: 1; }
.p3dp-account-hero .p3-eyebrow { margin-bottom: 14px; }
.p3dp-account-hero h1, .p3dp-compare-hero h1 { font-family: var(--p-font-head) !important; font-weight: 700 !important; font-size: clamp(38px, 5vw, 60px) !important; line-height: 1 !important; letter-spacing: -.03em !important; color: var(--p-ink) !important; margin: 0 0 14px !important; }
.p3dp-account-hero p, .p3dp-compare-hero p { font-family: var(--p-font-body) !important; font-size: 18px !important; line-height: 1.6 !important; color: var(--p-text-2) !important; margin: 0 !important; max-width: 640px; }
.p3-cmp-tools { grid-column: 2 !important; grid-row: 1 / span 3; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.p3-cmp-tools .p3-btn { font-size: 15px; background: var(--p-surface); }
.p3-cmp-check { gap: 10px !important; font-family: var(--p-font-body) !important; font-weight: 600 !important; }
.p3-cmp-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--p-link); cursor: pointer; }
.p3-cmp-check:hover, .p3-cmp-copy:hover { transform: none !important; box-shadow: none !important; }
@media (max-width: 760px) {
  .p3dp-account-hero-inner, .p3dp-compare-hero-inner { grid-template-columns: minmax(0, 1fr); padding-top: 32px !important; }
  .p3-cmp-tools { grid-column: 1 !important; grid-row: auto; margin-top: 20px; }
}

.p3dp-compare {
  --cmp-lab: 210px; --cmp-min: 920px; --cmp-diff: color-mix(in srgb, var(--p-tint) 55%, transparent);
  --p3dp-accent: var(--p-accent); --p3dp-navy: var(--p-ink); --p3dp-text: var(--p-ink); --p3dp-mute: var(--p-mute); --p3dp-bg: var(--p-bg); --p3dp-border: var(--p-line);
  font-family: var(--p-font-body); color: var(--p-text); background: transparent !important; min-height: 0 !important;
}
@media (max-width: 760px) { .p3dp-compare { --cmp-lab: 128px; --cmp-min: 800px; } }

.p3dp-compare-board { max-width: none !important; margin: 0 !important; padding: 0 !important; background: var(--p-surface) !important; border: 1px solid var(--p-line); border-radius: 16px; overflow-x: auto; overscroll-behavior-x: contain; }
.p3dp-compare-board > * { min-width: var(--cmp-min); }

/* header row: label cell + 4 slots */
.p3dp-compare-cards { display: grid !important; grid-template-columns: var(--cmp-lab) repeat(4, minmax(0, 1fr)) !important; gap: 0 !important; margin: 0 !important; border-bottom: 1px solid var(--p-line); }
.p3dp-compare-cards::before { content: attr(data-p3-count); position: sticky; left: 0; z-index: 3; background: var(--p-surface); padding: 22px; font: 700 12px/1.4 var(--p-font-head); letter-spacing: .1em; text-transform: uppercase; color: var(--p-mute); box-shadow: 1px 0 0 var(--p-line-2); }
.p3dp-compare-card { background: transparent !important; border: 0 !important; border-left: 1px solid var(--p-line-2) !important; border-radius: 0 !important; box-shadow: none !important; transform: none !important; min-height: 0 !important; padding: 18px !important; display: flex; flex-direction: column; color: var(--p-text); }
.p3dp-compare-card:first-child { border-left: 0 !important; }
.p3dp-card-remove { top: 14px !important; right: 14px !important; width: 32px !important; height: 32px !important; border-radius: 6px !important; background: var(--p-surface) !important; color: var(--p-mute) !important; border: 1px solid var(--p-line-2) !important; }
.p3dp-card-remove:hover { color: var(--p-warn-ink) !important; background: var(--p-warn-bg) !important; border-color: transparent !important; }
.p3dp-card-image { background: var(--p-photo) !important; border-radius: 10px !important; margin: 26px 0 14px !important; }
.p3dp-card-image img { object-fit: contain !important; transition: transform .4s var(--p-ease); }
.p3dp-compare-card.is-filled:hover .p3dp-card-image img { transform: scale(1.04); }
.p3dp-card-meta { gap: 4px !important; }
.p3dp-card-tech { font: 700 12px/1.4 var(--p-font-head) !important; letter-spacing: .1em !important; color: var(--p-link) !important; }
.p3dp-card-meta h3 { font: 700 19px/1.25 var(--p-font-head) !important; letter-spacing: -.01em !important; margin: 0 !important; }
.p3dp-card-meta h3 a { color: var(--p-ink) !important; text-decoration: none !important; }
.p3dp-card-meta h3 a:hover { color: var(--p-link) !important; }
.p3dp-card-price { font: 700 16px/1.4 var(--p-font-head) !important; color: var(--p-ink) !important; margin-top: 6px !important; }

/* empty slot */
.p3dp-compare-card.is-empty { justify-content: stretch !important; }
.p3dp-card-empty { flex: 1 1 auto; justify-content: center; gap: 12px !important; min-height: 280px; padding: 16px !important; border: 1.5px dashed var(--p-line); border-radius: 12px; transition: border-color .2s, background-color .2s; cursor: text; }
.p3dp-compare-card.is-empty:hover .p3dp-card-empty, .p3dp-card-empty:focus-within { border-color: var(--p-link); background: var(--p-bg); }
.p3dp-card-plus { width: 48px !important; height: 48px !important; background: var(--p-tint) !important; color: var(--p-tint-ink) !important; }
.p3dp-card-empty-label { font: 700 15px/1.3 var(--p-font-head) !important; color: var(--p-ink) !important; }
.p3dp-card-search-input { height: 44px !important; border-radius: var(--p-radius-sm) !important; border: 1px solid var(--p-line) !important; background: var(--p-surface) !important; color: var(--p-ink) !important; font: 14px var(--p-font-body) !important; }
.p3dp-card-search-input::placeholder { color: var(--p-mute); }
.p3dp-card-search-input:focus { border-color: var(--p-link) !important; box-shadow: 0 0 0 3px var(--p-tint) !important; }
.p3dp-card-search-results { background: var(--p-surface) !important; border: 1px solid var(--p-line) !important; border-radius: 10px !important; box-shadow: var(--p-shadow-lift) !important; }
.p3dp-card-search-results li:hover { background: var(--p-surface-2) !important; }
.p3dp-card-search-results .meta strong { color: var(--p-ink) !important; font-family: var(--p-font-head); }
.p3dp-card-search-results .meta span { color: var(--p-link) !important; }
.p3dp-card-search-results img { background: var(--p-photo); object-fit: contain !important; }

/* spec rows */
.p3dp-compare-table-wrap { background: transparent !important; border: 0 !important; border-radius: 0 !important; overflow: visible !important; }
.p3dp-compare-table { width: 100% !important; table-layout: fixed; border-collapse: collapse !important; background: transparent !important; font-size: 15px; }
.p3dp-compare-table col.p3-cmp-lab { width: var(--cmp-lab); }
.p3dp-compare-table tr { border: 0 !important; border-top: 1px solid var(--p-line-2) !important; background: transparent !important; }
.p3dp-compare-table tbody > tr:first-child { border-top: 0 !important; }
.p3dp-compare-table th[scope="row"] {
  display: table-cell !important; width: var(--cmp-lab) !important; min-width: 0 !important; position: sticky; left: 0; z-index: 2;
  padding: 14px 22px !important; vertical-align: top !important; text-align: left; background: var(--p-surface) !important; box-shadow: 1px 0 0 var(--p-line-2);
  font: 600 14px/1.5 var(--p-font-body) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--p-text-2) !important;
}
.p3dp-compare-table th[scope="row"] i { display: none !important; }
.p3dp-compare-table td { width: auto !important; padding: 14px 18px !important; vertical-align: top !important; border-left: 1px solid var(--p-line-2) !important; background: transparent !important; font: 400 15px/1.5 var(--p-font-body) !important; color: var(--p-text) !important; overflow-wrap: anywhere; }
.p3dp-compare-table td:nth-child(2) { border-left: 0 !important; }
.p3dp-compare-table tr.is-emphasized th, .p3dp-compare-table tr.is-emphasized td { background: transparent !important; }
.p3dp-compare-table .p3dp-unit { color: var(--p-mute) !important; font-size: 13px !important; }
.p3dp-compare-table .p3dp-na { color: var(--p-mute) !important; opacity: .6; }
.p3dp-compare-table .p3dp-yes { background: var(--p-tint) !important; color: var(--p-tint-ink) !important; font-family: var(--p-font-head); border-radius: 999px !important; }
.p3dp-compare-table .p3dp-no { background: var(--p-surface-2) !important; color: var(--p-mute) !important; font-family: var(--p-font-head); border-radius: 999px !important; }
.p3dp-compare-table a { color: var(--p-link) !important; font-weight: 600; }
.p3dp-compare-table td.p3-cmp-off { background: var(--p-bg) !important; }
.p3dp-compare-table td.p3-cmp-off > * { visibility: hidden; }

/* group rows (added by p3dp-ui.js) */
.p3dp-compare-table tr.p3-cmp-group { border-top: 1px solid var(--p-line) !important; }
.p3dp-compare-table tr.p3-cmp-group th { display: table-cell !important; width: auto !important; min-width: 0 !important; padding: 20px 22px 10px !important; background: var(--p-surface-2) !important; text-align: left; font: 700 12px/1.4 var(--p-font-head) !important; letter-spacing: .1em !important; text-transform: uppercase !important; color: var(--p-link) !important; }
.p3dp-compare-table tr.p3-cmp-group th span { position: sticky; left: 22px; }

/* differences: dot + tint, on by default, toggled from the hero */
.p3dp-compare-board[data-p3-diff="on"] tr.p3-diff td { background: var(--cmp-diff) !important; font-family: var(--p-font-head) !important; font-weight: 600 !important; color: var(--p-ink) !important; }
.p3dp-compare-board[data-p3-diff="on"] tr.p3-diff th[scope="row"] { background: linear-gradient(var(--cmp-diff), var(--cmp-diff)), var(--p-surface) !important; color: var(--p-ink) !important; }
.p3dp-compare-board[data-p3-diff="on"] tr.p3-diff th[scope="row"]::before { content: ""; position: absolute; left: 9px; top: 21px; width: 7px; height: 7px; border-radius: 50%; background: var(--p-link); }
.p3dp-compare-board[data-p3-diff="on"] tr.p3-diff td.p3-cmp-off { background: var(--p-bg) !important; }

.p3-cmp-note { font-size: 14px; line-height: 1.6; color: var(--p-mute); margin: 14px 0 0; }
.p3dp-compare-empty { color: var(--p-mute) !important; font: 15px/1.6 var(--p-font-body) !important; padding: 40px 22px !important; border-top: 1px solid var(--p-line-2); }

/* ---------------------------------------------------------------- page layouts */
.p3-header-nav { flex: 1 1 auto !important; min-width: 0; width: auto !important; }
.p3-header .p3-wrap > .elementor-widget-html, .p3-header .elementor-widget-html { flex: 0 0 auto !important; width: auto !important; }
.p3-header-nav .elementor-widget-nav-menu { width: 100%; }
.p3-header .elementor-nav-menu--main .elementor-nav-menu { justify-content: center; flex-wrap: wrap; gap: 4px 28px; }
.p3-header .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item { margin: 0 !important; padding-inline: 0 !important; }
.p3-video-band { margin-top: clamp(64px, 8vw, 96px); }
.p3-feed--brandgrid .p3-mcard-logo { width: 64px !important; height: 64px; }
.p3-mcard { position: relative; flex-direction: row !important; }
.p3-feed--brandgrid .p3-mcard > .elementor-widget-text-editor { flex: 1 1 auto !important; min-width: 0; }
/* Elementor's per-element row setting is not always loaded (cards inside Voxel feeds), so rows are declared here too */
.p3-pdp-hero, .p3-two-col, .p3-brand-top { flex-direction: row !important; flex-wrap: wrap !important; }
.p3-card { flex-direction: column !important; }

/* single printer */
.p3-pdp-hero { padding-top: 24px !important; align-items: stretch; }
.p3-col-photo { flex: 1.2 1 480px !important; min-width: 0; max-width: 100%; }
.p3-col-info { flex: 1 1 400px !important; min-width: 0; max-width: 100%; }
.p3-pdp-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.p3-pdp-tags .p3-tag { text-transform: uppercase; }
.p3-by { font-size: 16px; color: var(--p-text-2); }
.p3-by a { color: var(--p-link); font-weight: 600; }
.p3-keyfeat { font-size: 17px; line-height: 1.6; color: var(--p-text); margin: 0; }
.p3-buybox-price .to .n::before { content: "to $"; }
.p3-buybox-price .to:has(.n:empty) { display: none; }
.p3-dl dd:has(.n:empty) { font-size: 0; }
.p3-dl dd:has(.n:empty)::before, .p3-dl dd:empty::before { content: "\2014"; font-size: 16px; color: var(--p-mute); }
.p3-pdp-subnav { padding-top: 48px !important; }
.p3-pdp-videos:has(.p3yt) { padding-top: clamp(64px, 8vw, 96px) !important; }
.p3-pdp-videos.p3-section--last:not(:has(.p3yt)) { padding-bottom: 0 !important; }
.p3-two-col > .p3-side { flex: 1 1 260px !important; min-width: 0; }
.p3-two-col > .p3-main { flex: 2.4 1 560px !important; min-width: 0; }
.p3-pdp-gallery .ts-gallery { margin-top: 8px; }

.p3dp-mobile-header .p3-header-tools, .p3-header-tools.e-con-full { margin-left: auto; width: auto !important; flex: 0 0 auto !important; max-width: 100%; }
.p3-band-white > .elementor-widget-html, .p3-band-white > .elementor-widget { width: 100% !important; align-self: stretch !important; }

/* directory archives (6567 printers, 6589 manufacturers) */
.p3-dir-hero { padding-block: 48px 40px; }
.p3-dir { flex-direction: row !important; flex-wrap: wrap !important; gap: 32px !important; padding-block: 40px 96px !important; align-items: flex-start !important; }
.p3-dir-side { flex: 1 1 260px !important; width: auto !important; max-width: 100% !important; min-width: 0; background: var(--p-surface) !important; border: 1px solid var(--p-line); border-radius: var(--p-radius); padding: 18px 20px !important; }
.p3-dir-main { flex: 999 1 640px !important; width: auto !important; min-width: 0; }
.p3-dir-side .elementor-heading-title { font-family: var(--p-font-head) !important; color: var(--p-ink) !important; font-size: 16px !important; }
.p3-dir-side .elementor-icon { color: var(--p-ink) !important; fill: var(--p-ink) !important; }
.p3-dir-side .elementor-icon svg { fill: var(--p-ink) !important; }
.p3-dir-side .elementor-divider-separator { border-color: var(--p-line-2) !important; }
.p3-dir-bar { display: flex; justify-content: flex-end; margin-bottom: -40px; position: relative; z-index: 2; pointer-events: none; }
.p3-dir-bar .p3-seg { pointer-events: auto; }
.p3-dir-main .post-feed-header { min-height: 46px; display: flex; align-items: center; }
/* Voxel search form, restyled */
.p3-scope .ts-form .ts-filter { background: var(--p-surface) !important; border: 1px solid var(--p-line) !important; border-radius: var(--p-radius-sm) !important; color: var(--p-ink) !important; min-height: 44px; transition: border-color .2s; }
.p3-scope .ts-form .ts-filter:hover { border-color: var(--p-ink) !important; }
.p3-scope .ts-form .ts-filter.ts-filled { border-color: var(--p-link) !important; background: var(--p-tint) !important; }
.p3-scope .ts-form .ts-filter-text { font-family: var(--p-font-head); font-weight: 600; color: var(--p-ink) !important; }
.p3-scope .ts-form .ts-filter svg { fill: var(--p-link) !important; }
.p3-scope .ts-form .ts-form-group { margin-bottom: 10px; }
.p3-scope .ts-form input.ts-filter, .p3-scope .ts-form .ts-input-icon input { color: var(--p-ink) !important; }
.p3-scope .ts-form .ts-btn-1, .p3-scope .ts-form .ts-btn-4 { border-radius: var(--p-radius-sm) !important; font-family: var(--p-font-head) !important; font-weight: 700 !important; }
.p3-scope .ts-form .ts-btn-2 { background: var(--p-solid) !important; color: var(--p-on-solid) !important; border-radius: var(--p-radius-sm) !important; font-family: var(--p-font-head) !important; font-weight: 700 !important; }
.p3-scope .ts-form .ts-switch-slider { background: var(--p-line) !important; }
.p3-scope .ts-form input:checked + .ts-switch-slider { background: var(--p-link) !important; }
/* tags that sit on white product photos keep light-mode colors in both themes */
.p3-feed:not([data-view="table"]) .p3-card-tags .p3-tag, .p3-feed--brandgrid .p3-tag { background: #E6F7FC; color: #065E99; }
.p3-feed:not([data-view="table"]) .p3-card-tags .p3-tag--warn { background: #FEE2E2; color: #9F1D1D; }
.p3-card-tags .p3-tag { box-shadow: 0 0 0 1px rgba(20, 37, 75, .06); }
.p3-dir-side .ts-form, .p3-dir-side .ts-form label, .p3-dir-side .ts-form p, .p3-dir-side .ts-form span:not(.ts-switch-slider) { color: var(--p-ink) !important; }
/* manufacturer directory: filters as a horizontal bar above the list (as in the mockup) */
/* (.p3-dir is a boxed container: its children sit inside .e-con-inner, so no ">" selectors here) */
.p3-dir > .e-con-inner { flex-wrap: wrap !important; gap: 32px !important; align-items: flex-start !important; }
.p3-dir:has(.p3-feed--brands) > .e-con-inner { gap: 24px !important; }
.p3-dir:has(.p3-feed--brands) .p3-dir-side { flex: 1 1 100% !important; padding: 14px 16px !important; }
.p3-dir:has(.p3-feed--brands) .p3-dir-side .e-con:has(.elementor-widget-heading):not(:has(.elementor-widget-ts-search-form)),
.p3-dir:has(.p3-feed--brands) .p3-dir-side .elementor-widget-divider { display: none !important; }
.p3-dir:has(.p3-feed--brands) .ts-form form .ts-filter-wrapper { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; gap: 10px !important; }
.p3-dir:has(.p3-feed--brands) .ts-form form .ts-filter-wrapper > .ts-form-group { flex: 1 1 170px !important; width: auto !important; max-width: none !important; margin: 0 !important; min-width: 0; }
.p3-dir:has(.p3-feed--brands) .p3-dir-main { flex: 1 1 100% !important; }
.p3-feed--brands .p3-mcard { border-bottom: 1px solid var(--p-line-2); flex-wrap: nowrap !important; }
.p3-feed--brands .p3-mcard-cta { display: none !important; }
.p3-mcard-logo { flex: 0 0 72px !important; height: 72px !important; }
/* Voxel prints ".post-feed-grid .e-con > .e-con.e-child { flex-grow: 1 !important }" inline, which stretched the logo box */
/* (Voxel's rule is 0,4,0 and printed after this file, so these need more specificity, not just !important) */
.post-feed-grid .ts-preview .p3-mcard.e-con > .p3-mcard-logo.e-con.e-child { flex: 0 0 72px !important; width: 72px !important; }
.p3-feed--brandgrid .post-feed-grid .ts-preview .p3-mcard.e-con > .p3-mcard-logo.e-con.e-child { flex-basis: 64px !important; width: 64px !important; }
.post-feed-grid .ts-preview .p3-card.e-con > .p3-card-media.e-con.e-child { flex-grow: 0 !important; }
.p3-feed .feed-pagination { justify-content: center !important; margin-top: 28px; }
.p3-mcard-logo .elementor-widget-image, .p3-mcard-logo .elementor-widget-image > * { width: 100%; height: 100%; }
.p3-feed--brandgrid .p3-mcard-logo { flex-basis: 64px !important; height: 64px !important; }
@media (max-width: 600px) { .p3-feed--brands .p3-mcard { flex-wrap: wrap !important; } .p3-mcard-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* single manufacturer */
.p3-brand-hero { padding-bottom: 48px !important; }
.p3-brand-hero .p3-crumb { margin-bottom: 32px; }
.p3-brand-logo { flex: 0 0 160px !important; width: 160px !important; height: 160px; border: 1px solid var(--p-line); border-radius: 18px; background: var(--p-photo); padding: 16px !important; }
.p3-brand-logo img { width: 100% !important; height: 128px !important; object-fit: contain !important; }
.p3-brand-copy { flex: 1 1 480px !important; min-width: 0; }
.p3-brand-cta { flex: 0 1 300px !important; min-width: 0; }
.p3-factbar { margin: 36px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); border: 1px solid var(--p-line); border-radius: 12px; overflow: hidden; }
.p3-factbar > div { padding: 16px 22px; }
.p3-factbar > div + div { border-left: 1px solid var(--p-line-2); }
.p3-factbar dt { font-size: 12px; color: var(--p-mute); }
.p3-factbar dd { margin: 3px 0 0; font: 700 18px var(--p-font-head); color: var(--p-ink); }
.p3-factbar dd:empty::before { content: "\2014"; color: var(--p-mute); }
.p3-prose { font-size: 17px; line-height: 1.7; color: var(--p-text); }
.p3-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.p3-pill-link { min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border: 1px solid var(--p-line); border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--p-ink) !important; text-decoration: none !important; transition: border-color .2s, background-color .2s; }
.p3-pill-link:hover { border-color: var(--p-ink); background: var(--p-surface-2); }
.p3-specs-cap { padding: 16px 22px; background: var(--p-surface-2); border-bottom: 1px solid var(--p-line-2); font: 700 12px var(--p-font-head); letter-spacing: .1em; text-transform: uppercase; color: var(--p-mute); }
.p3-specs .elementor-widget:nth-child(2) .p3-spec-row { border-top: 0; }
@media (max-width: 767px) {
  .p3-factbar > div + div { border-left: 0; border-top: 1px solid var(--p-line-2); }
  .p3-stat + .p3-stat { border-left: 0; }
  .p3-stat { padding-left: 0; }
}

/* ---------------------------------------------------------------- older pages brought into the A look
   (guides hub 6577, legal 3/161/6585, contact 6586, newsletter 6592: built before the redesign with these classes) */
.p3dp-archive-hero { background: var(--p-surface) !important; background-image: none !important; border-bottom: 1px solid var(--p-line); min-height: 0 !important;
  align-items: flex-start !important; text-align: left !important;
  padding: 48px max(var(--p-gutter), calc((100% - var(--p-wrap)) / 2 + 40px)) 40px !important; }
.p3dp-archive-hero::before, .p3dp-archive-hero::after { display: none !important; }
.p3dp-archive-hero .p3dp-hero-icon { display: none !important; }
.p3dp-archive-hero .elementor-heading-title { font-family: var(--p-font-head) !important; font-weight: 700 !important; font-size: clamp(36px, 5vw, 64px) !important; line-height: 1 !important; letter-spacing: -.03em !important; color: var(--p-ink) !important; text-align: left !important; }
.p3dp-archive-hero .elementor-widget { width: 100%; max-width: 760px; margin: 0 !important; }
.p3dp-archive-hero p { color: var(--p-text-2) !important; font-family: var(--p-font-body) !important; font-size: 18px !important; text-align: left !important; margin: 14px 0 0 !important; max-width: 640px !important; }

.p3dp-guide-section h2 { color: var(--p-ink) !important; font-family: var(--p-font-head) !important; }
.p3dp-guide-section h2 + p, .p3dp-guide-section > p { color: var(--p-mute) !important; }
.p3dp-guide-card, .p3dp-tool { background: var(--p-surface) !important; border-color: var(--p-line) !important; transition: transform .3s var(--p-ease), box-shadow .3s var(--p-ease), border-color .3s; }
.p3dp-guide-card:hover, .p3dp-tool:hover { transform: translateY(-4px); box-shadow: var(--p-shadow-lift); border-color: var(--p-ink) !important; }
.p3dp-guide-card :is(h3, h4, strong, b), .p3dp-tool :is(h3, h4, strong, b) { color: var(--p-ink) !important; }
.p3dp-guide-card p, .p3dp-tool p, .p3dp-tool span:not([class*=icon]) { color: var(--p-text-2) !important; }
.p3dp-guide-card a, .p3dp-tool a { color: var(--p-link) !important; }

/* blog post template (1108) */
html[data-theme="dark"] .p3dp-single { background: var(--p-bg) !important; color: var(--p-text); }
html[data-theme="dark"] .p3dp-article-card, html[data-theme="dark"] .p3dp-article-content, html[data-theme="dark"] .p3dp-related-card,
html[data-theme="dark"] .p3dp-sidebar > *:not([class*="cta"]):not([class*="newsletter"]) { background: var(--p-surface) !important; border-color: var(--p-line) !important; color: var(--p-text) !important; }
html[data-theme="dark"] .p3dp-single :is(h2, h3, h4, strong) { color: var(--p-ink) !important; }
html[data-theme="dark"] .p3dp-single .p3dp-hero-h1 { color: #fff !important; }
html[data-theme="dark"] .p3dp-article-content :is(p, li, span) { color: var(--p-text) !important; }
html[data-theme="dark"] .p3dp-related-card :is(p, span) { color: var(--p-mute) !important; }
html[data-theme="dark"] .p3dp-single section, html[data-theme="dark"] .p3dp-single > div { background-color: transparent !important; }
html[data-theme="dark"] .p3dp-single :is(.p3dp-sidebar, .p3dp-grid) div:not([class]) { color: var(--p-text) !important; }
html[data-theme="dark"] .p3dp-single a:not(.p3dp-floating-btn):not([class*="btn"]) { color: var(--p-link); }

/* the light logo used as a plain image on older pages (links, landing pages): swap to the dark variant */
html[data-theme="dark"] img:is([src*="/2025/02/planet3dp-logo"], [src*="/2024/10/planet3dplogo"]):not(.p3-logo-light) { content: url("/wp-content/uploads/2026/10/planet3dp-logo-dark-768.png"); }

/* Elementor forms (newsletter, guide downloads): visible submit button in both themes */
.elementor-form .elementor-button[type="submit"] { background: var(--p-solid) !important; color: var(--p-on-solid) !important; border-radius: var(--p-radius-sm) !important; font-family: var(--p-font-head) !important; font-weight: 700 !important; transition: filter .2s, transform .2s var(--p-ease) !important; }
.elementor-form .elementor-button[type="submit"]:hover { filter: brightness(1.12); transform: translateY(-1px); }

/* ---------------------------------------------------------------- motion off */
@media (prefers-reduced-motion: reduce) {
  .p3-ui *, .p3-ui *::before, .p3-ui *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .p3-card:hover, .p3-sheet:hover, .p3-btn:hover, .p3dp-compare-card:hover { transform: none !important; }
}

/* =====================================================================
   DARK MODE for pages not rebuilt yet (guides, legal, blog, legislation,
   video, newsletter...). Flattens Elementor backgrounds and lifts text.
   Rebuilt templates mark their root with .p3-scope and are left alone.
   ===================================================================== */
html[data-theme="dark"] body { background: var(--p-bg) !important; color: var(--p-text); }
html[data-theme="dark"] body :is(.e-con, .elementor-section, .elementor-column-wrap, .elementor-widget-wrap):not(.p3-scope, .p3-scope *, .p3-video-band, .p3-video-band *) { background-color: transparent !important; background-image: none !important; }
html[data-theme="dark"] body :is(.elementor-heading-title, .elementor-widget-text-editor, .elementor-icon-list-text, .elementor-widget-text-editor p, .elementor-widget-text-editor li, .elementor-widget-text-editor span, .elementor-widget-text-editor strong, .elementor-widget-text-editor h1, .elementor-widget-text-editor h2, .elementor-widget-text-editor h3, .elementor-widget-text-editor h4, .elementor-widget-text-editor td, .elementor-widget-text-editor th, .elementor-widget-text-editor div):not(.p3-scope *) { color: var(--p-text) !important; }
html[data-theme="dark"] body .elementor-heading-title:not(.p3-scope *) { color: var(--p-ink) !important; }
html[data-theme="dark"] body .elementor-widget-text-editor a:not(.p3-scope *):not(.elementor-button) { color: var(--p-link) !important; }
html[data-theme="dark"] body .elementor-widget-text-editor :is(div, td, th, table, li, section, article, aside):not(.p3-scope *) { background-color: transparent !important; border-color: var(--p-line) !important; }
html[data-theme="dark"] body .elementor-icon-list-icon svg:not(.p3-scope *) { fill: var(--p-link) !important; }
html[data-theme="dark"] body :is(input, select, textarea):not(.p3-scope *) { background-color: var(--p-surface) !important; color: var(--p-ink) !important; border-color: var(--p-line) !important; }
html[data-theme="dark"] .entry-content, html[data-theme="dark"] .entry-content :is(p, li, h1, h2, h3, h4) { color: var(--p-text); }
