/**
* Template Name: Eterna - v2.0.0
* Template URL: https://bootstrapmade.com/eterna-free-multipurpose-bootstrap-template/
* Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/
*/

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/
body {
  font-family: "Open Sans", sans-serif;
  color: #444444;
  overflow-x: hidden;
 
  

a {
  color: #FF0000;
}

a:hover {
  color: #e6573f;
  text-decoration: none;
}

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

/*--------------------------------------------------------------
# Back to top button
--------------------------------------------------------------*/
.back-to-top {
  position: fixed;
  display: none;
  right: 15px;
  bottom: 15px;
  z-index: 99999;
}

.back-to-top i {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  width: 40px;
  height: 40px;
  border-radius: 4px;
  background: #FF0000;
  color: #fff;
  transition: all 0.4s;
}

.back-to-top i:hover {
  background: #e6573f;
  color: #000000;
}

/*--------------------------------------------------------------
# Top Bar
--------------------------------------------------------------*/
 /* Top Bar Styles */
        .top-bar {
            background-color: #000;
            color: #fff;
            padding: 10px 0;
            font-size: 12px;
        }
		.auth-links a {
			font-size: 16px;
		  }

        .top-bar a {
            color: #fff;
            text-decoration: none;
            transition: color 0.3s;
        }

        .top-bar a:hover {
            color: white;
        }

        .top-bar .social-links a {
            font-size: 14px;
        }

/* Mobile: show only first 3 social icons */
@media (max-width: 575px) {
  #topbar .social-links a:nth-child(n+4) {
    display: none !important;
  }
}
@media (max-width: 575px) {
  .auth-links a {
    font-size: 14px;
  }

  .auth-links i {
    font-size: 13px;
  }
}


        /* Main Navbar Styles */
        .main-navbar {
            background-color: #fff;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            padding: 15px 0;
        }

        .navbar-brand {
            font-size: 28px;
            font-weight: bold;
            margin: 0;
        }

        .navbar-brand .text-primary {
            color: #03F !important;
            font-family: 'Montserrat', sans-serif;
        }

        .navbar-brand .text-danger {
            color: #F00 !important;
            font-family: 'Segoe UI', cursive;
        }

        .navbar-nav .nav-link {
            color: #000;
            font-weight: 500;
            padding: 8px 15px;
            transition: color 0.3s;
			font-family: 'Poppins', sans-serif;
        }

        .navbar-nav .nav-link:hover,
        .navbar-nav .nav-link.active {
            color: red;
        }

        .navbar-nav .dropdown-menu {
            border: none;
            box-shadow: 0 4px 6px rgba(0,0,0,0.1);
        }

        .navbar-nav .dropdown-item:hover,
        .navbar-nav .dropdown-item.active {
            background-color: #f8f9fa;
            color: #red;
        }

        /* Nested Dropdown */
        .dropdown-submenu {
            position: relative;
        }

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

        /* User Profile Dropdown */
        .user-profile {
            display: flex;
            align-items: center;
            cursor: pointer;
        }

        .user-profile img {
            width: 25px;
            height: 25px;
            border-radius: 50%;
            margin-right: 8px;
        }

        /* Hamburger Menu Customization */
        .navbar-toggler {
            border: none;
            padding: 5px;
        }

        .navbar-toggler:focus {
            box-shadow: none;
        }

        .navbar-toggler-icon {
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
        }

        /* Desktop - Horizontal Layout */
        @media (min-width: 992px) {
            .navbar-nav {
                flex-direction: row;
            }

            .navbar-nav .nav-item {
                margin: 0 5px;
            }

            .navbar-nav .dropdown-menu {
                position: absolute;
            }

            /* Nested dropdown hover */
            .dropdown-submenu:hover > .dropdown-menu {
                display: block;
            }
        }

        /* Mobile Responsive Refinements */
@media (max-width: 991px) {
    .navbar-collapse {
        /* 1. Push menu toward the middle */
        padding-left: 30px; 
        padding-right: 30px;

        /* 2. Defined Menu Area */
        background-color: #fcfcfc; /* Very light gray */
        border-radius: 12px;       /* Soft corners */
        margin-top: 10px;          /* Space between logo and menu */
        
        /* 3. Professional Shadow */
        box-shadow: 0 10px 25px rgba(0,0,0,0.08); 
        
        /* 4. Animation fix */
        transition: all 0.3s ease-in-out;
    }

    .navbar-nav .nav-link {
        padding: 12px 0;
        border-bottom: 1px solid #f0f0f0; /* Subtle separators */
    }

    /* Remove the last border-bottom for a cleaner look */
    .navbar-nav .nav-item:last-child .nav-link {
        border-bottom: none;
    }

    /* User Profile adjustment for mobile */
    .user-profile {
        padding: 15px 0;
        border-bottom: 1px solid #f0f0f0;
        margin-bottom: 5px;
    }
}

/* Fix for Elite Submenu on Mobile */
@media (max-width: 991px) {
    /* Prevent the submenu from hiding or floating to the right */
    .dropdown-submenu .dropdown-menu {
        position: static !important;
        display: none; /* Controlled by the toggle */
        float: none;
        width: 100%;
        margin-left: 20px; /* Indent to show it's a sub-item */
        box-shadow: none;
        background-color: transparent;
        border-left: 2px solid #f0f0f0; /* Visual guide for depth */
    }

    /* Show the submenu when the parent is clicked/open */
    .dropdown-submenu.show .dropdown-menu {
        display: block;
    }

    /* Adjust the toggle arrow for mobile */
    .dropdown-submenu .dropdown-toggle::after {
        transform: rotate(0deg);
        transition: transform 0.3s;
    }
    .dropdown-submenu.show .dropdown-toggle::after {
        transform: rotate(90deg); /* Points down when open */
    }
}
/*--------------------------------------------------------------
/*--------------------------------------------------------------
# Hero Section (Bootstrap 5 compatible)
--------------------------------------------------------------*/

#hero {
  width: 100%;
  height: 70vh;
  background-color: rgba(59, 59, 59, 0.8);
  overflow: hidden;
  padding: 0;
  margin-bottom: -120px;
  position: relative;
  z-index: 1;
}

#hero .carousel,
#hero .carousel-inner,
#hero .carousel-item {
  height: 70vh;
}

#hero .carousel-item {
  width: 100%;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
}

/* Overlay */
#hero .carousel-item::before {
  content: "";
  background-color: rgba(255, 255, 255, 0.6);
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* Center content */
#hero .carousel-container {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 120px;
}

/* Container Size Reduction */
#hero .carousel-content {
  text-align: center;
  max-width: 800px; /* Limits the width of the text area */
  margin: 0 auto;
  padding: 0 20px;
}

/* Remove Title Shadow and fix colors */
#hero h2 {
  color: #070707;
  margin-bottom: 20px;
  font-size: 48px;
  font-weight: 700;
  text-shadow: none !important; /* Removes the shadow */
}

#hero h2 .highlight-blue {
  color: blue !important;
}

#hero h2 span:not(.highlight-blue) {
  color: #FC0A0A; /* Red color for 'Ayiti' */
}

/* Improved Arrow Appearance */
#hero .carousel-control-prev-icon,
#hero .carousel-control-next-icon {
  background-color: rgba(0, 0, 0, 0.5); /* Circular dark background */
  background-size: 50% 50%;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  filter: invert(0); /* Keeps background dark, icon white */
}

#hero .carousel-control-prev-icon:hover,
#hero .carousel-control-next-icon:hover {
  background-color: #000; /* Turns red on hover */
}

/* Paragraph adjustment for smaller container */
#hero p {
  font-size: 18px;
  text-align: center; /* Changed from justified for better flow in small containers */
  max-width: 90%;
  margin-left: auto;
  margin-right: auto;
}
/* Paragraph */
#hero p {
  margin: 0 auto 30px auto;
  color: #000;
  font-family: 'Inter', 'Segoe UI', Roboto, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  text-align: justify;
  animation-delay: 0.4s;
  
}

/* Bootstrap 5 fade fix */
.carousel-fade .carousel-item {
  opacity: 0;
  transition: opacity 0.6s ease-in-out;
}

.carousel-fade .carousel-item.active {
  opacity: 1;
  z-index: 2;
}

/* Controls */
#hero .carousel-control-prev,
#hero .carousel-control-next {
  width: 10%;
  z-index: 3;
}

#hero .carousel-control-prev-icon,
#hero .carousel-control-next-icon {
  width: 3rem;
  height: 3rem;
  filter: invert(1);
}

/* Indicators (Bootstrap 5 buttons) */
#hero .carousel-indicators {
  bottom: 180px;
}

#hero .carousel-indicators button {
  background-color: #FF0000;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  opacity: 0.3;
}

#hero .carousel-indicators .active {
  opacity: 1;
}

/* Button */
#hero .btn-get-started {
  font-family: "Raleway", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 1px;
  padding: 12px 32px;
  border-radius: 50px;
  transition: 0.5s;
  margin: 10px;
  color: #fff;
  border: 2px solid black;
  background: gray;
  animation-delay: 0.8s;
}

#hero .btn-get-started:hover {
  background: transparent;
  color: #FF0000;
  text-decoration: none;
}
/* Optimized Mobile Fix for Libere Ayiti */
@media (max-width: 768px) {
  #hero,
  #hero .carousel,
  #hero .carousel-inner,
  #hero .carousel-item {
    /* Increased slightly from 55 to allow room for the button */
    height: 65vh !important; 
  }

  /* Reduce negative margin so cards don't climb too high */
  #hero {
    margin-bottom: -80px; 
  }

  #hero .carousel-container {
    /* Adjust padding to keep content centered but safe */
    padding-bottom: 80px; 
  }

  /* Fix Title Overflow */
  #hero h2 {
    font-size: 28px; /* Smaller to prevent forced line breaks */
    line-height: 1.2;
    margin-bottom: 15px;
    padding: 0 10px;
  }

  /* Fix Paragraph Alignment */
  #hero p {
    font-size: 15px;
    line-height: 1.4;
    text-align: center; /* Center alignment looks better than justified on narrow screens */
    padding: 0 15px;
    margin-bottom: 20px;
  }

  /* Adjust Indicators to stay above the cards */
  #hero .carousel-indicators {
    bottom: 100px;
  }
}

/*--------------------------------------------------------------
# Sections General
--------------------------------------------------------------*/
section {
  padding: 0 0 20px 0;
}

.section-bg {
  background-color: white;
}

.section-title {
  text-align: center;
  padding-bottom: 10px;
}

.section-title h2 {
  font-size: 28px;
  font-weight: 600;
  margin-bottom: 20px;
  padding-bottom: 20px;
  position: relative;
  font-family: "Poppins", sans-serif;
}

