* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

h1,h2,h3,h4,h5,h6{
    font-family: 'poppins', sans-serif;
}

p,a,input,label,textarea,span,ul,li{
    font-family: 'poppins', sans-serif;
}

body {
    font-family: 'poppins', sans-serif;
    background-color: #f5f5f5;
}

/* hero-banner.css
   Slider layout & responsive rules (full-width on desktop)
   - Slider is full-bleed (touching browser edges) on desktop as requested
   - Images use object-fit: cover so they match the div height responsively
   - Slower transition and smoother animations
   - Scoped to slider elements only
*/

/* Full-bleed slider container: spans the full browser width */
.slider-container {
    width: 100%;
    margin: 0;                /* full-bleed: no horizontal centering/gutter */
    overflow: hidden;
    position: relative;
    box-sizing: border-box;
}

/* The sliding track: flex layout so slides sit side-by-side */
.slider {
    display: flex;
    flex-wrap: nowrap;
    transition: transform 1.2s ease-in-out; /* slowed transition for smoother feel */
    will-change: transform;
    width: 100%;
}

/* Each slide takes full width of the container */
.slide {
    flex: 0 0 100%;
    max-width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px; /* reasonable baseline height */
    box-sizing: border-box;
}

/* Ensure slide images fill the area while preserving aspect ratio */
.slide img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* fills the slide while preserving aspect ratio */
    display: block;
}

/* Navigation dots (below the slider) */
.slider-nav {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
}

.slider-dot {
    width: 10px;
    height: 10px;
    background: #ccc;
    border-radius: 50%;
    cursor: pointer;
}

.slider-dot.active {
    background: #233b55; /* accent color */
}

/* Prev/Next buttons positioned over the slider */
.prev-btn,
.next-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    background: rgba(0,0,0,0.45);
    color: #fff;
    border: none;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
    padding: 0;
}

.prev-btn { left: 12px; }
.next-btn { right: 12px; }

.prev-btn:hover,
.next-btn:hover {
    background: rgba(0,0,0,0.6);
}

/* Make buttons slightly smaller on narrow screens */
@media (max-width: 768px) {
    .prev-btn, .next-btn {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
}

/* Slide height adjustments for responsiveness */
@media (max-width: 1024px) {
    .slide { min-height: 260px; }
}

@media (max-width: 768px) {
    .slider-container { max-width: 100%; }
    .slide { min-height: 200px; }
}

/* Accessibility: visible focus outlines for controls */
.prev-btn:focus, .next-btn:focus, .slider-dot:focus {
    outline: 3px solid rgba(35,59,85,0.25);
    outline-offset: 2px;
}