/* Topbar glass ambient — home + lista + scheda (sticky su .topbar, effetti su .topbar-glass-shell) */

body.portal-list-ambient.is-topbar-glass-on .topbar,
body.portal-detail-ambient.is-topbar-glass-on .topbar,
body.portal-home-ambient.is-topbar-glass-on .topbar {
  position: sticky !important;
  top: 0;
  z-index: 40;
  overflow: visible;
  background: transparent !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: none !important;
  box-shadow: none;
}

body.portal-list-ambient.is-topbar-glass-on .topbar-glass-shell,
body.portal-detail-ambient.is-topbar-glass-on .topbar-glass-shell,
body.portal-home-ambient.is-topbar-glass-on .topbar-glass-shell {
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: blur(22px) saturate(1.35);
  -webkit-backdrop-filter: blur(22px) saturate(1.35);
  border-bottom: 1px solid rgba(var(--brand-rgb), 0.14);
  box-shadow:
    0 10px 36px rgba(var(--brand-rgb), 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

body.portal-list-ambient.is-topbar-glass-on .topbar-glass-shell::before,
body.portal-detail-ambient.is-topbar-glass-on .topbar-glass-shell::before,
body.portal-home-ambient.is-topbar-glass-on .topbar-glass-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0.52) 46%,
    transparent 100%
  );
  transform: translateX(-130%);
}

body.portal-list-ambient.is-topbar-glass-on .topbar-glass-shell:hover::before,
body.portal-detail-ambient.is-topbar-glass-on .topbar-glass-shell:hover::before,
body.portal-home-ambient.is-topbar-glass-on .topbar-glass-shell:hover::before {
  opacity: 1;
  animation: portal-topbar-shine 1.15s ease forwards;
}

@keyframes portal-topbar-shine {
  to {
    transform: translateX(130%);
  }
}

body.portal-list-ambient.is-topbar-glass-on .topbar-inner,
body.portal-detail-ambient.is-topbar-glass-on .topbar-inner,
body.portal-home-ambient.is-topbar-glass-on .topbar-inner {
  position: relative;
  z-index: 1;
}

body.portal-list-ambient.is-topbar-glass-on .topbar-glass-shell::after,
body.portal-detail-ambient.is-topbar-glass-on .topbar-glass-shell::after,
body.portal-home-ambient.is-topbar-glass-on .topbar-glass-shell::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 0;
  z-index: 1;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(var(--brand-rgb), 0.42),
    transparent
  );
}

body.portal-list-ambient.is-topbar-glass-on .topbar-glass-shell.is-lang-open::after,
body.portal-list-ambient.is-topbar-glass-on .topbar-glass-shell:has(.portal-lang-switcher.is-lang-open)::after,
body.portal-detail-ambient.is-topbar-glass-on .topbar-glass-shell.is-lang-open::after,
body.portal-detail-ambient.is-topbar-glass-on .topbar-glass-shell:has(.portal-lang-switcher.is-lang-open)::after,
body.portal-home-ambient.is-topbar-glass-on .topbar-glass-shell.is-lang-open::after,
body.portal-home-ambient.is-topbar-glass-on .topbar-glass-shell:has(.portal-lang-switcher.is-lang-open)::after {
  opacity: 0;
}

body.portal-list-ambient.is-topbar-glass-on .portal-topbar input,
body.portal-list-ambient.is-topbar-glass-on .portal-topbar select,
body.portal-detail-ambient.is-topbar-glass-on .portal-topbar input,
body.portal-home-ambient.is-topbar-glass-on .portal-topbar input,
body.portal-detail-ambient.is-topbar-glass-on .portal-topbar select,
body.portal-home-ambient.is-topbar-glass-on .portal-topbar select {
  background: rgba(255, 255, 255, 0.9) !important;
  border-color: rgba(var(--brand-rgb), 0.16) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

body.portal-list-ambient.is-topbar-glass-on .portal-topbar input:focus,
body.portal-list-ambient.is-topbar-glass-on .portal-topbar select:focus,
body.portal-detail-ambient.is-topbar-glass-on .portal-topbar input:focus,
body.portal-home-ambient.is-topbar-glass-on .portal-topbar input:focus,
body.portal-detail-ambient.is-topbar-glass-on .portal-topbar select:focus,
body.portal-home-ambient.is-topbar-glass-on .portal-topbar select:focus {
  outline: none;
  border-color: rgba(var(--brand-rgb), 0.38) !important;
  box-shadow:
    0 0 0 3px rgba(var(--brand-rgb), 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

body.portal-list-ambient.is-topbar-glass-on .portal-topbar .btn-primary,
body.portal-detail-ambient.is-topbar-glass-on .portal-topbar .btn-primary,
body.portal-home-ambient.is-topbar-glass-on .portal-topbar .btn-primary {
  box-shadow: 0 8px 22px rgba(var(--brand-rgb), 0.28);
}

body.portal-list-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-topbar-entrance-target,
body.portal-detail-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-topbar-entrance-target,
body.portal-home-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-topbar-entrance-target {
  opacity: 0;
  transform: translateY(-14px);
  animation: portal-topbar-entrance 0.72s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

body.portal-list-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-topbar-brand,
body.portal-detail-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-topbar-brand,
body.portal-home-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-topbar-brand {
  animation-delay: 0.02s;
}

body.portal-list-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-col-search,
body.portal-detail-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-col-search,
body.portal-home-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-col-search {
  animation-delay: 0.1s;
}

body.portal-list-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-topbar-stack,
body.portal-detail-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-topbar-stack,
body.portal-home-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-topbar-stack {
  animation-delay: 0.18s;
}

body.portal-list-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-col-actions,
body.portal-detail-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-col-actions,
body.portal-home-ambient.is-topbar-entrance-on.is-topbar-entrance-play .portal-col-actions {
  animation-delay: 0.28s;
}

@keyframes portal-topbar-entrance {
  from {
    opacity: 0;
    transform: translateY(-14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

body.portal-list-ambient[data-portal-list-ambient-freeze="1"] .portal-topbar-entrance-target,
body.portal-detail-ambient[data-portal-detail-ambient-freeze="1"] .portal-topbar-entrance-target,
body.portal-home-ambient[data-portal-home-ambient-freeze="1"] .portal-topbar-entrance-target {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.portal-list-ambient.is-topbar-entrance-on .portal-topbar-entrance-target,
  body.portal-detail-ambient.is-topbar-entrance-on .portal-topbar-entrance-target,
  body.portal-home-ambient.is-topbar-entrance-on .portal-topbar-entrance-target {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  body.portal-list-ambient.is-topbar-glass-on .topbar-glass-shell::before,
  body.portal-detail-ambient.is-topbar-glass-on .topbar-glass-shell::before,
  body.portal-home-ambient.is-topbar-glass-on .topbar-glass-shell::before {
    opacity: 0 !important;
  }
}
