
/* Shell neutralizer (v0.3.12): ai-design-coherence caps body:has(.aipp) pages at 1400px !important and
   the theme/Elementor shell adds its own boxed max-width (1360px !important) + 10px column padding —
   so .aipp .container's width/--pgap never controlled the real edge space. These higher-specificity
   overrides (scoped to .aipp pages ONLY — shop/.products-grid keeps its 1400 cap) make the template
   the single owner of page width. Beats the caps on specificity, not cascade order. */
body:has(.aipp) #content>.ast-container{max-width:none !important;padding-left:0;padding-right:0}
body:has(.aipp) #content .elementor-section.elementor-section-boxed>.elementor-container,
body:has(.aipp) #content .elementor-section>.elementor-container.elementor-column-gap-default{max-width:none !important}
body:has(.aipp) #content .e-con.e-con>.e-con-inner{max-width:none !important}
body:has(.aipp) #content .elementor-column-gap-default>.elementor-column>.elementor-element-populated{padding:10px 0}
.aipp{--accent:#2091DA;--accent-dark:#1a74b0;--accent-light:#e8f4fd;--dark:#0f172a;--g700:#334155;--g500:#5b6b7d;--g300:#cbd5e1;--g100:#f1f5f9;--white:#fff;--red:#dc2626;--r:12px;--rs:8px;--pgap:clamp(12px,calc(2.5vw - 12px),28px);font-family:'Manrope',sans-serif;color:var(--g700);line-height:1.7;-webkit-font-smoothing:antialiased}
.aipp *,.aipp *::before,.aipp *::after{box-sizing:border-box}
.aipp h1,.aipp h2,.aipp h3,.aipp h4{font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);line-height:1.3;margin:0}
.aipp a{color:var(--accent-dark);text-decoration:none}
.aipp .container{max-width:1920px;margin:0 auto;padding:0 var(--pgap)}
.aipp .product-header{padding:18px 0 48px;display:grid;grid-template-columns:0.85fr 1fr;gap:var(--pgap);align-items:start}
.aipp .product-img{display:flex;flex-direction:column}
.aipp .aipp-imgmeta{margin-top:22px;background:#fff;border:1px solid #e8eef5;border-radius:16px;padding:16px 18px;box-shadow:0 10px 30px rgba(15,23,42,.05)}
.aipp .aipp-imgmeta .aipp-built{margin:0}
.aipp .aipp-imgmeta .aipp-tax{margin:13px 0 0}
.aipp .product-img>img{width:100%;height:auto;aspect-ratio:1/1;max-height:none;object-fit:contain;display:block;background:#fff;border:1px solid #e8eef5;border-radius:18px;padding:18px;box-shadow:0 16px 44px rgba(15,23,42,.09);transition:box-shadow .25s ease,transform .25s ease}
.aipp .product-img>img:hover{box-shadow:0 22px 56px rgba(32,145,218,.14)}
/* Option A (ph-merged): built-for + tax merged into a single photo card; equal-height with the pricing block */
.aipp .product-header.ph-merged{align-items:stretch}
.aipp .product-header.ph-merged .product-img{background:#fff;border:1px solid #e8eef5;border-radius:18px;padding:18px;box-shadow:0 16px 44px rgba(15,23,42,.09)}
.aipp .product-header.ph-merged .product-img>img{border:0;border-radius:12px;padding:0;box-shadow:none;flex:none;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;object-position:50% 50%;margin-bottom:14px}
.aipp .product-header.ph-merged .product-img>img:hover{box-shadow:none;transform:none}
.aipp .product-header.ph-merged .aipp-imgmeta{margin-top:auto;background:transparent;border:0;border-radius:0;box-shadow:none;padding:14px 2px 2px;border-top:1px solid var(--g300)}
.aipp .product-header.ph-merged .aipp-imgmeta .aipp-built{background:transparent;border:0;padding:0;margin:0 0 10px}
.aipp .product-header.ph-merged .aipp-imgmeta .aipp-tax{border-top:0;padding-top:0}
/* Option B (ph-fullmeta): equal-height columns (bottoms line up), image centered in its card, tight full-width meta */
.aipp .product-header.ph-fullmeta{align-items:stretch;row-gap:28px}
.aipp .product-header.ph-fullmeta .product-img{justify-content:flex-start}
.aipp .product-header.ph-fullmeta .product-img>img{flex:1 1 auto;min-height:0;aspect-ratio:auto;object-fit:contain}
/* 0.3.65: every main product photo pinned to the top of its card (Joel 2026-10-07), whichever layout option is on. */
.aipp .product-img>img{object-position:50% 0}
.aipp .product-header.ph-fullmeta .aipp-imgmeta--full{grid-column:1 / -1;margin-top:0;background:#fff;border:1px solid #e8eef5;border-radius:16px;padding:15px 20px;box-shadow:0 10px 30px rgba(15,23,42,.05);display:flex;align-items:center;gap:12px 28px;flex-wrap:wrap}
.aipp .product-header.ph-fullmeta .aipp-imgmeta--full .aipp-built{margin:0}
.aipp .product-header.ph-fullmeta .aipp-imgmeta--full .aipp-tax{border-top:0;padding-top:0;margin:0;display:flex;gap:6px 22px;flex-wrap:wrap;align-items:center}
.aipp .product-header.ph-fullmeta .aipp-imgmeta--full .aipp-tax-row{margin:0}
.aipp .product-meta{display:flex;gap:16px;margin-bottom:14px;flex-wrap:wrap}
.aipp .product-meta-item{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--g700);font-weight:500}
.aipp .product-info{padding-top:8px}
.aipp .product-badge{display:inline-block;background:var(--accent-light);color:var(--accent);font-size:12px;font-weight:700;padding:4px 12px;border-radius:100px;margin-bottom:14px;font-family:'Plus Jakarta Sans',sans-serif;text-transform:uppercase;letter-spacing:.5px}
/* Announcement strip above the H1 for a just-released product: black "New" tag + a one-line
 * reason to care, on the same cyan accent the shop-grid new cards use. */
.aipp .aipp-new-strip{display:flex;align-items:center;gap:11px;flex-wrap:wrap;background:#fff8e6;border:1px solid #f0d488;border-left:4px solid #e8b923;border-radius:9px;padding:10px 14px;margin:0 0 16px}
.aipp .aipp-new-strip .ans-tag{flex:none;background:linear-gradient(135deg,#2b2b2b 0%,#000 100%);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:11.5px;font-weight:800;padding:4px 11px;border-radius:100px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;box-shadow:0 2px 9px rgba(0,0,0,.26)}
.aipp .aipp-new-strip .ans-txt{font-size:14px;font-weight:600;color:#7a5a10;line-height:1.5}
html[data-theme="dark"] .aipp .aipp-new-strip{background:rgba(232,185,35,.13);border-color:rgba(232,185,35,.42);border-left-color:#e8b923}
html[data-theme="dark"] .aipp .aipp-new-strip .ans-txt{color:#f3d98a}
/* v0.3.21 — the strip inside the photo card. The left column is the NARROW one (0.85fr), so the
   same copy wraps to more lines here than it did in the buy column: tighten it slightly and let
   the tag sit on its own line rather than squeezing the sentence into a 3-word ribbon.
   align-items:flex-start (not center) keeps the pill level with the FIRST line of a 3-line note. */
.aipp .product-img>.aipp-new-strip--img{align-items:flex-start;gap:9px;padding:9px 12px;margin:0 0 14px;flex:none}
.aipp .product-img>.aipp-new-strip--img .ans-tag{font-size:11px;padding:3px 9px;margin-top:1px}
.aipp .product-img>.aipp-new-strip--img .ans-txt{font-size:13.5px;line-height:1.45;flex:1 1 220px;min-width:0}
.aipp .product-info h1{font-size:34px;font-weight:800;margin-bottom:14px;letter-spacing:-.5px}
.aipp .product-info .aipp-subhead{font-size:17px;line-height:1.45;font-weight:600;color:#5a6472;margin:-2px 0 13px;letter-spacing:-.2px;font-family:'Plus Jakarta Sans',sans-serif;text-transform:none}
.aipp .product-info>p{font-size:15px;color:var(--g500);margin-bottom:12px;line-height:1.7}
.aipp .price-display{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.aipp .price-orig{font-size:18px;color:var(--g500);text-decoration:line-through}
.aipp .price-sale{font-family:'Plus Jakarta Sans',sans-serif;font-size:42px;font-weight:800;color:var(--dark);letter-spacing:-1px}
.aipp .price-off{font-size:13px;font-weight:700;color:var(--red);background:#fef2f2;padding:4px 10px;border-radius:6px}
.aipp .license-label{font-size:13px;font-weight:600;color:var(--g500);margin-bottom:8px;font-family:'Plus Jakarta Sans',sans-serif}
.aipp .license-help{font-weight:500;color:var(--g500)}
.aipp .license-options{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;align-items:stretch;max-width:66%}
@media(max-width:768px){.aipp .license-options{max-width:100%}}
.aipp .license-opt{flex:1 1 0;min-width:0;padding:13px 16px;border:2px solid var(--g300);border-radius:var(--rs);cursor:pointer;text-align:left;transition:border-color .2s,background .2s,box-shadow .2s;background:var(--white);font-family:'Plus Jakarta Sans',sans-serif;color:var(--g700);display:flex;align-items:center;gap:10px;line-height:1.2}
.aipp .license-opt::before{content:'';flex:0 0 18px;width:18px;height:18px;border-radius:50%;border:2px solid var(--g300);background:var(--white);transition:border-color .2s,background .2s,box-shadow .2s}
.aipp .license-opt .lo-main{font-size:15px;font-weight:800}
.aipp .license-opt .lo-sub{margin-left:auto;font-size:14px;font-weight:600;color:var(--g500)}
.aipp .license-nudge{display:flex;align-items:flex-start;gap:8px;background:var(--accent-light);border:1px solid #cfe7fa;border-radius:var(--rs);padding:10px 12px;margin:0 0 16px;font-size:12.5px;line-height:1.5;color:var(--g700)}
.aipp .license-nudge svg{flex:0 0 16px;width:16px;height:16px;color:var(--accent);margin-top:1px}
.aipp .license-nudge strong{color:var(--dark);font-weight:800}
.aipp .license-nudge .ln-text{min-height:3em}
/* 0.4.11 a plus while it offers the 2nd PC, a tick once 2 PC is picked */
.aipp .license-nudge .ln-ico-ok,.aipp .license-nudge.is-2pc .ln-ico-add{display:none}
.aipp .license-nudge.is-2pc .ln-ico-ok{display:block}
/* 0.3.99 the nudge picks 2 PC when clicked (it was the most-clicked dead text in the buy box); is-2pc once it has */
.aipp .license-nudge{cursor:pointer}
.aipp .license-nudge.is-2pc{cursor:default}
.aipp .license-nudge .ln-link{color:#1a74b0;font-weight:700;text-decoration:underline;text-underline-offset:2px}
html[data-theme="dark"] .aipp .license-nudge .ln-link{color:#6cb6e8}
.aipp .license-nudge:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* 0.4.3 96px under it: the chat launcher and the theme toggle sit in the bottom ~90px of a phone screen (measured 764-820
   of 844), and with 24px they covered both ends of the button after the scroll */
.aipp .aipp-dt-btn{scroll-margin:110px 0 96px}
.aipp .license-opt:hover{border-color:var(--accent);box-shadow:0 2px 10px rgba(32,145,218,.14)}
.aipp .license-opt.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}
.aipp .license-opt.active::before{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px var(--accent-light)}
.aipp .buy-actions{display:flex;gap:10px;margin-bottom:10px}
.aipp .btn-cart{flex:1 1 0;min-width:0;padding:14px 16px;background:var(--accent);color:var(--white);font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:15px;border:none;border-radius:var(--rs);cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.aipp .btn-cart:hover{background:var(--accent-dark)}
.aipp .btn-cart svg{width:18px;height:18px;flex:none}
.aipp .btn-link{flex:1 1 0;min-width:0;padding:12px 16px;background:var(--white);color:#1a1a1a;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:14px;border:2px solid var(--g300);border-radius:var(--rs);cursor:pointer;transition:border-color .2s;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.aipp .btn-link:hover{border-color:var(--g500)}
@media(max-width:380px){.aipp .buy-actions{flex-direction:column;gap:8px}}
.aipp .paypal-note{font-size:12px;color:var(--g500);text-align:center;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}
.aipp .paypal-note a{color:var(--accent);font-weight:600;font-size:12px}
.aipp .compare-trust{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--g500);margin-top:24px;padding-top:20px;border-top:1px solid var(--g300);flex-wrap:wrap}
.aipp .compare-trust .trust-title{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--dark);font-size:14px}
.aipp .compare-trust strong{color:var(--dark);font-family:'Plus Jakarta Sans',sans-serif}
.aipp .compare-trust .trust-dot{color:var(--g500)}
.aipp .whats-included{background:var(--g100);border:1px solid var(--g300);border-radius:var(--rs);padding:16px 22px;margin:20px 0 0}
.aipp .whats-included .included-title{font-size:14px;font-weight:800;color:var(--dark);margin:0 0 6px}
.aipp .aipp-bundle{border:1px solid var(--g300);border-radius:var(--r);margin:20px 0 0;background:var(--white);overflow:hidden;box-shadow:0 4px 18px rgba(15,23,42,.07)}
.aipp .aipp-bundle-save{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;padding:14px 22px;background:linear-gradient(135deg,#047857,#059669);color:#fff}
.aipp .aipp-bundle-save .bs-amt{font-size:24px;font-weight:800;line-height:1.2;letter-spacing:-.01em}
.aipp .aipp-bundle-save .bs-txt{font-size:16px;font-weight:700}
.aipp .aipp-bundle-save .amount,.aipp .aipp-bundle-save bdi{color:#fff}
.aipp .aipp-bundle-body{padding:16px 22px 14px}
.aipp .aipp-bundle-h{font-size:16px;font-weight:800;color:var(--dark);margin:0 0 10px}
.aipp .aipp-bundle-h .bh-note{font-size:13px;font-weight:500;color:var(--g500);margin-left:6px}
.aipp .aipp-bundle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
/* The whole card is the link (a bare underlined name did not read as clickable). color and text-decoration carry
   !important because the theme .entry-content a:not(.button)... rule is (0,5,1) and repaints/underlines every link. */
.aipp .aipp-bundle-grid .bc{display:flex;gap:12px;align-items:stretch;padding:10px;border:1.5px solid var(--g300);border-radius:var(--rs);background:var(--white);color:var(--g700)!important;text-decoration:none!important;transition:border-color .15s,box-shadow .15s,transform .15s}
.aipp .aipp-bundle-grid .bc:hover,.aipp .aipp-bundle-grid .bc:focus-visible{border-color:var(--accent);box-shadow:0 6px 18px rgba(32,145,218,.16);transform:translateY(-2px)}
.aipp .aipp-bundle-grid .bc-img{flex:0 0 96px;width:96px;height:83px;object-fit:cover;border-radius:6px;background:#0f172a;margin:0}
.aipp .aipp-bundle-grid .bc-body{display:flex;flex-direction:column;min-width:0;flex:1}
.aipp .aipp-bundle-grid .bc-name{font-size:15px;font-weight:800;color:var(--dark);line-height:1.3}
.aipp .aipp-bundle-grid .bc-tag{font-size:13px;color:var(--g500);line-height:1.4;margin-top:2px}
.aipp .aipp-bundle-grid .bc-foot{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:auto;padding-top:6px}
.aipp .aipp-bundle-grid .bc-price{font-size:14px;font-weight:800;color:var(--dark);white-space:nowrap}
.aipp .aipp-bundle-grid .bc-price small{font-size:12px;font-weight:500;color:var(--g500)}
.aipp .aipp-bundle-grid .bc-more{font-size:13px;font-weight:700;color:var(--accent-dark);white-space:nowrap}
.aipp .aipp-bundle-grid .bc:hover .bc-more{text-decoration:underline}
.aipp .aipp-bundle-math{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin:14px 0 0;padding:14px 16px;border-radius:var(--rs);background:var(--g100)}
.aipp .aipp-bundle-math .bm-nums{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.aipp .aipp-bundle-math .bm-was,.aipp .aipp-bundle-math .bm-now{display:flex;flex-direction:column;line-height:1.2}
.aipp .aipp-bundle-math .bm-lbl{font-size:14px;font-weight:600;color:var(--g500);margin-bottom:2px}
.aipp .aipp-bundle-math .bm-was s{font-size:28px;font-weight:800;letter-spacing:-.01em;color:var(--red);text-decoration-thickness:2px}
.aipp .aipp-bundle-math .bm-was s .amount,.aipp .aipp-bundle-math .bm-was s bdi{color:var(--red)}
.aipp .aipp-bundle-math .bm-arrow{font-size:20px;color:var(--g500)}
.aipp .aipp-bundle-math .bm-now strong{font-size:28px;font-weight:800;color:#047857;letter-spacing:-.01em}
.aipp .aipp-bundle-math .bm-now strong .amount,.aipp .aipp-bundle-math .bm-now strong bdi{color:#047857}
.aipp .aipp-bundle-math .bm-cta{border:0;border-radius:var(--rs);background:#1a74b0;color:#fff;font:inherit;font-size:15px;font-weight:800;padding:12px 22px;cursor:pointer;white-space:nowrap;transition:background .15s,transform .15s}
.aipp .aipp-bundle-math .bm-cta:hover{background:#155e8f;transform:translateY(-1px)}
.aipp .bm-fine{font-size:12px;color:var(--g500);margin:8px 0 0}
@media(max-width:720px){.aipp .aipp-bundle-grid{grid-template-columns:1fr}.aipp .aipp-bundle-save,.aipp .aipp-bundle-body{padding-left:14px;padding-right:14px}.aipp .aipp-bundle-save .bs-amt{font-size:21px}.aipp .aipp-bundle-h .bh-note{display:block;margin:2px 0 0}.aipp .aipp-bundle-grid .bc-img{flex-basis:80px;width:80px;height:69px}.aipp .aipp-bundle-math .bm-cta{width:100%}}
html[data-theme="dark"] .aipp .aipp-bundle{background:#1a2436;border-color:#243049;box-shadow:none}
html[data-theme="dark"] .aipp .aipp-bundle-grid .bc{background:#1e2a3f;border-color:#2c3a55;color:#cbd5e1!important}
html[data-theme="dark"] .aipp .aipp-bundle-grid .bc:hover,html[data-theme="dark"] .aipp .aipp-bundle-grid .bc:focus-visible{border-color:#6cb6e8;box-shadow:0 6px 18px rgba(0,0,0,.35)}
html[data-theme="dark"] .aipp .aipp-bundle-h,html[data-theme="dark"] .aipp .aipp-bundle-grid .bc-name,html[data-theme="dark"] .aipp .aipp-bundle-grid .bc-price{color:#f1f5f9}
html[data-theme="dark"] .aipp .aipp-bundle-h .bh-note,html[data-theme="dark"] .aipp .aipp-bundle-grid .bc-tag,html[data-theme="dark"] .aipp .aipp-bundle-grid .bc-price small,html[data-theme="dark"] .aipp .aipp-bundle-math .bm-lbl,html[data-theme="dark"] .aipp .aipp-bundle-math .bm-arrow,html[data-theme="dark"] .aipp .bm-fine{color:#aebacb}
html[data-theme="dark"] .aipp .aipp-bundle-grid .bc-more{color:#8cc8f0}
html[data-theme="dark"] .aipp .aipp-bundle-math{background:#141d2d}
html[data-theme="dark"] .aipp .aipp-bundle-math .bm-was s,html[data-theme="dark"] .aipp .aipp-bundle-math .bm-was s .amount,html[data-theme="dark"] .aipp .aipp-bundle-math .bm-was s bdi{color:#f87171}
html[data-theme="dark"] .aipp .aipp-bundle-math .bm-now strong,html[data-theme="dark"] .aipp .aipp-bundle-math .bm-now strong .amount,html[data-theme="dark"] .aipp .aipp-bundle-math .bm-now strong bdi{color:#34d399}
.aipp .included-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));column-gap:32px;row-gap:7px}
.aipp .included-item{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--g700);padding:2px 0}
.aipp .included-item svg{flex-shrink:0}
.aipp .divider{height:1px;background:var(--g300);border:none;margin:0}
.aipp .upsell-compare{margin:0 0 24px}
.aipp .compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.aipp .compare-col{background:var(--white);border-radius:var(--r);padding:20px;font-size:13px;color:var(--g500);line-height:1.6;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.aipp .compare-col.popular{box-shadow:0 2px 16px rgba(32,145,218,.15);position:relative;border:2px solid var(--accent);overflow:hidden}
.aipp .compare-col-badge{position:absolute;top:0;right:0;background:var(--accent);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;font-weight:700;padding:6px 14px;border-radius:0 0 0 var(--r);text-transform:uppercase;letter-spacing:.3px}
.aipp .compare-col-label{font-size:11px;color:var(--g500);text-transform:uppercase;letter-spacing:.5px;font-weight:600;font-family:'Plus Jakarta Sans',sans-serif;margin-bottom:2px}
.aipp .compare-col-name{font-size:15px;font-weight:800;color:var(--dark);font-family:'Plus Jakarta Sans',sans-serif;margin-bottom:8px}
.aipp .compare-col p{margin:0 0 12px}
.aipp .compare-col p.compare-col-price{font-family:'Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:800;color:var(--dark);line-height:1.2;margin:-2px 0 10px}
.aipp .compare-btn{display:inline-flex;background:var(--accent);color:var(--white);font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:12px;padding:8px 18px;border-radius:var(--rs);transition:background .2s}
.aipp .compare-btn:hover{background:var(--accent-dark);color:var(--white)}
.aipp .upsell-compare a.compare-btn,.aipp .upsell-compare a.compare-btn:hover,.aipp .upsell-compare a.compare-btn:visited{color:#fff !important}
/* v0.3.63 comparison box (aipp_upsell_compare()). Each card is a subgrid spanning --cmp-rows tracks of .cmp-grid, so a
   row lines up across both cards. Fills under white text are #1a74b0 / #15598a, never --accent (#2091DA: 3.5:1). */
.aipp #aipp-buy{scroll-margin-top:110px}
.aipp .cmp-grid{row-gap:0;align-items:stretch}
.aipp .cmp-col{display:grid;grid-template-rows:subgrid;grid-row:span var(--cmp-rows);align-content:start;padding:22px 24px 22px;font-size:14px}
.aipp .cmp-col.popular{background:linear-gradient(180deg,var(--accent-light) 0,var(--white) 150px)}
.aipp .cmp-col.popular .compare-col-badge{background:#1a74b0}
.aipp .cmp-head{padding:0 0 14px;margin:0 0 4px;border-bottom:1px solid var(--g300)}
.aipp a.cmp-head{display:block;color:inherit;text-decoration:none}
.aipp a.cmp-head:hover .compare-col-name{color:var(--accent)}
.aipp .cmp-head .compare-col-label{margin-bottom:4px}
.aipp .cmp-head .compare-col-name{font-size:17px;line-height:1.35;margin-bottom:8px}
.aipp .cmp-head .compare-col-name .cmp-only{font-weight:600;font-size:.82em;color:var(--g700);white-space:nowrap}
/* The two <p> rules here need !important: ai-design-coherence.php (~line 1012) sets every .aipp .tab-content p to
   16px !important for body copy, which shrank this price to body size and blew the share line up. Higher specificity
   + !important wins over it without touching that file. */
.aipp .cmp-head p.compare-col-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:0;font-size:26px!important;line-height:1.2!important}
.aipp .cmp-pc{font-size:12px;font-weight:600;color:var(--g500)}
.aipp .cmp-was{font-size:13px;font-weight:600;color:var(--g500)}
.aipp .cmp-was s{font-weight:700}
.aipp .cmp-cap{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--g500);padding:12px 0 4px;line-height:1.4}
.aipp .cmp-cap.is-plus{color:#047857}
.aipp .cmp-row{display:flex;align-items:flex-start;gap:10px;padding:5px 0;font-size:14px;line-height:1.45;color:var(--g700)}
.aipp .cmp-row svg{flex:0 0 18px;width:18px;height:18px;margin-top:1px}
.aipp .cmp-row.is-yes svg{color:#0a8f68}   /* one green for both themes: 4.08 on white, 3.65 on the blue tint, 3.81 on the dark card (#047857 was 2.84 there; the dark pass does not recolor SVG currentColor) */
.aipp .cmp-row.is-no{color:var(--g500)}
.aipp .cmp-row.is-no svg{color:var(--g500)}
.aipp .cmp-row.is-plus{color:var(--dark);font-weight:600}
.aipp .cmp-foot{align-self:end;padding-top:18px}
.aipp .compare-col p.cmp-share{margin:0 0 12px;font-size:14px!important;line-height:1.5!important;color:var(--g700)}
.aipp .cmp-col .compare-btn{background:#1a74b0;font-size:13px;padding:10px 18px}
.aipp .cmp-col .compare-btn:hover{background:#15598a}
.aipp .upsell-compare a.cmp-ghost,.aipp .upsell-compare a.cmp-ghost:visited{display:inline-flex;align-items:center;background:transparent;border:1.5px solid var(--g300);border-radius:var(--rs);padding:9px 16px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:700;line-height:1.3;color:var(--dark)!important;transition:border-color .2s}
.aipp .upsell-compare a.cmp-ghost:hover{border-color:var(--g500);text-decoration:none}
.aipp .cmp-row .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
@media(max-width:768px){.aipp .cmp-col{display:block;grid-row:auto}.aipp .cmp-grid{row-gap:16px}.aipp .cmp-foot{padding-top:16px}}
.aipp .upsell-nudge{background:var(--g100);border:1px solid var(--g300);border-radius:var(--rs);padding:14px 20px;margin:0 0 20px}
.aipp .upsell-nudge p{font-size:14px;color:var(--g700);margin:0}
.aipp .tabs-section{padding:0 0 48px}
.aipp .tabs{display:flex;border-bottom:1px solid var(--g300);overflow-x:auto;-webkit-overflow-scrolling:touch}
.aipp .tab-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:none;border-bottom:2px solid transparent;padding:16px 22px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:600;color:var(--g500);cursor:pointer;white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;transition:color .2s,border-color .2s}
.aipp .tab-ico{width:16px;height:16px;flex:0 0 16px;opacity:.85}
.aipp .tab-btn.active .tab-ico{opacity:1}
.aipp .tab-btn:hover{color:var(--dark)}
.aipp .tab-btn.active{color:var(--accent);border-bottom:2px solid var(--accent)}
.aipp .tab-content{display:none;padding:28px 0}
.aipp .tab-content.active{display:block}
.aipp .tab-content h2{font-size:20px;font-weight:800;margin-bottom:14px}
.aipp .tab-content h3{font-size:16px;font-weight:700;margin:20px 0 8px}
.aipp .tab-content p{font-size:14px;color:var(--g700);margin:0 0 12px;line-height:1.75}
.aipp .tab-content ul{margin:0 0 12px 20px}
.aipp .tab-content li{font-size:14px;color:var(--g700);margin-bottom:6px}
html:not([data-theme="dark"]) .aipp .tab-content h2,html:not([data-theme="dark"]) .aipp .tab-content h3,html:not([data-theme="dark"]) .aipp .tab-content p,html:not([data-theme="dark"]) .aipp .tab-content li{color:var(--dark)}
.aipp .feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.aipp .feature-grid .aipp-feat-group{grid-column:1/-1;font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:800;color:var(--dark);margin:8px 0 4px;padding-top:18px;border-top:1px solid var(--g300)}
.aipp .feature-grid .aipp-feat-group:first-child{margin-top:0;padding-top:0;border-top:none}
.aipp .feature-item{border:1px solid #e8eef4;background:#f8fafd;border-radius:12px;padding:22px 18px;transition:transform .2s,box-shadow .2s,border-color .2s}
.aipp .feature-item:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(32,145,218,.1);border-color:var(--accent)}
.aipp .feature-icon{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.aipp .aipp-free{background:#f2faf5;border:1px solid #cdebd8;border-left:4px solid #10b981;border-radius:12px;padding:14px 18px;margin:14px 0 18px}
.aipp .aipp-free .af-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.aipp .aipp-free .af-head{flex-wrap:wrap;row-gap:6px}
.aipp .aipp-free .af-tag{white-space:nowrap;flex:0 0 auto;background:#047857;color:#fff;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:3px 8px}
.aipp .aipp-free .af-title{font-size:17px;font-weight:800;color:#0f2540}
.aipp .aipp-free .af-what{margin:4px 0 12px !important;font-size:14.5px;line-height:1.6;color:#33475b}
.aipp .aipp-free .af-btn{display:inline-block;background:#047857;color:#fff !important;font-weight:800;font-size:15px;border-radius:9px;padding:11px 22px;text-decoration:none !important}
.aipp .aipp-free .af-btn:hover{background:#065f46}
.aipp .aipp-free .af-soon{display:inline-block;background:#e7eef3;color:#5b6f85;font-weight:700;font-size:14px;border-radius:9px;padding:10px 18px}
.aipp .aipp-free .af-sub{margin-top:9px;font-size:13px;color:#5b6f85}
.aipp .aipp-free .af-sub a{color:#2091DA;font-weight:700}
.aipp .aipp-pro-head{font-size:13px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#5b6f85;margin:4px 0 -4px}
html[data-theme="dark"] .aipp .aipp-free{background:rgba(16,185,129,.09);border-color:rgba(16,185,129,.35);border-left-color:#10b981}
html[data-theme="dark"] .aipp .aipp-free .af-title{color:#f1f5f9}
html[data-theme="dark"] .aipp .aipp-free .af-what{color:#cbd5e1}
html[data-theme="dark"] .aipp .aipp-free .af-soon{background:#243049;color:#cbd5e1}
html[data-theme="dark"] .aipp .aipp-free .af-sub{color:#aebacb}
/* 0.3.66: the light-mode AA colours ai-design-coherence.php sets on #aippFree (by id, so only one copy), here for both copies. */
html:not([data-theme="dark"]) .aipp .aipp-free .af-soon{color:#4a5f78}
html:not([data-theme="dark"]) .aipp .aipp-free .af-sub a{color:#186ba3}
/* 0.3.66 (Joel 2026-10-07): desktop shows the copy in the PHOTO card (under the NEW bar, above the photo), phones the copy in
   the buy card, where the 0.3.35 phone order puts it beside the price. Same 768px breakpoint as that phone layout. */
.aipp .product-img>.aipp-free{flex:none;margin:0 0 16px}
@media(min-width:769px){.aipp .product-info>.aipp-free--buy{display:none}}
@media(max-width:768px){.aipp .product-img>.aipp-free--img{display:none}}
html[data-theme="dark"] .aipp .aipp-pro-head{color:#aebacb}
/* v0.3.26 pre-release panel: the site's gold special-offer family (ai-cart-bump.php, CLAUDE.md 16), so "coming soon" reads as an event, not an error */
.aipp .aipp-prerelease{background:#fff8e6;border:1px solid #f0d488;border-left:4px solid #e8b923;border-radius:12px;padding:14px 18px;margin:6px 0 10px}
.aipp .aipp-prerelease .pr-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.aipp .aipp-prerelease .pr-tag{background:#8a6100;color:#fff;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:3px 8px}
.aipp .aipp-prerelease .pr-title{font-size:17px;font-weight:800;color:#3a2e05}
.aipp .aipp-prerelease .pr-line{margin:4px 0 12px !important;font-size:14.5px;line-height:1.6;color:#5b4708}
.aipp .aipp-prerelease .pr-btn{display:inline-block;line-height:1;text-decoration:none;background:#1a74b0;color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:15px;border:none;border-radius:9px;padding:11px 22px;cursor:pointer}
.aipp .aipp-prerelease .pr-btn:hover{background:#15628f}
.aipp .aipp-prerelease .pr-btn.is-sent{background:#10b981;cursor:default}
html[data-theme="dark"] .aipp .aipp-prerelease{background:linear-gradient(135deg,#1e1c14,#2c2617);border-color:rgba(232,185,35,.42);border-left-color:#e8b923}
html[data-theme="dark"] .aipp .aipp-prerelease .pr-tag{background:#e8b923;color:#1e1c14}
html[data-theme="dark"] .aipp .aipp-prerelease .pr-title{color:#f1f5f9}
html[data-theme="dark"] .aipp .aipp-prerelease .pr-line{color:#f3d98a}
.aipp .feature-icon.blue{background:rgba(32,145,218,.08);color:#2091DA}
.aipp .feature-icon.green{background:rgba(16,185,129,.08);color:#059669}
.aipp .feature-icon.indigo{background:rgba(99,102,241,.08);color:#6366f1}
.aipp .feature-icon.gold{background:rgba(217,119,6,.08);color:#d97706}
.aipp .feature-icon.teal{background:rgba(14,165,160,.08);color:#0ea5a0}
.aipp .feature-icon.red{background:rgba(239,68,68,.08);color:#dc2626}
.aipp .feature-item h4{font-size:14px;font-weight:800;margin-bottom:6px;font-family:'Plus Jakarta Sans',sans-serif}
.aipp .feature-item p{font-size:13px;color:var(--g500);margin:0;line-height:1.6}
.aipp .aipp-feat-link{display:inline-flex;align-items:center;gap:4px;margin-top:10px;font-size:12px;font-weight:700;color:var(--accent);text-decoration:none;font-family:'Plus Jakarta Sans',sans-serif}
.aipp .aipp-feat-link:hover{text-decoration:underline}
.aipp .aipp-feat-link span{transition:transform .15s ease}
.aipp .aipp-feat-link:hover span{transform:translateX(3px)}
.aipp .aipp-also{margin-top:30px;padding-top:4px;border-top:1px solid var(--g300)}
.aipp .aipp-also .aipp-sub-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
/* v0.3.24 the "View Product" in an Also Included heading is a real button (was 12px text, 16px tall).
   color needs !important and nothing else does: the theme's .entry-content a:not(.button)... rule is
   (0,5,1) and repaints every link #1a74b0, which is also why hover tints the fill rather than going
   solid blue - a solid fill would put that forced blue text on a blue button. */
.aipp .aipp-also-link{margin-top:0;padding:8px 16px;font-size:14px;line-height:1.2;gap:6px;white-space:nowrap;border:1.5px solid var(--accent);border-radius:999px;background:var(--accent-light);color:var(--accent-dark)!important;transition:background .15s ease,border-color .15s ease}
.aipp .aipp-also-link:hover{text-decoration:none;background:#d3eafb;border-color:var(--accent-dark)}
html[data-theme="dark"] .aipp .aipp-also-link{background:rgba(32,145,218,.15);border-color:rgba(108,182,232,.55);color:#8cc8f0!important}
html[data-theme="dark"] .aipp .aipp-also-link:hover{background:rgba(32,145,218,.26);border-color:#8cc8f0}
.aipp .aipp-also-note{font-size:13px;color:var(--g500);margin:0 0 2px}
.aipp .video-wrap{border-radius:var(--r);overflow:hidden;aspect-ratio:16/9;background:#000;margin:12px auto 0;max-width:820px}
.aipp .video-wrap iframe{width:100%;height:100%;border:none}
/* v0.3.21 — "no video yet" empty state. Shown on the 26 of 42 products with nothing on file. */
.aipp .aipp-novid{display:flex;gap:22px;align-items:flex-start;max-width:820px;margin:14px auto 0;background:#f7fafd;border:1px solid #e1ebf4;border-radius:var(--r);padding:26px 28px}
.aipp .aipp-novid-art{flex:none;width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eaf4fc 0%,#dbebf8 100%);color:#2091da;border:1px solid #cfe3f4}
.aipp .aipp-novid-art svg{width:28px;height:28px}
.aipp .aipp-novid-body{flex:1 1 auto;min-width:0}
.aipp .aipp-novid-body p{margin:0 0 11px;font-size:15px;line-height:1.7;color:var(--g500)}
.aipp .aipp-novid-lead{font-size:16px!important;color:var(--dark)!important;font-weight:600}
.aipp .aipp-novid-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:18px 0 0}
.aipp .aipp-novid-btn{display:inline-flex;line-height:1;text-decoration:none;align-items:center;gap:9px;background:var(--accent-dark);color:#fff;border:none;border-radius:10px;padding:13px 22px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14.5px;font-weight:700;cursor:pointer;transition:filter .18s ease,transform .18s ease,box-shadow .18s ease;box-shadow:0 8px 22px rgba(32,145,218,.24)}
.aipp .aipp-novid a.aipp-novid-btn{color:#fff!important}
.aipp .aipp-novid-btn svg{width:17px;height:17px}
.aipp .aipp-novid-btn:hover{filter:brightness(1.07);transform:translateY(-1px);box-shadow:0 12px 28px rgba(32,145,218,.3)}
.aipp .aipp-novid-btn.is-sent{background:#1f9d55;box-shadow:none;cursor:default;transform:none;filter:none}
.aipp .aipp-novid-alt{font-size:14px;font-weight:600;color:var(--accent);text-decoration:none}
.aipp .aipp-novid-alt:hover{text-decoration:underline}
.aipp .aipp-novid-fine{margin:14px 0 0!important;font-size:13px!important;color:var(--g500)!important;opacity:.85}
html[data-theme="dark"] .aipp .aipp-novid{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.11)}
html[data-theme="dark"] .aipp .aipp-novid-art{background:rgba(32,145,218,.15);border-color:rgba(32,145,218,.32)}
@media(max-width:600px){.aipp .aipp-novid{flex-direction:column;gap:16px;padding:22px 20px}.aipp .aipp-novid-actions{gap:14px}.aipp .aipp-novid-btn{width:100%;justify-content:center}}
.aipp .aipp-ytfacade{position:relative;display:block;width:100%;height:100%;cursor:pointer}
.aipp .aipp-ytfacade img{width:100%;height:100%;object-fit:cover;display:block}
.aipp .aipp-ytfacade::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.28));transition:background .2s}
.aipp .aipp-ytfacade:hover::after{background:rgba(0,0,0,.1)}
.aipp .aipp-ytplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:72px;height:50px;z-index:2;transition:transform .2s ease}
.aipp .aipp-ytplay svg{width:100%;height:100%;filter:drop-shadow(0 3px 10px rgba(0,0,0,.45))}
.aipp .aipp-ytfacade:hover .aipp-ytplay{transform:translate(-50%,-50%) scale(1.09)}
.aipp .aipp-ytfacade:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.aipp .aipp-ytplay,.aipp .aipp-ytfacade::after{transition:none}}
.aipp .req-table{width:100%;margin-top:12px;border-collapse:collapse}
.aipp .req-table td{padding:10px 12px;border-bottom:1px solid var(--g100);font-size:14px}
.aipp .req-table td:first-child{font-weight:600;color:var(--dark);width:170px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px}
/* combined Requirements & Setup tab: sub-headings + inline policy FAQ */
.aipp .tab-content .aipp-sub-h{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;font-weight:800;color:var(--dark);margin:30px 0 10px}
.aipp .tab-content .aipp-sub-h:first-of-type{margin-top:6px}
.aipp .aipp-faq-inline{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.aipp .aipp-faq-inline .aipp-faq-item summary{padding:14px 18px;font-size:14.5px}
.aipp .aipp-faq-inline .faq-a{padding:0 18px 16px;font-size:14px}
.aipp .reviews-note{border:1px dashed var(--g300);border-radius:var(--rs);padding:20px;font-size:14px;color:var(--g500);text-align:center;margin-top:12px}
@media(max-width:768px){
.aipp .product-header{grid-template-columns:1fr;gap:20px}
.aipp .product-img{order:-1}
.aipp .product-info{padding-top:0}
.aipp .aipp-imgmeta{margin-top:16px}
.aipp .product-info h1{font-size:24px}
.aipp .product-info .aipp-subhead{font-size:15px;margin:-1px 0 11px}
.aipp .price-sale{font-size:28px}
.aipp .feature-grid{grid-template-columns:1fr}
.aipp .tabs{display:none}
.aipp .tab-content{display:block;position:relative;padding:0;border-bottom:1px solid var(--g300)}
.aipp .tab-content::before{content:attr(data-label);display:block;padding:14px 44px 14px 4px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:700;color:var(--dark);text-transform:uppercase;letter-spacing:.5px;cursor:pointer}
.aipp .tab-content::after{content:"+";position:absolute;top:14px;right:8px;font-size:22px;color:var(--g500);pointer-events:none;line-height:1}
.aipp .tab-content.mobile-open::after{content:"−"}
.aipp .tab-content>*{display:none}
.aipp .tab-content.mobile-open{padding-bottom:16px}
.aipp .tab-content.mobile-open>*{display:block}
.aipp .tab-content>h2,.aipp .tab-content.mobile-open>h2{display:none}
.aipp .compare-grid{grid-template-columns:1fr}
.aipp .whats-included{width:auto}.aipp .included-list{grid-template-columns:1fr}
}
.aipp .aipp-crumbs{font-size:13px;color:var(--g500);padding:18px 0 0;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.aipp .aipp-crumbs a{color:var(--g500)}
.aipp .aipp-crumbs a:hover{color:var(--accent)}
.aipp .aipp-crumbs span{color:var(--g500)}
.aipp .aipp-crumbs .crumb-cur{color:var(--dark);font-weight:600}
.aipp .product-img .aipp-thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.aipp .aipp-thumb{width:64px;height:64px;object-fit:cover;border-radius:var(--rs);border:2px solid var(--g300);cursor:pointer;transition:border-color .2s}
.aipp .aipp-thumb:hover{border-color:var(--g500)}
.aipp .aipp-thumb.active{border-color:var(--accent)}
.aipp .aipp-related{padding:8px 0 56px}
.aipp .aipp-related>h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:800;color:var(--dark);text-align:center;margin:0 0 24px}
.aipp .aipp-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.aipp .aipp-rel-card{display:flex;flex-direction:column;border:1px solid var(--g300);border-radius:var(--r);overflow:hidden;text-decoration:none;background:var(--white);transition:transform .2s,box-shadow .2s}
.aipp .aipp-rel-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(32,145,218,.12);border-color:var(--accent)}
.aipp .aipp-rel-img{aspect-ratio:4/3;background:var(--white);overflow:hidden;flex:0 0 auto;border-bottom:1px solid var(--g100)}
.aipp .aipp-rel-img img{width:100%;height:100%;object-fit:contain;display:block;padding:8px;box-sizing:border-box}
.aipp .aipp-rel-body{display:flex;flex-direction:column;flex:1;padding:12px 14px 14px}
.aipp .aipp-rel-name{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:14px;color:var(--dark);line-height:1.3;margin:0 0 7px}
/* star rating + price mirror the All-Products cards (name / reviews / price·discount) */
.aipp .aipp-rel-rating{display:flex;align-items:center;gap:5px;margin:0 0 9px;font-size:12.5px}
.aipp .aipp-rel-stars{--pct:100%;position:relative;display:inline-block;font-size:14px;line-height:1;white-space:nowrap}
.aipp .aipp-rel-stars::before{content:"\2605\2605\2605\2605\2605";color:var(--g300)}
.aipp .aipp-rel-stars::after{content:"\2605\2605\2605\2605\2605";color:#f5a623;position:absolute;left:0;top:0;width:var(--pct);overflow:hidden}
.aipp .aipp-rel-rnum{font-weight:800;color:var(--dark);font-family:'Plus Jakarta Sans',sans-serif}
.aipp .aipp-rel-rcount{color:var(--g500)}
.aipp .aipp-rel-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;margin-top:auto}
.aipp .aipp-rel-orig{font-size:12.5px;color:var(--g500);text-decoration:line-through}
.aipp .aipp-rel-sale{font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;font-weight:800;color:var(--dark)}
.aipp .aipp-rel-off{font-size:11px;font-weight:700;color:#b91c1c;background:#fef2f2;padding:3px 8px;border-radius:6px}
.aipp .aipp-rel-off.tier-30{color:#0f766e;background:#ccfbf1}
.aipp .aipp-rel-off.tier-40{color:#c2410c;background:#ffedd5}
.aipp .aipp-rel-off.tier-50{color:#7c3aed;background:#ede9fe}
@media(max-width:768px){.aipp .aipp-related-grid{grid-template-columns:1fr 1fr;gap:12px}.aipp .aipp-thumb{width:54px;height:54px}}
.aipp .aipp-buybar{position:fixed;left:0;right:0;bottom:0;z-index:99990;background:#fff;border-top:1px solid var(--g300);box-shadow:0 -4px 24px rgba(0,0,0,.1);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 88px 10px 24px;transform:translateY(115%);visibility:hidden;transition:transform .28s ease,visibility 0s linear .28s}
/* keep the right action clear of the Intercom launcher, and lift the dark-mode toggle
   above the bar so it never sits over the left product image/name. */
body:has(#aippBuyBar.show) .ai-theme-toggle{bottom:78px !important}
/* v0.3.72 our own chat (ai-chat): its launcher (a 52px "Messages" pill on desktop, a 56px circle on phones, 20px from
   the corner) would cover the right end of this bar, so it and its floating nudge ride above the bar while the bar shows,
   as Intercom's launcher does below. Inert until the chat bubble is switched on. */
body:has(#aippBuyBar.show) .aic-launch{bottom:84px !important;transition:bottom .28s ease}
body:has(#aippBuyBar.show) .aic-nudge-float{bottom:148px !important}
.aipp .bb-prices{display:flex;align-items:center;gap:8px}
.aipp .bb-orig{font-size:14px;color:var(--g500);text-decoration:line-through;font-weight:600}
.aipp .bb-off{font-size:11px;font-weight:800;color:#fff;background:#dc2626;padding:3px 8px;border-radius:5px;font-family:'Plus Jakarta Sans',sans-serif;white-space:nowrap}
.aipp .bb-save{font-size:11px;font-weight:800;color:#047857;background:#ecfdf5;padding:3px 8px;border-radius:5px;font-family:'Plus Jakarta Sans',sans-serif;white-space:nowrap}
.aipp .aipp-buybar.show{transform:translateY(0);visibility:visible;transition:transform .28s ease}
.aipp .bb-info{display:flex;align-items:center;gap:12px;min-width:0}
.aipp .bb-info img{width:42px;height:42px;object-fit:cover;border-radius:6px;flex-shrink:0}
.aipp .bb-name{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;color:var(--dark);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aipp .bb-act{display:flex;align-items:center;gap:16px;flex-shrink:0}
.aipp .bb-price{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--dark);font-size:19px}
.aipp .bb-btn{background:var(--accent);color:#fff;border:none;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:15px;padding:12px 24px;border-radius:var(--rs);cursor:pointer;transition:background .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.aipp .bb-btn svg{width:17px;height:17px;flex:0 0 17px}
.aipp .bb-btn:hover{background:var(--accent-dark)}
/* 0.3.99 the bar's Free trial button: phones only, outlined in the trial's green; room at the foot of the page for the bar */
.aipp .bb-trial{display:none}
@media(max-width:600px){.aipp .bb-trial{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:13px;line-height:1.2;padding:10px 12px;border:1.5px solid #047857;border-radius:var(--rs);color:#047857;background:transparent;text-decoration:none;white-space:nowrap}
  .aipp .bb-trial:hover{background:#ecfdf5}
  html[data-theme="dark"] .aipp .bb-trial{color:#34d399;border-color:#34d399}
  html[data-theme="dark"] .aipp .bb-trial:hover{background:rgba(52,211,153,.1)}
  body:has(#aippBuyBar){padding-bottom:64px}}
@media(max-width:440px){.aipp .aipp-buybar:has(.bb-trial) .bb-info{display:none}.aipp .aipp-buybar:has(.bb-trial) .bb-act{flex:1;gap:8px}.aipp .aipp-buybar:has(.bb-trial) .bb-prices{margin-right:auto}}
@media(max-width:600px){.aipp .aipp-buybar{padding:8px 12px;gap:8px}.aipp .bb-info img{display:none}.aipp .bb-name{font-size:13px}.aipp .bb-price{font-size:16px}.aipp .bb-btn{padding:11px 16px;font-size:13px}.aipp .bb-orig,.aipp .bb-off,.aipp .bb-save{display:none}body:has(#aippBuyBar.show) .ai-theme-toggle{bottom:70px !important}
/* v0.3.43 PHONES: the Intercom launcher (48px at right/bottom 20px) covered the right end of the sticky Add to Cart
   button; the 60px right padding this bar used to reserve was 8px short (measured 2026-10-02 at 375px). The launcher
   now rides ABOVE the bar while it shows, and the bar gets its full width back. Two selectors because Intercom swaps
   launchers: the lightweight one until the chat is first opened, then a wrapper with generated class names whose only
   stable handle is the iframe inside it (name="intercom-launcher-frame"; both states checked live 2026-10-02). If a
   future Intercom build renames that iframe, the booted launcher stops lifting and the 8px overlap returns. */
body:has(#aippBuyBar.show) .intercom-lightweight-app-launcher,
body:has(#aippBuyBar.show) .intercom-app>div:has(>iframe[name="intercom-launcher-frame"]){bottom:68px !important;transition:bottom .28s ease}
/* v0.3.43 PHONES: the floating LIGHT/DARK toggle (84px wide) sat over the "Overview" heading and the trust line.
   Icon only here; aria-label still names it, and dropping the visible word cannot break label-in-name. */
body:has(.aipp) .ai-theme-toggle{width:34px;padding:0;justify-content:center}
body:has(.aipp) .ai-theme-toggle .att-label{display:none}}
.aipp .aipp-built{font-size:14px;color:var(--g700);background:var(--accent-light);border:1px solid #cfe7fa;border-radius:var(--rs);padding:11px 14px;margin:2px 0 14px;font-weight:500;line-height:1.7}
.aipp .aipp-nt-logo{height:14px;width:auto;vertical-align:-2px;display:inline-block;margin:0 3px}
.aipp .aipp-built strong{color:var(--dark);font-family:'Plus Jakarta Sans',sans-serif}
.aipp .aipp-tax{font-size:13px;color:var(--g500);line-height:1.8;border-top:1px solid var(--g300);padding-top:12px}
.aipp .aipp-tax-label{color:var(--dark);font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;margin-right:4px}
.aipp .aipp-tax a{color:var(--accent);font-weight:500}
.aipp .aipp-tax a:hover{text-decoration:underline}
.aipp .aipp-shots{padding:8px 0 48px}
.aipp .aipp-shots>h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:800;color:var(--dark);text-align:center;margin:0 0 24px}
.aipp .aipp-shots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.aipp .aipp-shot{display:block;border:1px solid var(--g300);border-radius:var(--r);overflow:hidden;background:var(--g100);aspect-ratio:16/10;transition:transform .2s,box-shadow .2s,border-color .2s}
.aipp .aipp-shot:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(32,145,218,.14);border-color:var(--accent)}
.aipp .aipp-shot img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:768px){.aipp .aipp-shots-grid{grid-template-columns:1fr 1fr;gap:10px}}
@media(max-width:480px){.aipp .aipp-shots-grid{grid-template-columns:1fr}}
/* ===== 2026 modern pass: depth, elevated buy box, sticky tabs, motion ===== */
.aipp .product-info{background:#fff;border:1px solid #e8edf3;border-radius:20px;padding:34px 32px;box-shadow:0 16px 50px rgba(15,23,42,.07)}
.aipp .feature-item{box-shadow:0 2px 10px rgba(15,23,42,.04)}
.aipp .aipp-shots{background:linear-gradient(180deg,#f7fafd,#fff);border-radius:24px;padding:36px 0 48px}
.aipp .compare-col{box-shadow:0 6px 22px rgba(15,23,42,.07)}
.aipp .tabs{position:sticky;top:var(--aipp-stick-top,88px);z-index:40;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(1.5) blur(10px);backdrop-filter:saturate(1.5) blur(10px);transition:box-shadow .2s}
.aipp .tabs.is-stuck{box-shadow:0 6px 20px rgba(15,23,42,.06)}
.aipp .save-badge{background:#ecfdf5;color:#059669;font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:700;padding:4px 10px;border-radius:6px}
.aipp .buy-rating{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:13px;color:var(--g500)}
/* v0.3.22 — buy-box review quotes. Sits under the CTA cluster, above the guarantee. */
.aipp .aipp-bbq{margin:14px 0 0;padding:18px 20px;background:#f7fafd;border:1px solid #e1ebf4;border-radius:var(--rs)}
.aipp .bbq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;align-items:stretch}
.aipp .bbq-item{display:flex;flex-direction:column;margin:0;padding:14px 16px;background:var(--white);border:1px solid #e1ebf4;border-radius:var(--rs)}
.aipp .bbq-item .aipp-stars{display:inline-block;vertical-align:middle}
.aipp .bbq-item blockquote{flex:1 1 auto;margin:7px 0 10px;padding:0;border:0;font-size:14px;line-height:1.65;color:var(--g700);font-style:normal;quotes:none}
.aipp .bbq-item figcaption{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--g500)}
.aipp .bbq-who{font-weight:700;color:var(--dark)}
.aipp .bbq-src{font-weight:600;padding:2px 8px;border-radius:100px;background:#eef4fa;color:#4a6b88}
.aipp .bbq-src-trustpilot{background:#e6f6ef;color:#0b7a53}
.aipp .bbq-src-google{background:#eef2fc;color:#38539c}
.aipp .bbq-src-youtube{background:#fdecec;color:#b32424}
.aipp .bbq-more{display:inline-block;margin-top:14px;font-size:13px;font-weight:700;color:var(--accent);text-decoration:none}
.aipp .bbq-more:hover{text-decoration:underline}
html[data-theme="dark"] .aipp .aipp-bbq{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.11)}
html[data-theme="dark"] .aipp .bbq-item{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.10)}
html[data-theme="dark"] .aipp .bbq-item blockquote{color:#d7e2ee}
.aipp .buy-rating .stars{color:#f5a623;letter-spacing:1px;font-size:15px}
.aipp .buy-rating strong{color:var(--dark);font-family:'Plus Jakarta Sans',sans-serif}
.aipp .buy-rating a{color:var(--accent);font-weight:600;text-decoration:none}
.aipp .buy-rating a:hover{text-decoration:underline}
.aipp .aipp-stars{--pct:96%;position:relative;display:inline-block;font-family:Arial,sans-serif;font-size:16px;line-height:1;letter-spacing:2px;color:#d4dae2;white-space:nowrap}
.aipp .aipp-stars::before{content:"\2605\2605\2605\2605\2605"}
.aipp .aipp-stars::after{content:"\2605\2605\2605\2605\2605";position:absolute;left:0;top:0;width:var(--pct);overflow:hidden;color:#f5a623}
html[data-theme="dark"] .aipp .aipp-stars{color:#3a4658}
.aipp .aipp-rating-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--g100);border:1px solid var(--g300);border-radius:var(--rs);padding:14px 18px;margin:0 0 16px}
.aipp .aipp-rating-summary .rs-num{font-family:'Plus Jakarta Sans',sans-serif;font-size:30px;font-weight:800;color:var(--dark);line-height:1}
.aipp .aipp-rating-summary .rs-meta{font-size:13px;color:var(--g500)}
.aipp .aipp-rating-summary .aipp-stars{font-size:20px}
.aipp .aipp-revcards{column-count:2;column-gap:12px;margin:0 0 14px}
.aipp .aipp-revcard{background:#fff;border:1px solid var(--g300);border-radius:10px;padding:12px 14px;margin:0 0 12px;break-inside:avoid;-webkit-column-break-inside:avoid}
.aipp .aipp-revcards.is-masonry{display:flex;align-items:flex-start;gap:12px;column-count:auto}
.aipp .aipp-revcards.is-masonry .rev-col{display:flex;flex-direction:column;gap:12px;flex:1 1 0;min-width:0}
.aipp .aipp-revcards.is-masonry .aipp-revcard{margin:0}
.aipp .aipp-revmore{display:flex;align-items:center;gap:8px;width:max-content;margin:2px auto 18px;padding:11px 22px;border:1.5px solid var(--g300);background:#fff;border-radius:999px;font-family:inherit;font-size:13px;font-weight:700;color:var(--dark);cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.aipp .aipp-revmore[hidden]{display:none}
.aipp .aipp-revmore:hover{background:var(--g100);border-color:var(--accent);transform:translateY(-1px)}
.aipp .aipp-revmore .rm-arrow{font-size:14px;line-height:1;transition:transform .15s}
.aipp .aipp-revmore:hover .rm-arrow{transform:translateY(2px)}
/* 0.3.79: "View all reviews" fallback link in the same pill. (1,2,1) beats WooCommerce's .woocommerce a:not(.button) link colour;
   #186ba3 = brand blue as text (AA, CLAUDE.md §44). Dark pages keep ai-dark-mode's .tab-content a colour (it is !important). */
.aipp #aipp-reviews a.aipp-revmore{color:#186ba3;text-decoration:none}
.aipp .aipp-revmore[aria-busy="true"]{cursor:progress;opacity:.8}
.aipp .aipp-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.aipp .aipp-revcard .rc-reply{margin:10px 0 0;padding:9px 12px;background:var(--g100);border-left:3px solid var(--accent);border-radius:0 8px 8px 0}
.aipp .aipp-revcard .rc-reply .rc-reply-head{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:var(--dark);margin-bottom:2px}
.aipp .aipp-revcard .rc-reply p{font-size:12.5px;color:var(--g500);margin:0;line-height:1.5}
html[data-theme="dark"] .aipp .aipp-revcard .rc-reply{background:#13243b}
.aipp .aipp-revcard .rc-since{display:inline-flex;align-items:center;gap:5px;margin:0 0 7px;padding:3px 9px;font-size:11px;font-weight:700;line-height:1.3;color:var(--accent);background:rgba(32,145,218,.08);border-radius:999px}
html[data-theme="dark"] .aipp .aipp-revcard .rc-since{background:rgba(32,145,218,.16)}
.aipp .aipp-revcard .rc-since svg{flex:none;display:block}
@media(max-width:600px){.aipp .aipp-revcards{column-count:1}}
.aipp .aipp-revcard .rc-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.aipp .aipp-revcard .rc-author{font-size:13px;font-weight:700;color:var(--g700)}
.aipp .aipp-revcard .rc-src{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--g700);margin-left:auto;text-decoration:none;white-space:nowrap;padding:2px 7px;border:1px solid var(--g300);border-radius:5px;background:#fff}
.aipp .aipp-revcard .rc-src:hover{border-color:var(--g500)}
.aipp .aipp-revcard p{font-size:13.5px;color:var(--g500);margin:0;line-height:1.55}
.aipp .aipp-revcard .rc-body p + p{margin-top:1.1em}
.aipp .aipp-revcard .rc-reply p + p{margin-top:1.5em}
html[data-theme="dark"] .aipp .aipp-rating-summary{background:#0f1d31;border-color:#24405f}
html[data-theme="dark"] .aipp .aipp-revcard{background:#0f1d31;border-color:#24405f}
/* Reviews tab: rating overview + clickable star-distribution filter */
.aipp .aipp-rev-overview{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch;margin:0 0 18px}
.aipp .aipp-rev-left{display:flex;gap:12px;align-items:stretch;min-width:0}
.aipp .aipp-rev-left .aipp-rating-summary{flex:0 0 200px;margin:0}
.aipp .aipp-rev-left .aipp-revbars{flex:1 1 auto;min-width:0}
.aipp .aipp-rev-overview .aipp-rating-summary{margin:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px}
.aipp .aipp-rating-summary .rs-src{font-size:11px;font-weight:700;color:var(--g500);text-transform:uppercase;letter-spacing:.4px;margin-top:2px}
.aipp .aipp-revbars{display:flex;flex-direction:column;justify-content:center;gap:5px}
.aipp .aipp-rev-sources{background:var(--g100);border:1px solid var(--g300);border-radius:var(--rs);padding:14px 16px;display:flex;flex-direction:column;justify-content:center;gap:9px}
.aipp .aipp-rev-sources .rsrc-head{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:800;color:var(--dark);display:flex;align-items:center;gap:6px}
.aipp .aipp-rev-sources .rsrc-check{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#00b67a;color:#fff;font-size:11px;font-weight:800}
.aipp .aipp-rev-sources p{font-size:12.5px;color:var(--g500);margin:0;line-height:1.5}
.aipp .aipp-rev-sources .rsrc-badges{display:flex;flex-wrap:wrap;gap:8px}
.aipp .aipp-rev-sources .rsrc-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;text-decoration:none;padding:5px 10px;border-radius:6px;border:1px solid var(--g300);background:#fff;color:var(--g700)}
.aipp .aipp-rev-sources .rsrc-badge:hover{border-color:var(--g500)}
.aipp .aipp-rev-sources .rsrc-tp .rsrc-star{color:#00b67a}
.aipp .aipp-rev-sources .rsrc-g .rsrc-gmark{color:#4285F4;font-weight:800}
.aipp .aipp-rev-sources .rsrc-yt .rsrc-ytmark{color:#f00;font-weight:800}
.aipp .aipp-rev-sources .rsrc-cta{font-size:12.5px;font-weight:700;color:var(--accent);text-decoration:none}
.aipp .aipp-rev-sources .rsrc-cta:hover{text-decoration:underline}
html[data-theme="dark"] .aipp .aipp-rev-sources{background:#0f1d31;border-color:#24405f}
html[data-theme="dark"] .aipp .aipp-rev-sources .rsrc-badge{background:#0b1626;border-color:#24405f;color:#c7d2e0}
.aipp .aipp-revbar{display:flex;align-items:center;gap:10px;width:100%;background:none;border:1px solid transparent;border-radius:8px;padding:5px 9px;cursor:pointer;font-family:inherit;text-align:left;transition:background .15s,border-color .15s}
.aipp .aipp-revbar:hover:not([disabled]){background:var(--g100)}
.aipp .aipp-revbar.is-active{background:var(--g100);border-color:var(--g300)}
.aipp .aipp-revbar[disabled]{cursor:default;opacity:.5}
.aipp .aipp-revbar .rb-label{flex:0 0 44px;font-size:12.5px;font-weight:700;color:var(--g700);display:flex;align-items:center;gap:3px}
.aipp .aipp-revbar .rb-star{color:#ffb500}
.aipp .aipp-revbar .rb-track{flex:1 1 auto;height:9px;background:#e7ecf3;border-radius:6px;overflow:hidden}
.aipp .aipp-revbar .rb-fill{display:block;height:100%;background:#00b67a;border-radius:6px;transition:width .3s}
.aipp .aipp-revbar[data-stars="all"] .rb-fill{background:#1a74b0}
.aipp .aipp-revbar .rb-count{flex:0 0 34px;text-align:right;font-size:12px;font-weight:700;color:var(--g500)}
.aipp .aipp-revcard .rc-src-tp .rc-mark{color:#00b67a}
.aipp .aipp-revcard .rc-src-g .rc-mark{color:#4285F4;font-weight:800}
.aipp .aipp-revcard .rc-src-yt .rc-mark{color:#f00;font-weight:800}
.aipp .aipp-revcard .rc-src-v .rc-mark{color:var(--g500)}
html[data-theme="dark"] .aipp .aipp-revcard .rc-src{background:#0b1626;border-color:#24405f;color:#c7d2e0}
html:not([data-theme="dark"]) .aipp .aipp-rev-sources .rsrc-badge,html:not([data-theme="dark"]) .aipp .aipp-revcard .rc-src{color:var(--g700)}
.aipp .aipp-revcard .rc-date{font-size:11px;color:var(--g500);margin-left:8px;white-space:nowrap;flex:0 0 auto}
.aipp .aipp-revempty{font-size:14px;color:var(--g500);font-style:italic;margin:0 0 12px}
/* 0.3.82: the phone accordion's ".tab-content.mobile-open>*{display:block}" (0,3,0, earlier in the file) beat the hidden
   attribute, so phones showed "No reviews at this rating yet." under every review list (measured live 2026-10-21). */
.aipp .aipp-revempty[hidden]{display:none}
html[data-theme="dark"] .aipp .aipp-revbar:hover:not([disabled]),html[data-theme="dark"] .aipp .aipp-revbar.is-active{background:#0f1d31;border-color:#24405f}
html[data-theme="dark"] .aipp .aipp-revbar .rb-track{background:#24405f}
@media(max-width:640px){.aipp .aipp-rev-overview{grid-template-columns:1fr;gap:14px}.aipp .aipp-rev-left{flex-direction:column}}
@media(max-width:768px){.aipp .aipp-revcards{column-count:1}}
.aipp .aipp-guarantee{display:flex;gap:11px;align-items:flex-start;margin:14px 0 0;padding:13px 15px;background:#eef8f1;border:1px solid #bfe3c9;border-radius:10px}
.aipp .aipp-guarantee svg{flex-shrink:0;margin-top:1px}
.aipp .aipp-guarantee strong{display:block;font-size:13.5px;font-weight:800;color:#1a6b3a;margin-bottom:3px}
.aipp .aipp-guarantee span{display:block;font-size:13px;line-height:1.6;color:#3f5c47}
.aipp .buy-badges{display:flex;flex-wrap:wrap;gap:14px;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--g100);font-size:12.5px;color:var(--g500)}
.aipp .buy-badges span{display:flex;align-items:center;gap:5px;white-space:nowrap}
/* v0.3.37 NinjaTrader 8.0.28.0 line + chip (aipp_nt8028()). The chip may wrap below the other two on a phone; that is fine. */
.aipp .aipp-built .aipp-ntver{display:block;font-size:13px;font-weight:600;color:#1a7f43;margin-top:2px}
.aipp .buy-badges span.aipp-ntchip{color:#1a7f43;font-weight:600;white-space:normal}
html[data-theme="dark"] .aipp .aipp-built .aipp-ntver,html[data-theme="dark"] .aipp .buy-badges span.aipp-ntchip{color:#4ade80}
.aipp.aipp-motion .aipp-rel-card{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.aipp.aipp-motion .aipp-rel-card.in{opacity:1;transform:none}
.aipp .tab-content.active{animation:aippFade .35s ease}
@keyframes aippFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.aipp.aipp-motion .aipp-shot,.aipp.aipp-motion .aipp-rel-card{opacity:1 !important;transform:none !important}.aipp .tab-content.active{animation:none}}
@media(max-width:768px){.aipp .product-info{padding:24px 20px;border-radius:16px}.aipp .tabs{position:static;backdrop-filter:none;-webkit-backdrop-filter:none}}
/* ===== Gallery lightbox + zoom ===== */
.aipp-shot,.aipp .product-img>img{cursor:zoom-in}
.aipp .aipp-shot{position:relative}
.aipp .aipp-shot::after{content:'';position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(255,255,255,.94) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232091DA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") center/22px no-repeat;opacity:0;transform:scale(.8);transition:opacity .2s ease,transform .2s ease;box-shadow:0 6px 18px rgba(15,23,42,.22);pointer-events:none}
.aipp .aipp-shot:hover::after{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:reduce){.aipp .aipp-shot::after{transition:none}}
.aipp-lb{position:fixed;inset:0;z-index:2147483000;display:none;align-items:center;justify-content:center;background:rgba(8,12,20,.94);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:0;transition:opacity .25s ease}
.aipp-lb.open{display:flex;opacity:1}
html.aipp-lb-open #aippBuyBar,html.aipp-lb-open [data-elementor-type="header"],html.aipp-lb-open .site-header,html.aipp-lb-open #masthead{visibility:hidden !important}
.aipp-lb-img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:10px;box-shadow:0 30px 90px rgba(0,0,0,.55);transition:transform .25s ease;cursor:zoom-in;-webkit-user-select:none;user-select:none}
.aipp-lb-img.zoomed{cursor:zoom-out;transform:scale(1.9)}
.aipp-lb-btn{position:absolute;background:rgba(15,23,42,.55);border:1px solid rgba(255,255,255,.55);color:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:0;line-height:0}
.aipp-lb-btn:hover{background:rgba(32,145,218,.85)}
.aipp-lb-btn:active{transform:scale(.93)}
.aipp-lb-btn svg{width:22px!important;height:22px!important;display:block;stroke:#fff!important;fill:none!important}
.aipp-lb-close{top:20px;right:24px}
.aipp-lb-prev{left:24px;top:50%;margin-top:-24px}
.aipp-lb-next{right:24px;top:50%;margin-top:-24px}
.aipp-lb-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.85);font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;letter-spacing:.5px}
@media(max-width:768px){.aipp-lb-prev{left:8px}.aipp-lb-next{right:8px}.aipp-lb-btn{width:42px;height:42px}.aipp-lb-img.zoomed{transform:scale(1.5)}}
@media(prefers-reduced-motion:reduce){.aipp-lb,.aipp-lb-img{transition:none}}
/* v0.3.35 main image opens the viewer (JS "Gallery lightbox + zoom"); keyboard focus ring. cursor:zoom-in is set above. */
.aipp .product-img>img:focus-visible{outline:3px solid var(--accent) !important;outline-offset:3px !important}
/* v0.3.36: !important because the Customizer CSS has `:focus{outline:0 !important}`. The viewer goes above the
   Intercom launcher (z-index 2147483003), which otherwise floated over it. */
.aipp-lb{z-index:2147483647}
/* v0.3.35 PHONES ONLY — buy box first. Clarity 2026-09: 77% of phone visitors on Accounts Dashboard Suite never
   scrolled past the first screen, which held crumb + screenshot + built-for + Categories/Tags (title near 700px,
   Add to Cart near 1300px). The photo card moves BELOW the buy card, Categories/Tags are hidden (the links stay in
   the HTML), and the buy card leads with title > price > rating > license > Add to Cart; the description,
   checkmarks, 2nd-PC / bundle nudges, guarantee and runs-on badge follow in their usual order. Anything without a
   rule here defaults to order 9, so a new element can never jump above the title. Desktop is untouched. */
@media(max-width:768px){
.aipp .product-header>.product-img{order:2}
.aipp .product-header .aipp-imgmeta .aipp-tax{display:none}
.aipp .product-header>.product-info{display:flex;flex-direction:column}
.aipp .product-header>.product-info>*{order:9}
.aipp .product-header>.product-info>.product-badge{align-self:flex-start}
.aipp .product-header>.product-info>.product-badge,.aipp .product-header>.product-info>h1,.aipp .product-header>.product-info>.aipp-subhead{order:1}
.aipp .product-header>.product-info>.aipp-free,.aipp .product-header>.product-info>.aipp-pro-head,.aipp .product-header>.product-info>.price-display,.aipp .product-header>.product-info>.aipp-special-box,.aipp .product-header>.product-info>.buy-rating{order:2}
.aipp .product-header>.product-info>.license-label,.aipp .product-header>.product-info>.license-options{order:3}
.aipp .product-header>.product-info>.buy-actions,.aipp .product-header>.product-info>.aipp-prerelease,.aipp .product-header>.product-info>.paypal-note,.aipp .product-header>.product-info>.buy-badges{order:4}
.aipp .product-header>.product-info>.buy-badges{margin:0 0 18px}
/* v0.3.36: a free box with nothing to click yet (class set in the markup: no link, no status line) follows the buy block. */
.aipp .product-header>.product-info>.aipp-free--soon{order:5}
/* v0.3.36: collapsed = hidden, even for children with an inline display (the Overview callouts use style="display:flex"). */
.aipp .tab-content:not(.mobile-open)>*{display:none !important}
}
/* ===== FAQ accordion ===== */
.aipp .aipp-faq{max-width:none;margin:0;padding:8px 0 52px}
.aipp .aipp-faq>h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;font-weight:800;color:var(--dark);text-align:center;margin:0 0 24px}
.aipp .aipp-faq-list{display:flex;flex-direction:column;gap:12px}
.aipp .aipp-faq-item{background:var(--white);border:1px solid var(--g300);border-radius:14px;overflow:hidden;transition:box-shadow .2s,border-color .2s}
.aipp .aipp-faq-item[open]{border-color:var(--accent);box-shadow:0 8px 28px rgba(15,23,42,.06)}
.aipp .aipp-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;cursor:pointer;list-style:none;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:15.5px;color:var(--dark)}
.aipp .aipp-faq-item summary::-webkit-details-marker{display:none}
.aipp .aipp-faq-item summary::marker{content:''}
.aipp .aipp-faq-item summary:hover{color:var(--accent)}
.aipp .faq-chevron{flex:0 0 22px;width:22px;height:22px;color:var(--g500);transition:transform .25s ease,color .2s}
.aipp .faq-chevron svg{width:22px;height:22px;display:block}
.aipp .aipp-faq-item[open] .faq-chevron{transform:rotate(180deg);color:var(--accent)}
.aipp .faq-a{padding:0 22px 20px;color:var(--g500);font-size:14.5px;line-height:1.7}
.aipp .faq-a p{margin:0 0 10px}.aipp .faq-a p:last-child{margin:0}
.aipp .faq-a a{color:var(--accent-dark);font-weight:600}
.aipp .aipp-faq-item[open] .faq-a{animation:aippFade .3s ease}
@media(max-width:768px){.aipp .aipp-faq>h2{font-size:21px}.aipp .aipp-faq-item summary{padding:16px 18px;font-size:14.5px}}
/* ===== WCAG AA contrast: #2091DA is too light as small text / white-on-blue button ===== */
.aipp .btn-cart,.aipp .bb-btn{background:#1a74b0}
.aipp .btn-cart:hover,.aipp .bb-btn:hover{background:#15598a}
.aipp .price-off{color:#b91c1c}
.aipp .save-badge{color:#047857}
html:not([data-theme="dark"]) .aipp .product-badge,
html:not([data-theme="dark"]) .aipp .license-opt.active{color:#15628f}
html:not([data-theme="dark"]) .aipp .tab-btn.active{color:#1a74b0}
html:not([data-theme="dark"]) .aipp .tab-content a,
html:not([data-theme="dark"]) .aipp .aipp-tax-row a,
html:not([data-theme="dark"]) .aipp .paypal-note a,
html:not([data-theme="dark"]) .aipp .aipp-crumbs a{color:#1a74b0}
/* in-text links: distinguishable without colour (underline) */
.aipp .tab-content p a,.aipp .faq-a a{text-decoration:underline}
