:root {
  --ac-button-radius: 8px;
  --ac-button-size: 44px;
  --ac-button-focus-width: 2px;
  --ac-button-focus-offset: 3px;
  --ac-button-ink: #15161a;
  --ac-button-paper: #f2f2ed;
  --ac-button-disabled-bg: #e7e7e0;
  --ac-button-disabled-ink: #454648;
  --ac-button-disabled-rule: #73746c;
}

.ac-arrow-icon {
  flex: none;
  vertical-align: -.12em;
}

/* Outlined actions on light content surfaces. */
.ac-related-projects .arp-heading > a,
.download-viewer .actions :is(a, button) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--ac-button-size);
  padding: 0 14px;
  border: 1px solid var(--ac-button-ink);
  border-radius: var(--ac-button-radius);
  background: var(--ac-outlined-fill, transparent);
  color: var(--ac-outlined-label, var(--ac-button-ink));
  font: inherit;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
}

.ac-related-projects .arp-heading { align-items: center; }
.ac-related-projects .arp-heading h2 { min-width: 0; }
/* Case-study link styles inherit the page color. This action has its own palette. */
.ac-related-projects .arp-heading > a {
  color: var(--ac-outlined-label, var(--ac-button-ink)) !important;
}
.download-viewer .actions button { cursor: pointer; }

.ac-related-projects .arp-heading > a:focus-visible,
.download-viewer .actions :is(a, button):focus-visible {
  outline: var(--ac-button-focus-width) solid var(--ac-button-ink);
  outline-offset: var(--ac-button-focus-offset);
}

@media (hover: hover) {
  .ac-related-projects .arp-heading > a:hover,
  .download-viewer .actions :is(a, button:enabled):hover {
    --ac-outlined-fill: var(--ac-button-ink);
    --ac-outlined-label: var(--ac-button-paper);
  }
}

.ac-related-projects .arp-heading > a:active,
.download-viewer .actions :is(a, button:enabled):active,
.button-state-review [data-review-state="pressed"] .arp-heading > a {
  --ac-outlined-fill: var(--ac-button-ink);
  --ac-outlined-label: var(--ac-button-paper);
  box-shadow: inset 0 0 0 2px var(--ac-button-paper);
}

.download-viewer .actions button:disabled {
  border-color: var(--ac-button-disabled-rule);
  background: var(--ac-button-disabled-bg);
  color: var(--ac-button-disabled-ink);
  cursor: default;
}

/* Linked rows keep their reading colors as the surface responds. */
:is(.ac-related-projects .arp-row, .gallery-landing .collection-grid.list .gl-work, .ix-list-link):focus-visible {
  background: var(--ac-button-disabled-bg);
  outline: var(--ac-button-focus-width) solid var(--ac-button-ink);
  outline-offset: var(--ac-button-focus-offset);
}

@media (hover: hover) {
  :is(.ac-related-projects .arp-row, .gallery-landing .collection-grid.list .gl-work, .ix-list-link):hover {
    background: var(--ac-button-disabled-bg);
  }

  :is(.arp-row:hover .arp-project-title, .collection-grid.list .gl-work:hover h2, .ix-list-link:hover .ix-entry-title) {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
  }
}

:is(.ac-related-projects .arp-row, .gallery-landing .collection-grid.list .gl-work, .ix-list-link):active {
  background: color-mix(in srgb, var(--ac-button-ink) 12%, var(--ac-button-paper));
}

@media (max-width: 380px) {
  .ac-related-projects .arp-heading { flex-wrap: wrap; gap: 12px; }
}

/* Shared navigation and utility controls. Authored form actions have their own rules. */
/* Keep the host's icon, dimensions and alignment. */
:is(
  #ac-sitewide-header.ac-sitewide-header .ac-sitewide-menu-open,
  #ac-home-hero-navigation .hn-header .hn-menu-button,
  .ac-pillar-reference-header .ac-pillar-nav-open,
  #ac-home-hero-navigation #hn-global-menu .ac-menu-close,
  #ac-partnership-page #hn-global-menu .ac-menu-close,
  #ac-pillar-global-menu .ac-menu-close,
  .button-state-review .review-menu-control,
  .edition-controls button[data-step]
) {
  box-sizing: border-box;
  border: 1px solid var(--ac-icon-rule, transparent);
  border-radius: var(--ac-button-radius);
  background-color: color-mix(in srgb, currentColor 8%, transparent);
}

