/* =========================================================================
   Header-only styles. Consolidated to Tailwind's standard breakpoints
   (sm 640 / md 768 / lg 1024 / xl 1280 / 2xl 1536) — no ad-hoc pixel ranges.
   Extracted from layout/header.php so it's a real cacheable stylesheet
   instead of an inline <style> block re-sent uncompressed on every request.
   ========================================================================= */

/* ---- Desktop nav links ---- */
.nav-link {
  position: relative;
  padding: 0.6rem 0.85rem;
  border-radius: var(--radius-lg);
  color: rgb(var(--c-text) / .78);
  transition: color var(--duration-base) var(--ease-out-soft), background-color var(--duration-base) var(--ease-out-soft);
}
.nav-link:hover { color: rgb(var(--c-text)); background-color: rgb(var(--brand-500) / .08); }
.nav-link.nav-link-active, .nav-link.glassy-active {
  color: rgb(var(--c-indigo));
  background-color: rgb(var(--brand-500) / .1);
}

/* ---- Mobile drawer shell ---- */
#mobile-menu:not(.hidden) .mobile-sidebar { animation: drawerIn .32s var(--ease-out-expo) both; }
@keyframes drawerIn { from { transform: translateX(100%); } to { transform: translateX(0); } }

/* ---- Mobile nav rows ---- */
.nav-item, .dropdown-trigger {
  display: flex; align-items: center; gap: 0.85rem; width: 100%;
  padding: 0.85rem 0.9rem; border-radius: var(--radius-xl);
  color: rgb(var(--c-text)); text-align: left; background: none; border: 0; cursor: pointer;
  transition: background-color var(--duration-base) var(--ease-out-soft);
}
.nav-item:hover, .dropdown-trigger:hover { background-color: rgb(var(--brand-500) / .07); }
.nav-item-cta { background-image: var(--grad-brand); color: #fff; }
.nav-item-cta .nav-title, .nav-item-cta .nav-desc { color: #fff; }
.nav-icon {
  flex-shrink: 0; width: 2.5rem; height: 2.5rem; border-radius: var(--radius-lg);
  display: grid; place-items: center; font-size: 1.05rem;
  background-color: rgb(var(--brand-500) / .1); color: rgb(var(--c-indigo));
}
.nav-item-cta .nav-icon { background-color: rgba(255,255,255,.2); color: #fff; }
.nav-content { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nav-title { font-weight: 600; font-size: .95rem; }
.nav-desc { font-size: .78rem; color: rgb(var(--c-text-muted)); }
.nav-item-cta .nav-desc { color: rgba(255,255,255,.85); }
.nav-arrow { flex-shrink: 0; color: rgb(var(--c-text-faint)); font-size: .8rem; }
.nav-item-cta .nav-arrow { color: rgba(255,255,255,.85); }
.dropdown-trigger[aria-expanded="true"] .nav-arrow { transform: rotate(180deg); transition: transform var(--duration-base); }

/* ---- Mobile services accordion ---- */
.nav-dropdown { max-height: 0; overflow: hidden; transition: max-height var(--duration-slow) var(--ease-out-soft); padding-left: 0.5rem; }
.nav-dropdown.show { max-height: 900px; }
.service-card {
  display: flex; align-items: center; gap: 0.75rem; padding: 0.65rem 0.75rem;
  border-radius: var(--radius-lg); color: rgb(var(--c-text));
  transition: background-color var(--duration-base) var(--ease-out-soft);
}
.service-card:hover { background-color: rgb(var(--brand-500) / .07); }
.service-icon {
  flex-shrink: 0; width: 2.1rem; height: 2.1rem; border-radius: var(--radius-md);
  display: grid; place-items: center; background-color: rgb(var(--accent-500) / .12); color: rgb(var(--c-indigo));
}
.service-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.service-name { font-weight: 600; font-size: .88rem; }
.service-tag { font-size: .72rem; color: rgb(var(--c-text-muted)); }
.service-arrow { flex-shrink: 0; font-size: .7rem; color: rgb(var(--c-text-faint)); }

/* ---- Bottom action bar icons ---- */
.action-bar-icon {
  width: 2.5rem; height: 2.5rem; border-radius: var(--radius-lg);
  display: grid; place-items: center; color: rgb(var(--c-text-muted));
  background-color: rgb(var(--brand-500) / .07);
  transition: color var(--duration-base), background-color var(--duration-base), transform var(--duration-base);
}
.action-bar-icon:hover { color: rgb(var(--c-indigo)); background-color: rgb(var(--brand-500) / .14); transform: translateY(-2px); }

@media (prefers-reduced-motion: reduce) {
  #mobile-menu:not(.hidden) .mobile-sidebar { animation: none; }
  .dropdown-trigger[aria-expanded="true"] .nav-arrow { transition: none; }
  .action-bar-icon:hover { transform: none; }
}