.section-title h2::after {
  content: '';
  position: absolute;
  display: block;
  width: 50px;
  height: 3px;
  background: #FF0000;
  bottom: 0;
  left: calc(50% - 25px);
}

.section-title p {
  margin-bottom: 0;
}

/*--------------------------------------------------------------
# Breadcrumbs
--------------------------------------------------------------*/
.breadcrumbs {
  padding: 40px 0 20px 0;
  background: #f7f7f7;
  border-bottom: 1px solid #ededed;
  margin-bottom: 40px;
}

.breadcrumbs h2 {
  font-size: 28px;
  font-weight: 700;
  color: #4D4D4F;
}

.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0 0 5px 0;
  margin: 0;
  font-size: 14px;
}

.breadcrumbs ol li + li {
  padding-left: 10px;
}

.breadcrumbs ol li + li::before {
  display: inline-block;
  padding-right: 10px;
  color: #6e6e6e;
  content: "/";
}
/* New CSS added on Februrary 17, 2026 for the ressource card on the home page*/

/* Container & Layout */
/* ==========================================================================
   REFINED FEATURED SECTION - Matches Original Aesthetics
   ========================================================================== */
/* Container & Layout */
.featured {
    padding-top: 80px; /* Prevents overlap with the carousel */
    background-color: #f9f9f9;
}

.libere-card-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
}

/* Card Styling */
.libere-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    height: 100%; /* Important for equal height in grid */
    overflow: hidden;
    transition: transform 0.3s ease;
    border: none;
}

.libere-card:hover {
    transform: translateY(-8px);
}

/* Image Section */
.libere-card-image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

/* Content Section */
.libere-card-content {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Pushes footer to the bottom */
}

.libere-card-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 12px;
    min-height: 3rem; /* Ensures titles take up same space */
}

/* Description with truncation */
.libere-card-description {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.6;
    margin-bottom: 15px;
    
    /* Limits text to 3 lines and adds ellipsis (...) */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    height: 4.8em; /* 3 lines * 1.6 line-height */
}

/* Footer Section */
.libere-card-footer {
    margin-top: auto; /* Aligns footer at the bottom */
    padding-top: 15px;
    border-top: 1px solid #f0f0f0;
}

.read-more {
    font-size: 0.85rem;
    color: #007bff;
    text-decoration: none;
}

.haitian-link {
    color: #ff0000;
    font-weight: bold;
    text-decoration: underline;
}
/* --- Fix Counts Section Animation & Size --- */
/* --- Count Box Alignment (Tight Coupling Model) --- */
.counts .count-box {
    padding: 20px;
    width: 100%;
    background: #fff;
    box-shadow: 0px 0 30px rgba(1, 41, 112, 0.08);
    border-radius: 8px;
    display: flex; 
    flex-wrap: wrap;       
    align-items: center;   
    justify-content: center; 
}

.counts .count-box i {
    font-size: 36px; 
    line-height: 1;        /* Tightens vertical space */
    margin-right: 8px;     /* Minimal space to keep them from touching */
    padding: 0;
    color: #0d6efd;        /* Haitian Flag Blue */
}

.counts .count-box span {
    font-size: 32px !important;
    display: inline-block; 
    font-weight: 700;
    line-height: 1;        /* Keeps number aligned with icon height */
    margin: 0;
    padding: 0;
    font-family: "Poppins", sans-serif;
}

/* Force the description to drop below the icon+number pair */
.counts .count-box p {
    flex: 0 0 100%;        
    margin-top: 10px;      /* Space between the top pair and the legend */
    margin-bottom: 0;
    padding: 0;
    font-family: "Poppins", sans-serif;
    font-size: 14px !important;
    font-weight: 600;
    text-align: center;
}

.counts .count-box small {
    flex: 0 0 100%;
    text-align: center;
    margin-top: 4px;
}

/* --- Progress Bar Fix --- */
/* --- Progress Bar Modernization --- */
.skills .progress {
    height: 8px !important; /* Sleek, thinner bars */
    border-radius: 10px;
    background: #ebebeb;
    margin-bottom: 25px;
    overflow: visible; /* Allows the percentage label to sit nicely */
}
.count-box .purecounter {
    vertical-align: middle;
    line-height: 1; /* Prevents the 'invisible box' around text from pushing the icon away */
}
/* Updated Statistics Font */
.skills .skill {
    font-family: 'Montserrat', sans-serif !important; /* Modern, professional font */
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #000;
    margin-bottom: 8px;
}

/* Target the percentage value (e.g., 18.2%) */
.skills .skill .val {
    font-family: 'Poppins', sans-serif; /* Keep it clean and modern */
    font-size: 14px !important;        /* Increase this value to make it bigger */
    font-weight: 700 !important;       /* Makes it bold for better visibility */
    color: #000;                    /* You can change the color to match your bars */
    font-style: normal;
    float: right;
}

/* --- Dynamic Colors for the Bars --- */
/* This will cycle colors based on the order of your items */
.skills-content .progress-item:nth-child(5n+1) .progress-bar { background-color: #0d6efd; } /* Primary Blue */
.skills-content .progress-item:nth-child(5n+2) .progress-bar { background-color: #6610f2; } /* Indigo */
.skills-content .progress-item:nth-child(5n+3) .progress-bar { background-color: #198754; } /* Success Green */
.skills-content .progress-item:nth-child(5n+4) .progress-bar { background-color: #ffc107; } /* Warning Yellow */
.skills-content .progress-item:nth-child(5n+5) .progress-bar { background-color: #dc3545; } /* Danger Red */

/* Smooth animation for the bars */
.progress-bar {
    transition: width 1.5s ease-in-out;
    border-radius: 10px;
}
/* --------------------------------------------------
   Force propositions to stay on ONE line
-------------------------------------------------- */
/* --------------------------------------------------
   FORCE single-line proposition layout
-------------------------------------------------- */

#vote li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  line-height: 1.3;
  padding-bottom: 6px;
}

/* Proposition text */
#vote li .flex-grow-1 {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Vote action container */
#vote li .flex-grow-1 > div {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}

/* Remove Bootstrap button height inflation */
#vote button.btn {
  padding: 2px 5px !important;
  min-height: auto !important;
  line-height: 1 !important;
}

/* Thumbs icons smaller + shorter */
.fa-regular.fa-thumbs-up,
.fa-regular.fa-thumbs-down {
  font-size: 12px;
  line-height: 1;
  vertical-align: middle;
}

/* Vote counts */
.likes-count,
.dislikes-count {
  font-size: 12px;
  line-height: 1;
  margin-left: 2px;
}

/* Check icon */
.about .content ul i {
  font-size: 13px;
  margin-top: 1px;
}

/* Standardizing the Section Typography */
.about, #contribution {
    padding: 60px 0;
    color: #444;
}

.about h3, .about h2 {
    font-size: 1.75rem; /* Standard Heading Size */
    font-weight: 700;
    margin-bottom: 20px;
    color: #151B54;
}

.about p {
    font-size: 1rem; /* Standard 16px font size */
    line-height: 1.6; /* Breathing room between lines */
    margin-bottom: 15px;
    color: #555;
    text-align: justify;
    hyphens: auto; /* Prevents large gaps in justified text */
}

/* Ensure images don't get too massive */
.about img {
    max-width: 100%;
    height: auto;
}

/* Link Styling */
.about a {
    color: #007bff;
    text-decoration: none;
    font-weight: 600;
}

.about a:hover {
    text-decoration: underline;
}

/* Mobile Optimization */
@media (max-width: 768px) {
    .about, #contribution {
        padding-left: 20px;  /* Adds space on the left */
        padding-right: 20px; /* Adds space on the right */
    }

    .about h3, .about h2 {
        font-size: 1.5rem;    /* Slightly smaller headers for mobile screens */
        text-align: center;   /* Optional: centers titles on mobile for better look */
    }

    .about p {
        text-align: left;     /* Justified text often looks "broken" on narrow mobile screens */
        font-size: 0.95rem;   /* Standard mobile readability size */
    }
    
    .about img {
        margin-top: 20px;     /* Adds space between the text and image when they stack */
    }
}


/* --------------------------------------------------
   Very small screens (iPhone 12 mini)
-------------------------------------------------- */
@media (max-width: 390px) {

  #vote li {
    font-size: 13px;
  }

  .fa-regular.fa-thumbs-up,
  .fa-regular.fa-thumbs-down {
    font-size: 11px;
  }

  .likes-count,
  .dislikes-count {
    font-size: 11px;
  }

  
}


/*--------------------------------------------------------------
# Our Services
--------------------------------------------------------------*/
.services .icon-box {
  text-align: center;
  border: 1px solid #ededed;
  padding: 80px 20px;
  transition: all ease-in-out 0.3s;
}

.services .icon-box .icon {
  margin: 0 auto;
  width: 64px;
  height: 64px;
  background: #FF0000;
  border-radius: 5px;
  transition: all .3s ease-out 0s;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  transform-style: preserve-3d;
}

.services .icon-box .icon i {
  color: #fff;
  font-size: 28px;
}

.services .icon-box .icon::before {
  position: absolute;
  content: '';
  left: -8px;
  top: -8px;
  height: 100%;
  width: 100%;
  background: #fbe2dd;
  border-radius: 5px;
  transition: all .3s ease-out 0s;
  transform: translateZ(-1px);
}

.services .icon-box h4 {
  font-weight: 700;
  margin-bottom: 15px;
  font-size: 24px;
}

.services .icon-box h4 a {
  color: #545454;
}

.services .icon-box p {
  line-height: 24px;
  font-size: 14px;
  margin-bottom: 0;
}

.services .icon-box:hover {
  background: #FF0000;
  border-color: #FF0000;
}

.services .icon-box:hover .icon {
  background: #fff;
}

.services .icon-box:hover .icon i {
  color: #FF0000;
}

.services .icon-box:hover .icon::before {
  background: #ef9383;
}

.services .icon-box:hover h4 a, .services .icon-box:hover p {
  color: #fff;
}

/*--------------------------------------------------------------
# Our Clients
--------------------------------------------------------------*/

/* Section text */
.slider-custom-style h2 {
  font-size: 24px;          /* Smaller title */
  font-weight: 700;
}

.slider-custom-style .section-description {
  text-align: center;
  font-size: 16px;
  color: #444;
  margin-bottom: 35px;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  
}

/* Item card */
.slider-custom-style .item-card {
  text-align: center;
  padding: 10px;
  transition: transform 0.3s ease;
  font-size: 14px;
  box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.15);
}

.slider-custom-style .item-card:hover {
  transform: translateY(-6px);
}

/* Image */
.slider-custom-style .img-container {
  overflow: hidden;
  border-radius: 6px;
  margin-bottom: 12px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
}

.slider-custom-style .img-container img {
  height: 240px;
  width: 100%;
  object-fit: cover;
  transition: transform 0.4s ease, filter 0.4s ease;
}