.ix-browser .ix-selected .ix-chip {
  border: 1px solid currentColor;
  border-radius: var(--ac-button-radius);
  background-color: transparent;
}

/* Reserve the selection rule across views, tabs and media pickers. */
body :is(
  .ix-browser .ix-view-switch button[data-index-view],
  .gallery-landing .collection-tools button[data-view],
  #ac-branding-review .br-guide-sequence .br-guide-tabs button[data-guide],
  #ac-pillar-stage [data-glcc-slides] .glcc-slide-links button[data-glcc-frame],
  .cs-gallery-tabs button[role="tab"],
  .cs-document-tabs button[role="tab"],
  .rk-tabs button[role="tab"],
  .wf-tabs button[role="tab"]
) {
  border-bottom: 2px solid transparent;
  background-color: transparent;
  text-decoration: none;
}

body :is(
  .ix-browser .ix-view-switch button[data-index-view],
  .gallery-landing .collection-tools button[data-view],
  #ac-branding-review .br-guide-sequence .br-guide-tabs button[data-guide],
  #ac-pillar-stage [data-glcc-slides] .glcc-slide-links button[data-glcc-frame],
  .cs-gallery-tabs button[role="tab"],
  .cs-document-tabs button[role="tab"],
  .rk-tabs button[role="tab"],
  .wf-tabs button[role="tab"]
):is([aria-pressed="true"], [aria-selected="true"]) {
  border-bottom-color: currentColor;
  font-weight: 600;
}

.cs-viewer-bar button.cs-zoom[aria-pressed="true"] {
  box-shadow: inset 0 -1px currentColor;
}

.ix-browser .ix-pagination button[data-index-page]:disabled {
  color: var(--ac-button-disabled-ink);
  cursor: default;
}

@media (hover: hover) {
  :is(
    #ac-sitewide-header.ac-sitewide-header .ac-sitewide-menu-open,
    #ac-home-hero-navigation .hn-header .hn-menu-button,
    .ac-pillar-reference-header .ac-pillar-nav-open,
    #ac-home-hero-navigation #hn-global-menu .ac-menu-close,
    #ac-partnership-page #hn-global-menu .ac-menu-close,
    #ac-pillar-global-menu .ac-menu-close,
    .button-state-review .review-menu-control,
    .edition-controls button[data-step]
  ):not(:disabled):hover {
    --ac-icon-rule: currentColor;
  }

  .button-state-review [data-review-state="pressed"] {
    --ac-icon-rule: currentColor;
  }

  .ix-browser .ix-selected .ix-chip:hover { background-color: var(--ac-button-disabled-bg); }

  :is(
    .ix-browser .ix-view-switch button[data-index-view],
    .gallery-landing .collection-tools button[data-view],
    #ac-branding-review .br-guide-sequence .br-guide-tabs button[data-guide],
    #ac-pillar-stage [data-glcc-slides] .glcc-slide-links button[data-glcc-frame],
    .cs-gallery-tabs button[role="tab"],
    .cs-document-tabs button[role="tab"],
    .rk-tabs button[role="tab"],
    .wf-tabs button[role="tab"],
    .ix-browser .ix-pagination button[data-index-page],
    .ix-browser button[data-index-reset],
    .ix-browser .ix-reset,
    .cs-viewer-bar button:is(.cs-zoom, .cs-close)
  ):not(:disabled):not(:is([aria-pressed="true"], [aria-selected="true"])):hover {
    text-decoration: underline;
    text-underline-offset: 4px;
  }
}

@media (hover: none) {
  .ac-desktop-services-toggle:not([aria-expanded="true"]):hover,
  .wf-tabs button:hover {
    text-decoration: none;
  }
}

:is(
  #ac-sitewide-header.ac-sitewide-header .ac-sitewide-menu-open,
  #ac-home-hero-navigation .hn-header .hn-menu-button,
  .ac-pillar-reference-header .ac-pillar-nav-open,
  #ac-home-hero-navigation #hn-global-menu .ac-menu-close,
  #ac-partnership-page #hn-global-menu .ac-menu-close,
  #ac-pillar-global-menu .ac-menu-close,
  .button-state-review .review-menu-control,
  .edition-controls button[data-step],
  .ix-browser .ix-selected .ix-chip,
  .ix-browser .ix-view-switch button[data-index-view],
  .gallery-landing .collection-tools button[data-view],
  .ix-browser .ix-pagination button[data-index-page],
  .ac-desktop-services-toggle,
  #ac-branding-review .br-guide-sequence .br-guide-tabs button[data-guide],
  #ac-pillar-stage [data-glcc-slides] .glcc-slide-links button[data-glcc-frame],
  .cs-gallery-tabs button[role="tab"],
  .cs-document-tabs button[role="tab"],
  .rk-tabs button[role="tab"],
  .wf-tabs button[role="tab"],
  .cs-viewer-bar button:is(.cs-zoom, .cs-close)
):not(:disabled):active,
.button-state-review [data-review-state="pressed"] .review-menu-control {
  box-shadow: inset 0 0 0 1px currentColor;
}

