/* 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: #725519 !important; background-color: #f0ebe1 !important; }
.tcarousel-avatar { background-color: #725519 !important; color: #fff !important; }
.rv-qa-sidebar h2 em, .article-cta-box .btn-ghost { color: #725519 !important; }
 .ce-area-tag { color: #e7c77d !important; }
.siding-type__num { color: #758075 !important; }
.nav-ticker-pill, .nav-announcement strong { color: #ead29c !important; }

.sticky-cta-text { color:#fff !important; } .sticky-cta-quote { color:#102510 !important; } :is(.siding-type__num,.roofing-type__num,.windows-type__num,.doors-type__num,.eavestrough-type__num,.soffit-type__num,.fascia-type__num,.capping-type__num,.cement-type__num,.decks-type__num,.fences-type__num,.interlock-type__num) {color:#758075 !important;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:#725519 !important;}
 .sticky-mobile-cta .sticky-cta-text {background-color:#8b6b20 !important;color:#fff !important;}
.sticky-cta-call {background-color:#3f6041 !important;color:#fff !important;}
.footer-bottom-links a {color:#c8dac9 !important;opacity:1 !important;}
.ce-areas-cta a {color:#203821 !important;}
.ce-areas-note {color:#606960 !important;}
.ce-testi-author, .ce-btn-primary, .ce2-commit-text strong {color:#e7c77d !important;}
.ce-testi-role {color:#dce6dd !important;opacity:1 !important;}
.blog-footer-row .btn-primary {background:#3f6840 !important;color:#fff !important;}

/* R5 repeated article panel follow-up: exact light/dark contexts from inventory. */
.blog-sources a[href] {color:#725519 !important;text-decoration:underline;text-underline-offset:.15em;}
.blog-body .local-context a[href] {color:#725519 !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:#2c3e2d !important;color:#ead29c !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:#345936 !important;background-color:#fff !important;border-color:#345936 !important;}
.blog-body .btn-outline-primary:is(:hover,:focus-visible) {color:#fff !important;background-color:#345936 !important;border-color:#345936 !important;}
.blog-author-card .blog-author-info > span {color:#626262 !important;}
.blog-body .blog-takeaways a[href] {color:#fff !important;text-decoration:underline;text-underline-offset:.15em;}
.intake-form > p {color:#626262 !important;}
.blog-body .dd-blog-cta-btn {color:#345936 !important;background-color:#fff !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; }
}

.booking-calendar-widget .dd-svc button:not(.dd-sel) .dd-pr { color: #dce7c8 !important; opacity: 1; }

/* W29: readable mobile-menu phone and account actions. */
.mm-phone, .mm-phone:hover, .mm-phone:focus-visible { background: #294f32 !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: responsive inline footer grid; preserve the desktop four-column layout. */
footer.footer > .container > div[style*="grid-template-columns:2fr 1fr 1fr 1.5fr"] > div { min-width:0; }
footer.footer > .container:has(> div[style*="grid-template-columns:2fr 1fr 1fr 1.5fr"]) > div[style*="border-top"] p,
footer.footer > .container:has(> div[style*="grid-template-columns:2fr 1fr 1fr 1.5fr"]) > div[style*="border-top"] a { color:#cbd7cb !important; }
@media (max-width:1023px) {
 footer.footer > .container > div[style*="grid-template-columns:2fr 1fr 1fr 1.5fr"] { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:2rem !important; }
}
@media (max-width:600px) {
 footer.footer > .container > div[style*="grid-template-columns:2fr 1fr 1fr 1.5fr"] { grid-template-columns:minmax(0,1fr) !important; }
}

@media (max-width:1023px) {
 footer.footer:has(> .container > div[style*="grid-template-columns:2fr 1fr 1fr 1.5fr"]) { padding-bottom:calc(2rem + 120px) !important; }
}

@media (max-width:1023px) {
 footer.footer:has(> .container > div[style*="grid-template-columns:2fr 1fr 1fr 1.5fr"]) a[href] { scroll-margin-block:140px; }
}


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

main p>a:not(.btn),section>.container>p a:not(.btn),section>.container>ul>li>a:not(.btn),section td a:not(.btn){text-decoration:underline;text-underline-offset:.18em}

/* 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:#71501a!important}
.ai-main a:not(.ai-cta){text-decoration:underline;text-underline-offset:.18em}
.ai-header .ai-cta:hover{background:#2c3e2d;color:#fff!important}