/* Image hover */
.slider-custom-style .item-card:hover img {
  transform: scale(1.06);
  filter: brightness(0.85);
}

/* Text links */
.slider-custom-style .item-info a {
  color: #000;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  transition: color 0.3s ease;
}

/* Hover */
.slider-custom-style .item-info a:hover {
  color: #FF0000;
}

/* Visited link */
.slider-custom-style .item-info a:visited {
  color: #333;
}

/* Horizontal scroll (carousel replacement) */
/* --- Centering the Slider Content --- */
.slider-custom-style .slider-row {
  display: flex;
  gap: 25px;
  overflow-x: auto;
  padding-bottom: 15px;
  scroll-snap-type: x mandatory;
  /* Add these two lines to center the items */
  justify-content: center; 
  flex-wrap: nowrap;
}

/* --- Fix: Black Text for Name & Alias --- */
/* Your HTML used .item-card a, not .item-info a */
.slider-custom-style .item-card a, 
.slider-custom-style .item-card span {
  color: #000000 !important; /* Force black */
  text-decoration: none !important; /* Keep it clean */
  font-size: 14px;
  display: block;
  margin-top: 10px;
}

.slider-custom-style .item-card a:hover {
  color: #FF0000 !important; /* Red on hover */
}
/* Mobile – iPhone 12 mini */
@media (max-width: 390px) {
  .slider-custom-style h2 {
    font-size: 22px;
  }

  .slider-custom-style .section-description {
    font-size: 14px;
    margin-bottom: 25px;
  }

  .slider-custom-style .img-container img {
    height: 190px;
  }

  .slider-custom-style .item-card {
    flex: 0 0 160px;
  }
}

/*-------------------------Other CSS added by Fred to fix margin-------------------------------------*/


# Counts
--------------------------------------------------------------*/
.counts .count-box {
  box-shadow: -10px -5px 40px 0 rgba(0, 0, 0, 0.1);
  padding: 30px;
  width: 100%;
}

.counts .count-box i {
  display: block;
  font-size: 30px;
  color: #FF0000;
  float: left;
}

.counts .count-box span {
  font-size: 42px;
  line-height: 24px;
  display: block;
  font-weight: 700;
  color: #545454;
  margin-left: 50px;
}

.counts .count-box p {
  padding: 30px 0 0 0;
  margin: 0;
  font-family: "Raleway", sans-serif;
  font-size: 14px;
}

.counts .count-box a {
  font-weight: 600;
  display: block;
  margin-top: 20px;
  color: #7a7a7a;
  font-size: 15px;
  font-family: "Poppins", sans-serif;
  transition: ease-in-out 0.3s;
}

.counts .count-box a:hover {
  color: #a1a1a1;
}

/*--------------------------------------------------------------
# Testimonials
--------------------------------------------------------------*/
.testimonials .testimonial-item {
  box-sizing: content-box;
  padding: 40px;
  box-shadow: 0px 2px 12px rgba(0, 0, 0, 0.08);
  position: relative;
  background: #fff;
}

.testimonials .testimonial-item .testimonial-img {
  width: 90px;
  border-radius: 50px;
  border: 6px solid #fff;
  float: left;
  margin: 0 10px 0 0;
}

.testimonials .testimonial-item h3 {
  font-size: 18px;
  font-weight: bold;
  margin: 10px 0 5px 0;
  color: #111;
}

.testimonials .testimonial-item h4 {
  font-size: 14px;
  color: #999;
  margin: 0;
}

.testimonials .testimonial-item .quote-icon-left, .testimonials .testimonial-item .quote-icon-right {
  color: white;
  font-size: 26px;
}

.testimonials .testimonial-item .quote-icon-left {
  display: inline-block;
  left: -5px;
  position: relative;
}

.testimonials .testimonial-item .quote-icon-right {
  display: inline-block;
  right: -5px;
  position: relative;
  top: 10px;
}

.testimonials .testimonial-item p {
  font-style: italic;
  margin: 15px 0 0 0;
  padding: 0;
}

/*--------------------------------------------------------------
# Our Skills
--------------------------------------------------------------*/
.skills  h3 {
  font-weight: 500;
  font-size: 25px;
  color: #545454;
  font-family: "Poppins", sans-serif;
  margin-bottom: 1px;
  text-align: center;
}

.skills .content ul {
  list-style: none;
  padding: 0;
}

.skills .content ul li {
  padding-bottom: 10px;
}

.skills .content ul i {
  font-size: 16px;
  padding-right: 4px;
  color: #FF0000;
}

.skills .content p:last-child {
  margin-bottom: 0;
}

.skills .progress {
  height: 40px;
  display: block;
  background: none;
}

.skills .progress .skill {
  font-size: 16px;	
  padding: 0;
  margin: 0 0 6px 0;
  text-transform: uppercase;
  display: block;
  font-weight: 400;
  font-family: "Poppins", sans-serif;
  color: #545454;
}

.skills .progress .skill .val {
  float: right;
  font-style: normal;
}

.skills .progress-bar-wrap {
  background: #e0e0e0;
}

.skills .progress-bar {
  width: 6px;
  height: 20px;
  transition: .9s;
  background-color: #0000FF;
 
}

/* Mobile Optimization for Skills Section */
@media (max-width: 768px) {
    .skills {
        /* Adds space on the left and right of the section */
        padding-left: 20px;
        padding-right: 20px;
    }

    .skills h3 {
        font-size: 22px; /* Slightly smaller for mobile headers */
        margin-bottom: 15px;
    }

    /* Ensures the progress bar labels don't get squashed */
    .skills .progress .skill {
        font-size: 14px;
    }

    /* Optional: Improves spacing between list items on touch screens */
    .skills .content ul li {
        padding-bottom: 15px;
    }
}
 /* other css added by Fred on 03/18/2024 */

/*--------------------------------------------------------------
# Portfolio
--------------------------------------------------------------*/
.portfolio .portfolio-item {
  margin-bottom: 30px;
}

.portfolio #portfolio-flters {
  padding: 0;
  margin: 0 auto 25px auto;
  list-style: none;
  text-align: center;
  background: white;
  border-radius: 50px;
  padding: 2px 15px;
}

.portfolio #portfolio-flters li {
  cursor: pointer;
  display: inline-block;
  padding: 8px 20px 12px 20px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  color: #444444;
  margin: 0 4px 8px 4px;
  transition: all ease-in-out 0.3s;
  border-radius: 50px;
  background: #f2f2f2;
}

.portfolio #portfolio-flters li:hover, .portfolio #portfolio-flters li.filter-active {
  background: #FF0000;
  color: #fff;
}

.portfolio #portfolio-flters li:last-child {
  margin-right: 0;
}

.portfolio .portfolio-wrap {
  transition: 0.3s;
  position: relative;
  overflow: hidden;
  z-index: 1;
  background: rgba(84, 84, 84, 0.6);
}

.portfolio .portfolio-wrap::before {
  content: "";
  background: rgba(84, 84, 84, 0.6);
  position: absolute;
  left: 30px;
  right: 30px;
  top: 30px;
  bottom: 30px;
  transition: all ease-in-out 0.3s;
  z-index: 2;
  opacity: 0;
}

.portfolio .portfolio-wrap .portfolio-info {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  text-align: center;
  z-index: 3;
  transition: all ease-in-out 0.3s;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.portfolio .portfolio-wrap .portfolio-info::before {
  display: block;
  content: "";
  width: 48px;
  height: 48px;
  position: absolute;
  top: 35px;
  left: 35px;
  border-top: 3px solid #fff;
  border-left: 3px solid #fff;
  transition: all 0.5s ease 0s;
  z-index: 9994;
}

.portfolio .portfolio-wrap .portfolio-info::after {
  display: block;
  content: "";
  width: 48px;
  height: 48px;
  position: absolute;
  bottom: 35px;
  right: 35px;
  border-bottom: 3px solid #fff;
  border-right: 3px solid #fff;
  transition: all 0.5s ease 0s;
  z-index: 9994;
}

.portfolio .portfolio-wrap .portfolio-info h4 {
  font-size: 20px;
  color: #fff;
  font-weight: 600;
}

.portfolio .portfolio-wrap .portfolio-info p {
  color: #ffffff;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0;
  margin: 0;
}

.portfolio .portfolio-wrap .portfolio-links {
  text-align: center;
  z-index: 4;
}

.portfolio .portfolio-wrap .portfolio-links a {
  color: #fff;
  margin: 0 2px;
  font-size: 28px;
  display: inline-block;
  transition: 0.3s;
}

.portfolio .portfolio-wrap .portfolio-links a:hover {
  color: #FF0000;
}

.portfolio .portfolio-wrap:hover::before {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 1;
}

.portfolio .portfolio-wrap:hover .portfolio-info {
  opacity: 1;
}

.portfolio .portfolio-wrap:hover .portfolio-info::before {
  top: 15px;
  left: 15px;
}

.portfolio .portfolio-wrap:hover .portfolio-info::after {
  bottom: 15px;
  right: 15px;
}

/*--------------------------------------------------------------
# Portfolio Details
--------------------------------------------------------------*/
.portfolio-details .portfolio-title {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 20px;
}

.portfolio-details .portfolio-details-carousel .owl-nav, .portfolio-details .portfolio-details-carousel .owl-dots {
  margin-top: 5px;
  text-align: center;
}

.portfolio-details .portfolio-details-carousel .owl-dot {
  display: inline-block;
  margin: 0 5px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #ddd !important;
}

.portfolio-details .portfolio-details-carousel .owl-dot.active {
  background-color: #FF0000 !important;
}

.portfolio-details .portfolio-info {
  padding-top: 45px;
}

.portfolio-details .portfolio-info h3 {
  font-size: 22px;
  font-weight: 400;
  margin-bottom: 20px;
}

.portfolio-details .portfolio-info ul {
  list-style: none;
  padding: 0;
  font-size: 15px;
}

.portfolio-details .portfolio-info ul li + li {
  margin-top: 10px;
}

.portfolio-details .portfolio-info p {
  font-size: 15px;
  padding: 15px 0 0 0;
}

@media (max-width: 992px) {
  .portfolio-details .portfolio-info {
    padding-top: 20px;
  }
}

/*--------------------------------------------------------------
# Pricing
--------------------------------------------------------------*/
.pricing .row {
  padding-top: 40px;
}

.pricing .box {
  padding: 40px;
  margin-bottom: 30px;
  box-shadow: 0px 0px 30px rgba(73, 78, 92, 0.15);
  background: #fff;
  text-align: center;
}

.pricing h3 {
  font-weight: 300;
  margin-bottom: 15px;
  font-size: 28px;
}

.pricing h4 {
  font-size: 46px;
  color: #FF0000;
  font-weight: 400;
  font-family: "Open Sans", sans-serif;
  margin-bottom: 25px;
}

.pricing h4 span {
  color: #bababa;
  font-size: 18px;
  display: block;
}

.pricing ul {
  padding: 0;
  list-style: none;
  color: #999;
  text-align: left;
  line-height: 20px;
}

.pricing ul li {
  padding-bottom: 12px;
}

.pricing ul i {
  color: #FF0000;
  font-size: 18px;
  padding-right: 4px;
}

.pricing ul .na {
  color: #ccc;
}

.pricing ul .na i {
  color: #ccc;
}

.pricing ul .na span {
  text-decoration: line-through;
}

.pricing .buy-btn {
  background: #545454;
  display: inline-block;
  padding: 8px 30px;
  border-radius: 20px;
  color: #fff;
  transition: none;
  font-size: 14px;
  font-weight: 400;
  font-family: "Raleway", sans-serif;
  transition: 0.3s;
}

.pricing .buy-btn:hover {
  background: #FF0000;
}

.pricing .featured {
  z-index: 10;
  margin: -30px -5px 0 -5px;
}

.pricing .featured .buy-btn {
  background: #FF0000;
}

.pricing .featured .buy-btn:hover {
  background: #ee8b7a;
}

@media (max-width: 992px) {
  .pricing .box {
    max-width: 60%;
    margin: 0 auto 30px auto;
  }
}

@media (max-width: 767px) {
  .pricing .box {
    max-width: 80%;
    margin: 0 auto 30px auto;
  }
}

@media (max-width: 420px) {
  .pricing .box {
    max-width: 100%;
    margin: 0 auto 30px auto;
  }
}

/*--------------------------------------------------------------
# Team
--------------------------------------------------------------*/
.team .member {
  text-align: center;
  margin-bottom: 20px;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.1);
  padding: 30px 20px;
  background: #fff;
}

