/* Columbia Publication component system v1 (2026-10-14)
   One shape for every button, card and form control. Colours come from tokens.css.
   Scoped with html:root:root body:not(:has(#hp-hero)) so it wins over page-level styles without touching page markup. */

/* ---------- Buttons: shared geometry ---------- */
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn,.cp-btn,.pp-btn-primary,.pp-btn-secondary,.l2-btn-gold,.l2-btn-line,.pkg-cta-btn,.spx-btn,.bb-btn,.cq-submit){
  border-radius:10px!important;font-weight:600!important;letter-spacing:.01em;
  min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s}
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn,.cp-btn,.pp-btn-primary,.pp-btn-secondary,.l2-btn-gold,.l2-btn-line,.pkg-cta-btn,.spx-btn,.bb-btn,.cq-submit):not(.btn--sm){font-size:16px!important;padding-inline:26px!important}
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn,.cp-btn,.pp-btn-primary,.l2-btn-gold,.spx-btn,.bb-btn,.cq-submit,.pkg-cta-btn):hover{transform:translateY(-1px)}
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn,.cp-btn,.cq-submit,.pkg-cta-btn,.bb-btn,.l2-btn-gold,.l2-btn-line,.pp-btn-primary,.spx-btn):focus-visible{outline:3px solid var(--cp-gold-light);outline-offset:2px}

/* ---------- Gold (primary call to action): ink text for contrast ---------- */
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn--gold,.cp-btn--primary,.pp-btn-primary,.l2-btn-gold,.spx-btn,[class*="-hero"] .btn--primary,.ab2-final .btn--primary){
  background:var(--cp-gold)!important;background-image:none!important;color:var(--cp-ink)!important;border:1px solid var(--cp-gold)!important;box-shadow:0 10px 24px -12px rgba(198,168,90,.75)!important}
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn--gold,.cp-btn--primary,.pp-btn-primary,.l2-btn-gold,.spx-btn,[class*="-hero"] .btn--primary,.ab2-final .btn--primary):hover{background:var(--cp-gold-light)!important;border-color:var(--cp-gold-light)!important;color:var(--cp-ink)!important}

/* ---------- Lapis (secondary solid) ---------- */
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn--primary,.cq-submit,.bb-btn--primary):not([class*="-hero"] *):not(.ab2-final *){
  background:var(--cp-lapis)!important;background-image:none!important;color:#fff!important;border:1px solid var(--cp-lapis)!important}
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn--primary,.cq-submit,.bb-btn--primary):not([class*="-hero"] *):not(.ab2-final *):hover{background:var(--cp-lapis-hover)!important;border-color:var(--cp-lapis-hover)!important}

