:root {
  --site-head-brand: #cf397b;
  --site-head-dark: #9d1d55;
  --site-head-ink: #20202c;
  --site-head-muted: #686878;
  --site-head-soft: #fff3f8;
  --site-head-line: #f2dce6;
}

/* Shared public header: home, content pages, jobs and results portal. */
.header,
.mobile-header,
.portal-header {
  position: sticky !important;
  inset: 0 0 auto !important;
  z-index: 1000 !important;
  width: 100% !important;
  height: 78px !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(207,57,123,.1) !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 8px 28px rgba(45,23,35,.045) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
}

.nav-wrap,
.shell-header-inner,
.portal-header-inner {
  width: min(1160px, calc(100% - 36px)) !important;
  max-width: 1160px !important;
  height: 78px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
}

.header .brand,
.logo-mobile,
.portal-brand {
  min-width: max-content !important;
  display: flex !important;
  align-items: center !important;
  gap: 11px !important;
  color: var(--site-head-ink) !important;
  text-decoration: none !important;
}

.header .brand img,
.logo-mobile img,
.portal-brand .brand-logo-img {
  width: 52px !important;
  height: 52px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: #fff !important;
  object-fit: contain !important;
  box-shadow: 0 6px 18px rgba(207,57,123,.12) !important;
}

.header .brand strong,
.shell-brand-copy strong,
.portal-brand strong {
  display: block !important;
  color: var(--site-head-ink) !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
}

.header .brand small,
.shell-brand-copy small,
.portal-brand small {
  display: block !important;
  color: var(--site-head-muted) !important;
  font-size: .68rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}

.desktop-nav,
.shell-desktop-nav,
.portal-desktop-nav { display: flex !important; align-items: center !important; gap: 3px !important; }

