/* Global reset for margins, padding, and box-sizing */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* General body styling - sets up the page's background, font, and center alignment */
body {
    font-family: 'Poppins', sans-serif; /* Applies the Poppins font to the entire page */
    background: #fff;
    display: flex; /* Enables flexbox layout */
    justify-content: center; /* Centers content horizontally */
    align-items: center; /* Centers content vertically */
    height: 100vh; /* Sets the height of the viewport to 100% of the view height */
    text-align: center; /* Centers text alignment */
    color: white; /* Sets the text color to white */
}

/* Container for the entire slider section including the title and slider itself */
.background {
    width: 100%; /* Sets the width to fill the available space */
    height: 100%; /* Sets the height to fill the available space */
    position: relative; /* Allows for absolute positioning of child elements */
    display: flex; /* Enables flexbox layout */
    flex-direction: column; /* Aligns items in a column (vertical stack) */
    justify-content: center; /* Centers content vertically */
    align-items: center; /* Centers content horizontally */
}

/* Styling for the title above the slider */
.slider-title {
    font-size: 4rem; /* Large font size for the title */
    margin-bottom: 20px; /* Space below the title */
    font-weight: 600; /* Semi-bold font weight */
}

/* Main container for the slider - this holds the images and navigation buttons */
.slider-container {
    position: relative; /* Allows for absolute positioning of navigation buttons */
    width: 60%; /* Sets the slider width to 60% of the parent container */
    max-width: 800px; /* Maximum width for larger screens */
    overflow: hidden; /* Hides the overflow content (only one image is visible at a time) */
    border-radius: 10px; /* Rounds the corners of the slider */
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1); /* Adds a subtle shadow for depth */
}

/* Flexbox container that holds all the slides */
.slider {
    display: flex; /* Enables flexbox layout to line up slides horizontally */
    transition: transform 0.4s ease-in-out; /* Smooth transition when sliding between images */
}

/* Each individual slide - takes up full width of the container */
.slide {
    min-width: 100%; /* Each slide takes up 100% of the slider container's width */
    height: 450px; /* Fixed height for each slide */
    transition: transform 0.5s ease-in-out; /* Smooth transition when slides are changed */
}

/* Ensures that images fill the slide area while maintaining aspect ratio */
.slide img {
    width: 100%; /* Image width matches the slide width */
    height: 100%; /* Image height matches the slide height */
    object-fit: cover; /* Images are scaled to cover the entire slide, cropping if necessary */
    border-radius: 10px; /* Rounds the corners of the images to match the slider */
}

/* Common styling for both previous and next navigation buttons */
.prev, .next {
    position: absolute; /* Absolute positioning within the slider container */
    top: 50%; /* Centers the button vertically */
    transform: translateY(-50%); /* Offsets the button position by half its height */
    background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent black background */
    color: white; /* White color for the arrow icons */
    border: none; /* Removes default button borders */
    width: 40px; /* Fixed width for the buttons */
    height: 40px; /* Fixed height for the buttons */
    cursor: pointer; /* Changes the cursor to pointer on hover */
    z-index: 10; /* Ensures buttons appear above the slider content */
    border-radius: 50%; /* Makes the buttons round */
    transition: background-color 0.3s ease; /* Smooth transition for background color on hover */
    display: flex; /* Enables flexbox for centering the arrow inside the button */
    justify-content: center; /* Centers arrow horizontally */
    align-items: center; /* Centers arrow vertically */
    padding: 0; /* Removes any default padding */
}

/* Positioning the previous button to the left */
.prev {
    left: 10px; /* Positions the button 10px from the left edge */
}

/* Positioning the next button to the right */
.next {
    right: 10px; /* Positions the button 10px from the right edge */
}

/* Hover effect for navigation buttons */
.prev:hover, .next:hover {
    background-color: rgba(0, 0, 0, 0.8); /* Darkens the button background on hover */
}

/* Container for the dot indicators below the slider */
.dots-container {
    margin-top: 20px; /* Space above the dots */
    display: flex; /* Enables flexbox layout for horizontal alignment */
    justify-content: center; /* Centers the dots horizontally */
    align-items: center; /* Centers the dots vertically */
}

/* Common styling for each individual dot */
.dot {
    height: 15px; /* Fixed height for the dots */
    width: 15px; /* Fixed width for the dots */
    margin: 0 5px; /* Spacing between the dots */
    background-color: rgb(255, 174, 158); /* Semi-transparent white background */
    border-radius: 50%; /* Makes the dots round */
    display: inline-block; /* Ensures dots are inline */
    cursor: pointer; /* Changes cursor to pointer on hover */
    transition: background-color 0.3s ease; /* Smooth transition for background color on hover */
}

/* Styling for the active dot - indicates the current slide */
.dot.active {
    background-color: rgb(195, 193, 176); /* Solid white background for the active dot */
}