/* Shared by the standalone landing and every public React header. */
.site-navigation { position:relative; z-index:40; }
.site-navigation a,.site-navigation summary { color:#000; font:14px/1.4 var(--font-ui,Arial,sans-serif); min-height:44px; display:inline-flex; align-items:center; white-space:nowrap; cursor:pointer; touch-action:manipulation; }
.site-navigation a,.site-navigation a:hover,.site-navigation a:active,.site-navigation a[aria-current] { text-decoration:none!important; opacity:1; }
.nav-label { position:relative; display:inline-block; padding-block:7px; }
.nav-label::after { content:""; position:absolute; inset-inline:0; bottom:1px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform 650ms ease-in-out; }
.site-navigation a:hover .nav-label::after,.site-navigation summary:hover .nav-label::after,.site-navigation :focus-visible .nav-label::after,.site-navigation a[aria-current] .nav-label::after,.nav-projects[open]>summary .nav-label::after { transform:scaleX(1); }
.site-navigation a:focus-visible,.site-navigation summary:focus-visible { outline:2px solid #000; outline-offset:4px; border-radius:2px; }
.nav-projects { position:relative; }
.nav-projects>summary { list-style:none; gap:7px; }
.nav-projects>summary::-webkit-details-marker { display:none; }
.nav-chevron { font-size:15px; line-height:1; transform:translateY(-2px); }
.nav-projects[open]>summary .nav-chevron { transform:rotate(180deg); }
.nav-project-list { position:absolute; top:100%; right:0; min-width:184px; padding:8px 16px; background:#fff; border:1px solid #d5d5d5; border-radius:6px; box-shadow:0 8px 22px #00000012; }
.site-navigation .nav-project-list a { display:flex; width:100%; min-height:44px; }
@media(max-width:600px), (max-width:900px) and (max-height:500px) { .nav-projects { position:static; } .nav-project-list { right:auto; left:0; } }
@media(prefers-reduced-motion:reduce) { .nav-label::after { transition:none; } }
@media print { .nav-project-list { display:none; } }

/* A compact top-right menu on phones; ordinary links remain without JavaScript. */
.navigation-shell { position:relative; margin-left:auto; }
.navigation-toggle { display:none; width:48px; height:48px; border:1px solid #d5d5d5; border-radius:6px; background:#fff; color:#000; font:24px/1 Arial,sans-serif; align-items:center; justify-content:center; }
@media(max-width:600px), (max-width:900px) and (max-height:500px) {
  .field > header,.public-header,.public-navigation-inner { flex-direction:row!important; align-items:center!important; flex-wrap:nowrap!important; gap:16px!important; }
  .field > header { padding-block:16px; min-height:96px; }
  .field > header .brand img,.public-header .public-logo img,.public-navigation-inner .public-logo img { width:150px; max-width:100%; }
  .navigation-shell[data-menu-ready] .navigation-toggle { display:flex; }
  .navigation-shell[data-menu-ready] .site-navigation { display:none; }
  .navigation-shell[data-menu-ready].menu-open .site-navigation { display:flex; position:absolute; top:calc(100% + 10px); right:0; width:min(260px,calc(100vw - 48px)); padding:16px 20px; flex-direction:column; align-items:stretch; gap:4px; background:#fff; border:1px solid #d5d5d5; border-radius:8px; box-shadow:0 10px 30px #0002; }
  .site-navigation a,.site-navigation summary { min-height:48px; }
  .nav-projects { position:relative; }
  .nav-project-list { position:static; border:0; box-shadow:none; padding:0 0 0 14px; min-width:0; }
}
@media print { .navigation-toggle { display:none!important; } }

/* Logo orange adjusted for readable small text on white (WCAG AA). */
#main-site-navigation a.nav-experience { color:#b85e14; }