:is(
  #ac-sitewide-header.ac-sitewide-header .ac-sitewide-menu-open,
  #ac-home-hero-navigation .hn-header .hn-menu-button,
  .ac-pillar-reference-header .ac-pillar-nav-open,
  #ac-home-hero-navigation #hn-global-menu .ac-menu-close,
  #ac-partnership-page #hn-global-menu .ac-menu-close,
  #ac-pillar-global-menu .ac-menu-close,
  .button-state-review .review-menu-control,
  .ac-desktop-services-toggle,
  .ix-browser .ix-view-switch button[data-index-view],
  .gallery-landing .collection-tools button[data-view],
  .ix-browser .ix-chip,
  .ix-browser button[data-index-page],
  .ix-browser button[data-index-reset],
  .ix-browser .ix-reset,
  .ix-browser .ix-search input[type="search"],
  .ix-browser .ix-practice select,
  .gallery-landing .collection-tools input[data-search],
  .edition-controls button[data-step],
  .edition-controls select,
  .cs-viewer-bar button:is(.cs-zoom, .cs-close),
  .cs-image-button,
  .cs-gallery-tabs button[role="tab"],
  .cs-document-tabs button[role="tab"],
  .rk-tabs button[role="tab"],
  .wf-tabs button[role="tab"],
  .br-guide-tabs button[data-guide],
  .glcc-slide-links button[data-glcc-frame],
  .interactive-start
):focus-visible {
  outline: var(--ac-button-focus-width) solid currentColor;
  outline-offset: var(--ac-button-focus-offset);
}

@media (pointer: coarse), (max-width: 600px) {
  :is(
    .ac-desktop-nav .ac-desktop-services-toggle,
    .ix-browser .ix-view-switch button[data-index-view],
    .gallery-landing .collection-tools button[data-view],
    #ac-branding-review .br-guide-sequence .br-guide-tabs button[data-guide],
    #ac-pillar-stage [data-glcc-slides] .glcc-slide-links button[data-glcc-frame],
    .cs-gallery-tabs button[role="tab"],
    .cs-document-tabs button[role="tab"],
    .rk-tabs button[role="tab"],
    .wf-tabs button[role="tab"],
    .cs-viewer-bar button:is(.cs-zoom, .cs-close),
    .edition-controls button[data-step],
    .edition-controls select
  ) {
    min-height: var(--ac-button-size);
  }

  :is(
    #ac-sitewide-header.ac-sitewide-header .ac-sitewide-menu-open,
    #ac-home-hero-navigation .hn-header .hn-menu-button,
    .ac-pillar-reference-header .ac-pillar-nav-open,
    .button-state-review .review-menu-open,
    .edition-controls button[data-step]
  ) {
    min-width: var(--ac-button-size);
    min-height: var(--ac-button-size);
  }
}

/* Keep the Contact page action on its Navy pair and reverse the popup pair. */
.contact-page .ct-form-action button[type="submit"] {
  --ac-form-button-fill: var(--page-color, #283242);
  --ac-form-button-ink: var(--page-ink, #f2f2ed);
  --ac-form-button-focus: var(--ac-form-button-fill);
}

#ac-contact-popup .ac-popup-form button[type="submit"] {
  --ac-form-button-fill: var(--ac-popup-ink);
  --ac-form-button-ink: var(--ac-popup-bg);
  --ac-form-button-focus: var(--ac-popup-ink);
}

.contact-page .ct-form-action button[type="submit"],
#ac-contact-popup .ac-popup-form button[type="submit"] {
  min-height: var(--ac-button-size);
  min-width: min(148px, 100%);
  padding: 0 14px;
  border: 1px solid var(--ac-form-button-fill);
  border-radius: var(--ac-button-radius, 8px);
  background: var(--ac-form-button-fill);
  color: var(--ac-form-button-ink);
  font-size: 14px;
  font-weight: 500;
  opacity: 1;
  text-decoration-line: var(--ac-send-underline, none);
  text-underline-offset: 4px;
}

