/* ==========================================================
   Ingotvision pro — QA FINAL POLISH (contrast, type, product dark bands)
   Design contract: §2-§3 (dark band → white/.84), §18 (no < #445270 body),
   §23 (priority contrast > layout), §28 (product dark band white text).
   ========================================================== */

/* 1) Raise contrast for body and muted text (spec: body ≥ #445270, muted ≥ #65708A)
      The :root tokens set --iv-text to #65708A already, but some .ivp-text-soft /
      .ivp-meta / small uses sit at #75809A (below #65708A). Pull them up. */
.ivp-text-soft, .ivp-meta, .ivp-card small, .ivp-footer,
.ivp-card__meta, .ivp-product-meta, .ivp-contact-addr, .ivp-product-desc small,
.ivp-train-schedule__note {
  color: #445270 !important;
}

/* Headings: spec requires ≥ #111B38 already, but pull H1 to full weight and H2 to a
   slightly lighter ink (not black) so the serif reads as "premium ink" not "navy". */
h1        { color: #111B38 !important; }
h2        { color: #111B38 !important; letter-spacing: -0.015em !important; }
h3, h4    { color: #111B38 !important; }

/* Body: ensure ≥ 16.5px, line-height 1.6 */
body, .ivp-container p, .ivp-hero-copy p, .ivp-card p, .ivp-product-desc p,
.ivp-b2b-form-section p, .ivp-train-card__body p, .ivp-contact-info p {
  font-size: 16.5px !important;   line-height: 1.6 !important;
  letter-spacing: 0.012em;
}

/* 2) DARK BANDS — all navy/blue sections MUST have white text per §2-§3, §28 */

/* Product hero band (iFLO/MeiboVue/QuickVue/LidVue intro). */
/* .ivp-product-section.is-blue {
  color: #fff !important;
} */
/* .ivp-product-section.is-blue *,
.ivp-product-section.is-blue h1,
.ivp-product-section.is-blue h2,
.ivp-product-section.is-blue p,
.ivp-product-section.is-blue span {
  color: inherit;
} */
/* .ivp-product-section.is-blue p {
  color: rgba(255,255,255,.84) !important;
} */
/* .ivp-product-section.is-blue .ivp-kicker {
  color: #B7CEFA !important;
} */
/* .ivp-product-section.is-blue .ivp-kicker::before,
.ivp-product-hero .ivp-kicker::before {
  background: linear-gradient(90deg,#7FA5F6,rgba(127,165,246,.15)) !important;
} */




/* 3) TABLES — spec §18 "tabulky s polštářováním, zřetelnost 14-15px, alternate row bg" */
.ivp-product-specs table,
.ivp-product-specs th,
.ivp-product-specs td,
.ivp-table, .ivp-table th, .ivp-table td {
  font-size: 15px !important;
  letter-spacing: 0.012em;
}
.ivp-product-specs th, .ivp-table th {
  padding: 18px 24px !important;
  font-weight: 600 !important;
  color: #111B38 !important;
  background: #EEF4FF !important;
  border-bottom: 2px solid rgba(49,95,214,.20) !important;
  text-align: left;
  text-transform: none;
  font-size: 14px !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.ivp-product-specs td, .ivp-table td {
  padding: 18px 24px !important;
  color: #445270 !important;
  border-bottom: 1px solid rgba(70,95,150,.14) !important;
  vertical-align: top;
}
.ivp-product-specs tr:nth-child(odd) td,
.ivp-table tr:nth-child(odd) td {
  background: #F5F8FF !important;
}
.ivp-product-specs tr:nth-child(even) td,
.ivp-table tr:nth-child(even) td {
  background: #FAFCFF !important;
}
.ivp-product-specs tr:hover td,
.ivp-table tr:hover td {
  background: #EAF1FF !important;
}

/* 4) BUTTONS — consistent weight + CTA gradient contrast (not pure black) */
.ivp-btn--primary,
.astra-button--xxl,
.ast-button,
a.btn-primary,
button.btn-primary {
  background: linear-gradient(135deg,#2454D8 0%,#16459A 100%) !important;
  color: #fff !important;
  font-weight: 600 !important;
  letter-spacing: .012em;
}
.ivp-btn--primary:hover,
.astra-button--xxl:hover,
.ast-button:hover,
a.btn-primary:hover {
  background: linear-gradient(135deg,#1E44B5 0%,#0D245B 100%) !important;
  box-shadow: 0 14px 34px rgba(30,60,120,.35) !important;
}

/* 5) HOME hero — pull H1 slightly larger with better tracking,
      ensure hero-copy paragraph is ≥ #445270 */
.ivp-hero-copy h1 {
  font-size: clamp(54px, 6.8vw, 86px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.028em !important;
  color: #111B38 !important;
}
.ivp-hero-copy p {
  color: #445270 !important;
  font-size: 17.5px !important;
  line-height: 1.65 !important;
}

/* 6) PRODUCT PAGE — ensure the dark navy intro band has its own kicker color,
      NOT default blue (which was washing out) and NOT default body (which was dark) */
/* .ivp-product-section.is-blue .ivp-hero-copy,
.ivp-product-section.is-blue .ivp-hero-copy * {
  color: #fff !important;
} */
/* .ivp-product-section.is-blue .ivp-hero-copy p {
  color: rgba(255,255,255,.86) !important;
} */
/* .ivp-product-section.is-blue .ivp-hero-copy .ivp-kicker {
  color: #B7CEFA !important;
} */

/* 7) HOME hero — ensure the "Přehrát video" link is legible white on the blue CTA button
      (was previously dark) */
.ivp-btn--ghost {
  background: transparent !important;
  color: #111B38 !important;
  border: 1px solid rgba(49,95,214,.35) !important;
  font-weight: 600 !important;
}
.ivp-btn--ghost:hover {
  background: rgba(49,95,214,.08) !important;
  border-color: rgba(49,95,214,.55) !important;
}

/* 8) PARTNER strip - ensure logo text is dark ink, not navy-muted */
.ivp-partner-box {
  color: #ffffff !important;
}
.ivp-partner-box h1, .ivp-partner-box h2, .ivp-partner-box h3, .ivp-partner-box h4, .ivp-partner-box p {
  color: #ffffff !important;
}
.ivp-partner .ivp-partner-box small,
.ivp-partner .ivp-partner-box span:not(.btn) {
  color: #cfe0f7 !important;
  font-size: 14px !important;
}

/* 9) AREA CARDS - icon + title dark ink, description dark slate */
.ivp-area-card {
  color: #111B38 !important;
}
.ivp-area-card h1, .ivp-area-card h2, .ivp-area-card h3, .ivp-area-card h4, .ivp-area-card .icon {
  color: #111B38 !important;
}
.ivp-area-card p {
  color: #445270 !important;
}

/* 10) SHOP product cards — title dark, description dark slate, price blue bold */
.ivp-shop-grid__card .ivp-shop-grid__title,
.ivp-shop-grid__card h3 {
  color: #111B38 !important;
}
.ivp-shop-grid__card .ivp-shop-grid__desc p {
  color: #445270 !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}
.ivp-shop-grid__card .ivp-shop-grid__price,
.ivp-shop-grid__card .price {
  color: #2454D8 !important;
  font-size: 18px !important;
  font-weight: 700 !important;
}

/* 11) Ensure no pure black on ANY CTA / dark band */
.ivp-btn--primary * { color: #fff !important; }
/* ==========================================================
   SAFEGUARD: LIGHT BOXES IN DARK SECTIONS
   ========================================================== 
   Prevents any broad selectors (.is-blue p, .ivp-final-box p, 
   .ivp-product-blue p) from forcing white text onto explicit 
   light-background boxes. This block uses body to ensure maximum specificity.
*/
body .ivp-product-box-light,
body .ivp-product-info-card,
body .ivp-product-list-card,
body .ivp-contact-info-card,
body .ivp-b2b-card,
body .ivp-trust-card,
body .ivp-area-card,
body .ivp-shop-grid__card,
body .ivp-card {
    color: #111B38 !important;
}

body .ivp-product-box-light p,
body .ivp-product-info-card p,
body .ivp-product-list-card p,
body .ivp-contact-info-card p,
body .ivp-b2b-card p,
body .ivp-trust-card p,
body .ivp-area-card p,
body .ivp-shop-grid__card p,
body .ivp-card p {
    color: #445270 !important;
}

body .ivp-product-box-light strong, 
body .ivp-product-box-light b,
body .ivp-product-box-light h1,
body .ivp-product-box-light h2,
body .ivp-product-box-light h3,
body .ivp-product-box-light h4,
body .ivp-product-box-light h5,
body .ivp-product-box-light h6,
body .ivp-product-info-card h1, body .ivp-product-info-card h2, body .ivp-product-info-card h3,
body .ivp-card h1, body .ivp-card h2, body .ivp-card h3 {
    color: #111B38 !important;
}
/* Fix for all primary buttons losing white text on hover or due to global overrides */
.ivp-btn--primary,
.ivp-contact-btn-primary,
.ivp-training-btn-primary,
.ivp-b2b-btn,
.ivp-b2b-btn-sm,
a.btn-primary,
.ivp-btn--primary:hover,
.ivp-contact-btn-primary:hover,
.ivp-training-btn-primary:hover,
.ivp-b2b-btn:hover,
.ivp-b2b-btn-sm:hover,
a.btn-primary:hover {
    color: #fff !important;
}

/* Fix for .ivp-product-final-box text legibility */
.ivp-product-final-box h2, .ivp-contact-final-box h2, .ivp-b2b-final-box h2, .ivp-training-final-box h2 { color: #ffffff !important; text-shadow: none !important; }
.ivp-product-final-box p, .ivp-contact-final-box p, .ivp-b2b-final-box p, .ivp-training-final-box p { color: #c4d8f5 !important; }
.ivp-product-final-box span, .ivp-contact-final-box span, .ivp-b2b-final-box span, .ivp-training-final-box span { color: #ffffff !important; }

/* Fix for .ivp-product-section.is-blue heading legibility */
/* .ivp-product-section.is-blue h1, .ivp-product-section.is-blue h2, .ivp-product-section.is-blue h3 { color: #ffffff !important; } */
/* .ivp-product-section.is-blue .ivp-product-kicker { color: #B7CEFA !important; } */

/* BULLETPROOF ALIGNMENT FIX */
.ivp-shop-grid__card, .ivp-product-card { display: flex !important; flex-direction: column !important; height: 100% !important; }
.ivp-shop-grid__body, .ivp-product-body { display: flex !important; flex-direction: column !important; flex: 1 1 auto !important; }
.ivp-shop-grid__body > p, .ivp-product-body > p { flex: 0 0 auto !important; }
.ivp-shop-grid__body .price, .ivp-product-body > a:last-child { margin-top: auto !important; }

/* Fix for partner box image size */
.ivp-partner-box { grid-template-columns: 1fr 1fr !important; }
.ivp-partner-box .ivp-visual, .ivp-training-grid .ivp-training-image { min-width: 0 !important; min-height: 0 !important; }

/* Fix for filter hidden state */
.ivp-shop-grid__card.is-hidden, .ivp-product-card.is-hidden { display: none !important; }

/* Fix for training page right column light box */
body section.ivp-training-section.ivp-training-blue .ivp-training-split > div:last-child p { color: #445270 !important; }

/* Fix for .ivp-training-panel broken 3-column grid */
.ivp-training-panel { display: flex !important; flex-direction: column !important; gap: 16px !important; }
