/* ---------- 1. DESIGN TOKENS ---------- */
:root{
  /* brand */
  --apg-green:#71a94e;
  --apg-green-dark:#5a8c3a;   /* button hover */
  --apg-green-deep:#4a7a30;   /* "best" tier */
  --apg-green-soft:#eef5e6;   /* tinted backgrounds */
  --apg-green-tint:#dcebcd;   /* tinted borders */
  --apg-orange:#f26b21;       /* accent / attention */
  --apg-orange-dark:#d9551a;

  /* neutrals */
  --apg-charcoal:#3a3a3a;     /* dark panels */
  --apg-ink:#2c2c2c;          /* strong text */
  --apg-text:#333333;         /* body text */
  --apg-text-soft:#555555;
  --apg-muted:#737373;
  --apg-line:#e3e3e3;
  --apg-line-soft:#eeeeee;
  --apg-white:#ffffff;

  /* typography */
  --apg-font-heading:Arial, sans-serif;
  --apg-font-body:'Helvetica Neue', Helvetica, Arial, sans-serif;

  /* radius */
  --apg-radius:10px;
  --apg-radius-lg:14px;
  --apg-radius-pill:30px;

  /* shadows */
  --apg-shadow-sm:0 8px 22px -16px rgba(0,0,0,.3);
  --apg-shadow-md:0 16px 32px -20px rgba(60,80,30,.4);
  --apg-shadow-btn:0 10px 20px -8px rgba(90,140,58,.55);

  /* layout */
  --apg-maxw:1100px;
  --apg-gap:22px;
}

/* ---------- 2. BASE / CONTENT WRAPPER ---------- */
.apg-content{font-family:var(--apg-font-body);color:var(--apg-text);line-height:1.6;font-size:16px;margin:0 auto;}

.apg-content h1,.apg-content h2,.apg-content h3,.apg-content h4,
.apg-h1,.apg-h2,.apg-h3,.apg-h4{font-family:var(--apg-font-heading) !important;color:var(--apg-green) !important;letter-spacing:-0.3px;line-height:1.15;margin:0 0 12px;}
.apg-content h1,.apg-h1{font-size:clamp(28px,5vw,42px);font-weight:800;letter-spacing:-0.5px;}
.apg-content h2,.apg-h2{font-size:clamp(22px,3.2vw,30px);font-weight:800;margin-top:36px;}
.apg-content h3,.apg-h3{font-size:20px;font-weight:800;color:var(--apg-ink) !important;}
.apg-content h4,.apg-h4{font-size:18px;font-weight:800;color:var(--apg-ink) !important;}
.apg-content>h1:first-child,.apg-content>h2:first-child{margin-top:0;}

.apg-content p,.apg-p{font-size:16px;color:var(--apg-text-soft);margin:0 0 16px;}
.apg-content p strong,.apg-content li strong{color:var(--apg-ink);}
.apg-lead{font-size:18px;color:var(--apg-text-soft);}

.apg-content a,.apg-link{color:var(--apg-green-dark);font-weight:700;text-decoration:underline;transition:color .15s ease;}
.apg-content a:hover,.apg-link:hover{color:var(--apg-orange);}

.apg-content ul:not(.apg-checks):not(.apg-rel-grid),.apg-list{padding-left:20px;margin:0 0 16px;}
.apg-content ul:not(.apg-checks):not(.apg-rel-grid) li{margin:0 0 8px;color:var(--apg-text-soft);}

.apg-divider,.apg-content hr{border:0;border-top:1px solid var(--apg-line);margin:46px 0;}
.apg-muted{color:var(--apg-muted);}
.apg-text-green{color:var(--apg-green);}
.apg-accent{color:var(--apg-green);}

/* ---------- 3. EYEBROW + SECTION HEADER ---------- */
.apg-eyebrow{display:inline-block;font-family:var(--apg-font-body);font-size:12px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--apg-green-dark);border-left:3px solid var(--apg-orange);padding-left:10px;margin-bottom:12px;}
.apg-eyebrow--plain{border-left:0;padding-left:0;}
.apg-section{margin:36px 0 0;}
.apg-section--underline{border-bottom:2px solid var(--apg-line);padding-bottom:14px;margin-bottom:22px;}

