/* Final interaction pass: keep Digita's Apex-inspired art direction. */
html { scrollbar-gutter:stable; }
.enhanced .site-header,
.enhanced .site-header.scrolled {
  position:fixed;
  height:98px;
  min-height:98px;
  padding-block:20px;
  transition:background-color 240ms ease,box-shadow 240ms ease;
}
.site-header.scrolled { background:var(--ink); }
.enhanced .main-nav {
  display:flex;
  visibility:hidden;
  opacity:0;
  transform:translateY(-8px);
  pointer-events:none;
  animation:none;
  transition:opacity 200ms ease,transform 280ms var(--ease),visibility 0s 200ms;
}
.enhanced .main-nav.is-open {
  visibility:visible;
  opacity:1;
  transform:none;
  pointer-events:auto;
  transition-delay:0s;
}
.menu-toggle { min-width:92px;justify-content:flex-end; }
.main-nav { overscroll-behavior:contain; }
.button { transition:background-color 220ms ease,color 220ms ease,box-shadow 220ms ease,transform 180ms var(--ease); }
.button:active { transform:translate(2px,2px) skewX(-9deg);box-shadow:2px 2px 0 var(--ink),4px 4px 0 var(--yellow); }
.text-link:focus-visible::after { transform:scaleX(1); }
.hero-bottom a,.back-top { min-height:44px; }
.hero-bottom a { transition:color 220ms ease; }
.hero-bottom a:hover,.back-top:hover { color:var(--yellow); }
.handoff,.crm-showcase { overflow-anchor:none; }
.crm-figure figcaption { min-height:3.4em; }
.crm-tabs button { font-size:12px; }
.chart-scroll:focus-visible { outline:2px solid var(--yellow);outline-offset:5px; }
.reach-table summary { text-decoration:none;gap:18px; }
.reach-table .summary-label { font-size:12px;text-decoration:underline;text-underline-offset:6px; }
.reach-table summary>.summary-icon { font-size:20px;transition:transform 260ms var(--ease); }
.reach-table[open] summary>.summary-icon { transform:rotate(45deg); }
.reach-table[open] summary>.summary-label { transform:none; }
.viewer-image[hidden] { visibility:hidden; }
.image-viewer,.image-viewer *,.photo-button,.photo-button img {
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
}
.viewer-image,.photo-button img { -webkit-user-drag:none; }
.viewer-prev,.viewer-next,.viewer-close { transition:color 180ms ease,border-color 180ms ease,background-color 180ms ease; }
.viewer-prev:hover,.viewer-next:hover { color:var(--yellow);border-color:var(--yellow); }
.viewer-stage { grid-template-columns:48px minmax(0,1fr) 48px; }
.viewer-stage .viewer-prev,.viewer-stage .viewer-next {
  display:grid;place-items:center;width:48px;height:48px;min-width:48px;min-height:48px;
  padding:0;line-height:1;justify-self:center;
}
.viewer-stage .viewer-prev svg,.viewer-stage .viewer-next svg { display:block;width:24px;height:24px; }
.viewer-close:hover { color:var(--yellow); }
.footer-links nav { gap:0;font-size:12px; }
.footer-links a,.footer-contact>a { width:fit-content;min-height:44px;display:flex;align-items:center;padding-block:8px;transition:color 220ms ease; }
.footer-contact>a { margin-bottom:0;font-size:13px; }
.footer-contact .footer-email { font-size:12px; }
.footer-links a:hover,.footer-contact>a:hover { color:var(--yellow); }
.footer-bottom,.footer-bottom .back-top { font-size:11px; }


  [data-reveal].reveal-ready { transform:translateY(16px);transition:opacity 650ms var(--ease),transform 750ms var(--ease); }
  [data-reveal].reveal-ready.is-visible { transform:none; }
  .crm-figure:not([hidden]) { animation:polish-panel-in 280ms ease-out both; }
  .process>li.is-visible .step-node { animation:none; }
  @media(min-width:801px) {
    .process>li:nth-child(2),.included-list>li:nth-child(2n) { transition-delay:60ms; }
    .process>li:nth-child(3) { transition-delay:120ms; }
    .process>li:nth-child(4) { transition-delay:180ms; }
  }

