/* Match the header's Get A Quote button. Keep this token independent of card/field radii. */
:root {
    --nany-button-radius: 5px;
    --theme-button-border-radius: var(--nany-button-radius);
}

/* Radius only: existing sizes, colours, focus rings and interactions stay in their own modules.
 * The narrow !important override intentionally wins over page-specific CTA and form styling,
 * including dynamically opened inquiry dialogs and Fluent Forms' late-loaded styles.
 */
body :is(
    button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    a.button,
    a.ct-button,
    a.wp-element-button,
    a.wp-block-button__link,
    .nany-btn,
    .nany-button,
    .nany-company-action a,
    .npc-button,
    .npd-button,
    .npo-button,
    .sy-btn,
    .nany-qual-more,
    .nany-qual-open,
    .npo-category-nav a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers
):not(:where(
    .nany-hero-control,
    .nany-hero-dot,
    .nany-qual-arrow,
    .nany-qual-dot,
    .nany-about-arrow,
    .nany-about-dot,
    .npd-thumbnails button,
    .ct-toggle-dropdown-desktop-ghost
)) {
    border-radius: var(--nany-button-radius) !important;
}

/* NANY BUTTON SYSTEM — three variants; no per-page button palette or typography. */
:root {
    --nany-button-blue: var(--nany-blue, #122a88);
    --nany-button-blue-hover: #0c1f66;
    --nany-button-font-size: 14px;
    --nany-button-font-weight: 600;
    --nany-button-line-height: 20px;
}

/* Equal-specificity variable maps make variant assignments predictable. */
:root body :where(
    a.ct-button,
    a.button,
    a.wp-element-button,
    a.wp-block-button__link,
    a.wp-block-file__button,
    .nany-btn,
    .nany-button,
    .npc-button,
    .npd-button,
    .npo-button,
    .sy-btn,
    .fluentform .ff-btn-submit,
    .nany-foot-email-form button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    button[type="submit"]:not(:where(.ct-search-form button,.wp-block-search button,.search-form button,.searchform button,.search-form_submit)),
    .nany-qual-open,
    .nsd-all,
    .nany-btn-outline,
    .nany-btn-white,
    .npc-button-outline,
    .npd-button-outline,
    .npo-button-white,
    .nany-company-action a,
    .nany-qual-more,
    .nad-back,
    .nany-news-archive,
    .nany-partner-actions .nany-btn:first-child,
    .npo-category-nav a,
    .npc-category-pills a,
    .npd-category-tags a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers,
    .nany-text-link,
    .nany-card-link,
    .nany-industry-more,
    .nad-more,
    .nsd-back,
    .nsd-more-all,
    .nnp-read-more,
    .nsd-card-action,
    .npo-help-download,
    .npo-banner-contact
) {
    --nany-action-variant: primary;
    --nany-action-bg: var(--nany-button-blue);
    --nany-action-color: #fff;
    --nany-action-border: var(--nany-button-blue);
    --nany-action-hover-bg: var(--nany-button-blue-hover);
    --nany-action-hover-color: #fff;
    --nany-action-hover-border: var(--nany-button-blue-hover);
    --nany-action-border-width: 1px;
    --nany-action-min-height: 46px;
    --nany-action-min-width: 0px;
    --nany-action-padding: 12px 22px;
    --nany-action-hover-decoration: none;
}

/* Secondary: a single white/blue outline treatment, including on dark sections. */
:root body :where(
    .nany-btn-outline,
    .nany-btn-white,
    .npc-button-outline,
    .npd-button-outline,
    .npo-button-white,
    .nany-company-action a,
    .nany-qual-more,
    .nad-back,
    .nany-news-archive,
    .nany-partner-actions .nany-btn:first-child,
    .npo-category-nav a,
    .npc-category-pills a,
    .npd-category-tags a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers
) {
    --nany-action-variant: secondary;
    --nany-action-bg: #fff;
    --nany-action-color: var(--nany-button-blue);
    --nany-action-hover-bg: var(--nany-button-blue);
    --nany-action-hover-color: #fff;
    --nany-action-hover-border: var(--nany-button-blue);
}

/* Text actions retain their label and link semantics, without a fourth badge/pill style. */
:root body :where(
    .nany-text-link,
    .nany-card-link,
    .nany-industry-more,
    .nad-more,
    .nsd-back,
    .nsd-more-all,
    .nnp-read-more,
    .nsd-card-action,
    .npo-help-download,
    .npo-banner-contact,
    .page-numbers.dots
) {
    --nany-action-variant: text;
    --nany-action-bg: transparent;
    --nany-action-color: var(--nany-button-blue);
    --nany-action-border: transparent;
    --nany-action-hover-bg: transparent;
    --nany-action-hover-color: var(--nany-button-blue-hover);
    --nany-action-hover-border: transparent;
    --nany-action-border-width: 0px;
    --nany-action-min-height: 44px;
    --nany-action-padding: 0px;
    --nany-action-hover-decoration: underline;
}

/* Same text variant, reversed only for contrast against the existing blue banner. */
:root body :where(.npo-help-download, .npo-banner-contact) {
    --nany-action-color: #fff;
    --nany-action-hover-color: #fff;
}

/* Selected tabs/page numbers use the primary variant, not a separate green button. */
:root body :where(
    .page-numbers.current,
    .npo-category-nav a[aria-current="page"],
    .npo-category-nav a.is-active
) {
    --nany-action-variant: primary;
    --nany-action-bg: var(--nany-button-blue);
    --nany-action-color: #fff;
    --nany-action-border: var(--nany-button-blue);
    --nany-action-hover-bg: var(--nany-button-blue-hover);
    --nany-action-hover-color: #fff;
    --nany-action-hover-border: var(--nany-button-blue-hover);
}

:root body :where(a.page-numbers, span.page-numbers) {
    --nany-action-min-height: 44px;
    --nany-action-min-width: 44px;
    --nany-action-padding: 10px 12px;
}

/* Scoped !important declarations intentionally replace earlier page/Fluent Forms overrides.
 * Do not target generic buttons: carousel, gallery, search and tree controls keep their UI. */
:root body :is(
    a.ct-button,
    a.button,
    a.wp-element-button,
    a.wp-block-button__link,
    a.wp-block-file__button,
    .nany-btn,
    .nany-button,
    .npc-button,
    .npd-button,
    .npo-button,
    .sy-btn,
    .fluentform .ff-btn-submit,
    .nany-foot-email-form button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    button[type="submit"]:not(:where(.ct-search-form button,.wp-block-search button,.search-form button,.searchform button,.search-form_submit)),
    .nany-qual-open,
    .nsd-all,
    .nany-btn-outline,
    .nany-btn-white,
    .npc-button-outline,
    .npd-button-outline,
    .npo-button-white,
    .nany-company-action a,
    .nany-qual-more,
    .nad-back,
    .nany-news-archive,
    .nany-partner-actions .nany-btn:first-child,
    .npo-category-nav a,
    .npc-category-pills a,
    .npd-category-tags a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers,
    .nany-text-link,
    .nany-card-link,
    .nany-industry-more,
    .nad-more,
    .nsd-back,
    .nsd-more-all,
    .nnp-read-more,
    .nsd-card-action,
    .npo-help-download,
    .npo-banner-contact
) {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    min-width: var(--nany-action-min-width) !important;
    min-height: var(--nany-action-min-height) !important;
    max-width: 100%;
    padding: var(--nany-action-padding) !important;
    border: var(--nany-action-border-width) solid var(--nany-action-border) !important;
    border-radius: var(--nany-button-radius, 5px) !important;
    background: var(--nany-action-bg) !important;
    color: var(--nany-action-color) !important;
    font-family: var(--nany-font, Poppins, Arial, sans-serif) !important;
    font-size: var(--nany-button-font-size) !important;
    font-weight: var(--nany-button-font-weight) !important;
    font-style: normal !important;
    line-height: var(--nany-button-line-height) !important;
    letter-spacing: normal !important;
    text-align: center !important;
    text-transform: none !important;
    text-decoration: none !important;
    text-shadow: none !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    box-shadow: none !important;
    transform: none !important;
    vertical-align: middle;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease !important;
}

:root body :is(
    a.ct-button,
    a.button,
    a.wp-element-button,
    a.wp-block-button__link,
    a.wp-block-file__button,
    .nany-btn,
    .nany-button,
    .npc-button,
    .npd-button,
    .npo-button,
    .sy-btn,
    .fluentform .ff-btn-submit,
    .nany-foot-email-form button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    button[type="submit"]:not(:where(.ct-search-form button,.wp-block-search button,.search-form button,.searchform button,.search-form_submit)),
    .nany-qual-open,
    .nsd-all,
    .nany-btn-outline,
    .nany-btn-white,
    .npc-button-outline,
    .npd-button-outline,
    .npo-button-white,
    .nany-company-action a,
    .nany-qual-more,
    .nad-back,
    .nany-news-archive,
    .nany-partner-actions .nany-btn:first-child,
    .npo-category-nav a,
    .npc-category-pills a,
    .npd-category-tags a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers,
    .nany-text-link,
    .nany-card-link,
    .nany-industry-more,
    .nad-more,
    .nsd-back,
    .nsd-more-all,
    .nnp-read-more,
    .nsd-card-action,
    .npo-help-download,
    .npo-banner-contact
):is(:hover, :active):not(:disabled):not([disabled]):not([aria-disabled="true"]) {
    background: var(--nany-action-hover-bg) !important;
    border-color: var(--nany-action-hover-border) !important;
    color: var(--nany-action-hover-color) !important;
    text-decoration: var(--nany-action-hover-decoration) !important;
    text-underline-offset: 4px;
}

:root body :is(
    a.ct-button,
    a.button,
    a.wp-element-button,
    a.wp-block-button__link,
    a.wp-block-file__button,
    .nany-btn,
    .nany-button,
    .npc-button,
    .npd-button,
    .npo-button,
    .sy-btn,
    .fluentform .ff-btn-submit,
    .nany-foot-email-form button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    button[type="submit"]:not(:where(.ct-search-form button,.wp-block-search button,.search-form button,.searchform button,.search-form_submit)),
    .nany-qual-open,
    .nsd-all,
    .nany-btn-outline,
    .nany-btn-white,
    .npc-button-outline,
    .npd-button-outline,
    .npo-button-white,
    .nany-company-action a,
    .nany-qual-more,
    .nad-back,
    .nany-news-archive,
    .nany-partner-actions .nany-btn:first-child,
    .npo-category-nav a,
    .npc-category-pills a,
    .npd-category-tags a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers,
    .nany-text-link,
    .nany-card-link,
    .nany-industry-more,
    .nad-more,
    .nsd-back,
    .nsd-more-all,
    .nnp-read-more,
    .nsd-card-action,
    .npo-help-download,
    .npo-banner-contact
):focus-visible {
    outline: 3px solid var(--nany-button-blue) !important;
    outline-offset: 4px !important;
    box-shadow: 0 0 0 2px #fff !important;
}

:root body :is(
    a.ct-button,
    a.button,
    a.wp-element-button,
    a.wp-block-button__link,
    a.wp-block-file__button,
    .nany-btn,
    .nany-button,
    .npc-button,
    .npd-button,
    .npo-button,
    .sy-btn,
    .fluentform .ff-btn-submit,
    .nany-foot-email-form button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    button[type="submit"]:not(:where(.ct-search-form button,.wp-block-search button,.search-form button,.searchform button,.search-form_submit)),
    .nany-qual-open,
    .nsd-all,
    .nany-btn-outline,
    .nany-btn-white,
    .npc-button-outline,
    .npd-button-outline,
    .npo-button-white,
    .nany-company-action a,
    .nany-qual-more,
    .nad-back,
    .nany-news-archive,
    .nany-partner-actions .nany-btn:first-child,
    .npo-category-nav a,
    .npc-category-pills a,
    .npd-category-tags a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers,
    .nany-text-link,
    .nany-card-link,
    .nany-industry-more,
    .nad-more,
    .nsd-back,
    .nsd-more-all,
    .nnp-read-more,
    .nsd-card-action,
    .npo-help-download,
    .npo-banner-contact
):is(:disabled, [disabled], [aria-disabled="true"]) {
    opacity: .55 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* Labels inherit the shared typography; decorative icons never become text labels. */
:root body :is(
    a.ct-button,
    a.button,
    a.wp-element-button,
    a.wp-block-button__link,
    a.wp-block-file__button,
    .nany-btn,
    .nany-button,
    .npc-button,
    .npd-button,
    .npo-button,
    .sy-btn,
    .fluentform .ff-btn-submit,
    .nany-foot-email-form button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    button[type="submit"]:not(:where(.ct-search-form button,.wp-block-search button,.search-form button,.searchform button,.search-form_submit)),
    .nany-qual-open,
    .nsd-all,
    .nany-btn-outline,
    .nany-btn-white,
    .npc-button-outline,
    .npd-button-outline,
    .npo-button-white,
    .nany-company-action a,
    .nany-qual-more,
    .nad-back,
    .nany-news-archive,
    .nany-partner-actions .nany-btn:first-child,
    .npo-category-nav a,
    .npc-category-pills a,
    .npd-category-tags a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers,
    .nany-text-link,
    .nany-card-link,
    .nany-industry-more,
    .nad-more,
    .nsd-back,
    .nsd-more-all,
    .nnp-read-more,
    .nsd-card-action,
    .npo-help-download,
    .npo-banner-contact
) > span:not([aria-hidden="true"]):not([class*="icon"]):not([class*="loading"]) {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
    text-transform: inherit !important;
}

:root body :is(
    a.ct-button,
    a.button,
    a.wp-element-button,
    a.wp-block-button__link,
    a.wp-block-file__button,
    .nany-btn,
    .nany-button,
    .npc-button,
    .npd-button,
    .npo-button,
    .sy-btn,
    .fluentform .ff-btn-submit,
    .nany-foot-email-form button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    button[type="submit"]:not(:where(.ct-search-form button,.wp-block-search button,.search-form button,.searchform button,.search-form_submit)),
    .nany-qual-open,
    .nsd-all,
    .nany-btn-outline,
    .nany-btn-white,
    .npc-button-outline,
    .npd-button-outline,
    .npo-button-white,
    .nany-company-action a,
    .nany-qual-more,
    .nad-back,
    .nany-news-archive,
    .nany-partner-actions .nany-btn:first-child,
    .npo-category-nav a,
    .npc-category-pills a,
    .npd-category-tags a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers,
    .nany-text-link,
    .nany-card-link,
    .nany-industry-more,
    .nad-more,
    .nsd-back,
    .nsd-more-all,
    .nnp-read-more,
    .nsd-card-action,
    .npo-help-download,
    .npo-banner-contact
) > svg {
    flex: 0 0 18px;
    width: 18px !important;
    height: 18px !important;
    color: inherit !important;
}

:root body .npc-category-pills a > span[aria-hidden="true"],
:root body .npd-category-tags a::before { background: currentColor; }

/* Decorative arrows belong to the text variant, not green circular mini-buttons. */
:root body :is(.nsd-card-action, .nany-industry-more) > span[aria-hidden="true"] {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    background: transparent;
    color: inherit;
    border: 0;
    border-radius: 0;
    font-size: 18px;
    line-height: 1;
}

/* The document label is absolutely positioned; retain its structural centering. */
:root body .nany-home-qualifications .nany-qual-card .nany-qual-open {
    transform: translateX(-50%) !important;
    width: max-content !important;
    max-width: calc(100% - 24px) !important;
    white-space: nowrap !important;
}

/* Allow a single readable 14px button standard on small screens, not a tiny footer variant. */
@media (max-width: 600px) {
    .nany-foot-email-form { flex-wrap: wrap; }
    .nany-foot-email-form input { flex-basis: 100%; width: 100%; }
    .nany-foot-email-form button { flex-basis: 100% !important; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    :root body :is(
    a.ct-button,
    a.button,
    a.wp-element-button,
    a.wp-block-button__link,
    a.wp-block-file__button,
    .nany-btn,
    .nany-button,
    .npc-button,
    .npd-button,
    .npo-button,
    .sy-btn,
    .fluentform .ff-btn-submit,
    .nany-foot-email-form button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    button[type="submit"]:not(:where(.ct-search-form button,.wp-block-search button,.search-form button,.searchform button,.search-form_submit)),
    .nany-qual-open,
    .nsd-all,
    .nany-btn-outline,
    .nany-btn-white,
    .npc-button-outline,
    .npd-button-outline,
    .npo-button-white,
    .nany-company-action a,
    .nany-qual-more,
    .nad-back,
    .nany-news-archive,
    .nany-partner-actions .nany-btn:first-child,
    .npo-category-nav a,
    .npc-category-pills a,
    .npd-category-tags a,
    .nany-socials a,
    a.page-numbers,
    span.page-numbers,
    .nany-text-link,
    .nany-card-link,
    .nany-industry-more,
    .nad-more,
    .nsd-back,
    .nsd-more-all,
    .nnp-read-more,
    .nsd-card-action,
    .npo-help-download,
    .npo-banner-contact
) { transition: none !important; }
}

/* WordPress hides this redundant toolbar submit control by default. The shared
 * input[type="submit"] button rule must not reveal it for logged-in editors.
 * Keep the native toolbar search input/Enter action and the site header search.
 */
#wpadminbar #adminbarsearch .adminbar-button {
    display: none !important;
}
