h2 {
    font-weight: 900 !important;
}


h3 {
    font-weight: 600 !important;
}

/* Fullscreen gallery: make a section fill the viewport and have images cover each column */
.section-fullscreen-gallery {
    height: 30vh;
    overflow: hidden;
}
.section-fullscreen-gallery .row {
    height: 100%;
    display: flex;
    flex-wrap: nowrap;
    margin: 0; /* ensure no outer spacing */
}
.section-fullscreen-gallery .row > div {
    flex: 1 1 0;
    height: 100%;
    padding: 0; /* ensure images reach edges */
}
.section-fullscreen-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Mobile: stack gallery images vertically for narrow viewports */
@media (max-width: 767px) {
    .section-fullscreen-gallery {
        height: auto; /* allow natural height when stacked */
    }
    .section-fullscreen-gallery .row {
        flex-direction: column;
        height: auto;
    }
    .section-fullscreen-gallery .row > div {
        height: auto;
        width: 100%;
    }
    .section-fullscreen-gallery img {
        height: auto;
        object-fit: cover; /* still cover each block but natural height allowed */
    }
}

/* Simple utility to center images horizontally when they are narrower than their container */
.centered {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Make width-30 behave as a max-width so centered logos don't overflow on small screens */
.img-width-logo {
    max-width: 30%;
    width: auto;
      object-fit: cover; /* Crops the image to fill the container */

}

/* Increase img-width-logo on phones */
@media (max-width: 767px) {
    .img-width-logo {
        max-width: 60% !important;
    }
}

/* Ensure banner is a positioning context for absolute elements */
.banner {
    position: relative;
}

/* Bouncing down arrow in hero (appears near bottom center) */
.hero-scroll-down {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 3em;
    display: inline-block;
    text-decoration: none;
    z-index: 20;
    opacity: 0.95;
}
.hero-scroll-down svg {
    display: block;
    width: 36px;
    height: 36px;
}

@keyframes hero-bounce {
    0% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(8px); }
    100% { transform: translateX(-50%) translateY(0); }
}

@media (prefers-reduced-motion: no-preference) {
    .hero-scroll-down {
        animation: hero-bounce 1.6s ease-in-out infinite;
    }
}

@media (max-width: 767px) {
    .hero-scroll-down { bottom: 3rem; }
    .hero-scroll-down svg { width: 28px; height: 28px; }
}

/* Reduce hero/banner height on phones for faster scanning */
@media (max-width: 767px) {
    .banner.height-100-viewport {
        height: 80vh !important;
        min-height: 320px; /* prevent too-small touch targets on modern phones */
        background-position: center 30% !important; /* favor upper subject */
    }
    /* Make sure centered banner content stays vertically centered within the shorter hero */
    .banner .position-center {
        transform: translate(-50%, -40%); /* lift content a bit */
    }
}



.logo-center {  
justify-content: center;
}









