
/* Hover pop for menu items (non-intrusive) */
.nav a:hover, .navbar a:hover, [class*="menu"] a:hover {
  transform: translateY(-1px) scale(1.03);
  transition: transform 180ms ease;
}

/* Floating hero cards */
@keyframes gentle-float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-6px); }
  100% { transform: translateY(0px); }
}

/* Navbar shrink class (applied by JS) */
.navbar, nav, .site-header {
  transition: all 200ms ease;
}
.navbar.shrink, nav.shrink, .site-header.shrink {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  box-shadow: 0 4px 18px rgba(0,0,0,0.08);
}


/* Make native selects visible if previous custom-select hid them */
.native-select, select.native-select, form select.native-select {
  appearance: auto;
  -webkit-appearance: auto;
  -moz-appearance: auto;
  display: block;
  width: 100%;
  min-width: 12rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 0.5rem;
  background: rgba(0,0,0,0.2);
  color: inherit;
}
/* Ensure dropdowns render above other elements */
select { position: relative; z-index: 5; }

.floating-card {
  animation: gentle-float 3s ease-in-out infinite;
  will-change: transform;
}



/* Allow hover lift without killing the loop */
.floating-card:hover {
  transform: translateY(-8px);
  animation-play-state: paused;
}

/* Offset scroll position for fixed header */
html {
  scroll-padding-top: calc(var(--header-offset, 0px) + 12px);
}

/* Prevent fixed header from obscuring scroll targets */
section[id], div[id][data-scroll-offset], form[id] {
  scroll-margin-top: calc(var(--header-offset, 0px) + 12px);
}

section[data-scroll-anchor] :is(h1, h2, h3, h4, h5, h6) {
  scroll-margin-top: calc(var(--header-offset, 0px) + 12px);
}

/* Hero min-height adjustment */
.hero-offset-100 { min-height: calc(100vh - 100px); }
/* Fit hero to viewport minus fixed header */
.hero-fit { min-height: calc(100vh - var(--header-offset, 0px)); }
/* Brand text vertical centering on shrink */
header.fixed .brand-text { display:flex; flex-direction:column; justify-content:flex-start; height:100%; transition: transform 600ms ease, opacity 600ms ease; }
header.fixed.shrink .brand-text { justify-content:center; transform: translateY(-6px); }

header.fixed.shrink .brand-text > div:nth-child(2) { opacity: 0; max-height: 0; transform: translateY(-4px); pointer-events: none; }

header.fixed .brand-text > div:nth-child(2) { transition: opacity 600ms ease, max-height 600ms ease, transform 600ms ease; opacity: 1; max-height: 20px; overflow: hidden; }

header.fixed .brand-text > div:first-child { transition: transform 600ms ease; transform-origin: left center; }
header.fixed.shrink .brand-text > div:first-child { transform: scale(0.8); }