.team .member img {
  max-width: 60%;
  border-radius: 50%;
  margin: 0 0 30px 0;
}

.team .member h4 {
  font-weight: 700;
  margin-bottom: 2px;
  font-size: 18px;
}

.team .member span {
  font-style: italic;
  display: block;
  font-size: 13px;
}

.team .member p {
  padding-top: 10px;
  font-size: 14px;
  font-style: italic;
  color: #aaaaaa;
}

.team .member .social {
  margin-top: 15px;
}

.team .member .social a {
  color: #919191;
  transition: 0.3s;
}

.team .member .social a:hover {
  color: #FF0000;
}

.team .member .social i {
  font-size: 18px;
  margin: 0 2px;
}

/*--------------------------------------------------------------
# Contact
--------------------------------------------------------------*/
.contact .info-box {
  color: #444444;
  text-align: center;
  box-shadow: 0 0 30px rgba(214, 215, 216, 0.6);
  padding: 20px 0 30px 0;
}

.contact .info-box i {
  font-size: 32px;
  color: #FF0000;
  border-radius: 50%;
  padding: 8px;
  border: 2px dotted #fef5f4;
}

.contact .info-box h3 {
  font-size: 20px;
  color: #777777;
  font-weight: 700;
  margin: 10px 0;
}

.contact .info-box p {
  padding: 0;
  line-height: 24px;
  font-size: 14px;
  margin-bottom: 0;
}

.contact .php-email-form {
  box-shadow: 0 0 30px rgba(214, 215, 216, 0.6);
  padding: 30px;
}

.contact .php-email-form .validate {
  display: none;
  color: red;
  margin: 0 0 15px 0;
  font-weight: 400;
  font-size: 13px;
}

.contact .php-email-form .error-message {
  display: none;
  color: #fff;
  background: #ed3c0d;
  text-align: center;
  padding: 15px;
  font-weight: 600;
}

.contact .php-email-form .sent-message {
  display: none;
  color: #fff;
  background: #18d26e;
  text-align: center;
  padding: 15px;
  font-weight: 600;
}

.contact .php-email-form .loading {
  display: none;
  background: #fff;
  text-align: center;
  padding: 15px;
}

.contact .php-email-form .loading:before {
  content: "";
  display: inline-block;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  margin: 0 10px -6px 0;
  border: 3px solid #18d26e;
  border-top-color: #eee;
  -webkit-animation: animate-loading 1s linear infinite;
  animation: animate-loading 1s linear infinite;
}



@-webkit-keyframes animate-loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes animate-loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/*--------------------------------------------------------------
# Blog
--------------------------------------------------------------*/
.blog {
  padding-bottom: 30px;
  
}

.blog .entry {
  padding: 30px;
  margin-bottom: 60px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}
/*-------Related article by Fred ---------------*/
.related_article1 {
  padding-bottom: 20px;
 
}

.related-article {
    display: flex; /* Use flexbox for layout */
    flex-wrap: nowrap; /* Prevent items from wrapping onto new lines */
    justify-content: flex-start; /* Align items at the start of the container */
	padding-bottom: 50px;
}

.related-article-item {
    margin-right: 10px; /* Add some margin between items */
}

.related-article img {
    width: 130px; /* Set the width of the image */
    height: 100px; /* Set the height of the image */
}

.blog .entry .entry-img {
  max-height: 400px;
  margin: -30px -30px 10px -30px;
  overflow: hidden;
}
.avatar {
  max-height: 30px;
  margin: 20px 10px 20px 10px;
  overflow: hidden;
}
.avatar_comment {
  max-height: 40px;
  margin: 10px 10px 1px -30px;
  overflow: hidden;
}

.avatar_ccomment {
  max-height: 40px;
  margin: 10px 10px 1px 30px;
  overflow: hidden;
}
.avatar_ccomment a {
  color: #FF0000;
  transition: 0.3s;
}

/* --- Blog Title Polish --- */
.blog .entry .entry-title {
  font-size: 28px;
  font-weight: 700; /* Standardized bold weight */
  padding: 0;
  margin: 0 0 20px 0;
  line-height: 1.2;
}

.blog .entry .entry-title a {
  color: #000000;
  text-decoration: none !important; /* This removes the Bootstrap 5 underline */
  transition: 0.3s;
}

.blog .entry .entry-title a:hover {
  color: #FF0000;
  text-decoration: none; /* Keeps it clean on hover, or use 'underline' if you want it back only then */
}
/* --- Clean Meta Styles (Replace existing entry-meta) --- */
.entry-meta ul {
    display: flex;
    flex-wrap: wrap;       /* Allows views/comments to drop to next line on mobile */
    align-items: center;
    padding: 0;
    margin: 0;
    list-style: none;
    gap: 15px;             /* Modern way to space items without messy margins */
}

.entry-meta ul li {
    display: flex;
    align-items: center;
    color: #777;
    font-size: 14px;
}

.entry-meta ul li a {
    text-decoration: none !important; /* Removes the underline */
    color: #777;
    transition: 0.3s;
}

.entry-meta ul li a:hover {
    color: #FF0000;         /* Highlight on hover */
}

.entry-meta ul li i {
    font-size: 16px;
    margin-right: 6px;
    color: #0d6efd;         /* Theme Blue */
    line-height: 0;
}

/* Fix Avatar size in meta */
.entry-meta .avatar {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    margin-right: 8px;
    object-fit: cover;
}

/* --- Entry Content & Overview --- */
.blog .entry .entry-content p {
  line-height: 1.6;
  color: #444;
  margin-top: 15px;
  font-size: 16px;
  text-align: justify; /* Keeps the text clean like your 'About' section */
}

/* --- Fixed Read More Button --- */
.blog .entry .entry-content .read-more {
  display: flex !important;
  justify-content: flex-end !important; /* Force button to the right */
  margin-top: 20px;
}

.blog .entry .entry-content .read-more a {
  display: inline-block;
  background: #FF0000;
  color: #fff;
  padding: 8px 25px; /* Slightly larger for better touch area */
  transition: 0.4s;
  font-size: 14px;
  font-weight: 600;
  border-radius: 50px;
  text-decoration: none !important;
  box-shadow: 0 2px 5px rgba(255, 0, 0, 0.2);
}

.blog .entry .entry-content .read-more a:hover {
  background: #000000;
  transform: translateY(-2px); /* Subtle lift on hover */
}

/* Mobile Fix for Entry Padding */
@media (max-width: 768px) {
  .blog .entry {
    padding: 15px; /* Prevents text from hitting edges on small screens */
  }
  .blog .entry .entry-img {
    margin: -15px -15px 10px -15px; /* Aligns image with new padding */
  }
}
.blog-comments, .reply-form {
    padding: 30px; /* Space inside the comment sections */
    background: #fff;
    margin-bottom: 30px;
}

/* 2. Video Container for TinyMCE */
/* Container controls the height */


/* 3. Related Articles: Same Height Thumbnails & Trimmed Titles */
.related-img-box {
    width: 100%;
    height: 140px; /* Forces same height for all related thumbnails */
    overflow: hidden;
    border-radius: 5px;
}
.related-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures image fills box without stretching */
}
.related-title-text {
    font-size: 14px;
    font-weight: bold;
    color: #df0000;
    margin-top: 8px;
    white-space: nowrap;      /* Keep on one line */
    overflow: hidden;         /* Hide overflow */
    text-overflow: ellipsis;  /* Add "..." if too long */
    display: block;
}

/* 4. Fix the Huge Blue Button */
.btn-submit-custom {
    background: #007bff;
    color: #fff;
    padding: 10px 30px;
    border: none;
    border-radius: 4px;
    font-weight: 600;
    width: auto; /* Prevents stretching to full width */
    display: inline-block;
    transition: 0.3s;
}
.btn-submit-custom:hover {
    background: #0056b3;
}

/* 5. Comment Section Alignment */
.comment-item {
    margin-bottom: 25px;
    border-bottom: 1px solid #eee;
    padding-bottom: 15px;
}
.avatar-box {
    width: 50px;
    margin-right: 15px;
}
.avatar-box img {
    width: 50px;
    height: 50px;
    object-fit: cover;
    border-radius: 50%;
}


/*end addtional css by Fred*/ 