.ct-form-action button[type="submit"] > .ac-submit-arrow {
  margin-inline-start: 10px;
}

#ac-contact-popup .ac-popup-heading {
  grid-template-columns: minmax(0, 1fr) var(--ac-button-size, 44px);
}

#ac-contact-popup .ac-popup-close {
  --ac-form-button-focus: var(--ac-popup-ink);
  width: var(--ac-button-size, 44px);
  height: var(--ac-button-size, 44px);
  border: 1px solid transparent;
  border-radius: var(--ac-button-radius, 8px);
  background: color-mix(in srgb, currentColor 8%, transparent);
}

@media (hover: hover) {
  .contact-page .ct-form-action button[type="submit"]:enabled:hover,
  #ac-contact-popup .ac-popup-form button[type="submit"]:enabled:hover,
  .button-state-review [data-review-state="pressed"] {
    --ac-send-underline: underline;
  }

  #ac-contact-popup .ac-popup-close:hover {
    border-color: currentColor;
  }
}

.contact-page .ct-form-action button[type="submit"]:enabled:active,
#ac-contact-popup .ac-popup-form button[type="submit"]:enabled:active,
.button-state-review [data-review-state="pressed"] .ct-form-action button[type="submit"] {
  box-shadow: inset 0 0 0 2px var(--ac-form-button-ink);
}

#ac-contact-popup .ac-popup-close:active {
  border-color: currentColor;
  box-shadow: inset 0 0 0 1px currentColor;
}

.contact-page .ct-form-action button[type="submit"]:focus-visible,
#ac-contact-popup .ac-popup-form button[type="submit"]:focus-visible,
#ac-contact-popup .ac-popup-close:focus-visible {
  outline: var(--ac-button-focus-width, 2px) solid var(--ac-form-button-focus);
  outline-offset: var(--ac-button-focus-offset, 3px);
}

.contact-page .ct-form-action button[type="submit"]:disabled:not([aria-busy="true"]),
#ac-contact-popup .ac-popup-form button[type="submit"]:disabled:not([aria-busy="true"]) {
  border-color: var(--ac-button-disabled-rule, #73746c);
  background: var(--ac-button-disabled-bg, #d7d7d3);
  color: var(--ac-button-disabled-ink, #454648);
  cursor: default;
}

.contact-page .ct-form-action button[type="submit"][aria-busy="true"],
#ac-contact-popup .ac-popup-form button[type="submit"][aria-busy="true"] {
  cursor: wait;
}
/* Preserve native type, color, and spacing around each standalone action. */
a.ac-editorial-action {
  display: inline-flex !important;
  align-items: center;
  column-gap: .65em !important;
  max-inline-size: 100%;
  color: inherit;
  border-bottom-color: transparent !important;
  text-decoration: none !important;
}

a.ac-editorial-action > .ac-editorial-label {
  min-inline-size: 0;
  margin: 0 !important;
  font: inherit !important;
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: var(--ac-editorial-rule, 1px);
  text-underline-offset: .24em;
}

a.ac-editorial-action > .ac-editorial-arrow {
  flex: none;
  margin: 0 !important;
  font-size: .86em !important;
  line-height: 1;
  color: currentColor;
}

@media (hover: hover) {
  a.ac-editorial-action:hover > .ac-editorial-label { --ac-editorial-rule: 2px; }
}

a.ac-editorial-action:active > .ac-editorial-label,
.button-state-review [data-review-state="pressed"] .ac-editorial-label {
  --ac-editorial-rule: 2px;
  text-underline-offset: .16em;
}

.button-state-review [data-review-state="hover"] {
  --ac-send-underline: underline;
  --ac-editorial-rule: 2px;
  --ac-outlined-fill: var(--ac-button-ink);
  --ac-outlined-label: var(--ac-button-paper);
  --ac-icon-rule: currentColor;
}

a.ac-editorial-action:focus-visible {
  outline: var(--ac-button-focus-width) solid currentColor !important;
  outline-offset: var(--ac-button-focus-offset) !important;
}

@media (any-pointer: coarse), (max-width: 600px) {
  a.ac-editorial-action {
    min-block-size: var(--ac-button-size) !important;
  }
}
