/* General Styles */
body {
    font-family: 'Open Sans', sans-serif;
}

.container {
    padding: 15px; /* Default padding for all sizes, overridden in media queries */
}

.img-fluid {
    max-width: 100%;
    height: auto;
}

/* Typography and Links */
h1, h2 {
    margin-top: 20px;
    margin-bottom: 10px;
    font-weight: 600;
}

h3, h4 {
    font-size: 18px;
    margin-top: 20px;
    font-weight: 600;
}
hr {
    border: none;
    height: 1px;
    background-color: #ccc;
    margin-top: 5px;
}

p {
    margin-bottom: 15px;
    line-height: 1.8em; /* Unified line-height for paragraphs */
}

a {
    color: #007bff;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/* Lists */
ul {
    padding-left: 20px;
}

li {
    margin-bottom: 5px;
}

/* Navbar and Dropdowns */
.nav-item:hover {
    background-color: #eee;
    border-radius: 10px;
}

.dropdown-submenu {
    position: relative;
}

.dropdown-submenu .dropdown-menu {
    top: 0;
    left: 100%;
    margin-top: -1px;
}

.dropdown-submenu > a::after {
    content: "\f0da"; /* Font Awesome right-arrow */
    float: right;
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
}

/* Image and Shadow Enhancements */
.full-width-image {
    width: 100%; /* Ensures the container takes up full width of its parent */
    height: 200px; /* Fixed height for the container */
    overflow: hidden; /* Hides anything beyond the boundaries of the container */
    position: relative; /* Needed to properly position the image if necessary */
}

.full-width-image img {
    width: 100%; /* Ensures the image takes up the full width of its container */
    height: auto; /* Maintains the aspect ratio of the image */
    min-height: 100%; /* Ensures the image covers the full height of its container */
    object-fit: cover; /* Ensures the image covers the container area without distortion */
    position: absolute; /* Allows precise positioning if needed */
    top: 50%; /* Positions the center of the image in the middle vertically */
    transform: translateY(-50%); /* Moves the image up by half its height to center vertically */
}


.custom-shadow {
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    h1, h2 {
        margin-top: 15px;
        margin-bottom: 8px;
    }

    .container {
        padding: 10px;
    }
}

@media (min-width: 992px) {
    .full-width-image img {
        height: 100%;
    }
}

/* General styles for the container and article for better layout */
.container {
    max-width: 960px;
    margin: auto;
    padding: 20px;
}

article {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    padding: 20px;
    border-radius: 8px;
}

.article-section img {
    float: left; /* Aligns the image to the left */
    margin-right: 20px; /* Adds spacing between the image and the text */
    max-width: 100%; /* Makes the image responsive */
    width: 300px; /* Gives a default width */
    height: auto; /* Maintains the aspect ratio */
}

.article-section {
    overflow: hidden; /* Clears the float */
    border: 1px solid #dee2e6;
    padding: 20px;
    border-radius: 8px;
    background-color: #fff;
}

/* Section styles */
.section {
    border: 2px solid #eee;
    padding: 20px;
    margin-top: 20px;
    background-color: #f8f9fa;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,123,255,.2);
}

.section h4 {
    margin-top: 0;
    background-color: #333;
    color: white;
    padding: 8px 15px;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0,0,0,.1);
}

.article-item {
    display: block; /* Ensure that it behaves as a traditional block element */
    overflow: hidden; /* Clears the float */
}

.img-thumbnail {
    float: left; /* Confirm float left */
    margin-right: 15px; /* Ensure some spacing between text and image */
    width: 100px; /* Fixed width */
    height: auto; /* Maintain aspect ratio */
}

.content-wrap {
    display: inline-block;
    vertical-align: top;
    width: calc(100% - 120px); /* Subtract image width and margin */
}