/* Links in the entry footer */
/* --- Entry Footer (Tags & Social Icons) --- */
.blog .entry .entry-footer {
    padding-top: 15px;
    border-top: 1px solid #f2f2f2;
    margin-top: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Fixes the "Pale" look for Tags */
.blog .entry .entry-footer i {
    color: #555; /* Darker gray for the icons themselves */
    margin-right: 5px;
}

.blog .entry .entry-footer .tags {
    display: inline-block;
    padding: 0;
    margin: 0;
    list-style: none;
}

.blog .entry .entry-footer .tags li {
    display: inline-block;
}

.blog .entry .entry-footer .tags li a {
    color: #777; /* Increased visibility gray */
    font-size: 14px;
    transition: 0.3s;
    text-decoration: none !important;
}

.blog .entry .entry-footer .tags li a:hover {
    color: #FF0000; /* Signature Red highlight */
}

/* Fixes the "Pale" look for Social Share Icons */
.blog .entry .entry-footer .share a {
    color: #777; /* Increased visibility gray */
    margin-left: 12px;
    font-size: 16px;
    transition: 0.3s;
	text-decoration: none
}

.blog .entry .entry-footer .share a:hover {
    color: #000; /* Pop to black on hover */
}

.blog .blog-author {
  padding: 20px;
  margin-bottom: 30px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.blog .blog-author img {
  width: 120px;
  
}

.blog .blog-author h4 {
  margin-left: 140px;
  font-weight: 600;
  font-size: 22px;
  margin-bottom: 0px;
  padding: 0;
}

.blog .blog-author .social-links {
  margin: 0 0 5px 140px;
}

.blog .blog-author .social-links a {
  color: #bababa;
}

.blog .blog-author p {
  margin-left: 140px;
  font-style: italic;
  color: #b7b7b7;
}

/* ==========================================================================
   COMMENT SECTION & REPLY FORM (Refined)
   ========================================================================== */

/* Main Container */
.blog .blog-comments {
    padding: 30px;
    background: #fff;
    margin-bottom: 30px;
}

/* Header/Count Styling */
.blog .blog-comments .comments-count {
    font-size: 18px; /* Standardized small heading */
    font-weight: bold;
    margin-bottom: 25px;
    color: #151B54;
    font-family: "Tahoma", sans-serif;
}

/* Comment Item Structure */
.comment-item {
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f4f4f4;
}

.comment-item:last-child {
    border-bottom: none;
}

/* Avatar Alignment */
.avatar-box {
    flex-shrink: 0;
    margin-right: 15px;
}

.avatar-box img {
    width: 45px;
    height: 45px;
    border-radius: 50%; /* Modern standard for img-circle */
    object-fit: cover;
    display: block;
}

/* Comment Body Text */
.comment-body h5 {
    font-size: 15px; /* Normalized from 16px */
    font-weight: bold;
    margin: 0 0 2px 0;
    color: #444;
}

.comment-body h5 a {
    color: #444;
    text-decoration: none !important;
    transition: 0.3s;
}

.comment-body h5 a:hover {
    color: #FF0000;
}

.comment-body time {
    display: block;
    font-size: 12px; /* Meta info size */
    color: #bababa;
    margin-bottom: 8px;
}

.comment-body p {
    font-size: 14px; /* Fixed: was too big before */
    line-height: 1.5;
    color: #555;
    margin: 0;
}

/* --- Reply Form Styling --- */
.reply-form {
    padding: 30px;
    background: #fff;
    margin-top: 30px;
}

.reply-form h4 {
    font-weight: bold;
    font-size: 18px; /* Balanced with comments-count */
    margin-bottom: 20px;
    color: #151B54;
}

/* Django Form Field Standardization */
.reply-form .form-group {
    margin-bottom: 20px;
}

.reply-form textarea, 
.reply-form input {
    width: 100%;
    border-radius: 5px;
    padding: 12px 15px !important;
    font-size: 14px !important; /* Fixed: was too big */
    border: 1px solid #ddd;
    outline: none;
}

.reply-form textarea:focus, 
.reply-form input:focus {
    border-color: #FF0000;
}

/* Custom Submit Button */
.btn-submit-custom {
    background-color: #000000;
    color: #ffffff;
    padding: 10px 25px;
    border: none;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 600;
    transition: 0.3s;
    cursor: pointer;
}

.btn-submit-custom:hover {
    background-color: #FF0000;
}

/* Login/Auth Button */
.btn-compact {
    font-size: 14px;
    padding: 8px 20px;
    text-decoration: none;
}
/* Force TinyMCE content images to stay within bounds */
.entry-content img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: 8px; /* Optional: makes them look nicer */
    margin: 10px 0;
}
.blog .blog-pagination {
  margin-top: 30px;
  color: #878787;
}

.blog .blog-pagination ul {
  display: flex;
  padding-left: 0;
  list-style: none;
  justify-content: center; /* Centers pagination on the page */
}

.blog .blog-pagination li {
  border: 1px solid #eee; /* Changed from white to light grey to be visible */
  margin: 0 5px;
  transition: 0.3s;
  border-radius: 4px; /* Slight rounding for a modern look */
}

.blog .blog-pagination li a {
  color: #777;
  padding: 6px 14px;
  display: inline-block;
  text-decoration: none !important; /* Removes the underline */
  font-size: 14px; /* Standardized smaller font size */
  font-weight: 500;
}

.blog .blog-pagination li.active, 
.blog .blog-pagination li:hover {
  background: #FF0000;
  border: 1px solid #FF0000;
}

.blog .blog-pagination li.active a, 
.blog .blog-pagination li:hover a {
  color: #fff;
  text-decoration: none !important;
}

.blog .blog-pagination li.disabled {
  background: #f8f9fa;
  border: 1px solid #eee;
  cursor: not-allowed;
}

.blog .blog-pagination li.disabled a,
.blog .blog-pagination li.disabled i {
  color: #ccc;
  padding: 6px 14px;
  display: inline-block;
  pointer-events: none; /* Prevents clicking disabled buttons */
}

/* Sidebar Container */
/* Sidebar Container */
.blog .sidebar {
  background: white;
  padding: 30px;
  margin: 0 0 60px 20px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
}

/* 1. Fix: Padding & Title Polish */
.blog .sidebar .sidebar-title {
  font-size: 18px; /* Slightly smaller for better balance */
  font-weight: 700;
  margin: 0 0 15px 0; /* Reduced bottom margin */
  color: #151B54;
  text-decoration: none !important; /* No underline on titles */
}

/* 2. Fix: Padding Top for Categories/Items */
.blog .sidebar .sidebar-item {
  margin-top: 25px; /* Added spacing between items */
  margin-bottom: 20px;
}

/* 3. Fix: Search Form Height */
.blog .sidebar .search-form form {
  background: #fff;
  border: 1px solid #ddd;
  padding: 2px 5px; /* Significantly reduced vertical padding */
  position: relative;
  border-radius: 50px;
  display: flex;
  align-items: center;
}

.blog .sidebar .search-form form input[type="text"] {
  border: 0;
  padding: 5px 10px; /* Slimmer input height */
  width: 100%;
  outline: none;
  font-size: 14px;
}

.blog .sidebar .search-form form button {
  background: #000;
  color: #fff;
  border: 0;
  border-radius: 50px;
  padding: 5px 15px; /* Slimmer button */
  transition: 0.3s;
  cursor: pointer;
  height: 100%;
}

/* 4. Fix: Meta Spacing (Title and Date) */
.blog .sidebar .sidebar-item ul li {
  padding: 5px 0; /* Reduced from 8px to keep lists tight */
}

.blog .sidebar .sidebar-item ul li a {
  text-decoration: none !important;
  color: #444;
  font-size: 14px;
  line-height: 1.2; /* Tighter line height for titles */
}

.blog .sidebar .sidebar-item ul li span.post-date {
  display: block;
  font-size: 12px;
  color: #999;
  margin-top: 2px; /* Tight spacing between title and date */
}

.search_result a{
  text-decoration: none;
  font-size: 18px;
  color: black;
  display: block;
  border-radius: 50px;
  border: 1;
}

.search_result a:hover {
  color: #FF0000;
  
}

.blog .sidebar .categories ul {
  list-style: none;
  padding: 0;
}

.blog .sidebar .categories ul li + li {
  padding-top: 8px;
}

.blog .sidebar .categories ul a {
  color: #949494;
}

.blog .sidebar .categories ul a:hover {
  color: #FF0000;
}

.blog .sidebar .categories ul a span {
  padding-left: 5px;
  color: #bababa;
  font-size: 14px;
}

.blog .sidebar .recent-posts .post-item + .post-item {
  margin-top: 15px;
  
}

.blog .sidebar .recent-posts img {
  width: 80px;
  float: left;
  
}

.blog .sidebar .recent-posts h4 {
  font-size: 13px;
  margin-left: 95px;
  font-weight: bold;
  margin-bottom: 25px;
}

.blog .sidebar .recent-posts h4 a {
  color: #212121;
  transition: 0.3s;
}

.blog .sidebar .recent-posts h4 a:hover {
  color: #FF0000;
}

.blog .sidebar .recent-posts time {
  display: block;
  margin-left: 95px;
  font-style: italic;
  font-size: 13px;
  color: #bababa;
  
}

.blog .sidebar .tags {
  margin-bottom: -10px;
  margin-top: 15px;
  display: inline-block;
}

.blog .sidebar .tags ul {
  list-style: none;
  padding: 0;
  display: inline-block;
}

.blog .sidebar .tags ul li {
  display: inline-block;
}

.blog .sidebar .tags ul a {
  color: #949494;
  font-size: 14px;
  padding: 6px 15px 8px 15px;
  margin: 0 6px 8px 0;
  border: 1px solid #ededed;
  border-radius: 50px;
  display: inline-block;
  transition: 0.3s;
  
}

.blog .sidebar .tags ul a:hover {
  color: #fff;
  border-color: #FF0000;
  background: #FF0000;
}

.blog .sidebar .tags ul a span {
  padding-left: 5px;
  color: #ededed;
  font-size: 14px;
}
/* Css added for edit and delete article button*/
/* Ensure the flex container is rigid */
.blog-admin-controls.d-flex {
    display: flex !important;
    flex-direction: row;
    align-items: center;
}

/* Make the buttons shorter with consistent vertical alignment */
.blog-admin-controls .btn-sm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-top: 2px !important;
    padding-bottom: 2px !important;
    height: 30px; /* Forces identical height for both link and button */
    line-height: 1;
}

/* Lock the icons to a consistent size */
.blog-admin-controls .btn-sm i {
    margin-right: 5px;
    font-size: 14px;
    display: inline-block;
    vertical-align: middle;
}

/* Remove default form padding that pushes the Delete button down */
#delete-post-form {
    display: inline-flex !important;
    vertical-align: middle;
}

/* CSS added by Fred on Dec. 30, 2025 to make creating article on mobile responsive */

/* Custom Responsive Form Tweaks */
@media (max-width: 576px) {
    /* Ensure the container has breathing room but uses full width */
    .responsive-crispy-form {
        padding: 0 5px;
    }

    /* Force TinyMCE/Content editor to stay within screen bounds */
    .tox-tinymce {
        width: 100% !important;
        min-width: 100% !important;
    }

    /* Make input labels slightly larger for touch readability */
    .responsive-crispy-form label {
        font-weight: 600;
        margin-bottom: 8px;
    }
    
    /* Ensure the submit button is easy to tap on mobile */
    .btn-submit-custom {
        height: 50px;
        font-size: 18px;
    }
/* Desktop breathing room */
@media (min-width: 992px) {
    .responsive-crispy-form {
        padding: 0 20px;
    }
}
	
}
/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
#footer {
  background: #000000;
  padding: 0 0 30px 0;
  color: #fff;
  font-size: 14px;
}

