/*
 * Canton Christmas Lights - Sitewide Readability & Contrast Layer
 * Purpose: force clearer typography and safer foreground/background contrast
 * across desktop, tablet, and mobile without changing template logic.
 */

.bcl-app {
  --bcl-readable-text: #252a30;
  --bcl-readable-muted: #4b5563;
  --bcl-readable-link: #991b1b;
  --bcl-readable-dark-surface: #f8fafc;
  --bcl-readable-dark-muted: #e2e8f0;
  font-size: 18px;
  line-height: 1.72;
  color: var(--bcl-readable-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Global readable defaults for normal content. */
.bcl-app p,
.bcl-app li,
.bcl-app dd,
.bcl-app blockquote,
.bcl-app figcaption,
.bcl-app label,
.bcl-app address,
.bcl-app td,
.bcl-app th {
  color: var(--bcl-readable-text);
}

.bcl-app p,
.bcl-app li,
.bcl-app dd,
.bcl-app blockquote,
.bcl-app address {
  line-height: 1.72;
}

.bcl-app input,
.bcl-app select,
.bcl-app textarea,
.bcl-app button {
  font-size: 1rem;
  line-height: 1.45;
}

.bcl-app input,
.bcl-app select,
.bcl-app textarea {
  color: #20262d;
  background-color: #fff;
}

.bcl-app input::placeholder,
.bcl-app textarea::placeholder {
  color: #66707a;
  opacity: 1;
}

.bcl-app h1,
.bcl-app h2,
.bcl-app h3,
.bcl-app h4,
.bcl-app h5,
.bcl-app h6 {
  color: #111820;
  text-wrap: balance;
}

.bcl-app a:not(.bcl-button):not(.ccl-ref-button):not(.button):not(.wp-element-button) {
  text-underline-offset: .16em;
}

/* Standard theme elements that were intentionally small in the older CSS. */
.bcl-app .bcl-announcement .bcl-container,
.bcl-app .bcl-nav-links a,
.bcl-app .bcl-nav-links > li > a,
.bcl-app .bcl-nav-links .sub-menu a,
.bcl-app .bcl-nav-links .children a,
.bcl-app .bcl-header-cta,
.bcl-app .bcl-toolbar-label,
.bcl-app .bcl-toolbar-action,
.bcl-app .bcl-hero-eyebrow,
.bcl-app .bcl-eyebrow,
.bcl-app .bcl-hero-points li,
.bcl-app .bcl-form-heading p,
.bcl-app .bcl-frame-loader small,
.bcl-app .bcl-trust-item span,
.bcl-app .bcl-check-list li,
.bcl-app .bcl-image-badge,
.bcl-app .bcl-design-feature p,
.bcl-app .bcl-process-step p,
.bcl-app .bcl-pricing-card p,
.bcl-app .bcl-pricing-note,
.bcl-app .bcl-local-copy .bcl-business-details-label,
.bcl-app .bcl-business-details-grid span,
.bcl-app .bcl-business-details-grid strong,
.bcl-app .bcl-business-details-grid a,
.bcl-app .bcl-business-details-grid address,
.bcl-app .bcl-local-card p,
.bcl-app .bcl-gallery-marquee-track,
.bcl-app .bcl-gallery-count,
.bcl-app .bcl-gallery-filter,
.bcl-app .bcl-gallery-carousel-topline,
.bcl-app .bcl-gallery-carousel-status,
.bcl-app .bcl-gallery-eyebrow,
.bcl-app .bcl-gallery-description,
.bcl-app .bcl-gallery-hint,
.bcl-app .bcl-lightbox-eyebrow,
.bcl-app .bcl-lightbox-counter,
.bcl-app .bcl-lightbox-description,
.bcl-app .bcl-lightbox-nav,
.bcl-app .bcl-countdown-label,
.bcl-app .bcl-footer-about p,
.bcl-app .bcl-footer-contact,
.bcl-app .bcl-footer-contact strong,
.bcl-app .bcl-footer h3,
.bcl-app .bcl-footer-links a,
.bcl-app .bcl-footer-bottom,
.bcl-app .bcl-toast,
.bcl-app .bcl-breadcrumbs,
.bcl-app .bcl-post-meta,
.bcl-app .bcl-large-check-list li::before,
.bcl-app .bcl-check-list-large li::before,
.bcl-app .bcl-about-visual-card figcaption span,
.bcl-app .bcl-quote-prep-list small,
.bcl-app .bcl-quote-response-note p,
.bcl-app .bcl-quote-page-content .bcl-form-fallback,
.bcl-app .bcl-contact-channel-card small,
.bcl-app .bcl-contact-channel-card p,
.bcl-app .bcl-contact-detail-grid article > span,
.bcl-app .bcl-blog-category-nav span,
.bcl-app .bcl-blog-card-kicker,
.bcl-app .bcl-article-category {
  font-size: max(14px, .84rem) !important;
}

.bcl-app .bcl-announcement .bcl-container,
.bcl-app .bcl-nav-links a,
.bcl-app .bcl-nav-links > li > a,
.bcl-app .bcl-nav-links .sub-menu a,
.bcl-app .bcl-nav-links .children a,
.bcl-app .bcl-header-cta,
.bcl-app .bcl-form-heading p,
.bcl-app .bcl-check-list li,
.bcl-app .bcl-design-feature p,
.bcl-app .bcl-process-step p,
.bcl-app .bcl-pricing-card p,
.bcl-app .bcl-pricing-note,
.bcl-app .bcl-local-card p,
.bcl-app .bcl-footer-about p,
.bcl-app .bcl-footer-contact,
.bcl-app .bcl-footer-links a,
.bcl-app .bcl-toast,
.bcl-app .bcl-quote-response-note p,
.bcl-app .bcl-contact-channel-card p {
  font-size: max(15px, .9rem) !important;
}

/* Homepage/reference-inspired shell. The original design used 7-12px text in many areas. */
.ccl-ref-shell,
.ccl-ref-content {
  color: #232a31;
}

.ccl-ref-side-nav a,
.ccl-ref-search input,
.ccl-ref-phone,
.ccl-ref-button,
.ccl-ref-kicker,
.ccl-ref-hero-copy > p:not(.ccl-ref-kicker),
.ccl-ref-play,
.ccl-ref-hero-trust strong,
.ccl-ref-hero-trust small,
.ccl-ref-section-heading p,
.ccl-ref-pricing-intro p,
.ccl-ref-heading-row > a,
.ccl-ref-feature-content h3,
.ccl-ref-feature-content p,
.ccl-ref-feature-content small,
.ccl-ref-service-tile span,
.ccl-ref-dual-card p,
.ccl-ref-dual-card .ccl-ref-button,
.ccl-ref-process-card h3,
.ccl-ref-process-card p,
.ccl-ref-pricing-grid h3,
.ccl-ref-pricing-grid p,
.ccl-ref-gallery-grid strong,
.ccl-ref-gallery-grid small,
.ccl-ref-countdown p,
.ccl-ref-timeboxes span,
.ccl-ref-countdown-cta,
.ccl-ref-faq summary,
.ccl-ref-faq summary span,
.ccl-ref-faq details > div,
.ccl-ref-final-inner p,
.ccl-ref-final-actions p,
.ccl-ref-footer-brand p,
.ccl-ref-footer-main p,
.ccl-ref-footer h3,
.ccl-ref-footer-main a:not(.ccl-ref-button):not(.ccl-ref-contact-line),
.ccl-ref-footer-contact .ccl-ref-button,
.ccl-ref-contact-line,
.ccl-ref-footer-bottom {
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.ccl-ref-side-nav a,
.ccl-ref-search input,
.ccl-ref-phone,
.ccl-ref-button,
.ccl-ref-hero-copy > p:not(.ccl-ref-kicker),
.ccl-ref-section-heading p,
.ccl-ref-pricing-intro p,
.ccl-ref-feature-content p,
.ccl-ref-dual-card p,
.ccl-ref-process-card p,
.ccl-ref-pricing-grid p,
.ccl-ref-countdown p,
.ccl-ref-faq details > div,
.ccl-ref-final-inner p,
.ccl-ref-footer-brand p,
.ccl-ref-footer-main p,
.ccl-ref-contact-line {
  font-size: 15px !important;
}

.ccl-ref-hero-copy > p:not(.ccl-ref-kicker),
.ccl-ref-section-heading p,
.ccl-ref-pricing-intro p,
.ccl-ref-feature-content p,
.ccl-ref-dual-card p,
.ccl-ref-process-card p,
.ccl-ref-pricing-grid p,
.ccl-ref-faq details > div,
.ccl-ref-final-inner p {
  color: #374151 !important;
}

/* Dark/image-backed areas need light text regardless of inherited component colors. */
.ccl-ref-hero .ccl-ref-hero-copy,
.ccl-ref-hero .ccl-ref-hero-copy h1,
.ccl-ref-hero .ccl-ref-hero-copy h2,
.ccl-ref-hero .ccl-ref-hero-copy h3,
.ccl-ref-hero .ccl-ref-hero-copy p,
.ccl-ref-hero .ccl-ref-hero-copy strong,
.ccl-ref-hero .ccl-ref-hero-copy small,
.ccl-ref-hero-trust,
.ccl-ref-hero-trust strong,
.ccl-ref-hero-trust small,
.ccl-ref-service-tile,
.ccl-ref-service-tile span,
.ccl-ref-dual-card,
.ccl-ref-dual-card h2,
.ccl-ref-dual-card h3,
.ccl-ref-dual-card p,
.ccl-ref-gallery-grid figure,
.ccl-ref-gallery-grid strong,
.ccl-ref-gallery-grid small,
.ccl-ref-countdown,
.ccl-ref-countdown p,
.ccl-ref-final-cta,
.ccl-ref-final-cta h2,
.ccl-ref-final-cta h3,
.ccl-ref-final-cta p,
.ccl-ref-footer,
.ccl-ref-footer h2,
.ccl-ref-footer h3,
.ccl-ref-footer p,
.ccl-ref-footer a,
.ccl-ref-footer strong,
.ccl-ref-footer small {
  color: #f8fafc !important;
}

.ccl-ref-footer p,
.ccl-ref-footer small,
.ccl-ref-footer-bottom,
.ccl-ref-footer-bottom a {
  color: #dbe3ea !important;
}

/* Non-home pages: stronger body text and links on the light gray page background. */
.ccl-ref-nonhome main {
  color: #20272e;
}

.ccl-ref-nonhome main p,
.ccl-ref-nonhome .bcl-entry-content li,
.ccl-ref-nonhome .entry-content li,
.ccl-ref-nonhome .bcl-article-content li,
.ccl-ref-nonhome th,
.ccl-ref-nonhome td,
.ccl-ref-nonhome .bcl-landing-lead,
.ccl-ref-nonhome .bcl-sidebar-card p,
.ccl-ref-nonhome .bcl-contact-channel-card p,
.ccl-ref-nonhome .bcl-blog-card p,
.ccl-ref-nonhome .bcl-related-page-card p,
.ccl-ref-nonhome .bcl-post-card p,
.ccl-ref-nonhome .bcl-feature-card p,
.ccl-ref-nonhome .bcl-blog-hero-lead {
  color: #374151 !important;
  font-size: 16px !important;
  line-height: 1.72 !important;
}

.ccl-ref-nonhome .bcl-eyebrow,
.ccl-ref-nonhome .bcl-hero-eyebrow,
.ccl-ref-page-hero .ccl-ref-kicker,
.ccl-ref-page-hero .bcl-breadcrumbs,
.ccl-ref-nonhome .bcl-landing-hero .bcl-breadcrumbs,
.ccl-ref-nonhome .bcl-landing-trust-points li,
.ccl-ref-nonhome .bcl-landing-trust-points li span,
.ccl-ref-nonhome .bcl-hero-form .bcl-form-heading p,
.ccl-ref-nonhome .bcl-sidebar-links a,
.ccl-ref-nonhome .bcl-blog-card-kicker,
.ccl-ref-nonhome .bcl-blog-hero .bcl-breadcrumbs,
.ccl-ref-nonhome .bcl-article-hero .bcl-breadcrumbs,
.ccl-ref-nonhome .bcl-blog-category-nav a,
.ccl-ref-nonhome .bcl-blog-category-nav a span,
.ccl-ref-nonhome .bcl-pagination .page-numbers,
.ccl-ref-nonhome .bcl-article-category,
.ccl-ref-nonhome .bcl-article-meta,
.ccl-ref-nonhome .bcl-article-navigation a,
.ccl-ref-nonhome .bcl-post-meta,
.ccl-ref-nonhome .ccl-ref-footer-main p,
.ccl-ref-nonhome .ccl-ref-footer-main a:not(.ccl-ref-button):not(.ccl-ref-contact-line),
.ccl-ref-nonhome .ccl-ref-footer h3,
.ccl-ref-nonhome .ccl-ref-footer-bottom {
  font-size: 14px !important;
  line-height: 1.55 !important;
}

.ccl-ref-nonhome .bcl-inline-link,
.ccl-ref-nonhome .ccl-ref-card-link,
.ccl-ref-nonhome main a:not(.bcl-button):not(.ccl-ref-button),
.ccl-ref-nonhome .bcl-sidebar-links a,
.ccl-ref-nonhome .bcl-article-navigation a {
  color: var(--bcl-readable-link) !important;
}

.ccl-ref-nonhome .bcl-button,
.ccl-ref-nonhome .ccl-ref-button,
.ccl-ref-nonhome .bcl-hero-form input,
.ccl-ref-nonhome .bcl-hero-form textarea,
.ccl-ref-nonhome .bcl-hero-form select,
.ccl-ref-search-panel input[type="search"],
.ccl-ref-nonhome .search-form input[type="search"],
.ccl-ref-search-panel input[type="submit"],
.ccl-ref-nonhome .search-form input[type="submit"] {
  font-size: 15px !important;
}

/* Preserve white text only on controls that actually use dark/red surfaces. */
.bcl-app .bcl-button-primary,
.bcl-app .bcl-button-primary *,
.bcl-app .ccl-ref-button-red,
.bcl-app .ccl-ref-button-red *,
.bcl-app .ccl-ref-button-dark,
.bcl-app .ccl-ref-button-dark *,
.bcl-app .bcl-hero .bcl-button-outline,
.bcl-app .bcl-landing-hero .bcl-button-outline,
.bcl-app .bcl-dark-section .bcl-button-outline,
.bcl-app .bcl-final-cta .bcl-button-outline,
.bcl-app .bcl-content-callout.is-dark .bcl-button-outline,
.bcl-app .bcl-sidebar-card.is-accent .bcl-button-outline,
.bcl-app .bcl-about-final-callout .bcl-button-outline,
.bcl-app .bcl-quote-final-note .bcl-button-outline {
  color: #fff !important;
}

/* Keep the dark reference search bar visually consistent after global form defaults. */
.bcl-app .ccl-ref-search input {
  color: #fff;
  background-color: transparent;
}

.bcl-app .ccl-ref-search input::placeholder {
  color: #d2dae3;
}

/* Give enlarged reference copy enough room so readability improvements do not clip text. */
.ccl-ref-dual-card {
  height: 160px;
}

.ccl-ref-countdown {
  height: auto;
  min-height: 90px;
}

.ccl-ref-final-cta {
  height: auto;
  min-height: 110px;
}

.ccl-ref-final-inner {
  min-height: 110px;
}

/* Form and card surfaces should never inherit washed-out white text. */
.bcl-app .bcl-hero-form,
.bcl-app .bcl-hero-form p,
.bcl-app .bcl-hero-form label,
.bcl-app .bcl-hero-form h2,
.bcl-app .bcl-hero-form h3,
.bcl-app .bcl-sidebar-card,
.bcl-app .bcl-sidebar-card p,
.bcl-app .bcl-sidebar-card h2,
.bcl-app .bcl-sidebar-card h3,
.bcl-app .bcl-blog-card,
.bcl-app .bcl-related-page-card,
.bcl-app .bcl-post-card,
.bcl-app .bcl-feature-card {
  color: #20272e;
}

/* Tablet: maintain comfortable type without forcing desktop-sized headings. */
@media (max-width: 1024px) {
  .bcl-app {
    font-size: 17px;
  }

  .ccl-ref-side-nav a,
  .ccl-ref-search input,
  .ccl-ref-button,
  .ccl-ref-feature-content p,
  .ccl-ref-process-card p,
  .ccl-ref-pricing-grid p,
  .ccl-ref-faq details > div,
  .ccl-ref-footer-main p,
  .ccl-ref-footer-main a:not(.ccl-ref-button):not(.ccl-ref-contact-line) {
    font-size: 14px !important;
  }
}

/* Mobile: no critical text should collapse to the old 7-12px sizes. */
@media (max-width: 680px) {
  .bcl-app {
    font-size: 16.5px;
    line-height: 1.68;
  }

  .bcl-app p,
  .bcl-app li,
  .bcl-app dd,
  .bcl-app address,
  .ccl-ref-nonhome main p,
  .ccl-ref-nonhome .bcl-entry-content li,
  .ccl-ref-nonhome .entry-content li,
  .ccl-ref-nonhome .bcl-article-content li {
    font-size: 16px !important;
  }

  .ccl-ref-side-nav a,
  .ccl-ref-search input,
  .ccl-ref-phone,
  .ccl-ref-button,
  .ccl-ref-kicker,
  .ccl-ref-hero-trust strong,
  .ccl-ref-hero-trust small,
  .ccl-ref-heading-row > a,
  .ccl-ref-feature-content h3,
  .ccl-ref-feature-content p,
  .ccl-ref-feature-content small,
  .ccl-ref-service-tile span,
  .ccl-ref-process-card h3,
  .ccl-ref-process-card p,
  .ccl-ref-pricing-grid h3,
  .ccl-ref-pricing-grid p,
  .ccl-ref-gallery-grid strong,
  .ccl-ref-gallery-grid small,
  .ccl-ref-timeboxes span,
  .ccl-ref-countdown-cta,
  .ccl-ref-faq summary,
  .ccl-ref-faq summary span,
  .ccl-ref-footer h3,
  .ccl-ref-footer-main a:not(.ccl-ref-button):not(.ccl-ref-contact-line),
  .ccl-ref-footer-bottom {
    font-size: 13px !important;
  }

  .ccl-ref-hero-copy > p:not(.ccl-ref-kicker),
  .ccl-ref-section-heading p,
  .ccl-ref-pricing-intro p,
  .ccl-ref-dual-card p,
  .ccl-ref-faq details > div,
  .ccl-ref-final-inner p,
  .ccl-ref-footer-brand p,
  .ccl-ref-footer-main p,
  .ccl-ref-contact-line {
    font-size: 14px !important;
  }

  .bcl-app input,
  .bcl-app select,
  .bcl-app textarea,
  .bcl-app button {
    font-size: 16px !important;
  }
}

@media (prefers-contrast: more) {
  .bcl-app {
    --bcl-readable-text: #161b21;
    --bcl-readable-muted: #343b43;
    --bcl-readable-link: #7f1111;
  }

  .ccl-ref-nonhome main p,
  .ccl-ref-nonhome .bcl-entry-content li,
  .ccl-ref-nonhome .entry-content li,
  .ccl-ref-nonhome .bcl-article-content li {
    color: #252b32 !important;
  }
}

@media (min-width: 1400px) {
  .ccl-ref-dual-card {
    height: 170px;
  }
}

@media (max-width: 820px) {
  .ccl-ref-dual-card {
    height: 180px;
  }

  .ccl-ref-hero-trust {
    min-height: 82px;
    height: auto;
  }
}

@media (max-width: 580px) {
  .ccl-ref-dual-card {
    height: 190px;
  }

  .ccl-ref-final-inner {
    min-height: 0;
  }
}