.desktop-nav a,
.shell-desktop-nav a,
.portal-desktop-nav a {
  padding: 10px 11px !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: transparent !important;
  color: var(--site-head-ink) !important;
  font-size: .88rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.desktop-nav a:hover,
.shell-desktop-nav a:hover,
.portal-desktop-nav a:hover,
.desktop-nav a:focus-visible,
.shell-desktop-nav a:focus-visible,
.portal-desktop-nav a:focus-visible,
.desktop-nav a[aria-current="page"],
.shell-desktop-nav a[aria-current="page"],
.portal-desktop-nav a[aria-current="page"] { color: var(--site-head-brand) !important; background: var(--site-head-soft) !important; }

.desktop-nav .result-link,
.shell-desktop-nav .shell-result,
.portal-desktop-nav .portal-results-link {
  padding: 11px 17px !important;
  background: var(--site-head-brand) !important;
  color: #fff !important;
  box-shadow: 0 7px 20px rgba(207,57,123,.22) !important;
}

.desktop-nav .result-link:hover,
.shell-desktop-nav .shell-result:hover,
.portal-desktop-nav .portal-results-link:hover,
.portal-desktop-nav .portal-results-link[aria-current="page"] { background: var(--site-head-dark) !important; color: #fff !important; }

.menu-btn,
.menu-icon-btn,
.portal-menu-button {
  width: 46px !important;
  min-width: 46px !important;
  height: 46px !important;
  padding: 0 !important;
  border: 1px solid rgba(207,57,123,.13) !important;
  border-radius: 14px !important;
  background: var(--site-head-soft) !important;
  color: var(--site-head-dark) !important;
  box-shadow: 0 7px 18px rgba(157,29,85,.07) !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
}

.menu-button-label { display: none !important; }

.overlay,
.mobile-menu-overlay,
.portal-menu-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1100 !important;
  width: 100vw !important;
  height: 100dvh !important;
  background: rgba(25,17,23,.58) !important;
  backdrop-filter: blur(3px) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .2s ease, visibility .2s ease !important;
}

.overlay.active,
.mobile-menu-overlay.active,
.portal-menu-overlay.active { opacity: 1 !important; visibility: visible !important; }

.mobile-menu,
.portal-mobile-menu {
  position: fixed !important;
  inset: 0 0 0 auto !important;
  z-index: 1101 !important;
  width: min(360px, calc(100vw - 24px)) !important;
  max-width: 360px !important;
  height: 100dvh !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 24px 0 0 24px !important;
  background: #fff !important;
  box-shadow: -20px 0 60px rgba(0,0,0,.18) !important;
  display: flex !important;
  flex-direction: column !important;
  direction: rtl !important;
  overflow: hidden !important;
  transform: translate3d(102%,0,0) !important;
  visibility: hidden !important;
  transition: transform .25s ease, visibility .25s ease !important;
}

.mobile-menu.open,
.portal-mobile-menu.open { transform: translate3d(0,0,0) !important; visibility: visible !important; }

.mobile-head,
.menu-header,
.portal-mobile-head {
  width: 100% !important;
  min-height: 124px !important;
  padding: max(25px, env(safe-area-inset-top)) 20px 20px !important;
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  position: relative !important;
  background: radial-gradient(circle at 12% 15%,rgba(255,255,255,.18),transparent 32%),linear-gradient(140deg,var(--site-head-dark),var(--site-head-brand)) !important;
  color: #fff !important;
  text-align: right !important;
}

.mobile-head img,
.menu-avatar,
.portal-mobile-brand img { width: 58px !important; height: 58px !important; min-width: 58px !important; border-radius: 17px !important; background: #fff !important; object-fit: contain !important; }
.menu-avatar img { width: 54px !important; height: 54px !important; object-fit: contain !important; }
.mobile-head strong,.mobile-head small,.menu-header h4,.menu-header p,.portal-mobile-brand strong,.portal-mobile-brand small { display: block !important; color: #fff !important; }
.mobile-head small,.menu-header p,.portal-mobile-brand small { margin: 2px 0 0 !important; font-size: .72rem !important; opacity: .82 !important; }

.close-btn,
.close-menu-btn,
.portal-mobile-head > button {
  position: absolute !important;
  top: max(16px, env(safe-area-inset-top)) !important;
  left: 16px !important;
  width: 40px !important;
  height: 40px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.16) !important;
  color: #fff !important;
  display: grid !important;
  place-items: center !important;
  font-size: 1.2rem !important;
  cursor: pointer !important;
}

.mobile-links,
.menu-nav,
.portal-mobile-menu nav { width: 100% !important; min-height: 0 !important; padding: 14px !important; overflow: auto !important; flex: 1 !important; }
.mobile-links a,
.menu-nav a,
.portal-mobile-menu nav a { width: 100% !important; min-height: 50px !important; margin: 0 0 4px !important; padding: 10px 12px !important; border: 0 !important; border-radius: 13px !important; display: flex !important; align-items: center !important; gap: 12px !important; color: var(--site-head-ink) !important; background: transparent !important; font-weight: 600 !important; text-decoration: none !important; }
.mobile-links a i,
.menu-nav a i,
.portal-mobile-menu nav a span { width: 34px !important; height: 34px !important; flex: 0 0 34px !important; border-radius: 11px !important; display: grid !important; place-items: center !important; background: var(--site-head-soft) !important; color: var(--site-head-brand) !important; }
.mobile-links a:hover,.menu-nav a:hover,.portal-mobile-menu nav a:hover,.mobile-links a[aria-current="page"],.menu-nav a[aria-current="page"],.portal-mobile-menu nav a[aria-current="page"] { background: var(--site-head-soft) !important; color: var(--site-head-dark) !important; }
.mobile-result,.shell-mobile-result,.portal-mobile-result { color: var(--site-head-dark) !important; font-weight: 800 !important; }
.mobile-foot,.menu-footer,.portal-mobile-footer { width: 100% !important; padding: 16px 20px max(18px,env(safe-area-inset-bottom)) !important; border-top: 1px solid var(--site-head-line) !important; background: #fff8fb !important; color: var(--site-head-muted) !important; }

@media (max-width: 900px) {
  .header,.mobile-header,.portal-header,
  .nav-wrap,.shell-header-inner,.portal-header-inner { height: 70px !important; }
  .nav-wrap,.shell-header-inner,.portal-header-inner { width: calc(100% - 28px) !important; gap: 10px !important; }
  .desktop-nav,.shell-desktop-nav,.portal-desktop-nav { display: none !important; }
  .menu-btn,.menu-icon-btn,.portal-menu-button { display: flex !important; }
  .header .brand img,.logo-mobile img,.portal-brand .brand-logo-img { width: 46px !important; height: 46px !important; border-radius: 14px !important; }
}

@media (max-width: 420px) {
  .nav-wrap,.shell-header-inner,.portal-header-inner { width: calc(100% - 20px) !important; }
  .header .brand small,.shell-brand-copy small,.portal-brand small { display: none !important; }
  .header .brand strong,.shell-brand-copy strong,.portal-brand strong { font-size: .9rem !important; }
  .mobile-menu,.portal-mobile-menu { width: calc(100vw - 18px) !important; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-menu,.portal-mobile-menu,.overlay,.mobile-menu-overlay,.portal-menu-overlay { transition: none !important; }
}