@keyframes polish-panel-in { from { opacity:.45; } to { opacity:1; } }
@media(hover:none) {
  .button:hover { background:var(--yellow);color:var(--ink);box-shadow:5px 5px 0 var(--ink),7px 7px 0 var(--yellow); }
  .button-outline:hover { background:transparent;color:var(--paper); }
}
@media(max-width:800px) {
  .enhanced .site-header,.enhanced .site-header.scrolled { height:82px;min-height:82px;padding-block:15px; }
}
@media(max-width:600px) {
  html { scroll-padding-top:82px; }
  .hero-bottom { bottom:18px;justify-content:center;font-size:10px; }
  .hero-bottom>p { display:none; }
  .hero-bottom a { max-width:none;text-align:center; }
  .hero-intro { font-size:9px;letter-spacing:.035em; }
  .hero-description,.service-copy>p,.included-list p,.process ul li { font-size:13px; }
  .service-copy .service-foot { font-size:10px;line-height:1.8; }
  .proof-figure figcaption,.work figcaption,.concept-label,.crm-limit,.crm-figure figcaption,.chart-context,.contact-detail { font-size:11px; }
  .evidence-note,.attribution { font-size:11px;line-height:1.85; }
  .proof-baseline span { font-size:10px; }
  .crm-tabs button { font-size:11px;padding-inline:3px; }
  .footer-main h3 { font-size:11px;margin-bottom:12px; }
  .footer-links nav,.footer-contact>a,.footer-contact .footer-email { font-size:11px; }
  .footer-contact>p { font-size:11px; }
  .footer-bottom,.footer-bottom .back-top { font-size:10px; }
}
@media(max-width:359px) {
  .hero-intro { font-size:8px; }
  .footer-main { grid-template-columns:1fr;gap:28px; }
  .footer-links nav { display:grid;grid-template-columns:1fr 1fr;gap:0 20px; }
  .footer-contact>a,.footer-contact .footer-email { font-size:13px; }
}

/* A single expanding navigation surface, joined to the fixed header. */
.enhanced .site-header { --header-height:98px; }
.enhanced .site-header.menu-visible {
  background:var(--ink);
  /* Paint the top surface before the attached navigation starts expanding. */
  transition:background-color 0s,box-shadow 240ms ease;
}
.enhanced .main-nav {
  display:grid;grid-template-rows:0fr;position:absolute;top:100%;left:0;right:0;
  width:100%;max-width:none;max-height:none;padding:0;gap:0;border:0;
  overflow:visible;background:var(--ink);box-shadow:0 14px 24px rgba(0,0,0,.18);
  opacity:1;transform:none;visibility:hidden;pointer-events:none;animation:none;
  transition:grid-template-rows 420ms var(--ease),visibility 0s 420ms;
}
.enhanced .main-nav.is-open {
  display:grid;grid-template-rows:1fr;opacity:1;transform:none;visibility:visible;pointer-events:auto;
  transition-delay:0s;
}
.nav-clip { min-height:0;overflow:hidden; }
.nav-inner {
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:70px;
  max-width:1540px;margin-inline:auto;padding:34px var(--gutter) 44px;
  max-height:calc(100dvh - var(--header-height,98px));overflow-y:auto;overscroll-behavior:contain;
}
.nav-links { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;row-gap:18px; }
.nav-links>a {
  position:relative;width:fit-content;max-width:100%;padding-block:10px;min-height:44px;
  font-size:clamp(18px,1.65vw,25px);line-height:1.35;font-weight:500;letter-spacing:-.02em;
  transition:color 220ms ease;
}
.nav-links>a::after { content:'';position:absolute;left:0;right:0;bottom:6px;height:1px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform 280ms var(--ease); }
.nav-links>a:hover,.nav-links>a:focus-visible { color:var(--yellow); }
.nav-links>a:hover::after,.nav-links>a:focus-visible::after { transform:scaleX(1); }
.enhanced .main-nav .button { width:auto;min-width:235px;max-width:100%;margin:0 8px;align-self:center;font-size:11px;padding:19px 23px; }
@media(max-width:1100px) {
  .nav-inner { column-gap:40px; }
  .nav-links { grid-template-columns:repeat(2,minmax(0,1fr));column-gap:25px;row-gap:10px; }
  .nav-links>a { font-size:20px; }
}
@media(max-width:800px) {
  .enhanced .site-header { --header-height:82px; }
  .nav-inner { display:block;padding-block:20px 30px; }
  .nav-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .enhanced .main-nav .button { margin:24px 8px 7px 5px;min-width:230px; }
}
@media(max-width:500px) {
  .nav-links { grid-template-columns:1fr;row-gap:2px; }
  .nav-links>a { font-size:21px;padding-block:9px; }
  .nav-inner { padding-top:14px;padding-bottom:26px; }
}