/* ---------- 4. BUTTONS ---------- */
.apg-btn,.apg-content a.apg-btn{display:inline-block;font-family:var(--apg-font-body);background:var(--apg-green);color:var(--apg-white);font-weight:800;font-size:15px;line-height:1;text-decoration:none;padding:14px 26px;border:0;border-radius:8px;cursor:pointer;transition:background .18s ease,transform .18s ease,box-shadow .18s ease;}
.apg-btn:hover,.apg-content a.apg-btn:hover{background:var(--apg-green-dark);color:var(--apg-white);transform:translateY(-3px);box-shadow:var(--apg-shadow-btn);}
.apg-btn:active,.apg-content a.apg-btn:active{transform:translateY(-1px);}
.apg-btn:focus-visible{outline:3px solid var(--apg-orange);outline-offset:2px;}

/* button variants */
.apg-btn--orange,.apg-content a.apg-btn--orange{background:var(--apg-orange);}
.apg-btn--orange:hover,.apg-content a.apg-btn--orange:hover{background:var(--apg-orange-dark);color:var(--apg-white);box-shadow:0 10px 20px -8px rgba(217,85,26,.5);}
.apg-btn--outline,.apg-content a.apg-btn--outline{background:transparent;color:var(--apg-green-dark);border:2px solid var(--apg-green);padding:12px 24px;}
.apg-btn--outline:hover,.apg-content a.apg-btn--outline:hover{background:var(--apg-green-soft);color:var(--apg-green-dark);}
.apg-btn--white,.apg-content a.apg-btn--white{background:var(--apg-white);color:var(--apg-green-dark);}
.apg-btn--white:hover,.apg-content a.apg-btn--white:hover{background:#f2f2f2;color:var(--apg-green-dark);}

/* ---------- 5. CHIPS / PILLS ---------- */
.apg-chip{display:inline-block;font-family:var(--apg-font-body);background:var(--apg-white);border:1px solid var(--apg-green-tint);color:var(--apg-green-dark);font-size:13px;font-weight:700;padding:7px 14px;border-radius:var(--apg-radius-pill);margin:0 6px 8px 0;}
.apg-chip--soft{background:var(--apg-green-soft);}
.apg-chip--solid{background:var(--apg-green);color:var(--apg-white);border-color:var(--apg-green);}

/* ---------- 6. BADGES ---------- */
.apg-badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--apg-font-body);background:var(--apg-white);border:1px solid var(--apg-green-tint);color:var(--apg-green-dark);font-weight:800;font-size:12px;letter-spacing:.04em;text-transform:uppercase;padding:6px 12px;border-radius:var(--apg-radius-pill);}
.apg-badge--orange{border-color:#f7c9b0;color:var(--apg-orange-dark);}

/* ---------- 7. CARDS ---------- */
.apg-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--apg-gap);}
.apg-card{position:relative;display:flex;flex-direction:column;background:var(--apg-white);border:1px solid var(--apg-line);border-radius:12px;overflow:hidden;box-shadow:var(--apg-shadow-sm);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
.apg-card:hover{transform:translateY(-6px);box-shadow:var(--apg-shadow-md);border-color:var(--apg-green-tint);}
.apg-card__accent{height:4px;background:var(--apg-green);}
.apg-card__media{height:180px;background:var(--apg-green-soft);display:flex;align-items:center;justify-content:center;padding:16px;}
.apg-card__media img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;}
.apg-card__body{padding:18px 18px 0;text-align:center;flex:1;}
.apg-card__body h3{font-family:var(--apg-font-heading);font-size:18px;margin:0 0 8px;color:var(--apg-ink);}
.apg-card__body p{font-size:13.5px;color:var(--apg-text-soft);margin:0;line-height:1.5;}
.apg-card__more,.apg-content a.apg-card__more{display:block;text-align:center;padding:15px;margin-top:16px;border-top:1px solid var(--apg-line-soft);color:var(--apg-green-dark);font-weight:800;font-size:14px;text-decoration:none;}
.apg-card:hover .apg-card__more{color:var(--apg-green);}