/* ---------- Outline ---------- */
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn--outline,.l2-btn-line,.pp-btn-secondary){background:transparent!important;color:var(--cp-lapis)!important;border:1.5px solid var(--cp-lapis)!important}
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.btn--outline,.l2-btn-line,.pp-btn-secondary):hover{background:var(--cp-lapis)!important;color:#fff!important}
/* outline on dark backgrounds */
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is([class*="-hero"],.ab2-final,.hx-sec--dark,.hx-final,.l2-final,.svc-cta,.pp-cta) :is(.btn--outline,.btn--outline-ivory,.l2-btn-line,.pp-btn-secondary){background:transparent!important;color:#fff!important;border:1.5px solid rgba(255,255,255,.55)!important}
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is([class*="-hero"],.ab2-final,.hx-sec--dark,.hx-final,.l2-final,.svc-cta,.pp-cta) :is(.btn--outline,.btn--outline-ivory,.l2-btn-line,.pp-btn-secondary):hover{border-color:var(--cp-gold-light)!important;color:var(--cp-gold-light)!important;background:rgba(255,255,255,.06)!important}

/* ---------- Cards ---------- */
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.service-card,.resource-card,.bl2-card,.ab2-card,.kr-card,.svc-related-card,.bps-fork-option,.pillar-related-link,.htpb-related-link,.pp-card,.svc-card,.l2-card){
  border-radius:var(--cp-radius-lg)!important;border:1px solid var(--cp-line)!important;background-color:#fff;
  box-shadow:0 1px 2px rgba(16,41,76,.04);transition:border-color .18s,box-shadow .18s,transform .18s}
html:root:root body:not(:has(#hp-hero)) :not(header,header *,nav *,footer *,.site-footer *,#cp-panel *):is(.service-card,.resource-card,.bl2-card,.kr-card,.svc-related-card,.bps-fork-option,.pillar-related-link,.htpb-related-link,.svc-card,.l2-card):hover{border-color:var(--cp-line-2)!important;box-shadow:var(--cp-shadow);transform:translateY(-2px)}

/* ---------- Form controls ---------- */
html:root:root body:not(:has(#hp-hero)) main :is(input[type=text],input[type=email],input[type=tel],input[type=number],select,textarea):not(#cp-panel *){
  border:1px solid var(--cp-line-2)!important;border-radius:10px!important;background-color:#fff!important;color:var(--cp-navy)!important;min-height:48px}
html:root:root body:not(:has(#hp-hero)) main :is(input,select,textarea):not(#cp-panel *):focus{border-color:var(--cp-lapis)!important;box-shadow:0 0 0 3px rgba(34,80,143,.15)!important;outline:0}
html:root:root body:not(:has(#hp-hero)) main textarea:not(#cp-panel *){min-height:110px}

/* ---------- Links in body copy ---------- */
html:root:root body:not(:has(#hp-hero)) main :is(p,li) a:not([class]){color:var(--cp-lapis);text-decoration-color:rgba(34,80,143,.35);text-underline-offset:3px}
html:root:root body:not(:has(#hp-hero)) main :is(p,li) a:not([class]):hover{color:var(--cp-lapis-hover);text-decoration-color:currentColor}

/* ================= Site-wide polish v2 (2026-10-14) ================= */

/* 1. Icons: base size everywhere (landing pages had no rule, so icons rendered 389px) */
:where(svg.cp-ic){display:inline-block;width:1em;height:1em;vertical-align:-.14em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* 2. Empty sections leave no hole */
html:root body section:not([class*=hero]):has(> :is(.container,.container-fluid):only-child):not(:has(> :is(.container,.container-fluid) > *)){display:none!important}

/* 3. Text on gold is always deep ink */
html:root:root body :is(.kq-btn,.hyb-btn--gold,.lp-cta-btn,.l2-top-cta,.l2-submit,.l2-pkg-flag,.l2-btn-gold,.krc-cta,.bb-btn--gold,.hyb-us,.htpb-route-badge,.pkg-hero-note,.hpx-btn,.hx-pkg-flag,.btn--gold,.cp-btn--primary,.pp-btn-primary,.spx-btn,.cq-submit--gold,.pkg-card.featured .pkg-cta-btn,.pkg-card.gravitas .pkg-cta-btn,.proof-sec__verify .btn--primary,.art-ctas .btn--primary,.krc-seg input:checked + span,.krc-seg label.is-on span){color:var(--cp-ink)!important}
html:root:root body .art-ctas .btn--primary{background:var(--cp-gold)!important;border-color:var(--cp-gold)!important}

/* 4. Gold and red on lapis: lighter tints */
html:root:root body :is(.krc-kicker,.hyb-pk-badge,.lp-topbar-phone,.pkg-card.gravitas .pkg-includes-label){color:var(--cp-gold-light)!important}
html:root:root body .proof-sec__verify p a{color:var(--cp-gold-light)!important}

/* 5. Gold text on light backgrounds: deeper gold for readability */
html:root:root body :is(.fmt-spec-meta,.memoir-step__time,.ed-type-timeline,.bb-plan-for,.bn-pkg-includes,.chr-story-stars,.cd-guar-badge,.fpc-proof-stars,.legal-updated,.pkg-card:not(.gravitas) .pkg-includes-label){color:var(--cp-gold-dark)!important}
html:root:root body section:not([class*=hero]):not([class*=dark]):not([class*=navy]):not([class*=ink]):not([class*=forest]):not(.cta-banner):not(.proof-sec) :is(.eyebrow,.pp-eyebrow,.section-label:not(.section-label--light)){color:var(--cp-gold-dark)!important}
html:root:root body section:not([class*=hero]):not([class*=dark]):not([class*=navy]):not([class*=ink]):not([class*=forest]):not(.cta-banner):not(.hx-sec--dark):not(.hx-final) :is(h2,h3) em{color:var(--cp-gold-dark)}

/* 6. Status colours that were too pale */
html:root:root body .check{color:#15803D!important}
html:root:root body :is(.spx-opt,.cp-form-block .optional,label .optional){color:var(--cp-subtle)!important}
html:root:root body .pod-plat-verdict{color:#A33A00!important}
html:root:root body .without-col--no .without-col__head{color:#3E4A63!important}
html:root:root body .without-col--yes .without-col__head{color:#fff!important}

/* 7. Hero typography: one scale on every inner page (homepage keeps its own) */
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] h1{font-family:'Playfair Display',Georgia,serif!important;font-weight:600!important;font-size:clamp(2rem,1.25rem + 1.9vw,2.9rem)!important;line-height:1.15!important;letter-spacing:-.01em!important}
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] :is([class*=eyebrow],[class*=kicker]):not(a,button){font-family:Poppins,Arial,sans-serif!important;font-size:11.5px!important;font-weight:600!important;letter-spacing:.14em!important;text-transform:uppercase!important;line-height:1.4!important}
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] h1 + p{font-size:clamp(1rem,.95rem + .25vw,1.125rem)!important;line-height:1.7!important}

/* 8. Section headings: one weight, one scale */
html:root:root body:not(:has(#hp-hero)) main :is(h2,h3):not([class*="-hero"] *):not(#cp-panel *){font-weight:500}
html:root:root body:not(:has(#hp-hero)) :is(section,[class*="-sec"],[class*="section"]):not([class*=hero]) > :is(.container,.container-fluid,[class*=container],[class*=wrap],[class*=inner]) > h2{font-size:clamp(1.75rem,1.15rem + 1.8vw,2.6rem);line-height:1.2;letter-spacing:-.005em}

/* 9. Button groups: equal, aligned, one row; full width stack on phones */
html:root:root body :is(.btn-group,.cp-route-cta,.cta-banner__btns,.htpb-cta-block-btns,.htpb-final-btns,.spx-final-ctas,.bb-cta-row,.bps-comm-cta-btns,.bp-cta-buttons,.art-ctas,.hx-band-cta,[class*="-hero"] :is(div,p):has(> :is(a,button)[class*=btn] ~ :is(a,button)[class*=btn]):not(form *)){display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:12px!important;align-items:stretch!important}
html:root:root body :is(.btn-group,.cp-route-cta,.cta-banner__btns,.htpb-cta-block-btns,.htpb-final-btns,.spx-final-ctas,.bb-cta-row,.bps-comm-cta-btns,.bp-cta-buttons,.art-ctas,.hx-band-cta,[class*="-hero"] :is(div,p):has(> :is(a,button)[class*=btn] ~ :is(a,button)[class*=btn]):not(form *)) > :is(a,button){flex:1 1 0!important;min-width:min(100%,230px)!important;max-width:340px!important;min-height:54px!important;margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;white-space:normal!important;box-sizing:border-box}
html:root:root body :is(.cta-banner__btns,.htpb-final-btns,.spx-final-ctas,.hx-band-cta,.pkg-hero :is(div,p)){justify-content:center!important}
@media (max-width:640px){
 html:root:root body :is(.btn-group,.cp-route-cta,.cta-banner__btns,.htpb-cta-block-btns,.htpb-final-btns,.spx-final-ctas,.bb-cta-row,.bps-comm-cta-btns,.bp-cta-buttons,.art-ctas,.hx-band-cta,[class*="-hero"] :is(div,p):has(> :is(a,button)[class*=btn] ~ :is(a,button)[class*=btn]):not(form *)) > :is(a,button){padding-inline:18px!important;font-size:15px!important}
 html:root:root body :is(.btn-group,.cp-route-cta,.cta-banner__btns,.htpb-cta-block-btns,.htpb-final-btns,.spx-final-ctas,.bb-cta-row,.bps-comm-cta-btns,.bp-cta-buttons,.art-ctas,.hx-band-cta,[class*="-hero"] :is(div,p):has(> :is(a,button)[class*=btn] ~ :is(a,button)[class*=btn]):not(form *)) > :is(a,button){flex-basis:100%!important;max-width:none!important}
}

/* 10. Section rhythm: no stacked holes */
html:root body :is(.section,.pillar-section,.pp-section,.pp-section-alt,.svc-section,.cta-banner,.kr-sec,.cost-sec,.spx-sec,.spx-quote,.spx-final,.proc-sec,.htpb-section,.cq-section,.ab2-sec,.ab2-final,.bl2-final,.l2-final,.bp-cta-section,.pp-email-capture,.proof-sec,.related-services):not([class*=hero]){padding-top:72px;padding-bottom:72px}
html:root body :is(.section,.pillar-section,.pp-section,.pp-section-alt,.svc-section,.cta-banner,.kr-sec,.cost-sec,.spx-sec,.spx-quote,.spx-final,.proc-sec,.htpb-section,.cq-section,.ab2-sec,.ab2-final,.bl2-final,.l2-final,.bp-cta-section,.pp-email-capture,.proof-sec,.related-services):not([class*=hero]) :is(.container,.container-fluid,.pillar-content,[class*=-wrap],[class*=-inner]) > :last-child{margin-bottom:0}
@media (max-width:767px){
 html:root body :is(.section,.pillar-section,.pp-section,.pp-section-alt,.svc-section,.cta-banner,.kr-sec,.cost-sec,.spx-sec,.spx-quote,.spx-final,.proc-sec,.htpb-section,.cq-section,.ab2-sec,.ab2-final,.bl2-final,.l2-final,.bp-cta-section,.pp-email-capture,.proof-sec,.related-services,.hx-sec):not([class*=hero]){padding-top:52px;padding-bottom:52px}
}

/* 11. Second-pass corrections (2026-10-14) */
html:root:root body .kq-kicker{color:var(--cp-gold-dark)!important}
html:root:root body :is(.kq-cp,[class*=navy],[class*=--dark],[class*=--ink],[class*=forest]) .kq-kicker{color:var(--cp-gold-light)!important}
html:root:root body .pp-btn-cta{background:var(--cp-gold)!important;background-image:none!important;border-color:var(--cp-gold)!important;color:var(--cp-ink)!important}
html:root:root body .pp-btn-cta:hover{background:var(--cp-gold-light)!important}
html:root:root body :is(.l2-fine-light a,.l2-final-call a,.bi-quality-card a,.l2-proof-card a,.lp-logo-text span){color:var(--cp-gold-light)!important}
html:root:root body :is(.spx-tier small,.spx-tier-p small,.lp-form-phone label span,.lp-form-field label span){color:var(--cp-subtle)!important}
html:root:root body :is(.cp-glance-item a,.pp-email-capture p){color:var(--cp-gold-dark)!important}
/* inline-styled dark boxes: gold text becomes light gold, red becomes light red */
html:root:root body :is([style*="background: var(--forest)"],[style*="background:var(--forest)"],[style*="background: var(--navy)"],[style*="background:var(--navy)"],[style*="background: #22508F" i],[style*="background:#22508F" i],[style*="background: #183A69" i],[style*="background:#183A69" i],[style*="background: #10294C" i],[style*="background:#10294C" i],[style*="background: #14213D" i],[style*="background:#14213D" i],.cost-sec--navy,.spx-sec--ink,.hx-sec--dark,.pp-cta-dark) :is([style*="color: var(--gold)"],[style*="color:var(--gold)"],[style*="color: #C6A85A" i],[style*="color:#C6A85A" i]){color:var(--cp-gold-light)!important}
html:root:root body :is([style*="rgba(255,255,255,0.06)"],[style*="rgba(255,255,255,0.08)"],[style*="var(--forest)"],[style*="var(--navy)"]) [style*="#f87171" i]{color:#FCA5A5!important}
/* inline gold boxes: text is ink */
html:root:root body :is([style*="background: var(--gold)"],[style*="background:var(--gold)"],[style*="background: #C6A85A" i],[style*="background:#C6A85A" i]){color:var(--cp-ink)!important}
/* inline light sections: gold text deepened */
html:root:root body :is([style*="background: var(--ivory)"],[style*="background:var(--ivory)"],[style*="background: var(--parchment)"],[style*="background:#fff" i],[style*="background: #fff" i]) > * > :is([style*="color: var(--gold)"],[style*="color:var(--gold)"]){color:var(--cp-gold-dark)!important}
/* inline section padding caps */
html:root body section:not([class*=hero]):is([style*="padding: 64px"],[style*="padding:64px"],[style*="padding: 72px"],[style*="padding:72px"],[style*="padding: 80px"],[style*="padding:80px"],[style*="padding: 88px"],[style*="padding:88px"],[style*="padding: 96px"],[style*="padding:96px"],[style*="padding: 100px"],[style*="padding:100px"],[style*="padding: 112px"],[style*="padding:112px"],[style*="padding: 120px"],[style*="padding:120px"],[style*="padding: 5rem"],[style*="padding:5rem"],[style*="padding: 6rem"],[style*="padding:6rem"],[style*="padding: 4rem"],[style*="padding:4rem"]){padding-top:72px!important;padding-bottom:72px!important}
@media (max-width:767px){
 html:root body section:not([class*=hero]):is([style*="padding: 64px"],[style*="padding:64px"],[style*="padding: 72px"],[style*="padding:72px"],[style*="padding: 80px"],[style*="padding:80px"],[style*="padding: 88px"],[style*="padding:88px"],[style*="padding: 96px"],[style*="padding:96px"],[style*="padding: 100px"],[style*="padding:100px"],[style*="padding: 112px"],[style*="padding:112px"],[style*="padding: 120px"],[style*="padding:120px"],[style*="padding: 5rem"],[style*="padding:5rem"],[style*="padding: 6rem"],[style*="padding:6rem"],[style*="padding: 4rem"],[style*="padding:4rem"]){padding-top:52px!important;padding-bottom:52px!important}
 html:root body :is(.pillar-section,.section,.cost-sec,.svc-section,.pp-section) :is(h2,h3,.section-label,[class*=card]):first-child{margin-top:0}
}

/* 12. Third-pass corrections (2026-10-14) */
html:root:root body main a[style*="#0891b2" i],html:root:root body main a[style*="0891b2" i],html:root:root body section:not([class*=hero]):not([class*=dark]):not([class*=navy]):not([class*=ink]):not([style*=navy]):not([style*=forest]):not([style*="--ink"]) .container > p > a:not([class]){color:var(--cp-lapis)}
html:root:root body :is(.kq-cp a,.kq-cp p a){color:var(--cp-gold-light)!important}
html:root body .bp-cta-section,html:root body .bp-cta-section .bp-cta-box{margin-top:0!important}
html:root body .cost-sec > .cost-mid:first-child,html:root body .cost-sec > :first-child{padding-top:0}
html:root body :is(.section,.pillar-section,.pp-section,.svc-section,.cost-sec,.spx-sec,.spx-quote,.cq-section,.bp-cta-section,.proof-sec) > :is(.container,.container-fluid,[class*=-wrap],[class*=-inner],[class*=-mid],.pillar-content) > :first-child{margin-top:0}
html:root body :is(.section,.pillar-section,.pp-section,.svc-section,.cost-sec,.spx-sec,.spx-quote,.cq-section,.bp-cta-section,.proof-sec) > :is(.container,.container-fluid,[class*=-wrap],[class*=-inner],[class*=-mid],.pillar-content):last-child{padding-bottom:0}
html:root body section:not([class*=hero]):is([style*="padding:var(--sp-16)"],[style*="padding: var(--sp-16)"],[style*="padding:var(--sp-20)"],[style*="padding: var(--sp-20)"],[style*="padding:var(--sp-24)"],[style*="padding: var(--sp-24)"]){padding-top:72px!important;padding-bottom:72px!important}
@media (max-width:767px){html:root body section:not([class*=hero]):is([style*="padding:var(--sp-16)"],[style*="padding: var(--sp-16)"],[style*="padding:var(--sp-20)"],[style*="padding: var(--sp-20)"],[style*="padding:var(--sp-24)"],[style*="padding: var(--sp-24)"]){padding-top:52px!important;padding-bottom:52px!important}}

/* 13. Links on dark backgrounds (heroes, dark sections, dark cards) */
html:root:root body :is([class*="-hero"],[class*="--dark"],[class*="--navy"],[class*="--ink"],[class*="--forest"],.cta-banner,.hx-final,.l2-final,.pp-cta-dark,[style*="background: var(--forest)"],[style*="background:var(--forest)"],[style*="background: var(--navy)"],[style*="background:var(--navy)"],[style*="background:#22508F" i],[style*="background: #22508F" i]) :is(p,li,span,div):not(form *):not([class*=card] *):not([class*=form] *) > a:not([class]):not([style*=background]){color:var(--cp-gold-light)!important;text-decoration-color:rgba(227,203,138,.55)!important}
html:root:root body :is([class*="-hero"],[class*="--dark"],[class*="--navy"],[class*="--ink"],[class*="--forest"],.cta-banner,.hx-final,.l2-final) :is(p,li,span,div) > a:not([class]):hover{color:#fff!important}

/* 14. Final corrections (2026-10-14) */
html:root:root body a[style*="0891b2" i]{color:var(--cp-lapis)!important}
html:root:root body .pp-pricing-grid [style*="gold"]:not([style*=background]){color:var(--cp-gold-dark)!important}
html:root:root body :is(.btn-gold,.btn.btn-gold){color:var(--cp-ink)!important}
html:root:root body section:not([class*=dark]):not([class*=hero]) .btn-outline{color:var(--cp-gold-dark)!important;border-color:var(--cp-gold-dark)!important}
html:root:root body :is(.section-dark,.hero,[class*="-hero"],.submission-box,[style*="--navy"],[style*="--forest"],[style*="#22508F" i]) .btn-outline{color:var(--cp-gold-light)!important;border-color:rgba(227,203,138,.6)!important}
html:root:root body :is(.eyebrow.light,.section-dark p a,.bb-facts li strong,.pkg-guarantee a,.deliverable-body a,.bb-note a){color:var(--cp-gold-light)!important}
html:root:root body:not(:has(#hp-hero)) .htpb-cta-block .btn--outline:not(#cp-panel *){color:#fff!important;border-color:rgba(255,255,255,.55)!important;background:transparent!important}
html:root:root body:not(:has(#hp-hero)) .htpb-cta-block .btn--outline:not(#cp-panel *):hover{border-color:var(--cp-gold-light)!important;color:var(--cp-gold-light)!important}
html:root:root body :is([style*="--forest"],[style*="--navy"],[style*="#22508F" i],[style*="--cp-lapis"]) .kq-kicker{color:var(--cp-gold-light)!important}
html:root:root body form .l2-form-fine a,html:root:root body [class*=form] .l2-form-fine a{color:var(--cp-lapis)!important}

html:root:root body :is(.bb-exec .kq-kicker,.pkg-card.gravitas a:not([class]),.hero [style*="color:var(--gold)"],[class*="-hero"] [style*="color:var(--gold)"]){color:var(--cp-gold-light)!important}
html:root:root body :is([style*="border:1px solid var(--border)"] > [style*="gold"],.fpc-proof-card .fpc-proof-quote[style]){color:var(--cp-gold-dark)!important}

/* 15. Inner-page heroes use the homepage hero whites and golds (2026-10-14) */
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] :is(p,li):not(form *):not([class*=form] *):not([class*=card] *):not([class*=eyebrow]):not([class*=kicker]):not([class*=badge]):not([class*=price]):not([class*=note]):not([class*=pill]):not([class*=chip]):not(a):not(a *){color:#D3DEEE}
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] :is(p,li):not([class*=price]):not([class*=note]):not([class*=pill]) :is(strong,b):not(form *):not([class*=form] *):not([class*=card] *){color:#FFFFFF}
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] h1{color:#FFFFFF!important}
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] h1 :is(em,i,span){color:#E3CB8A!important}
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] :is([class*=eyebrow],[class*=kicker]):not(form *):not([class*=form] *):not([class*=card] *){color:#E3CB8A!important}
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] :is([class*=stat],[class*=metric],[class*=fact]) :is(span,small,p,div):not([class*=num]):not([class*=val]):not([class*=big]){color:#B9C9DF}
html:root:root body:not(:has(#hp-hero)) [class*="-hero"] :is(.breadcrumb,[class*=breadcrumb]) :is(a,span,li){color:#B9C9DF}

/* 16. Icons inside buttons never escape (site-wide) */
html:root:root body :is(.btn,.cp-btn,a[class*=btn]) svg.cp-ic{width:1.05em!important;height:1.05em!important;flex:none!important;stroke:currentColor!important;position:static!important;margin:0!important}
@media (min-width:768px){html:root:root body a[href^="tel:"][class*=btn]:not(#cp-x1):not(#cp-x2):not(.bps-audience-card *){white-space:nowrap!important;min-width:max-content!important}}

/* 17. Book printing page: framed, aligned sections */
html:root body:has(.bps-hero) .bps-audience-grid{align-items:stretch}
html:root body:has(.bps-hero) .bps-audience-card{display:flex!important;flex-direction:column!important;border-radius:16px;padding:32px 28px!important}
html:root body:has(.bps-hero) .bps-audience-card > :is(.btn,.btn-group){margin-top:auto!important;padding-top:0}
html:root body:has(.bps-hero) .bps-audience-card .bps-audience-list{margin-bottom:24px}
html:root:root body:has(.bps-hero) .bps-audience-card :is(.btn,.btn-group > .btn){width:100%!important;max-width:none!important;flex:none!important;min-height:52px!important;padding:12px 18px!important;font-size:15px!important;line-height:1.3!important;white-space:normal!important;display:flex!important}
html:root:root body:has(.bps-hero) .bps-audience-card .btn-group{display:flex!important;flex-direction:column!important;gap:10px!important;width:100%}
html:root body:has(.bps-hero) .bps-proof-split{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px!important;align-items:stretch}
html:root body:has(.bps-hero) .bps-proof-split > div{background:#fff;border:1px solid var(--cp-line);border-radius:16px;padding:28px 30px;box-shadow:0 1px 2px rgba(16,41,76,.04)}
html:root body:has(.bps-hero) .bps-proof-split > div > h3{margin-top:0!important;padding-bottom:12px;margin-bottom:14px!important;border-bottom:1px solid var(--cp-line)}
html:root body:has(.bps-hero) .bps-proof-split > div > p:last-child{margin-bottom:0!important}
html:root body:has(.bps-hero) section.section > .container:has(> .cq-nudge){background:#fff;border:1px solid var(--cp-line);border-radius:18px;padding:40px 44px;box-shadow:var(--cp-shadow);max-width:1060px}
html:root body:has(.bps-hero) section.section > .container:has(> .cq-nudge) > p{max-width:none!important}
html:root body:has(.bps-hero) section.section > .container:has(> .cq-nudge) > h2{margin-top:28px}
/* price benchmark table framed like the homepage comparison table */
html:root body:has(.bps-hero) div:has(> .bps-route-table){border:1px solid #D5DCE7;border-radius:14px;overflow:hidden;background:#fff;box-shadow:var(--cp-shadow)}
html:root body:has(.bps-hero) .bps-route-table{width:100%;border-collapse:separate!important;border-spacing:0;margin:0!important}
html:root body:has(.bps-hero) .bps-route-table :is(th,td){padding:14px 20px!important;border-bottom:1px solid #E3E8F0!important;border-right:1px solid #E3E8F0;text-align:left}
html:root body:has(.bps-hero) .bps-route-table tr > :last-child{border-right:0}
html:root body:has(.bps-hero) .bps-route-table tbody tr:last-child > *{border-bottom:0!important}
html:root body:has(.bps-hero) .bps-route-table thead th{background:#10294C!important;color:#fff!important;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}
html:root body:has(.bps-hero) .bps-route-table tbody tr:nth-child(even) > *{background:#F7F9FC}
html:root body:has(.bps-hero) .bps-route-table tbody td:last-child{font-weight:600;color:var(--cp-navy)}
@media (max-width:767px){
 html:root body:has(.bps-hero) .bps-proof-split{grid-template-columns:1fr}
 html:root body:has(.bps-hero) section.section > .container:has(> .cq-nudge){padding:26px 20px;border-radius:14px;margin-inline:16px;width:auto}
 html:root body:has(.bps-hero) .bps-audience-card{padding:26px 20px!important}
}

/* 18. Site-wide framing: columns, text panels, fact sheets, tables (2026-10-14) */
/* light column sets become cards */
html:root body :is(.process-steps > .process-step,.aw-next-grid > div,.bi-type-grid > .bi-type-row,.pillar-steps > .pillar-step,.fpc-steps-grid > .fpc-step,.gpi-reassure-grid > .gpi-reassure-item,.bps-proof-split > div){background:#fff;border:1px solid var(--cp-line);border-radius:16px;padding:26px 26px;box-shadow:0 1px 2px rgba(16,41,76,.04)}
html:root body :is(.process-steps,.pillar-steps,.fpc-steps-grid,.gpi-reassure-grid,.bi-type-grid,.aw-next-grid){gap:20px!important;align-items:stretch}
/* dark column sets become translucent cards */
html:root body :is(.cb-illus-grid > div,.chr-sell-grid > .chr-sell-item,.deliverables > .deliverable-item){background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:26px}
html:root body :is(.chr-sell-grid,.deliverables,.cb-illus-grid){gap:20px!important;align-items:stretch}
/* long text-only sections sit in a framed reading panel */
html:root body :is(.svc-section,.section,.pp-section,.pp-section-alt,.pillar-section,.ab2-sec,.hyb-sec):not([class*=hero]):not([class*=dark]):not([class*=navy]):not([class*=ink]):not([class*=forest]):not([style*=navy]):not([style*=forest]):not(.cta-banner) > :is(.container,.pp-container,.hyb-narrow):has(> p ~ p ~ p):not(:has(> :not(h2,h3,h4,p,ul,ol,span,aside,blockquote,a,hr))){background:#fff;border:1px solid var(--cp-line);border-radius:18px;padding:44px 48px;box-shadow:var(--cp-shadow);max-width:1000px;margin-inline:auto}
html:root body :is(.svc-section,.section,.pp-section,.pp-section-alt,.pillar-section,.ab2-sec,.hyb-sec) > :is(.container,.pp-container,.hyb-narrow):has(> p ~ p ~ p):not(:has(> :not(h2,h3,h4,p,ul,ol,span,aside,blockquote,a,hr))) > p{max-width:none}
/* "Columbia Publication in Brief" fact sheet framed */
html:root body .cp-facts .cp-facts-grid{background:#fff;border:1px solid var(--cp-line);border-radius:16px;padding:8px 28px;box-shadow:var(--cp-shadow)}
html:root body .cp-facts .cp-facts-row:first-child{border-top:0!important}
/* every content table framed the same way */
html:root body main table:not(.hx-table):not(.bps-route-table):not(.gx-table):not(#cp-panel *):not(form *){border-collapse:separate!important;border-spacing:0!important;border:1px solid #D5DCE7!important;border-radius:14px;overflow:hidden;background:#fff;width:100%}
html:root body main table:not(.hx-table):not(.bps-route-table):not(.gx-table):not(#cp-panel *):not(form *) :is(th,td){border-bottom:1px solid #E3E8F0;padding:13px 18px}
html:root body main table:not(.hx-table):not(.bps-route-table):not(.gx-table):not(#cp-panel *):not(form *) tbody tr:last-child > *{border-bottom:0}
html:root body main table:not(.hx-table):not(.bps-route-table):not(.gx-table):not(#cp-panel *):not(form *) thead th{background:#10294C;color:#fff;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase}
html:root body main table:not(.hx-table):not(.bps-route-table):not(.gx-table):not(#cp-panel *):not(form *) tbody tr:nth-child(even) > *{background-color:#F7F9FC}
@media (max-width:767px){
 html:root body :is(.svc-section,.section,.pp-section,.pp-section-alt,.pillar-section,.ab2-sec,.hyb-sec) > :is(.container,.pp-container,.hyb-narrow):has(> p ~ p ~ p):not(:has(> :not(h2,h3,h4,p,ul,ol,span,aside,blockquote,a,hr))){padding:26px 20px;border-radius:14px;margin-inline:16px;width:auto}
 html:root body .cp-facts .cp-facts-grid{padding:4px 18px}
}

/* card grids can always shrink to their container */
html:root body :is([class*=grid],[class*=-cards],[class*=row]) > :is([class*=card],[class*=item],[class*=col]){min-width:0}

/* 19. Content-page repair pass (2026-10-14 r2): banding, rhythm, nested padding, mobile tables, proof photo */
/* a. alternate bands that had collapsed into the page colour get a visible white band with hairlines */
html:root body main :is(.htpb-section.htpb-section--alt,.section.section-alt,.svc-section.guide-long:nth-of-type(even)):not([class*=hero]){background:#fff!important;border-top:1px solid var(--cp-line,#E3E7EE);border-bottom:1px solid var(--cp-line,#E3E7EE)}
/* b. tighter, even section rhythm (was 72/52) */
html:root body :is(.section,.pillar-section,.pp-section,.pp-section-alt,.svc-section,.cta-banner,.kr-sec,.cost-sec,.spx-sec,.spx-quote,.spx-final,.proc-sec,.htpb-section,.cq-section,.ab2-sec,.ab2-final,.bl2-final,.l2-final,.bp-cta-section,.pp-email-capture,.proof-sec,.related-services):not([class*=hero]){padding-top:60px;padding-bottom:60px}
@media (max-width:767px){html:root body :is(.section,.pillar-section,.pp-section,.pp-section-alt,.svc-section,.cta-banner,.kr-sec,.cost-sec,.spx-sec,.spx-quote,.spx-final,.proc-sec,.htpb-section,.cq-section,.ab2-sec,.ab2-final,.bl2-final,.l2-final,.bp-cta-section,.pp-email-capture,.proof-sec,.related-services,.hx-sec):not([class*=hero]){padding-top:44px;padding-bottom:44px}}
/* c. a section placed inside another section no longer doubles the padding */
html:root body main :is(.htpb-section,.pillar-section,.svc-section,.pp-section,.pp-section-alt,.ab2-sec) section:is(.proof-sec,.kr-sec){padding-top:40px!important;padding-bottom:0!important;background:transparent!important;border:0!important}
html:root body main :is(.pp-section,.pp-section-alt,.pp-section-border) > .pp-container{padding-top:0!important;padding-bottom:0!important}
/* d. guide pages: the GEO short-answer strip and facts block sit as one unit */
html:root body main section.cp-glance{padding:40px 0 8px!important}
html:root body main section.cp-glance + section.cp-facts{padding-top:24px!important}
/* e. package route table stacks cleanly on phones (th kept a 42% width before) */
@media (max-width:768px){
 html:root body .cp-route-table,html:root body .cp-route-table tbody{display:block;width:100%}
 html:root body .cp-route-table tbody th{width:auto!important;display:block;padding:16px 18px 4px!important}
 html:root body .cp-route-table tbody td{display:block;width:auto!important;padding:0 18px 16px!important}
}
/* f. wide content tables scroll inside their frame on phones instead of being cut off */
@media (max-width:767px){
 html:root body main table:not(.hx-table):not(.bps-route-table):not(.gx-table):not(.cp-route-table):not(#cp-panel *):not(form *){display:block!important;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;width:100%!important}
 html:root body main table:not(.hx-table):not(.bps-route-table):not(.gx-table):not(.cp-route-table):not(#cp-panel *):not(form *) :is(th,td){min-width:150px;width:150px}
 html:root body main table:not(.hx-table):not(.bps-route-table):not(.gx-table):not(.cp-route-table):not(#cp-panel *):not(form *) :is(th,td):first-child{min-width:112px;width:112px}
}
/* g. proof photo styles available on pages that load only the system sheet */
.proof-sec__inner{max-width:1080px}
.pv-proof-card{display:grid!important;grid-template-columns:200px minmax(0,1fr);gap:1.75rem;align-items:center}
.pv-proof-photo{margin:0;border-radius:10px;overflow:hidden;box-shadow:0 18px 36px -18px rgba(20,33,61,.45);border:4px solid #fff;outline:1px solid var(--cp-line,#E3E7EE);background:#E9EEF5}
.pv-proof-photo img{width:100%;max-width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 38%;display:block}
@media(max-width:700px){.pv-proof-card{grid-template-columns:minmax(0,1fr)}.pv-proof-photo{max-width:240px}}
/* h. related-link grids never leave a lone orphan card */
html:root body main .svc-related-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}
/* i. package route table keeps its own type inside blog articles (blog table styles forced uppercase, nowrap headers) */
html:root body .cp-route-table :is(th,td){white-space:normal!important;overflow-wrap:anywhere}
html:root body .cp-route-table tbody th{text-transform:none!important;letter-spacing:normal!important}
@media (max-width:768px){html:root body .cp-route-table td a{white-space:normal!important}}
/* j. genre guides: one quote call per screen. The fixed bottom quote bar duplicated the capture strip and the quote form (2026-10-15) */
html:root body .guide-bar{display:none!important}


/* 20. Content-page repair pass (2026-10-16): dark-hero outline buttons, links on dark cards, unstyled lead form, 4-card grids, small labels */
/* a. secondary outline button on the dark .pp-hero (was navy text on navy, contrast 1.4) */
html:root body .pp-hero .pp-btn-outline{color:#fff!important;border:1.5px solid rgba(255,255,255,.7)!important;background:transparent!important}
html:root body .pp-hero .pp-btn-outline:hover,html:root body .pp-hero .pp-btn-outline:focus-visible{background:rgba(255,255,255,.12)!important;color:#fff!important}
/* b. inline links inside the dark process/stage cards (lapis on navy, contrast 2.0) */
html:root body .pp-section-dark .pp-stage-body a{color:#E3CB8A!important;text-decoration:underline;text-underline-offset:2px}
/* c. lead form on content pages: .lp-hero-form only had landing-page styles, so it rendered as raw inputs */
html:root body .pp-section .lp-hero-form{background:#fff;border:1px solid #E3E7EE;border-top:3px solid #C6A85A;border-radius:14px;padding:1.6rem 1.6rem 1.4rem;box-shadow:0 18px 40px -28px rgba(16,41,76,.45);box-sizing:border-box}
html:root body .pp-section .lp-hero-form h3{margin:0 0 .35rem;color:#10294C}
html:root body .pp-section .lp-hero-form > p,html:root body .pp-section .lp-hero-form form ~ p{margin:0 0 1rem;color:#56627A;font-size:.92rem;line-height:1.55}
html:root body .pp-section .lp-hero-form .lp-form-field{display:flex;flex-direction:column;gap:.35rem;margin:0 0 .85rem}
html:root body .pp-section .lp-hero-form label{font-weight:600;font-size:.86rem;color:#10294C;line-height:1.4}
html:root body .pp-section .lp-hero-form input:not([type=submit]):not([type=hidden]):not([type=checkbox]):not([type=radio]),html:root body .pp-section .lp-hero-form select,html:root body .pp-section .lp-hero-form textarea{display:block;width:100%;box-sizing:border-box;padding:.72rem .85rem;border:1.5px solid #CBD5E1;border-radius:8px;font:inherit;font-size:.95rem;color:#14213D;background:#fff}
html:root body .pp-section .lp-hero-form input:focus,html:root body .pp-section .lp-hero-form select:focus,html:root body .pp-section .lp-hero-form textarea:focus{outline:none;border-color:#22508F;box-shadow:0 0 0 3px rgba(34,80,143,.15)}
html:root body .pp-section .lp-hero-form button,html:root body .pp-section .lp-hero-form input[type=submit]{display:block;width:100%;margin:.4rem 0 .6rem;padding:.9rem 1rem;border:0;border-radius:8px;background:#C6A85A;color:#10294C;font-weight:700;font-size:1rem;cursor:pointer}
html:root body .pp-section .lp-hero-form button:hover,html:root body .pp-section .lp-hero-form input[type=submit]:hover{background:#B8994A}
/* d. four-card grids sit as two by two instead of three plus a lone card */
@media (min-width:769px){html:root body .kq-grid:has(> .kq-card:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))!important}}
/* e. small labels raised to AA contrast */
html:root:root:root body .kq-kicker{color:#7A5F1E!important}
html:root:root:root:root body :is(.kq-cp,[class*=navy],[class*=--dark],[class*=--ink],[class*=forest]) .kq-kicker,html:root:root:root:root body :is([style*="--forest"],[style*="--navy"],[style*="#22508F" i],[style*="--cp-lapis"]) .kq-kicker{color:var(--cp-gold-light)!important}
html:root body strong[style*="#C0550A" i],html:root body strong[style*="rgb(192, 85, 10)"]{color:#9A4307!important}
