/*
 * Global styles and variables
 *
 * This stylesheet defines the shared look and feel for the entire site.
 * A modern sans‑serif font, soft color palette and generous spacing
 * create a clean, professional appearance across pages. Variables defined
 * at the root level make it easy to tune the design later.
 */

html {
    box-sizing: border-box;
}

*, *::before, *::after {
    box-sizing: inherit;
}

:root {
    --font-family-base: 'Poppins', Arial, sans-serif;
    --color-primary: #0d4a75; /* deep blue for nav and accents */
    --color-primary-dark: #062d47;
    --color-secondary: #1f6f8b;
    --color-light: #f5f7fa;
    --color-dark: #1e2a38;
    --color-text: #333;
    --color-muted: #6c757d;
    --border-radius: 8px;
}

body {
    font-family: var(--font-family-base);
    background-color: var(--color-light);
    color: var(--color-text);
    margin: 0;
    padding: 0;
    line-height: 1.6;
}

.header-section {
    padding: 20px 0;
}

.hero-section {
    /* Create a striking hero area using a smooth gradient */
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: #fff;
    min-height: 70vh;
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}

/* Add a subtle decorative overlay to the hero section */
.hero-section::before {
    content: "";
    position: absolute;
    top: -50px;
    left: -50px;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.05), transparent 70%);
    z-index: 0;
}

.hero-section .container {
    position: relative;
    z-index: 1;
}

/* Icon circles for feature cards */
.icon-circle {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Override Bootstrap primary colours with custom palette */
.bg-primary {
    background-color: var(--color-primary) !important;
}
.btn-light {
    background-color: #fff;
    border: none;
}
.btn-light:hover {
    background-color: var(--color-secondary);
    color: #fff;
}

.footer {
    background-color: var(--color-primary-dark);
    color: #fff;
    text-align: center;
    padding: 40px 20px;
    margin-top: auto;
}

footer a {
    color: #fff;
    margin: 0 8px;
    text-decoration: underline;
}

footer a:hover {
    color: #d1e9ff;
}

/* Footer styles */
.footer {
    background-color: #2b2e33;
    color: #fff;
    text-align: center;
    padding: 20px;
    position: relative; /* Default position */
    width: 100%; /* Full width */
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1); /* Subtle shadow for separation */
}

.footer a:hover {
    color: #fff;
}

.carousel {
    margin-top: 20px; /* Adds spacing above the carousel */
    max-width: 800px; /* Set a fixed maximum width */
    margin-left: auto; /* Center the carousel */
    margin-right: auto; /* Center the carousel */
    height: 350px; /* Fixed height for the entire carousel */
}

.carousel-inner {
    background-color: #fff; /* Background color for carousel slides */
    border-radius: 10px; /* Rounded corners for carousel */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */
    height: 100%; /* Occupy the full height of the carousel */
}

.carousel-item {
    display: none; /* Hide all carousel items initially */
    position: relative; /* Position relative for slide animations */
    transition: transform 0.6s ease; /* Slide transition */
    justify-content: center; /* Center content */
    align-items: center; /* Center content */
    height: 100%; /* Fixed height to match the carousel height */
    text-align: center; /* Center text */
    padding: 20px; /* Padding inside each carousel item */
}

.carousel-item.active {
    display: flex; /* Show only active carousel item */
}

.benefits-list {
    padding: 20px; /* Additional padding for content spacing */
}

.benefits-list h2 {
    color: #333;
    margin: 15px 0; /* Spacing around salary text */
}

.benefits-list p {
    color: #666;
    margin: 5px 0; /* Spacing for benefits text */
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    background-color: #333; /* Dark background for controls */
    border-radius: 50%; /* Circular controls */
    padding: 10px; /* Adds padding to controls */
}

.carousel-control-prev-icon:hover,
.carousel-control-next-icon:hover {
    background-color: #555; /* Darker background on hover */
}

.carousel-control-prev,
.carousel-control-next {
    width: 5%; /* Smaller width for controls */
}

.carousel-indicators li {
    background-color: #333; /* Color for carousel indicators */
}

.carousel-indicators .active {
    background-color: #555; /* Active indicator color */
}

@media (max-width: 768px) {
    .hero-section {
        text-align: center;
    }
    .carousel {
        height: 300px; /* Adjusted height for smaller screens */
    }
    .carousel-inner,
    .carousel-item {
        height: 100%; /* Maintain fixed height on smaller screens */
    }
    .carousel-item {
        padding: 15px; /* Reduced padding on smaller screens */
    }
}

/*
 * Modern components introduced during the major site overhaul.
 * These rules define reusable sections and cards used on the new
 * homepage (features section), as well as the information page.  They rely
 * on the existing CSS variables for colours defined at the top of this file.
 */

/* Features section: used on the landing page to showcase what the program offers. */
.features-section {
    padding: 60px 20px;
    background-color: var(--color-light);
}
.features-section .feature-card {
    background-color: #fff;
    border-radius: var(--border-radius);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    padding: 30px;
    text-align: center;
    transition: transform 0.2s ease;
    height: 100%;
}
.features-section .feature-card:hover {
    transform: translateY(-5px);
}
.features-section .feature-card i {
    font-size: 2.5rem;
    color: var(--color-primary);
    margin-bottom: 15px;
}
.features-section .feature-card h3 {
    font-size: 1.5rem;
    margin-bottom: 10px;
    color: var(--color-primary-dark);
}
.features-section .feature-card p {
    font-size: 1rem;
    color: var(--color-muted);
}

/* Info page section: groups together information cards about private sector
   hiring, law enforcement roles, and preparation requirements. */
.info-section {
    padding: 60px 20px;
    background-color: var(--color-light);
}
.info-section h2 {
    color: var(--color-primary);
    margin-bottom: 20px;
    font-size: 2rem;
    text-align: center;
}
.info-section .info-card {
    background-color: #fff;
    border-radius: var(--border-radius);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    padding: 25px;
    margin-bottom: 30px;
}
.info-section .info-card h3 {
    margin-top: 0;
    color: var(--color-primary-dark);
    font-size: 1.4rem;
}
.info-section .info-card ul {
    list-style-type: disc;
    margin-left: 20px;
    padding-left: 0;
}
.info-section .info-card li {
    margin-bottom: 8px;
    color: var(--color-text);
}

/* Buttons within hero sections or call‑to‑action areas.  Use this class on
   anchor tags or button elements to create pill‑shaped primary buttons. */
.cta-btn {
    padding: 12px 30px;
    font-size: 1.1rem;
    border: none;
    border-radius: 50px;
    color: #fff;
    background-color: var(--color-secondary);
    transition: background-color 0.3s;
    display: inline-block;
}
.cta-btn:hover {
    background-color: var(--color-primary-dark);
    color: #fff;
    text-decoration: none;
}

/* Override the footer once more to ensure consistency with our palette. */
footer.footer {
    background-color: var(--color-primary-dark);
    color: #fff;
    text-align: center;
    padding: 40px 20px;
}
footer.footer a {
    color: #cbd9e8;
    margin: 0 8px;
    text-decoration: none;
    transition: color 0.3s;
}
footer.footer a:hover {
    color: #fff;
}