/* ---------- 8. CHECK-LIST FEATURE CARDS ---------- */
.apg-checks{list-style:none;margin:6px 0 8px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;}
.apg-checks li{position:relative;background:var(--apg-white);border:1px solid var(--apg-line);border-left:4px solid var(--apg-green);border-radius:var(--apg-radius);padding:14px 16px 14px 46px;font-size:14.5px;color:var(--apg-text-soft);}
.apg-checks li::before{content:"\2713";position:absolute;left:14px;top:13px;width:21px;height:21px;background:var(--apg-green);color:#fff;border-radius:50%;font-size:12px;font-weight:800;line-height:21px;text-align:center;}
.apg-checks li strong{color:var(--apg-ink);}

/* ---------- 9. PANELS / CALLOUTS ---------- */
.apg-panel{background:linear-gradient(120deg,var(--apg-green-soft),#fff 72%);border:1px solid var(--apg-green-tint);border-radius:var(--apg-radius-lg);padding:34px 38px;}

.apg-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;}
.apg-info{background:#f7faf3;border:1px solid var(--apg-green-tint);border-radius:12px;padding:22px 24px;}
.apg-info h2,.apg-info h3{margin:0 0 10px;font-size:20px;}
.apg-info p{margin:0;font-size:15px;}

.apg-callout{background:var(--apg-green-soft);border:1px solid var(--apg-green-tint);border-left:4px solid var(--apg-green);border-radius:var(--apg-radius);padding:18px 22px;color:var(--apg-text-soft);}

.apg-cta{background:var(--apg-charcoal);border-radius:var(--apg-radius-lg);padding:36px 38px;text-align:center;}
.apg-cta h2,.apg-cta h3{color:#fff !important;margin:0 0 12px;}
.apg-cta p{color:#cfcfcf;max-width:62ch;margin:0 auto 22px;}
.apg-cta a:not(.apg-btn){color:#a6d785;font-weight:700;}
.apg-cta a:not(.apg-btn):hover{color:#fff;}

/* ---------- 10. RELATED CATEGORY CARDS ---------- */
.apg-rel-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;}
.apg-rel-card,.apg-content a.apg-rel-card{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--apg-white);border:1px solid var(--apg-line);border-radius:var(--apg-radius);padding:16px 18px;text-decoration:none;color:var(--apg-ink);font-weight:800;font-size:15px;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease,color .18s ease;}
.apg-rel-card:hover,.apg-content a.apg-rel-card:hover{border-color:var(--apg-green);color:var(--apg-green-dark);transform:translateY(-3px);box-shadow:0 10px 20px -10px rgba(90,140,58,.4);}
.apg-rel-card .apg-arw{color:var(--apg-green);flex:0 0 auto;}
.apg-rel-card:hover .apg-arw{color:var(--apg-green-dark);}

/* ---------- 11. FAQ ACCORDION ---------- */
.apg-faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px 30px;}
.apg-faq details{border:1px solid var(--apg-line);border-radius:var(--apg-radius);padding:4px 18px;background:#fff;transition:border-color .2s ease;}
.apg-faq details[open]{border-color:var(--apg-green);}
.apg-faq summary{font-family:var(--apg-font-body);font-weight:800;color:var(--apg-ink);cursor:pointer;padding:14px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:15.5px;}
.apg-faq summary::-webkit-details-marker{display:none;}
.apg-faq summary::after{content:"+";color:var(--apg-green);font-weight:800;font-size:22px;line-height:1;}
.apg-faq details[open] summary::after{content:"\2013";}
.apg-faq details p{margin:0 0 16px;color:var(--apg-text-soft);font-size:14.5px;}

/* ---------- 12. COMPARISON TABLE + TIER BADGES ---------- */
.apg-compare-scroll{overflow-x:auto;border:1px solid var(--apg-line);border-radius:var(--apg-radius-lg);}
.apg-tier{display:grid;grid-template-columns:150px repeat(3,1fr);min-width:640px;}
.apg-tier__cell{color:#fff;font-family:var(--apg-font-heading);font-weight:800;text-transform:uppercase;font-size:18px;height:46px;display:flex;align-items:center;justify-content:center;background:var(--apg-green);}
.apg-tier__cell--empty{background:#fff;}
.apg-tier__cell--better{background:var(--apg-green-dark);}
.apg-tier__cell--best{background:var(--apg-green-deep);}
.apg-compare{width:100%;min-width:640px;border-collapse:collapse;}
.apg-compare th,.apg-compare td{padding:14px 16px;text-align:center;border-bottom:1px solid var(--apg-line-soft);font-size:14px;color:var(--apg-text-soft);}
.apg-compare__label{text-align:left;font-weight:800;color:var(--apg-ink);background:#fafafa;}
.apg-compare tbody tr:nth-child(even) td{background:#fbfcfa;}
.apg-compare tbody tr:nth-child(even) td.apg-compare__label{background:#f3f6ef;}

/* ---------- 13. SPEC / DATA TABLES ---------- */
.apg-table-scroll{overflow-x:auto;border:1px solid var(--apg-line);border-radius:var(--apg-radius);-webkit-overflow-scrolling:touch;}
.apg-table__banner{background:var(--apg-green);color:#fff;font-family:var(--apg-font-heading);font-weight:800;text-transform:uppercase;font-size:14px;padding:10px 15px;border-radius:var(--apg-radius) var(--apg-radius) 0 0;}
.apg-table{width:100%;border-collapse:collapse;font-size:14px;font-family:var(--apg-font-body);}
.apg-table caption{caption-side:top;text-align:left;font-family:var(--apg-font-heading);font-weight:800;color:var(--apg-green-dark);text-transform:uppercase;font-size:12px;letter-spacing:.06em;padding:0 0 8px;}
.apg-table th{background:#f4f4f4;color:#555;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:12px 14px;border-bottom:2px solid var(--apg-line);}
.apg-table td{padding:12px 14px;border-bottom:1px solid var(--apg-line-soft);color:var(--apg-text-soft);}
.apg-table tbody tr:nth-child(even) td{background:#fbfcfa;}
.apg-table tbody tr:hover td{background:var(--apg-green-soft);}
.apg-table--compact th,.apg-table--compact td{padding:8px 10px;font-size:13px;}

/* ---------- 14. FEATURE ROWS (zigzag) + LETTERED POINTS ---------- */
.apg-feature{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center;padding:34px 0;border-bottom:1px solid var(--apg-line-soft);}
.apg-feature:last-child{border-bottom:0;}
.apg-feature__media{background:var(--apg-green-soft);border:1px solid var(--apg-green-tint);border-radius:var(--apg-radius-lg);padding:24px;text-align:center;}
.apg-feature__media img{width:100%;max-width:430px;margin:0 auto;}
.apg-feature__body h3{margin:0 0 6px;}
.apg-feature__tagline{color:var(--apg-text-soft);margin:0 0 16px;font-size:16px;}
.apg-feature--reverse .apg-feature__media{order:2;}
@media(max-width:820px){.apg-feature{grid-template-columns:1fr;gap:22px;}.apg-feature__media,.apg-feature--reverse .apg-feature__media{order:-1;}}
.apg-point{display:flex;gap:12px;align-items:flex-start;margin:10px 0;}
.apg-point__tag{flex:0 0 auto;width:26px;height:26px;border-radius:6px;background:var(--apg-green);color:#fff;font-family:var(--apg-font-heading);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px;}
.apg-point p{margin:0;font-size:14.5px;}

/* ---------- 15. TRUST / BENEFIT BAR ---------- */
.apg-trust{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;background:var(--apg-green-soft);border:1px solid var(--apg-green-tint);border-radius:var(--apg-radius-lg);padding:22px 24px;}
.apg-trust__item{display:flex;align-items:center;gap:12px;}
.apg-trust__icon{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid var(--apg-green-tint);display:flex;align-items:center;justify-content:center;color:var(--apg-green);}
.apg-trust__icon svg{width:22px;height:22px;}
.apg-trust__t{font-family:var(--apg-font-heading);font-weight:800;color:var(--apg-ink);font-size:14px;line-height:1.2;}
.apg-trust__s{font-size:12px;color:var(--apg-muted);}

/* ---------- 16. RATING + TESTIMONIAL ---------- */
.apg-rating{display:flex;align-items:center;gap:10px;font-family:var(--apg-font-body);}
.apg-stars{color:var(--apg-orange);font-size:18px;letter-spacing:2px;line-height:1;}
.apg-stars .apg-stars__empty{color:#d8d8d8;}
.apg-rating__num{font-weight:800;color:var(--apg-ink);}
.apg-rating__count{color:var(--apg-muted);font-size:13px;}
.apg-quote{background:#fff;border:1px solid var(--apg-line);border-left:4px solid var(--apg-green);border-radius:var(--apg-radius);padding:22px 24px;}
.apg-quote p{font-size:16px;color:var(--apg-text);font-style:italic;margin:0 0 12px;}
.apg-quote__who{font-family:var(--apg-font-body);font-weight:800;color:var(--apg-ink);font-size:14px;}
.apg-quote__who span{color:var(--apg-muted);font-weight:400;}

/* ---------- 17. NOTICE / PROMO BANNERS ---------- */
.apg-notice{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--apg-green-tint);border-left:4px solid var(--apg-green);background:var(--apg-green-soft);border-radius:var(--apg-radius);padding:14px 18px;font-size:14.5px;color:var(--apg-text);}
.apg-notice__icon{flex:0 0 auto;font-weight:800;color:var(--apg-green-dark);}
.apg-notice strong{color:var(--apg-ink);}
.apg-notice--success{border-color:#bfe3a8;border-left-color:#5a8c3a;background:#eef7e6;}
.apg-notice--success .apg-notice__icon{color:#5a8c3a;}
.apg-notice--warning{border-color:#f3d9a0;border-left-color:#e0a32a;background:#fdf6e6;}
.apg-notice--warning .apg-notice__icon{color:#c4841a;}
.apg-notice--promo{border-color:#f7c9b0;border-left-color:var(--apg-orange);background:#fdeee6;}
.apg-notice--promo .apg-notice__icon{color:var(--apg-orange-dark);}

/* ---------- 18. STATS STRIP ---------- */
.apg-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;text-align:center;}
.apg-stats__n{font-family:var(--apg-font-heading);font-weight:800;font-size:clamp(28px,4vw,40px);color:var(--apg-green);line-height:1;}
.apg-stats__n span{color:var(--apg-orange);}
.apg-stats__l{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--apg-muted);margin-top:8px;}

/* ---------- 19. STEPS / PROCESS ---------- */
.apg-steps{list-style:none;counter-reset:apg-step;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;}
.apg-steps li{background:#fff;border:1px solid var(--apg-line);border-radius:var(--apg-radius);padding:22px;}
.apg-steps li::before{counter-increment:apg-step;content:counter(apg-step);display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--apg-green);color:#fff;font-family:var(--apg-font-heading);font-weight:800;font-size:16px;margin-bottom:12px;}
.apg-steps h4{margin:0 0 6px;}
.apg-steps p{margin:0;font-size:14px;color:var(--apg-text-soft);}

/* ---------- 20. BREADCRUMB ---------- */
.apg-crumb{font-family:var(--apg-font-body);font-size:13px;color:var(--apg-muted);margin:0 0 6px;}
.apg-crumb a{color:var(--apg-muted);text-decoration:none;font-weight:600;}
.apg-crumb a:hover{color:var(--apg-green);}
.apg-crumb .apg-sep{margin:0 8px;color:#c9c9c9;}
.apg-crumb__here{color:var(--apg-green);font-weight:700;}

/* ---------- 21. GALLERY + RESPONSIVE VIDEO ---------- */
.apg-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.apg-gallery img{width:100%;height:100%;object-fit:cover;border-radius:var(--apg-radius);box-shadow:var(--apg-shadow-sm);}
.apg-video{position:relative;padding-top:56.25%;border-radius:var(--apg-radius-lg);overflow:hidden;background:#000;}
.apg-video iframe,.apg-video video{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* ---------- 22. BUTTON SIZES / GROUP / ARROW LINK ---------- */
.apg-btn--sm,.apg-content a.apg-btn--sm{padding:9px 16px;font-size:13px;}
.apg-btn--lg,.apg-content a.apg-btn--lg{padding:17px 32px;font-size:17px;}
.apg-btn-group{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.apg-link-arrow,.apg-content a.apg-link-arrow{display:inline-flex;align-items:center;gap:6px;color:var(--apg-green-dark);font-weight:800;text-decoration:none;transition:gap .18s ease,color .18s ease;}
.apg-link-arrow:hover,.apg-content a.apg-link-arrow:hover{gap:11px;color:var(--apg-orange);}

/* ---------- 23. FORM FIELDS ---------- */
.apg-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.apg-field{margin:0 0 16px;}
.apg-label{display:block;font-family:var(--apg-font-body);font-weight:800;font-size:13px;color:var(--apg-ink);margin:0 0 6px;}
.apg-input,.apg-select,.apg-textarea{width:100%;font-family:var(--apg-font-body);font-size:15px;color:var(--apg-text);background:#fff;border:1px solid var(--apg-line);border-radius:8px;padding:12px 14px;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box;}
.apg-input:focus,.apg-select:focus,.apg-textarea:focus{outline:0;border-color:var(--apg-green);box-shadow:0 0 0 3px rgba(113,169,78,.18);}
.apg-textarea{min-height:120px;resize:vertical;}

/* ---------- 24. HELPERS ---------- */
.apg-center{text-align:center;}
.apg-mt-0{margin-top:0 !important;}
.apg-mb-0{margin-bottom:0 !important;}
.apg-mt-24{margin-top:24px;}
.apg-stack>*+*{margin-top:12px;}

@media (prefers-reduced-motion: reduce){
  .apg-btn,.apg-card,.apg-rel-card,.apg-content a,.apg-link-arrow{transition:none;}
  .apg-btn:hover,.apg-card:hover,.apg-rel-card:hover{transform:none;}
  .apg-link-arrow:hover{gap:6px;}
}

/* ---------- 25. CMS HEADING OVERRIDE ----------
   Raises content-heading specificity (html body .apg-content ...) so the
   brand colors survive a host theme's own h1/h2 rules. This beats
   class/element-scoped theme rules even when they use !important.
   If your theme scopes headings by ID (e.g. #content h1), add that exact
   selector to the line below as well, e.g.:
     #content .apg-content h1 { color:var(--apg-green) !important; }
*/
html body .apg-content h1,html body .apg-content h2{color:var(--apg-green) !important;font-family:var(--apg-font-heading) !important;}
html body .apg-content h3,html body .apg-content h4{color:var(--apg-ink) !important;}
html body .apg-content .apg-cta h2,html body .apg-content .apg-cta h3{color:#fff !important;}

/* ================================================================
   POP-UP TENT / GUIDE-PAGE COMPONENTS
   Reusable across resource + guide pages (zoom callouts, kit rows,
   stock-colour swatch, accessory cards). Content pages use these
   classes only — never paste CSS into the CMS body.
   ================================================================ */
/* ---------- ZOOM / MAGNIFIER CALLOUTS (signature element) ---------- */
.apg-zoomwrap{position:relative;display:block;width:100%;max-width:460px;margin:0 auto;line-height:0;overflow:visible;}
.apg-zoomwrap__base{width:100%;height:auto;display:block;}
.apg-zoom{position:absolute;width:64px;height:64px;border-radius:50%;border:3px solid var(--apg-green);background:#fff;overflow:hidden;box-shadow:0 10px 22px -8px rgba(0,0,0,.45);z-index:5;}
.apg-zoom img{width:100%;height:100%;object-fit:cover;}
.apg-zoom__tag{position:absolute;top:-7px;left:-7px;width:22px;height:22px;border-radius:50%;background:var(--apg-green);color:#fff;font-family:var(--apg-font-heading);font-weight:800;font-size:12px;line-height:22px;text-align:center;border:2px solid #fff;box-shadow:0 3px 8px -2px rgba(0,0,0,.4);z-index:6;}
@media(max-width:820px){
  .apg-zoom{width:50px;height:50px;border-width:2px;}
  .apg-zoom__tag{width:18px;height:18px;line-height:18px;font-size:10px;top:-5px;left:-5px;}
}
/* kit + badge sub-row inside a frame feature */
.apg-kitrow{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:16px;}
.apg-kitrow img.apg-badge-img{height:64px;width:auto;}
.apg-kit{display:flex;align-items:center;gap:12px;background:var(--apg-green-soft);border:1px solid var(--apg-green-tint);border-radius:var(--apg-radius);padding:10px 14px;}
.apg-kit img{height:52px;width:auto;}
.apg-kit__t{font-family:var(--apg-font-body);font-weight:800;font-size:13px;color:var(--apg-ink);line-height:1.2;}
/* swatch banner for stock colors / print detail */
.apg-swatch__bar{background:var(--apg-green);color:#fff;font-family:var(--apg-font-heading);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.04em;padding:10px 16px;border-radius:var(--apg-radius) var(--apg-radius) 0 0;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.apg-swatch__bar span.apg-swatch__note{font-family:var(--apg-font-body);font-weight:400;font-size:11px;font-style:italic;text-transform:none;letter-spacing:0;opacity:.9;}
.apg-swatch img{width:100%;height:auto;display:block;border:1px solid var(--apg-line);border-top:0;border-radius:0 0 var(--apg-radius) var(--apg-radius);box-shadow:var(--apg-shadow-sm);}
/* accessory card body allows a little more room */
.apg-acc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--apg-gap);}
.apg-acc__spec{font-size:13.5px;color:var(--apg-text-soft);margin:2px 0 0;}
.apg-acc__meta{font-size:12px;color:var(--apg-muted);margin:8px 0 0;padding-top:8px;border-top:1px solid var(--apg-line-soft);line-height:1.5;}