#footer .footer-newsletter {
  padding: 20px 0;
  background: #000000;
}

#footer .footer-newsletter h4 {
  		
  font-size: 24px;
  margin: 0 0 10px 0;
  padding: 0;
  line-height: 1;
  font-weight: 600;
}
#footer .footer-newsletter p {
  font-size: 14px;
  line-height: 1.5;
}


/* Updated Form Container */
#footer .footer-newsletter form {
  margin-top: 30px;
  background: #fff; 
  padding: 2px; /* Small padding creates a nice 'inner' border effect */
  display: flex; /* Switches to flexbox for perfect alignment */
  border-radius: 10px;
  overflow: hidden; /* Ensures the button doesn't spill over the rounded corners */
}

/* Updated Email Input */
#footer .footer-newsletter form input[type="email"] {
  border: 0;
  padding: 10px 15px;
  flex-grow: 1; /* Takes up all available space */
  color: #000000;
  outline: none; /* Removes the blue browser focus ring */
}

/* Updated Submit Button */
#footer .footer-newsletter form input[type="submit"] {
  border: 0;
  background: #FF0000;
  color: #fff;
  font-size: 16px;
  padding: 0 25px;
  cursor: pointer;
  transition: 0.3s;
  border-radius: 8px; /* Slightly smaller than the container for a modern look */
  margin: 2px; /* Creates a small gap inside the white bar */
}

#footer .footer-newsletter form input[type="submit"]:hover {
  background: #000000;
}

#footer .footer-newsletter form input[type="submit"]:hover {
  background: #000000;
}

#footer .footer-top {
  background: #000000;
  border-top: 1px solid #474747;
  border-bottom: 1px solid #474747;
  padding: 60px 0 30px 0;
}

#footer .footer-top .footer-info {
  margin-bottom: 30px;
}

#footer .footer-top .footer-info h3 {
  font-size: 18px;
  margin: 0 0 20px 0;
  padding: 2px 0 2px 0;
  line-height: 1;
  font-weight: 700;
}

#footer .footer-top .footer-info p {
  font-size: 14px;
  line-height: 24px;
  margin-bottom: 0;
  font-family: "Raleway", sans-serif;
  color: #fff;
}

#footer .footer-top .social-links a {
  font-size: 18px;
  display: inline-block;
  background: #0000FF;
  color: #fff;
  line-height: 1;
  padding: 8px 0;
  margin-right: 4px;
  border-radius: 50%;
  text-align: center;
  width: 36px;
  height: 36px;
  transition: 0.3s;
}

#footer .footer-top .social-links a:hover {
  background: #FF0000;
  color: #fff;
  text-decoration: none;
}

#footer .footer-top h4 {
  font-size: 16px;
  font-weight: bold;
  color: #fff;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 12px;
}

#footer .footer-top .footer-links {
  margin-bottom: 30px;
}

#footer .footer-top .footer-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#footer .footer-top .footer-links ul i {
  padding-right: 2px;
  color: #FF0000;
  font-size: 18px;
  line-height: 1;
}

#footer .footer-top .footer-links ul li {
  padding: 10px 0;
  display: flex;
  align-items: center;
}

#footer .footer-top .footer-links ul li:first-child {
  padding-top: 0;
}

#footer .footer-top .footer-links ul a {
  color: #fff;
  transition: 0.3s;
  display: inline-block;
  line-height: 1;
}

#footer .footer-top .footer-links ul a:hover {
  color: #FF0000;
}

#footer .footer-top .footer-contact {
  margin-bottom: 30px;
}

#footer .footer-top .footer-contact p {
  line-height: 26px;
}

#footer .copyright {
  text-align: center;
  padding-top: 30px;
}

#footer .credits {
  padding-top: 10px;
  text-align: center;
  font-size: 13px;
  color: #fff;
}
#footer .footer-newsletter form {
    max-width: 450px;
    margin-left: auto; /* Keeps it aligned to the right side of the column */
}
/* Reduce footer link text */
#footer .footer-top .footer-links ul li a {
  font-size: 14px;
  line-height: 1.4;
}

/* Reduce contact + paragraph text */
#footer .footer-top .footer-contact p,
#footer .footer-top .footer-info p {
  font-size: 14px;
  line-height: 1.5;
}


.contribution-form {
    width: 100%; /* Use percentage to make it responsive */
    max-width: 750px; /* Set a maximum width to avoid it being too wide on large screens */
    margin: 20px auto;
}

.contribution-form form {
    margin-bottom: 15px;
    background: white;
    box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);
    padding: 10px;
    border-top: 1px solid #ddd; /* Add a valid border style */
    border-radius: 8px; /* Use a smaller border radius for a more subtle rounding */
}

.login-form {
  max-width: 600px;          /* Shrinks gracefully on small screens */
  width: 100%;                /* 90% of viewport width for phones */
  margin: 20px auto;
  padding: 0 10px;
}

.login-form form {
  background: #fff;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.3);
  padding: 30px;
  border-radius: 12px;        /* Soft corners, not circle */
}

.login-form img {
  max-width: 120px;
  height: auto;
}

.login-form input,
.login-form button {
  width: 100%;
}

@media (max-width: 576px) {   /* iPhone 12 Mini ≈ 390 px */
  .login-form {
    padding: 10px;
    margin: 10px;
  }
  .login-form form {
    padding: 20px;
  }
  h4 {
    font-size: 1.1rem;
  }
}
.login-form .btn {
  margin-bottom: 10px;
}

/* Ensure the button stays blue and rounded */
/* 1. Make the button text white and bold */
/* The base state of the button */
.login-form .btn-primary {
    background-color: #0d6efd !important;
    color: white !important;
    font-weight: bold !important;
    border: none;
    padding: 10px;
    border-radius: 6px;
    transition: all 0.3s ease; /* This makes the effect smooth */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Subtle shadow */
}

/* The Mouse Overlay (Hover) Effect */
.login-form .btn-primary:hover {
    background-color: #0b5ed7 !important; /* A slightly darker blue */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Deeper shadow makes it 'lift' */
    transform: translateY(-1px); /* Moves the button up by 1 pixel */
    cursor: pointer;
}

/* The 'Click' Effect (Active) */
.login-form .btn-primary:active {
    transform: translateY(0px); /* Pushes it back down when clicked */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* 2. Target the links inside the small class to make them black */
.login-form small a {
    color: #000000 !important;   /* Pure black */
    text-decoration: none;       /* Removes underline by default */
    font-weight: 400;            /* Optional: makes the link text slightly thicker */
}

.login-form small a:hover {
    color: #333333 !important;   /* Dark grey on hover */
    text-decoration: underline;  /* Adds underline back on hover for UX */
}

/* 3. Ensure the grey 'muted' text is also clear */
.text-muted {
    color: #6c757d !important;   /* Standard Bootstrap grey */
}
.login-form .btn-primary:hover {
    background-color: #0b5ed7;
}	
	
.input-group-text {
    background-color: white !important;
    border-left: none !important; /* Removes the line between input and icon */
}

#password {
    border-right: none !important;
}	
	
	
/*-------CSS added by Fred on January 10, 2026 to fix eyes icon issue on login page */
/* 1. Make the icon container blend in */
.login-form .input-group-text {
    background-color: #fff !important; /* White background */
    border-left: none !important;      /* Remove middle border */
    color: #6c757d;                    /* Grey icon color */
    border-top-right-radius: 8px;      /* Match form corners */
    border-bottom-right-radius: 8px;
}

/* 2. Remove the right border of the password input */
.login-form #password {
    border-right: none !important;
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
}

/* 3. Handle focus state (keeps the blue outline around the whole group) */
.login-form .input-group:focus-within {
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    border-radius: 8px;
}

.login-form .input-group:focus-within .form-control,
.login-form .input-group:focus-within .input-group-text {
    border-color: #86b7fe !important;
}

/* 4. Icon hover effect */
#togglePassword:hover {
    color: #0d6efd !important; /* Turns blue when you hover to click */
}	
	
	
/* css added by Fred on 03/20/2024 for voting */


.clearfix::after {
    content: "";
    display: table;
    clear: both;
}

	
    .form-control, .btn {
        min-height: 38px;
        border-radius: 2px;
    }
    .btn {        
        font-size: 15px;
        font-weight: bold;
    }
	
/* CSS for the user profile */	
.card {
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);

    /* REMOVE max-width: 300px — destroys desktop */
    width: 100%;         /* allow fluid resizing */
    max-width: 100%;      /* let container control layout */

    margin: 10px auto;    /* light spacing, still centered */

    text-align: left;     /* better for tables & readability */
}

/* Optional: center only text headers inside card */
.card h3,
.card h2,
.card p.text-center {
    text-align: center;
}

.title {
    color: grey;
    font-size: 18px;
}

/* Full-width on larger screens */
.author-contribution {
    width: 100%;
    max-width: 1200px; 
    margin: 10px auto;
}

/* Form styling */
.author-contribution form {
    margin-bottom: 15px;
    background: white;
    box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);
    padding: 30px;
    border-top: 1px solid;
    border-radius: 10px;
}

/* Responsive styles for small devices */
@media (max-width: 768px) {
    .author-contribution {
        max-width: 100%;    /* Instead of fixed 480px */
        padding: 0 10px;    /* Prevent content touching screen edges */
    }
}

@media (max-width: 576px) {
    .container,
    .author-contribution,
    .card {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}


/* POll CSS add by Fred on 12/09/ 2024 */
.align-right {
    margin-left: auto;
}
/* Itilizatè aktif CSS add by Fred on 01/06/ 2025 */
#user-box-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    font-family: Arial, sans-serif;
}

#user-box-container h1 {
    text-align: center;
    color: #333;
}

.user-box-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px; /* Space between user boxes */
}

.user-box {
    background: #fff;
    border: 1px solid #ddd;
    box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    text-align: center;
    padding: 20px;
    width: 250px;
}

.user-box img {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 10px;
}

.user-box h4 {
    font-size: 18px;
    color: #333;
    margin: 10px 0;
}

.user-box a {
    color: #FF0000;
    text-decoration: none;
    font-weight: bold;
}

.user-box a:hover {
    color: #e6573f;
}
canvas {
        max-height: 500px; /* Increase max height for better visibility */
        width: 100%; /* Ensure it stretches to fit its container */
    }
	
/* Dashboard CSS */

/* Statistics Section */
.statistics {
  padding: 50px 0;
  background-color: #f8f9fa; /* Light background */
}

.statistics .card {
  border: none;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  padding: 20px;
  margin: 20px 0;
}

