/* 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: #36576b !important; background-color: #e7ebee !important; }
.service-sidebar .btn-ghost.btn-block, .sidebar .btn-ghost.btn-block { color: #36576b !important; }
.tcarousel-avatar { background-color: #36576b !important; color: #fff !important; }
.rv-qa-sidebar h2 em, .article-cta-box .btn-ghost { color: #36576b !important; }
 .cs-area-tag { color: #c2ddeb !important; }
.cs-testi-author { color: #d7e9f2 !important; }
.cs-testi-role { color: #e1e6e9 !important; }
.rv-qa-sidebar h2 em, .blog-lead-cta a[href^="tel:"] { color: #36576b !important; }
.dd-blog-cta-btn { color: #142c3b !important; }

.nav-ticker-pill, .ss-why-stat { color:#d2e7f2 !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:#36576b !important;}
 .cs-areas-cta a, .blog-footer-row .btn-primary {color:#142c3b !important;}
.cs-areas-note {color:#626262 !important;}
.cs-btn-primary, .csn3-promise-item span {color:#e1f0f6 !important;}

/* R5 repeated article panel follow-up: exact light/dark contexts from inventory. */
.blog-sources a[href] {color:#36576b !important;text-decoration:underline;text-underline-offset:.15em;}
.blog-takeaways a[href] {color:#f3f7fc !important;text-decoration:underline;text-underline-offset:.15em;}

/* Keep ticker ink readable when its header changes from dark to white. */
.nav-ticker-pill {background-color:#3d4f5c !important;color:#d2e7f2 !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:#345e77 !important;background-color:#fff !important;border-color:#345e77 !important;}
.blog-body .btn-outline-primary:is(:hover,:focus-visible) {color:#fff !important;background-color:#345e77 !important;border-color:#345e77 !important;}
.blog-author-card .blog-author-info > span {color:#626262 !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: #233745 !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;}
}

/* W48: let the legal-link row wrap within its footer column. */
footer.footer .footer-bottom-inner:has(> .footer-legal) > * { min-width:0; max-width:100%; }
footer.footer .footer-bottom-inner > .footer-legal { flex-wrap:wrap; }

@media (max-width:1023px) {
 footer.footer .footer-bottom:has(> .footer-bottom-inner > .footer-legal) { padding-bottom:calc(1.5rem + 120px); }
}

@media (max-width:1023px) {
 footer.footer:has(.footer-bottom-inner > .footer-legal) a[href] { scroll-margin-block:140px; }
}

/* Mobile service enquiries: constrain flex content and wrap complete CTA text. */
@media(max-width:767px){.service-hero .service-hero-content .btn{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}}


/* 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}

@media(max-width:767px){.mid-cta-banner .btn,.service-hero-actions .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:#3d4f5c!important}
.ai-main a:not(.ai-cta){text-decoration:underline;text-underline-offset:.18em}
