html,
body {
  margin: 0 !important;
}

body.hub-public-react-shell .nav {
  height: 68px !important;
  min-height: 68px !important;
  max-height: 68px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

body.hub-public-react-shell .nav-inner {
  height: 68px !important;
  min-height: 68px !important;
  max-height: 68px !important;
  align-items: center !important;
  box-sizing: border-box !important;
}

body.hub-public-react-shell .nav,
body.hub-public-react-shell .nav.is-scrolled {
  background: var(--tm-surface, rgba(255, 255, 255, 0.97)) !important;
  box-shadow: 0 1px 0 var(--tm-white-rule, rgba(255, 255, 255, 0.86)) !important;
}

body.hub-public-react-shell .brand {
  width: 132px !important;
  min-width: 132px !important;
  max-width: 132px !important;
  flex: 0 0 132px !important;
  gap: 10px !important;
  color: var(--tm-ink, #07101d) !important;
  font-size: 15px !important;
  font-weight: 860 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  transform: none !important;
  transition: none !important;
}

body.hub-public-react-shell .brand .logo {
  width: 32px !important;
  height: 32px !important;
  flex: 0 0 32px !important;
}

body.hub-public-react-shell .brand > span:not(.nav-admin-badge) {
  display: inline-flex !important;
  align-items: baseline !important;
  width: 90px !important;
  min-width: 90px !important;
  max-width: 90px !important;
  overflow: visible !important;
  text-overflow: clip !important;
  line-height: 1 !important;
}

body.hub-public-react-shell .nav-admin-badge {
  display: none !important;
}

body.hub-public-react-shell .nav-locale-wrap {
  width: var(--tm-locale-width, 68px) !important;
  min-width: var(--tm-locale-width, 68px) !important;
  max-width: var(--tm-locale-width, 68px) !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  flex: 0 0 var(--tm-locale-width, 68px) !important;
}

body.hub-public-react-shell .nav-locale-btn,
body.hub-public-react-shell .nav-locale-btn:hover,
body.hub-public-react-shell .nav-locale-wrap.is-open .nav-locale-btn {
  width: var(--tm-locale-width, 68px) !important;
  min-width: var(--tm-locale-width, 68px) !important;
  max-width: var(--tm-locale-width, 68px) !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  flex: 0 0 var(--tm-locale-width, 68px) !important;
  padding: 0 !important;
  border-color: var(--tm-line, rgba(20, 34, 57, 0.13)) !important;
  background: var(--tm-surface-soft, rgba(255, 255, 255, 0.92)) !important;
  color: var(--tm-navy, #142239) !important;
  box-shadow: none !important;
  transform: none !important;
  transition: none !important;
}

body.hub-public-react-shell .nav-locale-btn [data-nav-locale-label] {
  display: inline-flex !important;
  justify-content: center !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  overflow: hidden !important;
  text-align: center !important;
  font-size: 12px !important;
  font-weight: 820 !important;
  line-height: 1 !important;
}

body.hub-public-react-shell
  .nav-actions
  > .btn.btn-primary[data-nav-free-simulator],
body.hub-public-react-shell
  .nav-actions
  > .btn.btn-primary.nav-public-action,
body.hub-public-react-shell
  .nav-actions
  > .btn.btn-primary[data-nav-free-simulator]:hover,
body.hub-public-react-shell
  .nav-actions
  > .btn.btn-primary.nav-public-action:hover {
  border-color: var(--tm-gold-border, rgba(198, 163, 84, 0.56)) !important;
  background: linear-gradient(180deg, var(--tm-gold-cta-top, #f1d983), var(--tm-gold, #c6a354)) !important;
  color: var(--tm-ink, #07101d) !important;
  box-shadow: 0 12px 26px var(--tm-gold-shadow, rgba(198, 163, 84, 0.22)) !important;
  transform: none !important;
  transition: none !important;
}

body.hub-public-react-shell .nav-actions > .nav-admin-action,
body.hub-public-react-shell .nav-actions > .nav-admin-mobile-action,
body.hub-public-react-shell .nav-admin-links {
  display: none !important;
}

html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
  body.hub-public-react-shell:not(.hub-nav-admin)
  .nav-admin-links {
  display: inline-flex !important;
}

html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
  body.hub-public-react-shell:not(.hub-nav-admin)
  .nav-actions
  > .nav-admin-action {
  display: inline-flex !important;
}

html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
  body.hub-public-react-shell:not(.hub-nav-admin)
  .nav-actions
  > .nav-auth-action {
  display: none !important;
}

html:not([data-epso-auth-state="authenticated"])
  body:not(.hub-nav-admin)
  .nav-auth-links,
html:not([data-epso-auth-state="authenticated"])
  body:not(.hub-nav-admin)
  .nav-admin-links,
html:not([data-epso-auth-state="authenticated"])
  body:not(.hub-nav-admin)
  .nav-actions
  > .nav-auth-action,
html:not([data-epso-auth-state="authenticated"])
  body:not(.hub-nav-admin)
  .nav-actions
  > .nav-admin-action,
html:not([data-epso-auth-state="authenticated"])
  body:not(.hub-nav-admin)
  .nav-actions
  > .nav-auth-mobile-action,
html:not([data-epso-auth-state="authenticated"])
  body:not(.hub-nav-admin)
  .nav-actions
  > .nav-admin-mobile-action {
  display: none !important;
}

.hub-public-route {
  min-height: calc(100vh - 68px);
  min-height: calc(100svh - var(--nav-h, 68px));
}

.hub-public-route[data-hub-public-loading="true"] {
  min-height: max(
    var(--hub-public-route-h, 0px),
    calc(100vh - 68px)
  );
  min-height: max(
    var(--hub-public-route-h, 0px),
    calc(100svh - var(--nav-h, 68px))
  );
  pointer-events: none;
}

.hub-public-route[data-hub-public-empty="true"] {
  visibility: hidden;
}

@media (min-width: 769px) {
  body .nav-actions > .btn.btn-primary[data-nav-free-simulator] {
    width: 161px !important;
    min-width: 161px !important;
    max-width: 161px !important;
    flex: 0 0 161px !important;
    padding: 0 14px !important;
  }

  body
    .nav-actions
    > .btn.btn-primary[data-nav-free-simulator]
    .nav-cta-label-desktop {
    display: inline-flex !important;
  }

  body
    .nav-actions
    > .btn.btn-primary[data-nav-free-simulator]
    .nav-cta-label-mobile {
    display: none !important;
  }
}

@media (max-width: 768px) {
  body.hub-public-react-shell .nav {
    height: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
    box-sizing: border-box !important;
  }

  body.hub-public-react-shell .nav-inner {
    height: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
  }

  body.hub-public-react-shell .brand {
    width: 128px !important;
    min-width: 128px !important;
    max-width: 128px !important;
    flex-basis: 128px !important;
    gap: 8px !important;
    font-size: 14px !important;
  }

  body.hub-public-react-shell .brand .logo {
    width: 30px !important;
    height: 30px !important;
    flex-basis: 30px !important;
  }

  body.hub-public-react-shell .brand > span:not(.nav-admin-badge) {
    width: 90px !important;
    min-width: 90px !important;
    max-width: 90px !important;
  }

  body.hub-public-react-shell .nav-locale-wrap {
    display: none !important;
  }

  body
    .nav-actions
    > .btn.btn-primary[data-nav-free-simulator]
    .nav-cta-label-desktop {
    display: none !important;
  }

  body
    .nav-actions
    > .btn.btn-primary[data-nav-free-simulator]
    .nav-cta-label-mobile {
    display: inline-flex !important;
  }
}

@media (max-width: 1180px) {
  html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-admin-mobile-action {
    display: inline-flex !important;
  }

  html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-admin-action {
    display: none !important;
  }
}

body.mobile-menu-open #epso-cookie-banner {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
  body.hub-public-react-shell:not(.hub-nav-admin)
  .btn.nav-preview-link,
body.hub-public-react-shell.hub-nav-admin .btn.nav-preview-link {
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  flex: 0 0 44px !important;
  padding: 0 !important;
}

html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
  body.hub-public-react-shell:not(.hub-nav-admin)
  .btn.nav-preview-link
  span,
body.hub-public-react-shell.hub-nav-admin .btn.nav-preview-link span {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

/* First-paint frame lock for SPA route changes. */
body.hub-public-react-shell .brand > span:not(.nav-admin-badge),
body.hub-public-react-shell .brand > span:not(.nav-admin-badge) strong {
  font-family: "Inter Tight", Inter, ui-sans-serif, system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-weight: 860 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
}

body.hub-public-react-shell .brand > span:not(.nav-admin-badge) {
  color: var(--tm-ink, #07101d) !important;
}

body.hub-public-react-shell .brand > span:not(.nav-admin-badge) strong {
  color: var(--tm-gold-strong, #a77a1f) !important;
}

@media (min-width: 769px) {
  body.hub-public-react-shell:not(.hub-nav-admin) .nav-actions {
    width: 381px !important;
    min-width: 381px !important;
    max-width: 381px !important;
    flex: 0 0 381px !important;
    justify-content: flex-start !important;
    gap: 9px !important;
  }

  body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-locale-wrap {
    order: 10 !important;
  }

  body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-sep.nav-public-action {
    order: 20 !important;
    display: inline-flex !important;
    width: 1px !important;
    min-width: 1px !important;
    max-width: 1px !important;
    flex: 0 0 1px !important;
  }

  body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .btn.nav-login-link {
    order: 30 !important;
    width: var(--tm-login-width, 124px) !important;
    min-width: var(--tm-login-width, 124px) !important;
    max-width: var(--tm-login-width, 124px) !important;
    flex: 0 0 var(--tm-login-width, 124px) !important;
  }

  body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .btn.btn-primary[data-nav-free-simulator] {
    order: 40 !important;
  }

  body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-auth-action.nav-icon-btn {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    flex: 0 0 44px !important;
  }

  body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    .nav-profile-pill {
    width: 204px !important;
    min-width: 204px !important;
    max-width: 204px !important;
    flex: 0 0 204px !important;
  }
}

/* Desktop frame lock v15: deterministic columns per auth state. */
body.hub-public-react-shell .brand,
body.hub-public-react-shell .brand > span:not(.nav-admin-badge),
body.hub-public-react-shell .brand > span:not(.nav-admin-badge) strong {
  font-family: "Inter Tight", Inter, ui-sans-serif, system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

@media (min-width: 1181px) {
  body.hub-public-react-shell:not(.hub-nav-admin) .nav-actions {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: 0 !important;
    align-items: center !important;
    justify-content: start !important;
    column-gap: 9px !important;
    row-gap: 0 !important;
    width: 381px !important;
    min-width: 381px !important;
    max-width: 381px !important;
    flex: 0 0 381px !important;
  }

  html:not([data-epso-auth-state="authenticated"])
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions {
    grid-template-columns: 68px 1px 124px 161px !important;
  }

  html:not([data-epso-auth-state="authenticated"])
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-locale-wrap {
    grid-column: 1 !important;
    order: 0 !important;
  }

  html:not([data-epso-auth-state="authenticated"])
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-sep.nav-public-action {
    grid-column: 2 !important;
    order: 0 !important;
    display: inline-flex !important;
    width: 1px !important;
    min-width: 1px !important;
    max-width: 1px !important;
    flex: 0 0 1px !important;
  }

  html:not([data-epso-auth-state="authenticated"])
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .btn.nav-login-link {
    grid-column: 3 !important;
    order: 0 !important;
    width: 124px !important;
    min-width: 124px !important;
    max-width: 124px !important;
    flex: 0 0 124px !important;
  }

  html:not([data-epso-auth-state="authenticated"])
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .btn.btn-primary[data-nav-free-simulator] {
    grid-column: 4 !important;
    order: 0 !important;
    width: 161px !important;
    min-width: 161px !important;
    max-width: 161px !important;
    flex: 0 0 161px !important;
  }

  html[data-epso-auth-state="authenticated"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions {
    grid-template-columns: 68px 44px 204px !important;
  }

  html[data-epso-auth-state="authenticated"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-locale-wrap {
    grid-column: 1 !important;
    order: 0 !important;
  }

  html[data-epso-auth-state="authenticated"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-notification-btn.nav-auth-action {
    grid-column: 2 !important;
    order: 0 !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
  }

  html[data-epso-auth-state="authenticated"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-user-wrap.nav-auth-action {
    grid-column: 3 !important;
    order: 0 !important;
    width: 204px !important;
    min-width: 204px !important;
    max-width: 204px !important;
  }

  html[data-epso-auth-state="authenticated"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-user-wrap.nav-auth-action
    .nav-profile-pill,
  html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-user-wrap.nav-admin-action
    .nav-profile-pill {
    width: 204px !important;
    min-width: 204px !important;
    max-width: 204px !important;
  }

  html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-notification-btn.nav-auth-action,
  html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-user-wrap.nav-auth-action {
    display: none !important;
  }

  html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .btn.nav-preview-link {
    grid-column: 2 !important;
    order: 0 !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
  }

  html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
    body.hub-public-react-shell:not(.hub-nav-admin)
    .nav-actions
    > .nav-user-wrap.nav-admin-action {
    grid-column: 3 !important;
    order: 0 !important;
    width: 204px !important;
    min-width: 204px !important;
    max-width: 204px !important;
  }
}

/* State visibility lock v16: final display authority for route-change frames. */
body.hub-public-react-shell .nav,
body.hub-public-react-shell .nav :is(a, button, span, strong) {
  font-family: "Inter Tight", Inter, ui-sans-serif, system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

html[data-epso-auth-state="authenticated"]
  body.hub-public-react-shell:not(.hub-nav-admin)
  :is(.nav-public-action, .mobile-menu-public),
body.hub-public-react-shell.hub-nav-admin
  :is(.nav-public-action, .nav-auth-action, .mobile-menu-public, .mobile-menu-auth) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html:not([data-epso-auth-state="authenticated"])
  body.hub-public-react-shell
  :is(
    .nav-auth-action,
    .nav-admin-action,
    .nav-auth-mobile-action,
    .nav-admin-mobile-action,
    .nav-auth-links,
    .nav-admin-links,
    .mobile-menu-auth,
    .mobile-menu-admin,
    .nav-admin-badge
  ) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html[data-epso-auth-state="authenticated"][data-epso-owner-state="owner"]
  body.hub-public-react-shell:not(.hub-nav-admin)
  :is(.nav-auth-action, .nav-auth-mobile-action, .nav-auth-links, .mobile-menu-auth) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
