/* CARDVAULT R2 — 2026-11-09
 * Readability & brand pass across real catalogue, product, CMS, crypto landings,
 * articles and cart. Loaded LAST to neutralise old theme-blue !important rules.
 * Payment/checkout behaviours are deliberately untouched.
 */

/* Header: restore the actual archived TCGMarket24 brand artwork. */
.cv-body header.cv-header.header--glass .cv-logo{display:flex!important;align-items:center;flex:0 0 auto;text-decoration:none!important;color:#0d1b33!important;line-height:1}
.cv-body header.cv-header.header--glass .cv-real-logo{
 display:block!important;width:150px;height:65px;max-width:100%;object-fit:contain;
 border:0!important;background:transparent!important;box-shadow:none!important;
}
.cv-body header.cv-header.header--glass .cv-header-search,
.cv-body header.cv-header.header--glass .cv-header-search input[type="search"]{
 background:#f7f8f8!important;border-color:#d9e1e9!important;color:#16283f!important;
}
.cv-body header.cv-header.header--glass .cv-header-search input::placeholder{color:#5a687b!important;opacity:1}
.cv-body header.cv-header.header--glass .cv-cart-trigger{background:#11243c!important;color:#fff!important}
.cv-body header.cv-header.header--glass .cv-cart-trigger>svg,
.cv-body header.cv-header.header--glass .cv-cart-trigger>.cv-cart-label{color:#fff!important;stroke:currentColor!important}
/* The old blue theme forces white-on-lime with !important; override both IDs AND sticky selectors. */
body.cv-body header.cv-header.header--glass .cv-cart-trigger span#miniCartBadge,
body.cv-body header.sticky #miniCartBadge,
body.cv-body #miniCartBadge{
 display:grid;place-items:center;min-width:22px;height:22px;padding:0 4px;line-height:1;
 background:#d7fc5b!important;color:#102034!important;fill:#102034!important;
 border:2px solid #fff;border-radius:50%;font-weight:900;font-size:11px;
 text-shadow:none!important;box-shadow:0 1px 5px rgba(0,0,0,.14);
}
body.cv-body header.cv-header.header--glass #miniCartBadge.hidden{display:none!important}
/* Drawer should never inherit glass-header white text. */
body.cv-body #miniCartDropdown .mini-title,
body.cv-body #miniCartDropdown .mini-price,
body.cv-body #miniCartDropdown .mini-title-head,
body.cv-body #miniCartSubtotal{color:#101f35!important}
body.cv-body #miniCartDropdown .mini-meta,
body.cv-body #miniCartDropdown .mini-note{color:#43536a!important}
body.cv-body #miniCartDropdown .mini-checkout,
body.cv-body #miniCartDropdown .mini-checkout *{color:#fff!important}
body.cv-body #miniCartDropdown .mini-cart,
body.cv-body #miniCartDropdown .mini-cart *{color:#14263d!important}

/* Product pages and category grids: improve low-contrast blue-theme utility overrides.
   Target light backgrounds ONLY. Dark utility strips and CTA bars remain untouched. */
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50,.bg-emerald-50,.bg-violet-50,.bg-sky-50,.bg-cyan-50,.bg-amber-50,.bg-indigo-50,.bg-blue-50){color:#17283f}
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-slate-900,
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-slate-950,
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-gray-900{color:#102037!important}
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-slate-700,
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-slate-600,
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-gray-700,
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-gray-600{color:#36465a!important}
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-slate-500,
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-gray-500,
.cv-body .cv-main :is(.bg-white,.bg-slate-50,.bg-gray-50) .text-slate-400{color:#506079!important}
/* Light violet/indigo alert blocks were mistakenly assigned WHITE text by theme-blue. */
.cv-body .cv-main :is(.bg-violet-50,.bg-indigo-50,.bg-blue-50,.bg-sky-50) :is(p,div,span,li,strong,small,summary){color:#26374c!important}
.cv-body .cv-main :is(.bg-violet-50,.bg-indigo-50) :is(a,button){color:#174f8b!important}
.cv-body .cv-main .bg-emerald-50:not(a):not(button){color:#125638!important}
.cv-body .cv-main .bg-amber-50:not(a):not(button){color:#794710!important}
/* Explicit status chips must keep dark text on pale filled backgrounds. */
.cv-body .cv-main :is(span,small).bg-emerald-100{color:#075b39!important}
.cv-body .cv-main :is(span,small).bg-amber-100{color:#78350f!important}
.cv-body .cv-main :is(span,small).bg-red-100{color:#991b1b!important}
.cv-body .cv-main :is(span,small).bg-violet-50{color:#5b21b6!important}
.cv-body .cv-main :is(span,small).bg-cyan-100{color:#102a43!important}
/* Product listings and buy buttons. Readability first; no misleading offer claims. */
.cv-body .cv-main .market24-snapshot-kicker,
.cv-body .cv-main .market24-snapshot-label{color:#36485b!important}
.cv-body .cv-main .market24-snapshot-value{color:#12273d!important}
.cv-body .cv-main .market24-snapshot-sub,
.cv-body .cv-main .market24-info-copy,
.cv-body .cv-main .r8-product-reassurance p,
.cv-body .cv-main .r8-product-mobile-note{color:#3b4f64!important}
.cv-body .cv-main .market24-info-title{color:#14263a!important}
.cv-body .cv-main .market24-info-card-cyan,
.cv-body .cv-main .market24-info-card-violet{color:#19374d!important}
.cv-body .cv-main .market24-payment-note{color:#203c4d!important}
.cv-body .cv-main button#mainAddToCartBtn{
 background:#d7fc5b!important;color:#15273e!important;border:1px solid #a9d43e!important;
 font-weight:900!important;text-shadow:none!important;
}
.cv-body .cv-main button#mainAddToCartBtn *{color:#15273e!important}
.cv-body .cv-main button#mainAddToCartBtn:hover{background:#e6ff93!important}
.cv-body .cv-main button#buyNowBtn:not([disabled]),
.cv-body button#stickyBuyNowBtn:not([disabled]){background:#162b48!important;color:#fff!important;text-shadow:none!important}
.cv-body .cv-main button#buyNowBtn:not([disabled]):hover,
.cv-body button#stickyBuyNowBtn:not([disabled]):hover{background:#284667!important}
.cv-body .cv-main button#buyNowBtn:not([disabled]) *,
.cv-body button#stickyBuyNowBtn:not([disabled]) *{color:#fff!important}
/* Keep dark sections and sticky mobile buy bar legible despite adjacent light-card rules. */
.cv-body .cv-main .bg-slate-950 :is(.text-white,h1.text-white,h2.text-white),
.cv-body .cv-main .bg-slate-950\/95 :is(.text-white,h1.text-white,h2.text-white){color:#fff!important}
.cv-body .cv-main .bg-slate-950 :is(.text-slate-200,.text-slate-300),
.cv-body .bg-slate-950\/95 .text-slate-200{color:#dce6f5!important}
.cv-body .cv-main .bg-slate-950 .text-cyan-300,
.cv-body .bg-slate-950\/95 .text-cyan-300{color:#d7fc5b!important}
/* Guard form controls against washed-out utility classes. */
.cv-body .cv-main :is(input,select,textarea):not([type="hidden"]){color:#17283e;background-color:#fff}
.cv-body .cv-main :is(input,select,textarea)::placeholder{color:#617086;opacity:1}

/* Product description (HTML from catalogue), FAQ and review text. */
.cv-body .cv-main .prose,.cv-body .cv-main .prose :is(p,li,td,dd){color:#2b3d53!important}
.cv-body .cv-main .prose :is(h1,h2,h3,h4,strong){color:#102037!important}
.cv-body .cv-main .prose a{color:#155f9a!important;text-decoration:underline;text-underline-offset:3px}
.cv-body .cv-main .prose blockquote{background:#f1f5f9!important;color:#334155!important}
.cv-body .cv-main .prose pre,.cv-body .cv-main .prose pre *{color:#e5eaf1!important}
.cv-body .cv-main #reviews :is(h3,h4,.font-semibold,.font-bold){color:#17283f}
.cv-body .cv-main #reviews .text-slate-600{color:#475569!important}

/* Shop/category cards and shop filters: neutral on white, bright on dark. */
.cv-body .cv-main .r8-shop-filters label{color:#394d63!important}
.cv-body .cv-main .r8-shop-masthead :is(h1,.r8-kicker){color:#fff!important}
.cv-body .cv-main .r8-shop-masthead .r8-kicker{color:#d7fc5b!important}
.cv-body .cv-main .r8-category-header h1{color:#fff!important}
.cv-body .cv-main .r8-category-header p{color:#e2e9f3!important}
.cv-body .cv-main .r8-category-header a.bg-cyan-400{color:#11243b!important;background:#d7fc5b!important}
.cv-body .cv-main .r8-category-header a.bg-white\/5{color:#fff!important}
.cv-body .cv-main .r8-category-header .tcg-r7-darkchip{color:#fff!important}
.cv-body .cv-main .group.bg-white h3{color:#102037!important}
.cv-body .cv-main .group.bg-white .text-slate-500{color:#536278!important}
.cv-body .cv-main .group.bg-white a:not([class*="bg-"]){color:#12273f}
.cv-body .cv-main .group.bg-white a:hover{color:#1b568a!important}

/* Blog articles: own the readable scope instead of accidentally styling every link in site nav. */
.cv-body .cv-blog-page{background:#f6f7f3!important;color:#132339}
.cv-body .cv-blog-article{background:#fff;border:1px solid #e2e7ec;border-radius:12px;padding:clamp(19px,3vw,36px);box-shadow:0 9px 28px rgba(13,27,51,.055)}
.cv-body .cv-blog-article h1{color:#102037!important;line-height:1.16}
.cv-body .cv-blog-meta{color:#526176!important}
.cv-body .cv-blog-content{font-size:15px;line-height:1.8;color:#293b4f;overflow-wrap:anywhere}
.cv-body .cv-blog-content :is(p,li,td,dd,span:not([class*="text-"])){color:#304258!important}
.cv-body .cv-blog-content :is(h2,h3,h4,h5,h6,strong){color:#10263c!important}
.cv-body .cv-blog-content :is(a,a.text-blue-600){color:#126097!important;text-decoration:underline!important;text-underline-offset:3px}
.cv-body .cv-blog-content a:hover{color:#0b4169!important}
.cv-body .cv-blog-content :is(ul,ol){margin:1rem 0 1.2rem;padding-left:1.6rem}
.cv-body .cv-blog-content li{margin:.45rem 0}
.cv-body .cv-blog-content blockquote{background:#f1f5f9!important;border-left:4px solid #7aa4cb;color:#304258!important;padding:15px 18px;border-radius:4px}
.cv-body .cv-blog-content blockquote *{color:#304258!important}
.cv-body .cv-blog-content :is(img,video){max-width:100%;height:auto}
.cv-body .cv-blog-content :is(table,pre){display:block;max-width:100%;overflow-x:auto}
.cv-body .cv-blog-content pre,.cv-body .cv-blog-content pre *{background:#112238;color:#f1f5fb!important}
.cv-body .cv-blog-article .cv-blog-tags a{background:#e8eef4!important;color:#1d5278!important}

/* CMS standard pages: dark hero stays dark, all pale content panels become legible.
   No global * reset that would whitewash dark CTAs. */
.cv-body .tcg-page-shell--standard .tcg-page-content :is(p,li,dd,dt,small){color:#33465c!important}
.cv-body .tcg-page-shell--standard .tcg-page-content :is(h1,h2,h3,h4,strong){color:#112439!important}
.cv-body .tcg-page-shell--standard .tcg-page-content > div:first-child > header :is(h1,h2,h3,h4,strong){color:#fff!important}
.cv-body .tcg-page-shell--standard .tcg-page-content > div:first-child > header :is(p,small,li){color:#e1eaf5!important}
.cv-body .tcg-page-shell--standard .tcg-page-content :is(.bg-violet-50,.bg-indigo-50,.bg-blue-50,.bg-sky-50,.bg-amber-50) :is(p,li,span,strong){color:#27394b!important}
.cv-body .tcg-page-shell--standard .tcg-page-content :is(.bg-violet-50,.bg-indigo-50,.bg-blue-50,.bg-sky-50,.bg-amber-50) :is(a,button){color:#115887!important}
.cv-body .tcg-page-shell--standard .tcg-page-content :is(a.bg-slate-900,a.bg-blue-600,a[class*="bg-slate-9"]){color:#fff!important}
.cv-body .tcg-page-index-card :is(h2,strong){color:#13263d!important}
.cv-body .tcg-page-index-card a{color:#12527d!important}
.cv-body .tcg-page-breadcrumb,.cv-body .tcg-page-breadcrumb a{color:#445873!important}

/* Crypto SEO landing pages: original dark hero CTA overrides retained; readable body cards. */
.cv-body .tcg-crypto-landing > header h1{color:#fff!important}
.cv-body .tcg-crypto-landing > header p:first-child{color:#d7fc5b!important}
.cv-body .tcg-crypto-landing > header p:not(:first-child){color:#e0eaf4!important}
.cv-body .tcg-crypto-landing > section :is(h2,h3,h4,strong){color:#14263b!important}
.cv-body .tcg-crypto-landing > section :is(p,li,span,small){color:#33485e!important}
.cv-body .tcg-crypto-landing > section a:not([class*="bg-"]){color:#125784!important}
.cv-body .tcg-crypto-landing > section :is(a.bg-slate-900,a.bg-blue-600){color:#fff!important}
.cv-body .tcg-crypto-landing > section a.bg-sky-100,
.cv-body .tcg-crypto-landing > section a.bg-slate-100{color:#144366!important}

/* Cart and checkout: ensure text on white and fields remains legible without touching payments. */
.cv-body .cv-main table tbody{color:#273b51}
.cv-body .cv-main table thead{color:#293c50}
.cv-body .cv-main .bg-white:not(.cv-product-card) input[type="number"]{color:#10253d}
.cv-body .cv-main .bg-white .text-accent:not([class*="bg-"]){color:#155c91!important}

@media(max-width:1000px){.cv-body header.cv-header.header--glass .cv-real-logo{width:130px;height:58px}}
@media(max-width:620px){
 .cv-body header.cv-header.header--glass .cv-real-logo{width:109px;height:48px}
 .cv-body .cv-blog-article{padding:17px}
 .cv-body .cv-blog-content{font-size:14px;line-height:1.75}
}
@media(max-width:370px){.cv-body header.cv-header.header--glass .cv-real-logo{width:93px;height:43px}}
/* Footer logo must contrast against the navy footer. */
.cv-body footer.r8-footer .cv-footer-logo-plate{display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:7px;padding:5px 10px;max-width:163px;min-height:60px}
.cv-body footer.r8-footer .cv-footer-logo-plate img{display:block;width:140px;height:54px;max-width:100%;object-fit:contain;filter:none}
/* Dark top-of-gallery authenticity chip was dark-on-navy under theme-blue. */
.cv-body .cv-main .bg-slate-950.text-cyan-200,
.cv-body .cv-main .bg-slate-950 .text-cyan-200{color:#ddf7ff!important}
.cv-body .cv-main .bg-slate-950.text-cyan-200 span{color:#ddf7ff!important}
/* 320px: keep review fields and stars within their card. */
.cv-body #reviews,.cv-body #reviews *{box-sizing:border-box}
.cv-body #reviews .grid>*{min-width:0}
.cv-body #reviews :is(input:not([type="hidden"]),select,textarea){max-width:100%!important;min-width:0}
@media(max-width:360px){.cv-body #reviews .grid{grid-template-columns:minmax(0,1fr)}.cv-body #reviews .flex{min-width:0;flex-wrap:wrap}}
/* Blog grid remains fluid even if Tailwind CDN is unavailable. */
.cv-body .cv-blog-page>.max-w-7xl{width:min(100% - 40px,1170px);margin-inline:auto;padding:0!important}
.cv-body .cv-blog-page>.max-w-7xl>.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
.cv-body .cv-blog-article{min-width:0;max-width:100%}
@media(min-width:900px){
 .cv-body .cv-blog-page>.max-w-7xl>.grid:has(>div.md\:col-span-1){grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr)}
}
@media(max-width:620px){.cv-body .cv-blog-page>.max-w-7xl{width:min(100% - 28px,1170px)}}
.cv-body header.cv-header.header--glass .cv-header-search>svg{stroke:#51677e!important;color:#51677e!important;fill:none!important}
/* Any dark CTA nested inside a pale CMS/payment note must keep its white label. */
.cv-body .cv-main :is(.bg-violet-50,.bg-indigo-50,.bg-blue-50,.bg-sky-50,.bg-amber-50) :is(a.bg-slate-900,button.bg-slate-900,a.bg-blue-600,button.bg-blue-600),
.cv-body .cv-main :is(.bg-violet-50,.bg-indigo-50,.bg-blue-50,.bg-sky-50,.bg-amber-50) :is(a.bg-slate-900,button.bg-slate-900,a.bg-blue-600,button.bg-blue-600) :is(span,strong,svg){color:#fff!important}
