/* Alternating photo columns, confined to the homepage hero. */
.hero.summit-hero-mosaic {
    position: relative;
    isolation: isolate;
    min-height: clamp(660px, calc(100svh - 92px), 1000px);
    margin: 0;
    padding: 100px 24px 80px;
    overflow: hidden;
    display: grid;
    align-items: end;
    justify-items: center;
    background: #062c20;
    color: #fff;
    text-align: center;
}
.hero-photo-wall { position: absolute; inset: 0; z-index: -3; overflow: hidden; pointer-events: none; }
.hero-photo-grid {
    --photo-gap: 16px;
    --photo-height: clamp(230px, 24vw, 370px);
    position: absolute;
    top: -42%;
    left: 50%;
    width: max(134%, 1550px);
    height: 190%;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--photo-gap);
    transform: translateX(-50%) rotate(-12deg);
}
.hero-photo-column { min-width: 0; overflow: hidden; }
.hero-photo-track {
    display: flex;
    flex-direction: column;
    animation: hero-column-rise var(--column-duration, 64s) linear infinite;
    animation-delay: var(--column-delay, 0s);
    will-change: transform;
}
.hero-photo-column-down .hero-photo-track { animation-direction: reverse; }
.hero-photo-group { display: flex; flex-direction: column; gap: var(--photo-gap); padding-bottom: var(--photo-gap); flex-shrink: 0; }
.hero-photo-tile { height: var(--photo-height); flex-shrink: 0; overflow: hidden; border-radius: 8px; background: #154635; }
.hero-photo-tile img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
@keyframes hero-column-rise { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, -50%, 0); } }
.hero-mosaic-shade {
    position: absolute;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(3,31,22,.38), rgba(3,31,22,.56) 35%, rgba(3,31,22,.78)), radial-gradient(ellipse at 50% 57%, rgba(3,31,22,.42), transparent 80%);
}
.hero-mosaic-content { width: min(100%, 1000px); position: relative; }
.hero.summit-hero-mosaic h1 {
    margin: 0 auto 24px;
    font: 700 clamp(3.5rem, 5.9vw, 6.3rem)/1.02 'Ubuntu', sans-serif;
    letter-spacing: -.045em;
    text-wrap: balance;
    color: #fff;
}
.hero.summit-hero-mosaic h1 span { color: #63cc49; }
.hero.summit-hero-mosaic p { max-width: 700px; margin: 0 auto 30px; font-size: clamp(.98rem, 1.15vw, 1.15rem); line-height: 1.75; color: #f0f5f0; opacity: 1; text-wrap: pretty; }
.hero-mosaic-actions { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }
.hero-mosaic-actions a { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 14px 24px; border-radius: 5px; font: 800 .85rem/1.4 'Mulish', sans-serif; text-decoration: none; transition: background .2s, transform .2s; }
.hero-mosaic-primary { background: #63cc49; color: #072b1a; border: 1px solid #63cc49; }
.hero-mosaic-primary:hover { background: #80df68; transform: translateY(-2px); }
.hero-mosaic-date { margin-top: 24px; font-size: .73rem; color: #d6e8dc; display: flex; justify-content: center; align-items: center; gap: 9px; }
.hero-mosaic-date > span { width: 6px; height: 6px; border-radius: 50%; background: #63cc49; flex-shrink: 0; }
.hero-motion-toggle {
    position: absolute;
    right: 24px;
    bottom: 22px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 10px 12px;
    min-height: 36px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.25);
    background: rgba(5,36,24,.55);
    color: #e3eee6;
    font: 600 .7rem/1.3 'Mulish', sans-serif;
    cursor: pointer;
}
.hero-motion-toggle[hidden], .hero-motion-toggle svg[hidden] { display: none; }
.summit-hero-mosaic.is-motion-paused .hero-photo-track { animation-play-state: paused; }
@media (max-width: 760px) {
    .hero.summit-hero-mosaic { min-height: max(640px, calc(100svh - 76px)); padding: 100px 24px 80px; }
    .hero-photo-grid { --photo-height: 240px; --photo-gap: 12px; width: 1450px; top: -42%; }
    .hero.summit-hero-mosaic h1 { font-size: clamp(2.7rem, 8vw, 4rem); letter-spacing: -.04em; }
    .hero-desktop-break { display: none; }
    .hero-mosaic-date { max-width: 280px; margin: 22px auto 0; font-size: .68rem; }
    .hero-motion-toggle { right: 16px; bottom: 18px; }
}
@media (max-width: 420px) {
    .hero-mosaic-actions { gap: 10px; }
    .hero-mosaic-actions a { width: min(100%, 260px); }
    .hero.summit-hero-mosaic { padding-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .hero-photo-track { animation: none; transform: translate3d(0, -18%, 0); will-change: auto; }
    .hero-photo-column-down .hero-photo-track { transform: translate3d(0, -28%, 0); }
    .hero-mosaic-actions a { transition: none; }
}