.statistics .card.income {
  background-color: #fff;
  text-align: center;
}

.statistics .card.income .icon {
  font-size: 40px;
  color: #007bff;
  margin-bottom: 10px;
}

.statistics .card.income .number {
  font-size: 36px;
  font-weight: bold;
}

.statistics .card.data-usage {
  background-color: #ffffff;
}

.statistics .card.data-usage h2 {
  font-size: 20px;
  font-weight: 700;
}

.statistics .card.data-usage #progress-circle {
  width: 80px;
  height: 80px;
  background: #007bff;
  border-radius: 50%;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.statistics .card.user-activity {
  background-color: #ffffff;
}

.statistics .card.user-activity .number {
  font-size: 48px;
  font-weight: bold;
}

.statistics .card.user-activity .progress {
  height: 8px;
  background: #e9ecef;
  border-radius: 50px;
  overflow: hidden;
}

.statistics .card.user-activity .progress-bar {
  background: #007bff;
}

.statistics .page-statistics {
  font-size: 14px;
  color: #6c757d;
}

.statistics .page-statistics-left span,
.statistics .page-statistics-right span {
  display: block;
}

.statistics .page-statistics-left strong,
.statistics .page-statistics-right strong {
  font-size: 18px;
  color: #000;
}
/* Container for the form to center it on the page */
.application-layout {
    display: flex;
    justify-content: center;
    padding: 40px 15px;
    background-color: #f8f9fa; /* Light grey background to make the form pop */
}

/* The actual Form Card */
.form-card {
    background: #ffffff;
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.1);
    
    /* Desktop Requirements */
    width: 100%;
    min-width: 800px;
    max-width: 1200px;
}

/* Specific styling for the form labels and inputs */
.form-group label {
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
    display: block;
    text-align: left;
}

.form-control {
    padding: 12px;
    border-radius: 5px;
    border: 1px solid #ddd;
}

/* Navigation Button Styling */
.btn-danger {
    background-color: #FF0000;
    border-color: #FF0000;
    transition: all 0.3s ease;
}

.btn-danger:hover {
    background-color: #e60000;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(255, 0, 0, 0.3);
}

/* Responsive Adjustments */

/* Tablet and below */
@media (max-width: 992px) {
    .form-card {
        min-width: 90%; /* Scale down gracefully */
    }
}

/* iPhone 12 Mini (Width: 390px) and similar mobiles */
@media (max-width: 430px) {
    .application-layout {
        padding: 10px 0;
    }
    .form-card {
        min-width: 100%;
        max-width: 100%;
        border-radius: 0;
        padding: 20px;
        box-shadow: none;
    }
    .form-actions {
        flex-direction: column-reverse; /* Stack buttons on mobile */
        gap: 15px;
    }
    .btn-lg {
        width: 100%; /* Full width buttons on mobile */
    }
}
.custom-checkbox-container {
    display: flex;
    align-items: flex-start;
    padding-left: 0;
    margin-top: 20px;
    text-align: left;
}

.custom-checkbox-container .form-check-input {
    margin-top: 4px;
    margin-right: 12px;
    cursor: pointer;
    width: 20px;
    height: 20px;
}

.custom-checkbox-container .form-check-label {
    font-weight: 500;
    font-size: 15px;
    cursor: pointer;
    color: #444;
}

/* Ensure the red invalid border shows up clearly on checkboxes */
.form-check-input.is-invalid {
    border: 2px solid #red !important;
    outline: none;
}
	
/* High visibility for error fields */
.form-control.is-invalid {
    border: 2px solid #red !important;
    background-color: #fff8f8 !important;
}

/* Error message styling */
.error-message {
    color: #red;
    font-size: 13px;
    font-weight: bold;
    margin-top: 5px;
    text-align: left;
    display: block;
}

/* Ensure parents have position relative if needed */
.form-group {
    position: relative;
    margin-bottom: 20px;
}

/* custom poll CSS to be remove ( add to a separate sheet later) */
/* ===============================
   Global typography
   =============================== */

/* Neutralizing the 'main' influence for the featured section */
#main #featured {
    font-size: 1rem !important; /* Forces the section back to standard scale */
}

/* High-Specificity Fix for Home Page Cards */
#main #featured .card {
    background: #fff !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    height: 100% !important;
    border: none !important;
    font-size: 1rem !important; /* Ensure text inside card isn't 1.2rem */
}

/* Fix for the card description scale */
#main #featured .card-description {
    font-size: 0.9rem !important; /* Keep this specific for that clean look */
    line-height: 1.5 !important;
}
body, .container {
    font-size: 1.25rem;
}

/* ===============================
   Search bar
   =============================== */

.search-container-fixed {
    border: 2px solid #000;
    border-radius: 4px;
    display: flex;
    overflow: hidden;
    align-items: stretch;
    width: 100%;
}

.search-input-field {
    border: none !important;
    padding: 0 20px;
    height: 40px;
    font-size: 1.2rem;
    flex: 1;
    width: 85%;
}

.search-input-field:focus {
    box-shadow: none;
    outline: none;
}

.search-button-addon {
    background: #000 !important;
    color: #fff !important;
    border: none !important;
    padding: 0;
    height: 40px;
    width: 15%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.search-button-addon:hover {
    background: #333 !important;
}

/* ===============================
   Reusable button size class
   =============================== */

.btn-compact {
    height: 28px;
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: normal;
    font-weight: 600;
    white-space: nowrap;
}

/* ===============================
   Poll list
   =============================== */

.poll-title-link {
    color: #000;
    font-weight: bold;
    text-decoration: none;
    font-size: 1.25rem;
}

.image-placeholder {
    width: 60px;
    height: 60px;
    background: #e9ecef;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    color: #adb5bd;
    font-size: 30px;
}

.list-group-item {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}

/* ===============================
   Filter buttons
   =============================== */

.poll-filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ===============================
   Poll Edit – Choice layout
   =============================== */

.poll-edit-page .choice-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.poll-edit-page .choice-label {
    display: flex;
    align-items: center;
    gap: 12px;
}

.poll-edit-page .choice-label img {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 8px;
    flex-shrink: 0;
}

.poll-edit-page .choice-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* ===============================
   MOBILE - General (tablets and up)
   =============================== */

@media (max-width: 576px) {
    .d-flex.justify-content-between.align-items-center {
        flex-direction: column;
        align-items: stretch !important;
    }

    .poll-filter-group,
    .poll-filter-group > .btn,
    .d-flex.justify-content-between.align-items-center > a {
        width: 100%;
        justify-content: center;
    }
}

/* ===============================
   iPhone 13 mini & Small Devices (≤400px)
   =============================== */

@media (max-width: 400px) {
    
    /* Reduce heading spacing */
    h1, h2 {
        margin-bottom: 1rem !important;
        font-size: 1.5rem;
    }
    
    /* Tighter container spacing */
    .container.mt-5 {
        margin-top: 2rem !important;
    }
    
    /* Filter buttons + Ajoute on SAME LINE */
    .d-flex.justify-content-between.align-items-center.mb-4 {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 6px;
        margin-bottom: 0.75rem !important;
    }
    
    /* Filter buttons stay inline, aligned left */
    .poll-filter-group {
        flex-wrap: nowrap !important;
        gap: 4px;
        width: auto !important;
        flex-shrink: 1;
    }
    
    /* Filter buttons compact */
    .poll-filter-group > .btn {
        width: auto !important;
        flex: 0 0 auto;
        padding: 0 8px;
        font-size: 0.85rem;
    }
    
    /* Ajoute button stays on same line, right side */
    .d-flex.justify-content-between.align-items-center > a {
        width: auto !important;
        flex-shrink: 0;
        margin-bottom: 0 !important;
        padding: 0 10px;
        font-size: 0.85rem;
    }
    
    /* Search bar on its OWN line below */
    .mb-5.px-0 {
        margin-top: 0 !important;
        margin-bottom: 1rem !important;
    }
    
    .search-container-fixed {
        width: 100%;
        display: flex !important;
        flex-wrap: nowrap !important;
    }
    
    .search-input-field {
        height: 42px;
        font-size: 1rem;
        padding: 0 16px;
        flex: 1 !important;
        width: 75% !important;
        min-width: 0;
    }
    
    .search-button-addon {
        height: 42px;
        padding: 0;
        width: 25% !important;
        min-width: 40px;
        flex-shrink: 0 !important;
    }
    
    .search-button-addon i {
        font-size: 1rem;
    }
    
    /* List item refinements - keep everything inline */
    .list-group-item {
        padding: 10px 12px !important;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 10px;
        flex-wrap: nowrap;
    }
    
    .list-group-item > div:first-child {
        flex: 1;
        min-width: 0;
        display: flex;
        align-items: center;
        gap: 10px;
    }
    
    .list-group-item > div:first-child > div {
        display: flex;
        align-items: center;
        gap: 6px;
        flex-wrap: wrap;
    }
    
    .list-group-item > div:last-child {
        flex-shrink: 0;
        display: flex;
        gap: 6px;
        align-items: center;
        flex-wrap: nowrap;
        margin-left: auto;
    }
    
    /* Ensure buttons are visible and properly sized */
    .list-group-item .btn-compact {
        height: 32px;
        padding: 0 10px;
        font-size: 0.85rem;
        flex-shrink: 0;
        display: inline-flex !important;
    }
    
    /* Badge styling - keep inline */
    .list-group-item .badge {
        font-size: 0.75rem;
        padding: 3px 8px;
        flex-shrink: 0;
        display: inline-block;
    }
    
    /* Check icon */
    .list-group-item .fa-check-circle {
        font-size: 1.2rem;
        flex-shrink: 0;
    }
    
    /* Image/placeholder sizing */
    .image-placeholder,
    .list-group-item img {
        width: 50px;
        height: 50px;
        flex-shrink: 0;
    }
    
    .image-placeholder {
        font-size: 24px;
    }
    
    /* Poll title sizing */
    .poll-title-link {
        font-size: 1rem;
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    
    /* Pagination refinement */
    .pagination {
        font-size: 0.9rem;
        gap: 4px;
    }
    
    .page-link {
        padding: 4px 8px;
    }
}

/* ===============================
   Extra small devices (≤360px)
   =============================== */

@media (max-width: 360px) {
    
    h1 {
        font-size: 1.3rem !important;
    }
    
    .poll-filter-group > .btn {
        padding: 0 6px;
        font-size: 0.8rem;
    }
    
    .d-flex.justify-content-between.align-items-center > a {
        padding: 0 8px;
        font-size: 0.8rem;
    }
    
    .poll-filter-group > .btn i,
    .d-flex.justify-content-between.align-items-center > a i {
        margin-right: 2px;
        font-size: 0.8rem;
    }
    
    .search-input-field {
        font-size: 0.95rem;
        padding: 0 12px;
    }
    
    .search-button-addon {
        padding: 0 10px;
    }
    
    /* Force buttons to be visible and maintain size */
    .list-group-item .btn-compact {
        padding: 0 8px !important;
        font-size: 0.8rem !important;
        height: 30px !important;
        min-width: auto !important;
    }
    
    .list-group-item .badge {
        padding: 2px 6px;
        font-size: 0.7rem;
    }
}

/* user info  CSS add by Fred on Dec 2025 to be moved later */
/*--------------------------------------------------------------
# User Cards Custom Styles
--------------------------------------------------------------*/

/* Card Styling */
.card {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

/* Card Title - User Name */
.card-title {
  font-size: 22px;
  font-weight: 700;
  color: #2c3e50;
}

/* Card Text - Make more readable */
.card-body ul li {
  font-size: 15px;
  margin-bottom: 12px;
}

.card-body ul li strong {
  font-size: 14px;
  color: #555;
}

.card-body ul li .text-muted {
  font-size: 15px;
  color: #333 !important;
}

/* Read More Button - Black background, shorter */
.btn-read-more {
  background-color: #000;
  border-color: #000;
  color: #fff;
  padding: 6px 20px;
  font-size: 14px;
  font-weight: 600;
}

.btn-read-more:hover {
  background-color: #333;
  border-color: #333;
  color: #fff;
}

/* Table Styling */
.table {
  font-size: 15px;
}

.table thead th {
  font-size: 16px;
  font-weight: 600;
  background-color: #f8f9fa;
  padding: 12px;
}

.table tbody td {
  padding: 10px 12px;
  vertical-align: middle;
  font-size: 15px;
}

.table tbody td strong {
  font-size: 15px;
}

/* Deta Forensik Button - Shorter and centered */
.btn-forensik {
  padding: 6px 16px;
  font-size: 13px;
  font-weight: 600;
  display: inline-block;
}

/* Center buttons in table cells */
.table tbody td:last-child {
  text-align: center;
  width: 150px;
}

/* Section Heading */
.container h3 {
  font-size: 24px;
  font-weight: 700;
  color: #2c3e50;
  margin-bottom: 20px;
}

/* Pagination */
.pagination {
  font-size: 15px;
}

.pagination .page-link {
  padding: 8px 14px;
}

/* Print Styles */
@media print {
  .card {
    page-break-inside: avoid;
    break-inside: avoid;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  }
  
  .pagination,
  .table {
    display: none;
  }
  
  .btn-read-more {
    display: none;
  }
}

/* Responsive */
@media (max-width: 767px) {
  .card-title {
    font-size: 20px;
  }
  
  .card-body ul li {
    font-size: 14px;
  }
  
  .table {
    font-size: 13px;
  }
  
  .btn-forensik {
    font-size: 12px;
    padding: 5px 12px;
  }
}
/* =========================================================
   Proposition Voting Page Styles
   Modern responsive design with card layout
   Scoped to .proposition-page to avoid conflicts
   ========================================================= */

:root {
    --primary: #2563eb;
    --primary-light: #3b82f6;
    --danger: #ef4444;
    --success: #10b981;
    --dark: #1e293b;
    --gray: #64748b;
    --light-bg: #f8fafc;
}

/* Remove top margin/padding that creates gap */
.proposition-page {
    margin-top: 0 !important;
    padding-top: 0 !important;
}


/* Custom hero section styling */
/* Hero Section */
.proposition-hero {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 60px 0;
    margin-bottom: 40px;
    text-align: center;
}

.hero-content {
    position: relative;
}
.proposition-title {
    font-size: 48px;
    font-weight: 800;
    margin: 10px 0;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}

//* Card styling */
.proposition-page .vote-card {
    background: white;
    border-radius: 16px;
    padding: 32px 24px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.06);
    margin-bottom: 32px;
}

.proposition-page .vote-card h3 {
    font-size: 25px !important;
    font-weight: 700 !important;
    margin-bottom: 24px !important;
    color: var(--primary) !important;
    text-align: center !important;
}

/* --------------------------------------------------
   Dynamic left border based on vote ranking
-------------------------------------------------- */
.proposition-page #vote li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    margin-bottom: 10px;
    background: #f8fafc;
    border-radius: 12px;
    transition: all 0.2s;
    border-left: 4px solid #e2e8f0;
}

/* Top ranked (green) - Apply via Django template: class="rank-1" */
.proposition-page #vote li.rank-1 {
    border-left-color: #10b981;
    background: #f0fdf4;
}

