/* 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: #715020 !important; background-color: #f6efe8 !important; }
.tcarousel-avatar { background-color: #715020 !important; color: #fff !important; }
.rv-qa-sidebar h2 em, .article-cta-box .btn-ghost { color: #715020 !important; }
 .sticky-cta-quote { color: #302343 !important; }
.sidebar-toc h3, .trusted-label, .section-subtitle, .booking-section-desc, .intake-note { color: #6c6262 !important; }
.footer-bottom p, .footer-tagline-bottom { color: #c7c1cf !important; }
.footer-bottom a { text-decoration: underline; text-underline-offset: .15em; }
.error-card-link { color: #715020 !important; }

.feature-item p, .area-card p, .social-modern-cta p, .service-card p, .process-step p, .service-page-main > p, .sidebar-cta-box p, .newsletter-subtitle, .newsletter-privacy {color:#6c6262 !important;} .breadcrumb a, .breadcrumb span, .service-card .card-link, .section-eyebrow, .dd-blog-cta-btn, .error-cards-label {color:#715020 !important;} .cta-actions .btn-primary, .sidebar-cta-box .btn-primary, .newsletter-input-group .btn-primary, .blog-footer-row .btn-primary, .sidebar-cta .btn-primary, .newsletter-btn, .intake-submit {color:#222052 !important;} .sticky-cta-call {color:#222052 !important;} .footer-tagline-bottom {opacity:1 !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;}
 .newsletter-subtitle, .newsletter-privacy {color:#d6cfdc !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 > a[href][style*="background:#D2B68A"], .service-page-main a[href][style*="background:#D2B68A"] {color:#222052 !important;}
.blog-body > div[style*="background:#f3f0e8"] > p {color:#6c6262 !important;}
.service-page-main > div[style*="background:#222052"] > div > p {color:#ded6e2 !important;opacity:1 !important;}
.service-page-main > div[style*="background:#222052"] > div > strong {color:#f3edf7 !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:#715020 !important;background-color:#fff !important;border-color:#715020 !important;}
.blog-body .btn-outline-primary:is(:hover,:focus-visible) {color:#fff !important;background-color:#715020 !important;border-color:#715020 !important;}
.blog-author-card .blog-author-info > span {color:#626262 !important;}
.btn-nav-cta {color:#222052 !important;background-color:#d2b68a !important;}
.service-page-main .benefit-item > p, .service-page-main .included-item > p, .service-page-main .faq-item > p {color:#6c6262 !important;}
.service-page-main > div[style*="background:#f8f6f1"] > p {color:#6c6262 !important;}
.service-page-main > div[style*="background:#f8f6f1"] a[href] {color:#715020 !important;text-decoration:underline;text-underline-offset:.15em;}

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

/* W29: readable mobile-menu phone and account actions. */
.mm-phone, .mm-phone:hover, .mm-phone:focus-visible { background: #222052 !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;}
}

/* W40: keep homepage social copy legible across the blue gradient. One current HTML consumer. */
.social-cta { background:linear-gradient(135deg,#1167d7 0%,#0d5bc6 100%); }
.social-cta > p { color:#ffffff!important; opacity:1; }

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


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

/* Keep city content in its grid track and article CTAs legible on navy. */
@media(max-width:767px){.primary-cities-grid{grid-template-columns:minmax(0,1fr)}.primary-cities-grid>.city-card{min-width:0}.primary-cities-grid .city-card-header>div{min-width:0}.primary-cities-grid .city-stat-badge{white-space:normal}.primary-cities-grid .btn{white-space:normal;max-width:100%;box-sizing:border-box}}
.blog-body>div[style*="background:#222052"]>p,.blog-body .post-cta>p{color:#fff!important;opacity:1}
.blog-body .post-cta>a.btn{color:#222052!important;background:#D2B68A}

.primary-cities-grid .city-card>p,.primary-cities-grid .city-communities-lbl{color:#56505d}.primary-cities-grid .city-communities-num{color:#76552d}

@media(max-width:767px){.service-card .btn,.mid-cta-banner .btn,.page-hero-ctas .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:#765025!important}
.ai-main a:not(.ai-cta){text-decoration:underline;text-underline-offset:.18em}
.ai-header .ai-cta{background:#765025;color:#fff!important}.ai-header .ai-cta:hover{background:var(--ai-text);color:#fff!important}
@media(max-width:600px){.ai-header nav{flex-wrap:wrap;justify-content:center;max-width:100%}.ai-header .ai-cta{white-space:normal;max-width:100%;text-align:center}}

@media(max-width:600px){.ai-header-inner{gap:12px}.ai-header .logo{min-width:0}}

@media(max-width:380px){.ai-header-inner{flex-direction:column;align-items:flex-start}.ai-header nav{justify-content:flex-start}}
