/* NOVASOFT_REFRESH_V1 — one consistent brand palette, readable contrast, mobile fixes.
   Loaded last, so it wins over the older inline theme blocks. */

html, html[data-nova-theme] {
  --ns-ink: #0f172a;        /* headings */
  --ns-text: #334155;       /* body text */
  --ns-muted: #4b5a70;      /* secondary text, 7:1 on white */
  --ns-bg: #f5f7fb;
  --ns-surface: #ffffff;
  --ns-soft: #eef3ff;
  --ns-line: #dbe3ef;
  --ns-primary: #2453d6;    /* royal blue, matches the logo */
  --ns-primary-dark: #1b3fa8;
  --ns-green: #047857;      /* prices, success */
  --ns-navy: #0b1730;       /* dark bands */
  --ns-navy-2: #12224a;
  --ns-on-navy: #dbe4f5;

  /* map the old theme variables onto the new palette */
  --nova-bg: var(--ns-bg); --nova-surface: var(--ns-surface); --nova-surface2: var(--ns-soft);
  --nova-nav: #ffffff; --nova-text: var(--ns-ink); --nova-muted: var(--ns-muted);
  --nova-border: var(--ns-line); --nova-accent: var(--ns-primary); --nova-accent-ink: #ffffff;
  --accent: var(--ns-primary); --accent2: var(--ns-primary-dark);
  --muted: var(--ns-muted); --text: var(--ns-ink); --line: var(--ns-line);
}

html body { background: var(--ns-bg) !important; color: var(--ns-text) !important; }
html body h1, html body h2, html body h3, html body h4 { color: var(--ns-ink); }
html body a { color: var(--ns-primary); }

