/* Shared navigation for the homepage and every public landing. */
#seoNavigation.site {
  position:sticky; top:0; z-index:100; display:flex; align-items:center; flex-wrap:wrap;
  gap:12px 24px; height:auto; min-height:72px; padding:12px 24px;
  background:rgba(10,10,12,.94); border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
}
#seoNavigation.site .logo { flex:none; display:flex; align-items:center; gap:8px; font-size:16px; font-weight:800; }
#seoNavigation.site .logo svg { width:28px; height:28px; flex:none; }
#seoNavigation.site nav { display:flex; align-items:center; flex-wrap:wrap; gap:4px; min-width:0; margin:0; padding:0; }
#seoNavigation.site nav a {
  display:flex; align-items:center; justify-content:center; min-height:36px; padding:8px 10px;
  font-size:13px; font-weight:700; line-height:1.3; color:#bdbdc5; border-radius:999px; text-align:center;
  text-decoration:none; white-space:normal; transition:color .2s,background .2s;
}
#seoNavigation.site nav a:hover { color:#fff; background:rgba(255,104,44,.12); }
#seoNavigation.site .go-row { display:flex; align-items:center; gap:8px; margin-left:auto; flex:none; }
#seoNavigation.site .go-row .btn { display:inline-flex; align-items:center; justify-content:center; height:auto; min-height:44px; padding:12px 20px; font-size:13px; line-height:1.3; color:#fff; border-radius:999px; background:linear-gradient(90deg,#ff682c,#ff8a4c); white-space:nowrap; }
#seoNavigation.site .go-row .btn.ghost { background:#18181b; border:1px solid rgba(255,255,255,.12); }
#seoNavigation.site a:focus-visible { outline:2px solid #ffad80; outline-offset:3px; }
@media(max-width:1120px) {
  #seoNavigation.site nav { order:3; width:100%; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); overflow:visible; }
  html { scroll-padding-top:144px; }
}
@media(max-width:600px) {
  #seoNavigation.site { padding:12px 16px; column-gap:8px; }
  #seoNavigation.site nav { grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
  #seoNavigation.site nav a { padding:8px 4px; font-size:12px; }
  #seoNavigation.site .go-row .btn { padding:10px 12px; font-size:12px; }
  html { scroll-padding-top:180px; }
}
/* Mobile navigation: one native scrolling row, with stable edge controls. */
#seoNavigation .nav-strip { display:contents; }
#seoNavigation .nav-scroll-button { display:none; }
@media (max-width:600px) {
  #seoNavigation.site { row-gap:8px; padding-left:max(16px,env(safe-area-inset-left)); padding-right:max(16px,env(safe-area-inset-right)); }
  #seoNavigation.site .nav-strip { order:3; display:flex; align-items:center; gap:4px; width:100%; min-width:0; padding:2px; border:1px solid rgba(255,255,255,.08); border-radius:14px; background:rgba(255,255,255,.025); }
  #seoNavigation.site nav { order:initial; display:flex; flex:1; flex-wrap:nowrap; width:auto; min-width:0; gap:4px; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; scroll-snap-type:x proximity; overscroll-behavior-x:contain; }
  #seoNavigation.site nav::-webkit-scrollbar { display:none; }
  #seoNavigation.site nav a { flex:none; min-height:44px; padding:10px 12px; font-size:12px; white-space:nowrap; scroll-snap-align:start; }
  #seoNavigation.site[data-scroll-ready] .nav-scroll-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 36px; width:36px; height:44px; padding:0; border:0; border-radius:10px; background:transparent; color:#f4f4f5; cursor:pointer; transition:color .18s,opacity .18s,background .18s; }
  #seoNavigation.site .nav-scroll-button svg { width:18px; height:18px; }
  #seoNavigation.site .nav-scroll-button:disabled { color:#bdbdc5; opacity:.42; cursor:default; }
  #seoNavigation.site .nav-scroll-button:not(:disabled):active { background:rgba(255,104,44,.14); color:#ff8a4c; }
  #seoNavigation.site .nav-scroll-button:focus-visible { outline:2px solid #ffad80; outline-offset:-2px; }
  html { scroll-padding-top:136px; }
}
@media (prefers-reduced-motion:reduce) { #seoNavigation.site .nav-scroll-button { transition:none; } }

/* Only explicitly marked text links get the sweep. Labels inside buttons,
   cards, tabs and other controls keep their existing surface hover. */
.text-action-label { position:relative; display:inline-block; max-width:100%; vertical-align:baseline; }
.text-action-label.text-link::after {
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  border-radius:999px; background:currentColor; opacity:.88; pointer-events:none;
  transform:scaleX(0); transform-origin:right center;
  transition:transform .48s cubic-bezier(.16,1,.3,1);
}
:is(a,button):has(.text-action-label),
:is(a,button):has(.text-action-label):hover { text-decoration:none !important; }
:is(a,button):focus-visible:not(:disabled):not([aria-disabled="true"]) .text-action-label.text-link::after {
  transform:scaleX(1); transform-origin:left center;
}
@media (hover:hover) {
  :is(a,button):hover:not(:disabled):not([aria-disabled="true"]) .text-action-label.text-link::after {
    transform:scaleX(1); transform-origin:left center;
  }
}
@media (prefers-reduced-motion:reduce) { .text-action-label.text-link::after { transition:none; } }
