/* R5: component-scoped contrast and keyboard affordances. */
.fbs-fb, .btn-facebook, .social-link-large[aria-label="Facebook"] { background-color: #1669d6 !important; color: #fff !important; }
.btn-facebook span, .social-link-large[aria-label="Facebook"] span { color: #fff !important; }
.area-cards-sub { color: #626262 !important; opacity: 1 !important; }
.blog-related-date, .ct-badge-sub { color: #626262 !important; }
.dd-week-av, .dd-week-dow { opacity: 1 !important; }
.dd-svc-sub { opacity: .85 !important; }
.dd-svc button.dd-sel .dd-svc-sub { opacity: .85 !important; }
[data-dd-scroll-region]:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.footer-logo[data-dd-restored] { color: #fff; font-weight: 700; font-size: 1.15rem; }
.section-tag, .blog-related-tag { color: #435e45 !important; background-color: #ebefeb !important; }
.service-sidebar .btn-ghost.btn-block, .sidebar .btn-ghost.btn-block { color: #435e45 !important; }
.tcarousel-avatar { background-color: #435e45 !important; color: #fff !important; }
.rv-qa-sidebar h2 em, .article-cta-box .btn-ghost { color: #435e45 !important; }
 .ci-int-stat-num, .rv-qa-sidebar h2 em { color: #866024 !important; }
.footer-col h4 { color: #eee6dc !important; }
.ci-testi-role { color: #626262 !important; }
.nav-actions .btn-primary { background-color: #496b4b !important; color: #fff !important; }
.error-card-link, .error-cards-label { color: #435e45 !important; }

.sticky-cta-call { color:#fff !important; } .dd-blog-cta-btn { color:#715020 !important; }

/* R5 follow-up: named contact families, article source links, and paired sticky CTA variants. */
.blog-body > p a:not(.btn), .blog-body > ul a:not(.btn), .blog-body > ol a:not(.btn) {color:#715020 !important;}
 .sticky-cta-call {background-color:#3d3632 !important;color:#fff !important;}
.ci-areas-cta a {color:#715020 !important;}
.ci-areas-note, .cin3-promise-item span {color:#626262 !important;}
.ci-btn-primary, .blog-footer-row .btn-primary {color:#2a2420 !important;}

/* R5 repeated article panel follow-up: exact light/dark contexts from inventory. */
.blog-sources a[href] {color:#715020 !important;text-decoration:underline;text-underline-offset:.15em;}
 .blog-body > div[style*="background:#B5722A"] > a[href][style*="background:#fff"] {color:#715020 !important;}
.blog-body > div[style*="background:#B5722A"] > h3, .blog-body > div[style*="background:#B5722A"] > p {color:#1a1109 !important;opacity:1 !important;}


/* R5 keyboard focus: two-tone ring on existing form controls, without layout changes. */
form.intake-form :is(input:not([type="hidden"]),select,textarea), .newsletter-form input, #footerEmailForm input, .dd-input {scroll-margin-block:160px 110px;}
form.intake-form :is(input:not([type="hidden"]),select,textarea):focus-visible, .newsletter-form input:focus-visible, #footerEmailForm input:focus-visible, .dd-input:focus-visible {outline:2px solid #fff !important;outline-offset:1px !important;box-shadow:0 0 0 4px #153750 !important;}
@media (forced-colors:active) {
form.intake-form :is(input:not([type="hidden"]),select,textarea):focus-visible, .newsletter-form input:focus-visible, #footerEmailForm input:focus-visible, .dd-input:focus-visible {outline:2px solid CanvasText !important;outline-offset:3px !important;box-shadow:none !important;}
}

/* Growth W2: reproduced article and service contrast; paired button colours preserve readability on hover/focus. */
.blog-body .btn-outline-primary {color:#795222 !important;background-color:#fff !important;border-color:#795222 !important;}
.blog-body .btn-outline-primary:is(:hover,:focus-visible) {color:#fff !important;background-color:#795222 !important;border-color:#795222 !important;}
.blog-author-card .blog-author-info > span {color:#626262 !important;}
.footer-links li > strong {color:#c9c0b7 !important;opacity:1 !important;}

/* W12: allow article and request-widget columns to reflow on narrow screens. */
.blog-layout > .blog-body, .blog-layout > .blog-toc { min-width: 0; }
@media (max-width: 600px) {
  .blog-layout { grid-template-columns: minmax(0, 1fr) !important; }
  .booking-calendar-widget .dd-c { grid-template-columns: minmax(0, 1fr) !important; }
  .booking-calendar-widget .dd-l, .booking-calendar-widget .dd-r { min-width: 0; }
  .booking-calendar-widget .dd-l-title { overflow-wrap: anywhere; }
  .booking-calendar-widget .dd-pre, .booking-calendar-widget .dd-head { flex-wrap: wrap; gap: 0.5rem; }
  .footer-social-section .social-links-large { flex-wrap: wrap; }
}

@media (max-width: 480px) {
  .booking-calendar-widget .dd-svc { grid-template-columns: minmax(0, 1fr); }
  .booking-calendar-widget .dd-svc button { min-width: 0; }
  .booking-calendar-widget .dd-week-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .booking-calendar-widget .dd-week-d { min-width: 0; min-height: 64px; }
  .booking-calendar-widget .dd-week-av { overflow-wrap: anywhere; text-align: center; }
}

/* W12 review: show the full service description at narrow widths. */
@media (max-width: 480px) {
  .booking-calendar-widget .dd-svc-sub { white-space: normal; overflow: visible; text-overflow: clip; }
}

/* W20: stack service benefit cards when two columns exceed the viewport. */
@media (max-width: 600px) {
  .service-article .benefits-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .service-article .benefits-grid > * { min-width: 0; }
}

/* W29: readable mobile-menu phone and account actions. */
.mm-phone, .mm-phone:hover, .mm-phone:focus-visible { background: #503519 !important; color: #ffffff !important; opacity: 1 !important; }

/* W30: keep desktop service mega menus inside the viewport and reachable by keyboard. */
@media (min-width:992px) {
  header#header .nav-links > li:has(> .mega-menu) { position:static !important; }
  header#header .nav-links > li > .mega-menu {
    position:absolute !important;
    top:100% !important;
    left:max(16px, calc((100vw - 1280px) / 2)) !important;
    right:auto !important;
    transform:none !important;
    max-width:calc(100vw - 32px) !important;
    max-height:calc(100dvh - 180px);
    overflow-y:auto;
    box-sizing:border-box;
    display:block !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  header#header .nav-links > li:hover > .mega-menu,
  header#header .nav-links > li:focus-within > .mega-menu,
  header#header .nav-links > li.is-open > .mega-menu,
  header#header .nav-links > li.open > .mega-menu {
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
}

@media (min-width:992px) and (max-width:1350px) {
 header#header .nav-links {gap:8px!important;padding-left:8px!important;padding-right:8px!important;}
 header#header .nav-links > li > a,
 header#header .nav-links > li > .network-toggle {font-size:14px!important;padding-left:6px!important;padding-right:6px!important;}
 header#header .nav-actions {gap:8px!important;}
 header#header .nav-actions > a {font-size:14px!important;padding-left:12px!important;padding-right:12px!important;}
}


/* Plain-language policy and form links remain distinguishable without color. */
main>.container>p a:not(.btn),main>.container>ul>li>a:not(.btn),.legal-content p a:not(.btn),.legal-content li a:not(.btn),.form-privacy a,.intake-note a,main article td a:not(.btn){text-decoration:underline;text-underline-offset:.18em}
[data-dd-table-scroll]:focus-visible{outline:3px solid #14628a;outline-offset:3px}

/* Full-card anchors keep their complete target area. */
main .related-service-link,main .service-card-link{display:block;min-height:44px}

@media(max-width:767px){.mid-cta-banner .btn{white-space:normal;max-width:100%;min-width:0;box-sizing:border-box}}

@media(max-width:767px){.blog-footer-row .btn{white-space:normal;min-width:0;max-width:100%;box-sizing:border-box;overflow-wrap:break-word}}

/* Customer guide links and labels stay readable on its pale panels. */
.ai-main a:not(.ai-cta),.ai-main a:not(.ai-cta):visited,.ai-main a:not(.ai-cta):hover,.ai-main .ai-tag,.ai-header nav a:not(.ai-cta):hover{color:#355a39!important}
.ai-main a:not(.ai-cta){text-decoration:underline;text-underline-offset:.18em}
.ai-header .ai-cta,.ai-header .ai-cta:hover{color:#2a2420!important}