.proposition-page #vote li.rank-2 {
    border-left-color: #22c55e;
    background: #f0fdf4;
}

.proposition-page #vote li.rank-3 {
    border-left-color: #84cc16;
    background: #f7fee7;
}

.proposition-page #vote li.rank-4 {
    border-left-color: #eab308;
    background: #fefce8;
}

.proposition-page #vote li.rank-5 {
    border-left-color: #f59e0b;
    background: #fffbeb;
}

.proposition-page #vote li.rank-6 {
    border-left-color: #f97316;
    background: #fff7ed;
}

.proposition-page #vote li.rank-7 {
    border-left-color: #fb923c;
    background: #fff7ed;
}

.proposition-page #vote li.rank-8 {
    border-left-color: #f87171;
    background: #fef2f2;
}

.proposition-page #vote li.rank-9 {
    border-left-color: #ef4444;
    background: #fef2f2;
}

.proposition-page #vote li.rank-10 {
    border-left-color: #dc2626;
    background: #fef2f2;
}

.proposition-page #vote li:hover {
    transform: translateX(4px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

/* Proposition text and voting container */
.proposition-page #vote li .flex-grow-1 {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.proposition-page .proposition-text {
    font-size: 17px;
    line-height: 1.5;
    color: var(--dark);
    width: 100%;
}

/* Vote action container - horizontal layout */
.proposition-page #vote li .flex-grow-1 > div {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

/* Individual vote button groups */
.proposition-page #vote li .flex-grow-1 > div form {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Remove Bootstrap button height inflation */
.proposition-page #vote button.btn {
    padding: 10px 14px !important;
    min-height: auto !important;
    line-height: 1 !important;
    border-radius: 8px !important;
    font-weight: 500;
    transition: all 0.2s;
    border: 2px solid #000 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.proposition-page .btn-outline-primary {
    border-color: #000 !important;
    color: var(--primary) !important;
    background: white !important;
}

.proposition-page .btn-outline-primary:hover {
    background: var(--primary) !important;
    color: white !important;
    transform: translateY(-2px);
}

.proposition-page .btn-outline-secondary {
    border-color: #000 !important;
    color: var(--gray) !important;
    background: white !important;
}

.proposition-page .btn-outline-secondary:hover {
    background: var(--gray) !important;
    color: white !important;
    transform: translateY(-2px);
}

/* Thumbs icons */
.proposition-page .fa-regular.fa-thumbs-up,
.proposition-page .fa-regular.fa-thumbs-down {
    font-size: 16px;
    line-height: 1;
    vertical-align: middle;
    color: blue;
}

/* Vote counts */
.proposition-page #vote .text-danger {
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    min-width: 20px;
    text-align: left;
}

/* Check icon */
.proposition-page .icofont-check-circled {
    font-size: 18px;
    color: var(--primary);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Call to action button */
.proposition-page .cta-section {
    text-align: center;
    padding: 40px 20px;
    background: #040720;
    border-radius: 16px;
    margin-top: 40px;
    margin-bottom: 40px;
}

.proposition-page .cta-section h4 {
    font-size: 22px;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 12px;
}

.proposition-page .cta-section p {
    font-size: 16px;
    color: #ffffff;
    margin-bottom: 24px;
}

.proposition-page .cta-section .btn-cta {
    display: inline-block;
    padding: 14px 32px;
    background: var(--primary);
    color: white;
    font-size: 16px;
    font-weight: 600;
    border-radius: 10px;
    text-decoration: none;
    transition: all 0.3s;
    border: 2px solid var(--primary);
}

.proposition-page .cta-section .btn-cta:hover {
    background: var(--primary-light);
    border-color: var(--primary-light);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}



/* --------------------------------------------------
   Mobile optimizations - Stack content vertically
-------------------------------------------------- */
@media (max-width: 768px) {
    .proposition-page #vote li {
        padding: 16px 12px;
    }

    .proposition-page #vote li .flex-grow-1 {
        gap: 16px;
    }

    .proposition-page .proposition-text {
        font-size: 16px;
        padding-bottom: 4px;
    }

    /* Make vote buttons more prominent on mobile */
    .proposition-page #vote li .flex-grow-1 > div {
        gap: 12px;
        width: 100%;
        justify-content: flex-start;
    }

    .proposition-page #vote button.btn {
        padding: 10px 16px !important;
        min-width: 44px;
        min-height: 44px;
    }

    .proposition-page .fa-regular.fa-thumbs-up,
    .proposition-page .fa-regular.fa-thumbs-down {
        font-size: 18px;
    }

    .proposition-page #vote .text-danger {
        font-size: 16px;
        min-width: 24px;
    }
}

/* --------------------------------------------------
   Very small screens (iPhone 12 mini and below)
-------------------------------------------------- */
@media (max-width: 390px) {
    .proposition-page .container h3 {
        font-size: 22px !important;
    }

    .proposition-page .container p {
        font-size: 14px !important;
    }

    .proposition-page .vote-card {
        padding: 20px 12px;
    }

    .proposition-page .vote-card h3 {
        font-size: 20px !important;
    }

    .proposition-page #vote li {
        padding: 14px 10px;
        gap: 10px;
        border-left-width: 3px;
    }

    .proposition-page .proposition-text {
        font-size: 15px;
        line-height: 1.4;
    }

    .proposition-page #vote li .flex-grow-1 {
        gap: 12px;
    }

    .proposition-page #vote li .flex-grow-1 > div {
        gap: 10px;
    }

    .proposition-page #vote button.btn {
        padding: 9px 14px !important;
        min-width: 42px;
        min-height: 42px;
    }

    .proposition-page .fa-regular.fa-thumbs-up,
    .proposition-page .fa-regular.fa-thumbs-down {
        font-size: 16px;
    }

    .proposition-page #vote .text-danger {
        font-size: 14px;
        min-width: 20px;
    }

    .proposition-page .icofont-check-circled {
        font-size: 16px;
    }

    .proposition-page .cta-section {
        padding: 30px 16px;
    }

    .proposition-page .cta-section h4 {
        font-size: 18px;
    }

    .proposition-page .cta-section p {
        font-size: 14px;
    }

    .proposition-page .cta-section .btn-cta {
        padding: 12px 24px;
        font-size: 15px;
    }
}

@media (max-width: 576px) {
    .proposition-page #vote li .flex-grow-1 > div {
        gap: 10px;
    }
}