/* ---------- light surfaces: readable text ---------- */
html body .muted, html body .meta, html body .help, html body small,
html body .nv2-section-side p, html body .nv2-tool-card p, html body .nv2-product-body p,
html body .nv2-hero-lead, html body .nv2-information-box p, html body .nv2-panel-head span,
html body .developer-credit, html body .developer-credit strong,
html body .nv2-trust-row span, html body .nv2-hero-panel small {
  color: var(--ns-muted) !important;
}
html body .nv2-hero { background: linear-gradient(180deg, #eef3ff 0%, var(--ns-bg) 100%) !important; }
html body .nv2-hero-lead { font-size: 1.05rem; }
html body .nv2-trust-row span::first-letter { color: var(--ns-green); }

html body .nv2-kicker, html body .eyebrow, html body .nv2-panel-head span {
  color: var(--ns-primary) !important; letter-spacing: .08em;
}
html body .nv2-text-link, html body .nv2-product-footer a, html body .nv2-tool-card > a {
  color: var(--ns-primary) !important; font-weight: 700;
}
html body .nv2-product-price { color: var(--ns-green) !important; }
html body .nv2-tool-icon, html body .nv2-mini-icon {
  background: var(--ns-soft) !important; color: var(--ns-primary) !important;
  border-color: #c9d6fb !important;
}
html body .nv2-product-meta span, html body .nv2-tool-tags span {
  color: #3b4a61 !important; border-color: #c5d0e0 !important; background: #f8fafd !important;
}

/* cards */
html body .card, html body .content-card, html body .product-card, html body .nv2-tool-card,
html body .nv2-product-card, html body .nv2-finder, html body .nv2-information-box,
html body .nv2-hero-panel, html body .tool-card, html body .service-card {
  background: var(--ns-surface) !important; border: 1px solid var(--ns-line) !important;
  box-shadow: 0 6px 24px rgba(15, 23, 42, .06) !important; color: var(--ns-text);
}

/* the grey "info points" boxes: make them light and readable */
html body .nv2-information-points > div {
  background: var(--ns-soft) !important; border: 1px solid #d3defa !important;
}
html body .nv2-information-points > div p, html body .nv2-information-points > div span { color: var(--ns-muted) !important; }
html body .nv2-information-points > div strong, html body .nv2-information-points > div p > strong { color: var(--ns-ink) !important; }

/* ---------- buttons ---------- */
html body .btn:not(.ghost), html body .primary, html body .nv2-primary-action, html body .nav .pill {
  background: var(--ns-primary) !important; color: #fff !important; border-color: var(--ns-primary) !important;
}
html body .btn:not(.ghost):hover, html body .primary:hover, html body .nav .pill:hover { background: var(--ns-primary-dark) !important; }
html body .btn.ghost { background: #fff !important; color: var(--ns-ink) !important; border: 1px solid #c5d0e0 !important; }
html body .novasoft-youtube-button { background: #cc0022 !important; color: #fff !important; }

/* ---------- dark bands: light headings, readable text ---------- */
html body .nv2-value-section, html body .nv2-cta, html body .nv2-purpose {
  background: linear-gradient(160deg, var(--ns-navy) 0%, var(--ns-navy-2) 100%) !important;
  color: var(--ns-on-navy) !important;
}
html body .nv2-value-section h2, html body .nv2-value-section h3, html body .nv2-value-section strong,
html body .nv2-cta h2, html body .nv2-cta h3, html body .nv2-purpose h2, html body .nv2-purpose h3,
html body .nv2-no-tools strong {
  color: #ffffff !important;
}
html body .nv2-value-section p, html body .nv2-cta p, html body .nv2-purpose p { color: var(--ns-on-navy) !important; }
html body .nv2-value-section .nv2-kicker, html body .nv2-cta .nv2-kicker, html body .nv2-purpose .nv2-kicker,
html body .nv2-value-section .eyebrow, html body .nv2-cta .eyebrow, html body .nv2-purpose .eyebrow,
html body .nv2-value-grid article > span, html body .nv2-value-grid article > b { color: #8fb3ff !important; }
html body .nv2-value-grid article { background: rgba(255,255,255,.04) !important; border-color: rgba(255,255,255,.12) !important; }
html body .nv2-purpose a, html body .nv2-cta .btn.ghost { color: #fff !important; border-color: rgba(255,255,255,.35) !important; background: transparent !important; }
html body .nv2-cta .btn:not(.ghost) { background: #ffffff !important; color: var(--ns-primary-dark) !important; }

/* ---------- navigation and footer ---------- */
html body .nav { background: rgba(255,255,255,.96) !important; border-bottom: 1px solid var(--ns-line) !important; }
html body .nav a:not(.pill) { color: var(--ns-ink) !important; }
html body footer, html body .copy { background: #ffffff !important; color: var(--ns-muted) !important; border-top: 1px solid var(--ns-line); }
html body footer p { color: var(--ns-muted) !important; }
html body footer a { color: var(--ns-text) !important; }
html body footer a:hover { color: var(--ns-primary) !important; }

/* ---------- remove distractions ---------- */
#novaThemeButton, #novaThemePanel { display: none !important; }      /* visitor colour picker */
.announcement-overlay, .announcement-backdrop { display: none !important; } /* sitewide popup */

/* ---------- floating contact buttons ---------- */
#floating-contact-buttons a { box-shadow: 0 6px 18px rgba(15,23,42,.18) !important; }
#floating-contact-buttons a:first-child { background: #0f7a3f !important; }
#floating-contact-buttons a:last-child { background: var(--ns-primary) !important; }
#floating-contact-buttons a > span { font-size: 0 !important; width: 20px; height: 20px; display: inline-block;
  background: center / 20px 20px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-12.6 7.3L3 21l2.2-5.2A8.5 8.5 0 1 1 21 11.5z'/%3E%3C/svg%3E"); }
#floating-contact-buttons a:last-child > span {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }

/* ---------- legacy dark boxes on product and tool pages -> light ---------- */
html, html[data-nova-theme] { --input-bg: #ffffff; --input-text: #0f172a; --input-border: #c5d0e0; --input-focus: #2453d6; --label: #0f172a; --panel: #ffffff; --panel2: #eef3ff; }
html body :is(.features-section, .feature-item, .reviews-section, .no-reviews, .review-status, .tool-feedback-empty, .tool-feedback-login, .tool-feedback-summary,
  .compressor-hero, .compressor-form, .compressor-info, .invoice-form, .itp-hero, .itp-card, .itp-drop, .itp-info-card,
  .wte-hero, .wte-card, .wte-drop, .wte-info-card, .text-hero, .text-form, .text-info, .nr-bottom-actions) {
  background: var(--ns-surface) !important; color: var(--ns-text) !important; border-color: var(--ns-line) !important;
}
html body :is(.compressor-hero, .itp-hero, .wte-hero, .text-hero, .feature-item, .no-reviews, .review-status, .tool-feedback-empty, .tool-feedback-summary, .itp-drop, .wte-drop) {
  background: var(--ns-soft) !important; border: 1px solid #d3defa !important;
}
html body :is(.features-section, .feature-item, .reviews-section, .no-reviews, .review-status, .tool-feedback-empty, .tool-feedback-login, .tool-feedback-summary,
  .compressor-hero, .compressor-form, .compressor-info, .invoice-form, .itp-hero, .itp-card, .itp-drop, .itp-info-card,
  .wte-hero, .wte-card, .wte-drop, .wte-info-card, .text-hero, .text-form, .text-info, .nr-bottom-actions, .tool-feedback, .tool-feedback-wrap, .invoice-section-title, .reviews-heading, .leave-review)
  :is(h1, h2, h3, h4, strong, b, label, legend, .review-count) { color: var(--ns-ink) !important; }
html body :is(.features-section, .feature-item, .reviews-section, .no-reviews, .review-status, .tool-feedback-empty, .tool-feedback-login, .tool-feedback-summary,
  .compressor-hero, .compressor-form, .compressor-info, .invoice-form, .itp-hero, .itp-card, .itp-drop, .itp-info-card,
  .wte-hero, .wte-card, .wte-drop, .wte-info-card, .text-hero, .text-form, .text-info, .nr-bottom-actions)
  :is(p, li, small, .muted, .help, .invoice-item-row > div) { color: var(--ns-muted) !important; }
html body :is(.features-section, .reviews-section, .compressor-form, .invoice-form, .itp-card, .wte-card, .text-form, .leave-review, .review-status) a:not(.btn) { color: var(--ns-primary) !important; }
html body .feature-item { color: var(--ns-ink) !important; }
html body .eyebrow, html body .breadcrumbs a { color: var(--ns-primary) !important; }
html body :is(input, textarea, select):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]) {
  background: #ffffff !important; color: var(--ns-ink) !important; border: 1px solid #c5d0e0 !important;
}
html body :is(input, textarea, select):focus { border-color: var(--ns-primary) !important; outline: 2px solid rgba(36,83,214,.18) !important; }
html body ::placeholder { color: #7a879a !important; }
html body .category-card { background: var(--ns-surface) !important; border: 1px solid var(--ns-line) !important; }
html body .category-card b { color: var(--ns-ink) !important; }
html body .category-card small { color: var(--ns-muted) !important; }
html body .category-card.active, html body .category-card[aria-current] { border-color: var(--ns-primary) !important; box-shadow: 0 0 0 2px rgba(36,83,214,.15) !important; }
html body :is(.badge, .category-badge, .category-pill) { background: var(--ns-soft) !important; color: var(--ns-primary-dark) !important; border: 1px solid #c9d6fb !important; }
html body button.shot span { color: var(--ns-ink) !important; }

/* tool-page call-to-action boxes stay dark, like the homepage CTA */
html body :is(.compressor-business-cta, .invoice-service-cta, .text-business-cta) {
  background: linear-gradient(160deg, var(--ns-navy) 0%, var(--ns-navy-2) 100%) !important; color: var(--ns-on-navy) !important; border: 0 !important;
}
html body :is(.compressor-business-cta, .invoice-service-cta, .text-business-cta) :is(h2, h3, strong) { color: #fff !important; }
html body :is(.compressor-business-cta, .invoice-service-cta, .text-business-cta) :is(p, li) { color: var(--ns-on-navy) !important; }
html body :is(.compressor-business-cta, .invoice-service-cta, .text-business-cta) .eyebrow { color: #8fb3ff !important; }

/* ---------- POS page: same brand colours, fix plan titles ---------- */
html body .np-root, html body :is(.np-hero, .np-sec) { --np-teal: #2453d6; --np-teal2: #2453d6; }
html body .np-eyebrow { color: var(--ns-primary) !important; }
html body .np-dark .np-eyebrow { color: #8fb3ff !important; }
html body .np-btn.pri, html body .np-badge { background: var(--ns-primary) !important; color: #fff !important; }
html body .np-btn.pri:hover { background: var(--ns-primary-dark) !important; }
html body .np-plan.hl { border-color: var(--ns-primary) !important; box-shadow: 0 20px 50px rgba(36,83,214,.16) !important; }
html body .np-plan h3 { color: var(--ns-ink) !important; }
html body .np-ticks li::before, html body .np-plan li::before { color: var(--ns-green) !important; }
html body .np-hero { background: linear-gradient(180deg, #eef3ff 0%, var(--ns-bg) 100%) !important; }
html body .np-help, html body .np-help a { color: var(--ns-muted) !important; }
html body .np-help a { text-decoration: underline; }

/* ---------- reviews, feedback, small labels ---------- */
html body :is(.review-count, .verified-buyer, .review-top time, .tool-feedback-summary span, .tool-feedback p, .tool-feedback-wrap p) { color: var(--ns-muted) !important; }
html body .verified-buyer { color: var(--ns-green) !important; }
html body :is(.itp-back, .wte-back, .nr-back) { color: var(--ns-primary) !important; }
html body :is(.itp-limits span, .itp-empty, .itp-privacy, .wte-drop span, .wte-privacy, .wte-card div > span) { color: var(--ns-muted) !important; }
html body :is(.itp-drop, .wte-drop) strong { color: var(--ns-ink) !important; }

/* ---------- resume builder: light cards ---------- */
html body .nr-hero { background: linear-gradient(180deg, #eef3ff 0%, var(--ns-bg) 100%) !important; }
html body .nr-hero :is(h1, h2) { color: var(--ns-ink) !important; }
html body .nr-hero p { color: var(--ns-muted) !important; }
html body .nr-hero :is(span, small, li) { color: var(--ns-text) !important; border-color: #c5d0e0 !important; }
html body .nr-hero .eyebrow { color: var(--ns-primary) !important; }
html body :is(.nr-template-card, .nr-entry-card, .nr-final-card, .nr-form-card, .nr-review-card, .nr-review-result, .nr-photo-thumb) {
  background: var(--ns-surface) !important; border: 1px solid var(--ns-line) !important; color: var(--ns-text) !important;
}
html body .nr-template-card.selected { border: 2px solid var(--ns-primary) !important; box-shadow: 0 0 0 3px rgba(36,83,214,.15) !important; }
html body :is(.nr-template-card, .nr-entry-card, .nr-final-card, .nr-form-card, .nr-review-card, .nr-review-result, .nr-page, .nr-bottom-actions, .nr-template-info)
  :is(h2, h3, h4, strong, label, label > span, .nr-photo-title) { color: var(--ns-ink) !important; }
html body :is(.nr-template-card, .nr-entry-card, .nr-final-card, .nr-form-card, .nr-review-card, .nr-review-result, .nr-page, .nr-template-info)
  :is(p, small, li) { color: var(--ns-muted) !important; }
html body .nr-step { color: var(--ns-muted) !important; }
html body .nr-step.active { color: var(--ns-primary) !important; }
html body :is(.nr-add-btn, .nr-change-template) { color: var(--ns-primary) !important; background: var(--ns-soft) !important; border: 1px dashed #9fb6f5 !important; }
html body .nr-ready-user { color: var(--ns-green) !important; }

/* ---------- stronger fixes for a few stubborn boxes ---------- */
html body form.itp-card label.itp-drop, html body form.wte-card label.wte-drop { background: var(--ns-soft) !important; border: 2px dashed #9fb6f5 !important; }
html body form.itp-card label.itp-drop strong, html body form.wte-card label.wte-drop strong { color: var(--ns-ink) !important; }
html body .tool-feedback-heading p { color: var(--ns-muted) !important; }
html body .screenshot-grid button.shot > span { background: rgba(255,255,255,.94) !important; color: var(--ns-ink) !important; border-radius: 8px; padding: 2px 8px; }
html body .reviews-section .reviews-heading .review-count { background: var(--ns-soft) !important; color: var(--ns-primary-dark) !important; border: 1px solid #c9d6fb !important; }
html body .nr-final-card .nr-login-rule > div { background: var(--ns-soft) !important; border: 1px solid #d3defa !important; }
html body .nr-final-card.nr-final-card :is(h3, strong), html body .nr-form-card.nr-form-card .nr-photo-title { color: var(--ns-ink) !important; }
html body .nr-final-card.nr-final-card p, html body .nr-form-card.nr-form-card small { color: var(--ns-muted) !important; }
html body .nr-photo-actions .nr-photo-upload-btn { background: var(--ns-primary) !important; color: #fff !important; }

html body :is(.compressor-hero, .itp-hero, .wte-hero, .text-hero) { border: 0 !important; background: linear-gradient(180deg, #eef3ff 0%, var(--ns-bg) 100%) !important; }

@media (max-width: 900px) { #novaGlobalBackButton { display: none !important; } }

@media (max-width: 700px) {
  /* compact round icons in the bottom-right corner, no cut-off labels */
  #floating-contact-buttons { left: auto !important; right: 14px !important; bottom: 16px !important;
    display: flex !important; flex-direction: column !important; gap: 10px !important; }
  #floating-contact-buttons a { width: 50px !important; height: 50px !important; min-width: 0 !important;
    padding: 0 !important; border-radius: 50% !important; font-size: 0 !important; overflow: hidden;
    display: flex !important; align-items: center !important; justify-content: center !important; }
  #floating-contact-buttons a > span { width: 24px; height: 24px; background-size: 24px 24px; margin: 0 !important; }
  html body footer { padding-bottom: 130px !important; }

  html body .nv2-hero h1 { font-size: 2.25rem !important; line-height: 1.12 !important; }
  html body .nv2-kicker { font-size: .72rem !important; }
  html body .nv2-information-box p { font-size: 1rem !important; line-height: 1.65 !important; }
}
