/* /public/css/style.css (UPDATED WITH NEW BLUE/CYAN PALETTE) */

/* ---------------------------------- */
/* 1. Define Your Custom Color Theme  */
/* ---------------------------------- */
:root {
    /* New Palette Colors (from image) */
    --geo-dark-navy: #02367B;       /* Darkest Blue (Text/Headers/Footer BG) */
    --geo-strong-blue: #006CA5;     /* Primary Action Blue (Buttons/Links/Primary) */
    --geo-medium-dark-blue: #0496C7;/* Medium Blue/Cyan (Secondary) */
    --geo-light-gray-blue: #04BADE; /* Bright Cyan (Info/Light Accent) */
    --geo-white: #f4feff;           /* White */

    /* Override Bootstrap's core theme colors */
    --bs-primary: var(--geo-strong-blue);
    --bs-primary-rgb: 0, 108, 165; 
    
    --bs-secondary: var(--geo-medium-dark-blue);
    --bs-secondary-rgb: 4, 150, 199; 

    --bs-info: var(--geo-light-gray-blue);
    --bs-info-rgb: 4, 186, 222; 

    --bs-success: #04BADE; /* Using bright cyan for success/highlight */
    --bs-success-rgb: 4, 186, 222;

    --bs-light: var(--geo-white);
    --bs-light-rgb: 255, 255, 255;

    /* Define text colors for dark backgrounds */
    --text-on-dark: var(--geo-white);
    --text-muted-on-dark: rgba(255, 255, 255, 0.75);
}

/* ---------------------------------- */
/* 2. General Site-wide Styles      */
/* ---------------------------------- */
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: var(--geo-dark-navy); /* Darkest text color */
    /* GLOBAL TEXT JUSTIFY (Default for body paragraphs) */
    text-align: left; 
}

/* Typography Overrides: Center align all main titles */
h1, h2, h3, h4, h5, h6 {
    /* Enforce Center Alignment on all headers/subheaders */
    text-align: center !important; 
    color: var(--geo-dark-navy);
    font-weight: 700; /* Bolder headings */
}

/* Components that must NOT be justified (kept initial/left-aligned) */
.text-center, .text-end,
.carousel-caption,
.navbar-brand, .navbar-nav,
.btn, .form-label, .form-control,
.text-start, .text-end { /* Ensure Bootstrap utility classes override global justify */
    text-align: initial !important;
}

/* Make links use your primary theme color */
a {
    color: var(--geo-strong-blue);
    text-decoration: none;
    transition: color 0.2s;
}
a:hover {
    color: var(--geo-dark-navy);
    text-decoration: underline;
}

main.container {
    flex: 1;
}

/* ---------------------------------- */
/* 3. Component-specific Styling    */
/* ---------------------------------- */

/* --- Buttons --- */
.btn, .btn:hover, .btn:focus {
    text-decoration: none !important;
    font-weight: 600; /* Make buttons slightly bolder */
    transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.btn-primary {
    background-color: var(--geo-strong-blue);
    border-color: var(--geo-strong-blue);
}
.btn-primary:hover {
    background-color: var(--geo-dark-navy); /* Darker shade for hover */
    border-color: var(--geo-dark-navy);
}

.btn-outline-primary {
    color: var(--geo-strong-blue);
    border-color: var(--geo-strong-blue);
    background-color: transparent; /* Ensure white background */
}
.btn-outline-primary:hover {
    color: var(--text-on-dark);
    background-color: var(--geo-strong-blue);
    border-color: var(--geo-strong-blue);
}

/* --- Navbar --- */
.navbar {
    background-color: var(--geo-white) !important; 
    border-bottom: 3px solid var(--geo-light-gray-blue);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); /* Lighter shadow */
}

/* --- Footer --- */
footer.bg-dark {
    background-color: var(--geo-dark-navy) !important; /* Darkest Blue for footer BG */
    padding: 3rem 0;
}
footer h5 {
    color: var(--geo-light-gray-blue) !important;
    font-weight: 700;
}

/* --- Cards --- */
.card {
    border: 1px solid var(--geo-light-gray-blue); /* Light Cyan border for cards */
    border-radius: 0.5rem; /* Slightly rounded corners */
}
.card:hover {
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
}
/* Justify text content inside the card body (explicitly allowing titles/subtitles to be centered) */
.card-body p, .card-text:not(.card-title):not(.card-subtitle), .card-body ul, .card-body ol {
    text-align: justify !important; 
}
.card-title, .card-subtitle {
    text-align: center !important;
}


/* --- Marquee (Trusted By Logos) --- */
.marquee-logo-icon {
    color: var(--geo-light-gray-blue); /* Light Cyan color */
    font-size: 3rem; 
    margin: 0 50px;
    transition: color 0.3s;
}
.marquee-logo-icon:hover {
    color: var(--geo-strong-blue);
}


/* --- Floating Animation Styles (for JS functionality) --- */
.float-up-object {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.float-up-object.is-visible {
    opacity: 1;
    transform: translateY(0);
}