/* Shared navigation cues. Decorative masks do not alter link names or destinations. */
:root {
  --akdh-link-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 18 18 6M7 6h11v11' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

:is(.regional-service-copy nav a, .footer-nav a, .nav-panel a) {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  max-width: 100%;
}

:is(.regional-service-copy nav a, .footer-nav a, .nav-panel a, a.button:not(.contact-action):not(:has(svg)))::after {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  background: currentColor;
  -webkit-mask: var(--akdh-link-arrow) center / contain no-repeat;
  mask: var(--akdh-link-arrow) center / contain no-repeat;
  transition: transform 160ms ease;
}

/* Underlined actions need no arrow; preserve the chosen chat/video button icons. */
:is(.waterfall-link, .project-award a) > svg { display: none; }
a.button:not(.contact-action) { gap: 12px; }
a.button:not(.contact-action) > svg { margin-left: 0; transform: rotate(-45deg); }
.regional-service-copy nav a, .nav-panel a { display: flex; justify-content: space-between; }

:is(.regional-service-copy nav a, .footer-nav a, .nav-panel a, a.button:not(.contact-action):not(:has(svg))):is(:hover, :focus-visible)::after {
  transform: translate(2px, -2px);
}

/* A quiet, single-piece header action; image and underlined links stay icon-free. */
.site-header .site-nav a.nav-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 14px 24px;
  border: 1px solid #101412;
  border-radius: 8px;
  background: #101412;
  color: #fff;
  line-height: 1.2;
  transition: background-color 160ms ease, border-color 160ms ease;
}
.site-header .site-nav a.nav-cta::before,
.site-header .site-nav a.nav-cta::after { content: none; }
.site-header .site-nav a.nav-cta:is(:hover, :focus-visible) {
  border-color: var(--cobalt, #3452ff);
  background: var(--cobalt, #3452ff);
}
.site-header .site-nav a.nav-cta:focus-visible {
  outline: 3px solid var(--cobalt, #3452ff);
  outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
  a::after,
  .site-header .site-nav a.nav-cta { transition: none; }
}

/* The same two contact routes remain available at the bottom of every page. */
.contact-actions { display:flex; flex-direction:row; flex-wrap:wrap; align-items:stretch; gap:14px; }
.contact-actions .contact-action { flex:1 1 230px; display:flex; align-items:center; justify-content:space-between; gap:18px; min-width:0; min-height:58px; padding:16px 20px; border-width:2px; font-size:15px; line-height:1.35; text-align:left; white-space:normal; }
.contact-actions .contact-action-icon { display:block; flex:0 0 22px; width:22px; height:22px; }
.contact-action::after { content:none; }
.contact-action-icon { transform:none; }
.contact-action:focus-visible { outline:3px solid #3546e8; outline-offset:5px; }
.contact-actions .button-dark:hover { background:#3546e8; border-color:#3546e8; color:#fff; }
.contact-actions .button-outline:hover { background:#f0f2ff; border-color:#3546e8; color:#000; }
.project-cta .contact-actions, .portfolio-proof-band .contact-actions { max-width:680px; }
.portfolio-proof-band .contact-action-inverse, .about-contact .button-outline { color:#fff; border-color:#fff; background:transparent; }
.portfolio-proof-band .contact-action-inverse:hover, .about-contact .button-outline:hover { color:#101412; border-color:#fff; background:#fff; }
.portfolio-proof-band .contact-action:focus-visible, .about-contact .contact-action:focus-visible { outline-color:#fff; }
#contact .contact-copy { min-width:0; }
.about-contact-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr); column-gap:clamp(32px,5vw,80px); row-gap:28px; }
.about-contact-grid h2 { grid-column:1; grid-row:1 / span 2; }
.about-contact-grid > p, .about-contact-grid > .contact-actions { grid-column:2; }
@media (max-width:900px) {
 .about-contact-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
 .about-contact-grid h2, .about-contact-grid > p, .about-contact-grid > .contact-actions { grid-column:auto; grid-row:auto; }
}
@media (prefers-reduced-motion:reduce) { .contact-action { transition:none; } }
