/* Shared public action controls. No navigation or footer layout,
   tabs, card/image controls, cookie UI or admin selectors are changed. */
:root{--azd-action-ink:#101827;--azd-action-paper:#fbfaf7;--azd-action-line:#dfe3e6;--azd-action-focus:#7391a7}
/* Preserve the user's existing 64px hero composition; normalize focus/reduced motion only. */
body #root#root .azd-public-shell :is(.home-hero__actions .home-dark-button,.page-hero--elevated-actions .page-hero__actions>a):focus-visible{outline:3px solid var(--azd-action-focus)!important;outline-offset:4px!important}
/* Existing body CTA, forms and calculator actions form a second, consistent 56px size. */
body #root#root .azd-public-shell :is(.services-detail>header .services-primary,.pricing-estimate__actions>button,.pricing-estimate__actions>a,.pricing-custom-offer>a,.pricing-custom-route>a,.price-quote-form>button,.contact-form>button[type="submit"]){box-sizing:border-box;display:grid!important;grid-template-columns:minmax(0,1fr) 40px;align-items:center;gap:14px;min-height:56px!important;height:auto!important;min-width:0;max-width:100%;padding:7px 8px 7px 18px!important;border:1px solid var(--azd-action-line)!important;border-radius:6px!important;background:linear-gradient(135deg,#fff,#f8f6f2)!important;color:var(--azd-action-ink)!important;-webkit-text-fill-color:currentColor!important;font-family:inherit;font-size:12px!important;font-weight:600!important;line-height:1.35!important;letter-spacing:.045em!important;text-transform:uppercase!important;text-align:left;text-decoration:none;cursor:pointer;box-shadow:0 6px 20px #1018270c;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}
body #root#root .azd-public-shell :is(.services-detail>header .services-primary,.pricing-estimate__actions>button,.pricing-estimate__actions>a,.pricing-custom-offer>a,.pricing-custom-route>a,.price-quote-form>button,.contact-form>button[type="submit"])>svg{box-sizing:content-box;justify-self:end;width:18px!important;height:18px!important;padding:11px!important;border-radius:8px;background:var(--azd-action-ink);color:#fff!important;flex:none;margin:0!important}
body #root#root .azd-public-shell :is(.services-detail>header .services-primary,.pricing-estimate__actions>button,.pricing-estimate__actions>a,.pricing-custom-offer>a,.pricing-custom-route>a,.price-quote-form>button,.contact-form>button[type="submit"]):is(:hover,:focus-visible){background:#101827!important;border-color:#101827!important;color:#fff!important;box-shadow:0 8px 24px #1018271a}
body #root#root .azd-public-shell :is(.services-detail>header .services-primary,.pricing-estimate__actions>button,.pricing-estimate__actions>a,.pricing-custom-offer>a,.pricing-custom-route>a,.price-quote-form>button,.contact-form>button[type="submit"]):focus-visible{outline:3px solid var(--azd-action-focus)!important;outline-offset:4px!important}
body #root#root .azd-public-shell :is(.services-detail>header .services-primary,.pricing-estimate__actions>button,.pricing-estimate__actions>a,.pricing-custom-offer>a,.pricing-custom-route>a,.price-quote-form>button,.contact-form>button[type="submit"]):hover>svg{background:#f8f6f2;color:#101827!important}
body #root#root .azd-public-shell :is(.pricing-estimate__actions>button,.price-quote-form>button,.contact-form>button[type="submit"]):disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
/* Closing CTA already has semantic label+arrow wrappers. Retain its width/layout, apply same surface. */
body #root#root .azd-public-shell .site-closing-cta .home-cta__actions :is(.home-light-button,.home-cta-link){background:linear-gradient(135deg,#fff,#f8f6f2)!important;border-color:#ffffffb8!important;color:#101827!important;-webkit-text-fill-color:#101827!important;border-radius:6px!important;font-size:12px!important;font-weight:600!important;letter-spacing:.045em!important;box-shadow:0 6px 20px #00000014!important}
body #root#root .azd-public-shell .site-closing-cta .home-cta__actions .closing-cta-action__label{color:inherit!important;-webkit-text-fill-color:currentColor!important}
body #root#root .azd-public-shell .site-closing-cta .home-cta__actions .closing-cta-action__arrow{background:#101827!important;border:0!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
body #root#root .azd-public-shell .site-closing-cta .home-cta__actions :is(.home-light-button,.home-cta-link):hover{background:#101827!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#fff!important}
body #root#root .azd-public-shell .site-closing-cta .home-cta__actions :is(.home-light-button,.home-cta-link):hover .closing-cta-action__arrow{background:#f8f6f2!important;color:#101827!important;-webkit-text-fill-color:#101827!important}
body #root#root .azd-public-shell .site-closing-cta .home-cta__actions :is(.home-light-button,.home-cta-link):focus-visible{outline:3px solid #a9c5d8!important;outline-offset:4px!important}
/* Loading controls remain compact secondary actions. */
body #root#root .azd-public-shell :is(.azd-list-pagination__button,.library-load-more){display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;gap:12px;min-width:0;min-height:48px!important;height:auto;padding:12px 20px!important;border:1px solid #cfd7de!important;border-radius:6px!important;background:#fff!important;color:#172a3d!important;font-family:inherit;font-size:13px!important;font-weight:550!important;line-height:1.4!important;letter-spacing:0!important;text-transform:none!important;box-shadow:none;text-decoration:none}
body #root#root .azd-public-shell :is(.azd-list-pagination__button,.library-load-more):hover{background:#172a3d!important;color:#fff!important;border-color:#172a3d!important}
body #root#root .azd-public-shell :is(.azd-list-pagination__button,.library-load-more):focus-visible{outline:3px solid var(--azd-action-focus);outline-offset:4px}
/* Compact filters: keep selection semantics and layout; only touch target size and focus. */
body #root#root .azd-public-shell .blog-filter-group nav button{min-height:40px;font-size:11px;letter-spacing:.06em}
body #root#root .azd-public-shell :is(.blog-filter-group nav button,.library-results button,.blog-view-toggle button):focus-visible{outline:3px solid var(--azd-action-focus);outline-offset:3px}
/* Editorial action links share a calm text-link style, not boxed CTAs. */
body #root#root .azd-public-shell :is(.services-info-grid a,.services-note a,.services-context-back,.story-document-link,.contact-before a,.contact-location-card>a,.home-reviews__all-link){font-family:inherit;text-underline-offset:4px;transition:color .2s,border-color .2s}
body #root#root .azd-public-shell :is(.services-info-grid a,.services-note a,.services-context-back,.story-document-link,.contact-before a,.contact-location-card>a,.home-reviews__all-link):focus-visible{outline:3px solid var(--azd-action-focus);outline-offset:4px;border-radius:2px}
@media(max-width:620px){
 body #root#root .azd-public-shell :is(.services-detail>header .services-primary,.pricing-estimate__actions>button,.pricing-estimate__actions>a,.pricing-custom-offer>a,.pricing-custom-route>a,.price-quote-form>button,.contact-form>button[type="submit"]){min-height:56px!important;font-size:12px!important;gap:10px;padding-left:14px!important}
 body #root#root .azd-public-shell .site-closing-cta .home-cta__actions :is(.home-light-button,.home-cta-link){font-size:11px!important}
}
@media(prefers-reduced-motion:reduce){
 body #root#root .azd-public-shell :is(.home-hero__actions .home-dark-button,.page-hero--elevated-actions .page-hero__actions>a,.services-detail>header .services-primary,.pricing-estimate__actions>button,.pricing-estimate__actions>a,.pricing-custom-offer>a,.pricing-custom-route>a,.price-quote-form>button,.contact-form>button[type="submit"],.site-closing-cta .home-cta__actions a){transition:none!important;transform:none!important}
}

/* Public quote dialog, rendered outside the page root. */
body .price-modal .price-quote-form>button{box-sizing:border-box;display:grid!important;grid-template-columns:minmax(0,1fr) 40px;align-items:center;gap:14px;min-height:56px!important;height:auto!important;min-width:0;max-width:100%;padding:7px 8px 7px 18px!important;border:1px solid var(--azd-action-line)!important;border-radius:6px!important;background:linear-gradient(135deg,#fff,#f8f6f2)!important;color:var(--azd-action-ink)!important;-webkit-text-fill-color:currentColor!important;font-family:inherit;font-size:12px!important;font-weight:600!important;line-height:1.35!important;letter-spacing:.045em!important;text-transform:uppercase!important;text-align:left;text-decoration:none;cursor:pointer;box-shadow:0 6px 20px #1018270c;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}
body .price-modal .price-quote-form>button>svg{box-sizing:content-box;justify-self:end;width:18px!important;height:18px!important;padding:11px!important;border-radius:8px;background:var(--azd-action-ink);color:#fff!important;flex:none;margin:0!important}
body .price-modal .price-quote-form>button:is(:hover,:focus-visible){background:#101827!important;border-color:#101827!important;color:#fff!important;box-shadow:0 8px 24px #1018271a}
body .price-modal .price-quote-form>button:focus-visible{outline:3px solid var(--azd-action-focus)!important;outline-offset:4px!important}
body .price-modal .price-quote-form>button:hover>svg{background:#f8f6f2;color:#101827!important}
body .price-modal .price-quote-form>button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
body .price-modal :is(a,button,input,textarea):focus-visible{outline:3px solid var(--azd-action-focus);outline-offset:3px}
@media(prefers-reduced-motion:reduce){body .price-modal .price-quote-form>button{transition:none!important}}

/* Center the paginator in its containing content column at every desktop width. */
body #root#root .azd-public-shell .azd-list-pagination{margin-inline:auto!important}
body #root#root .azd-public-shell .azd-list-pagination__button{width:min(100%,220px)!important}
body #root#root .azd-public-shell .library-load-more{display:flex!important;min-width:0!important;width:min(100%,220px)!important;margin-inline:auto!important}
body #root#root .azd-public-shell .closing-cta-action__arrow>svg{color:inherit!important}
body #root#root .azd-public-shell .closing-cta-action__label{font-size:inherit!important;font-weight:inherit!important;letter-spacing:inherit!important}
/* Focus is shared by public controls, including compact icons, without changing their layout. */
#root .azd-public-shell :is(a,button,summary,input,select,textarea):focus-visible{outline:3px solid var(--azd-action-focus);outline-offset:3px}
body #root#root .azd-public-shell :is(.services-info-grid a,.services-note a,.services-context-back,.services-nav__help a,.services-pac-fast__conditions>a,.portfolio-editorial p a){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;border-bottom:0}
