/* Decorative photo/motion layer. Existing compact hero dimensions stay intact. */
.ahi-dir-hero { position: relative; isolation: isolate; overflow: hidden; background: #142540; }
.ahi-dir-hero::before,
.ahi-dir-hero::after { display: none; }
.ahi-dir-hero > .ahi-dir-container { position: relative; z-index: 1; }
.ahi-hero-backdrop { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; user-select: none; }
.ahi-hero-photo-grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2px; background: #142540; }
.ahi-hero-photo-cell { position: relative; overflow: hidden; min-width: 0; }
.ahi-hero-photo-cell > picture { position: absolute; inset: 0; overflow: hidden; }
.ahi-hero-photo-cell img { position: absolute; width: 200%; height: 200%; max-width: none; object-fit: cover; opacity: .9; }
.ahi-hero-photo-cell-1 img { left: 0; top: 0; }
.ahi-hero-photo-cell-2 img { left: -100%; top: 0; }
.ahi-hero-photo-cell-3 img { left: 0; top: -100%; }
.ahi-hero-photo-cell-4 img { left: -100%; top: -100%; }
.ahi-hero-blue-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(110deg,rgba(20,37,64,.87),rgba(30,58,95,.74) 45%,rgba(20,37,64,.84));
}
.ahi-hero-bubbles { position: absolute; inset: 0; overflow: hidden; --bubble-rise: -470px; }
.ahi-hero-bubble {
  position: absolute; left: var(--bubble-left); bottom: calc(-1 * var(--bubble-size));
  width: var(--bubble-size); height: var(--bubble-size); border-radius: 50%;
  border: 1px solid rgba(226,238,255,.5); background: rgba(221,236,255,.22); opacity: 0;
  /* One short pass, all ending within4.6s. No endless compositor workload. */
  animation: ahi-hero-rise 4.6s linear var(--bubble-delay) 1 both;
}
@keyframes ahi-hero-rise {
  0% { opacity: 0; transform: translate3d(0,0,0) scale(.9); }
  12% { opacity: .18; }
  76% { opacity: .12; }
  100% { opacity: 0; transform: translate3d(var(--bubble-drift),var(--bubble-rise),0) scale(1.06); }
}
.ahi-dir-hero:focus-within .ahi-hero-bubble,
.ahi-dir-hero[data-motion="paused"] .ahi-hero-bubble,
html[data-ahi-motion="paused"] .ahi-hero-bubble { animation-play-state: paused; }
@media (hover:hover) { .ahi-dir-hero:hover .ahi-hero-bubble { animation-play-state: paused; } }
@media (max-width:640px) {
  .ahi-hero-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(0,1fr)); }
  .ahi-hero-blue-overlay { background: linear-gradient(165deg,rgba(20,37,64,.83),rgba(30,58,95,.76) 46%,rgba(20,37,64,.9)); }
  .ahi-hero-bubbles { --bubble-rise: -560px; }
}
@media (prefers-reduced-motion:reduce) {
  .ahi-hero-bubble { animation: none!important; opacity: .055; transform: translate3d(0,-120px,0); }
}
@media (forced-colors:active) {
  .ahi-hero-backdrop { display: none; }
}
