/*
 * global.css
 * Courage Over Cancer - Phase 1
 * Grayscale + Soft Pink Theme
 */

/* --- Variables & Theme --- */
:root {
    /* Grayscale */
    --color-dark: #212529; /* Bootstrap Dark */
    --color-body-text: #495057;
    --color-gray-medium: #ced4da;
    --color-gray-light: #f8f9fa; /* Bootstrap Light */
    --color-white: #ffffff;

    /* Accent */
    --color-primary: #E68FAC; /* Soft Pink */
    --color-primary-dark: #D67092;
    --color-primary-light: #F0AEC7;

    /* Fonts */
    --font-family-sans-serif: 'Libre Franklin', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-family-serif: 'Merriweather', "Times New Roman", Times, serif;
    
    /* Bootstrap Overrides */
    --bs-primary: var(--color-primary);
    --bs-primary-rgb: 230, 143, 172;
    --bs-body-font-family: var(--font-family-sans-serif);
    --bs-body-color: var(--color-body-text);
    --bs-link-color: var(--color-primary);
    --bs-link-hover-color: var(--color-primary-dark);
}

/* --- Base Typography --- */
body {
    font-family: var(--font-family-sans-serif);
    color: var(--color-body-text);
    line-height: 1.7;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-serif);
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 1rem;
}

/* Allow white headings in dark contexts */
.text-white h1, .text-white h2, .text-white h3, .text-white h4, .text-white h5, .text-white h6,
footer.text-white h1, footer.text-white h2, footer.text-white h3, footer.text-white h4, footer.text-white h5, footer.text-white h6 {
    color: var(--color-white);
}

/* Updated Sizes (+10% Impact) */
h1 { font-size: 3.1rem; }
h2 { font-size: 2.45rem; }
h3 { font-size: 2.0rem; }

p {
    margin-bottom: 1.5rem;
}

a {
    transition: color 0.3s ease, background-color 0.3s ease;
}

/* CLS Prevention */
img {
    max-width: 100%;
    height: auto;
}

/* --- Bootstrap Button Overrides --- */
.btn-primary {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    font-weight: 500;
    padding: 0.75rem 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.btn-outline-primary {
    border-color: var(--color-primary-dark);
    color: var(--color-primary-dark);
    font-weight: 500;
    padding: 0.75rem 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: var(--color-white);
}

/* --- Header & Navigation --- */
.navbar-brand img {
    max-height: 80px; /* Updated to 80px */
    width: auto;
    object-fit: contain;
}

.navbar .nav-link {
    font-weight: 500;
    text-transform: uppercase;
    font-size: 0.9rem;
    letter-spacing: 0.5px;
    padding: 0.5rem 1rem;
}

.navbar .nav-link.active,
.navbar .nav-link:hover {
    color: var(--color-primary);
}

.navbar .nav-link.active {
    border-bottom: 2px solid var(--color-primary);
}

/* --- Footer --- */
.footer a.footer-link {
    opacity: 0.8;
}

.footer a.footer-link:hover {
    opacity: 1;
    text-decoration: underline;
}

/* --- Global Partners Strip --- */
.partner-logo-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem;
    align-items: center;
}

.partner-logo-grid picture,
.partner-logo-grid img {
    width: auto;
    max-height: 60px;
    object-fit: contain;
    filter: grayscale(100%) brightness(200%); /* Adjusted for dark footer */
    opacity: 0.7;
    transition: all 0.3s ease;
}

.partner-logo-grid picture:hover img,
.partner-logo-grid img:hover {
    filter: grayscale(0%);
    opacity: 1;
}

/* --- Utility Classes --- */
.bg-primary-light {
    background-color: var(--color-primary-light);
}
.bg-gray-light {
    background-color: var(--color-gray-light);
}

/* Accent Icon Styling */
.icon-accent {
    color: var(--color-primary);
    font-size: 1.25em; /* Scales with parent text */
    margin-right: 0.5rem;
    vertical-align: -0.125em; /* Aligns icon with text */
}
/* Used in headings */
h1 .icon-accent, h2 .icon-accent, h3 .icon-accent {
    font-size: 1em; /* Keep it proportional to heading */
    vertical-align: middle;
}

/* --- Form Styles (Global) --- */
.form-control, .form-select {
    padding: 0.75rem 1rem;
    border-radius: 4px;
}

.form-control:focus, .form-select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}

textarea.form-control {
    min-height: 150px;
}

/* Input Groups with Icons */
.input-group .form-control {
    /* Ensure icon doesn't overlap text if needed, though BS handles input groups well */
    z-index: 1; 
}

.input-group-text {
    background-color: transparent;
    border-right: 0;
    color: var(--color-primary);
}

/* When input is focused, color the icon border too */
.form-control:focus + .input-group-text,
.input-group-text:has(+ .form-control:focus) { 
    border-color: var(--color-primary);
    /* Note: Bootstrap input groups usually have the text before or after. 
       Adjust logic based on DOM structure. 
       Standard BS5: input-group-text then form-control */
}

/* reCAPTCHA badge disclaimer */
.recaptcha-disclaimer {
    font-size: 0.8rem;
    color: #6c757d;
    margin-top: 1rem;
}

/* --- Form Status Messages --- */
.form-status-message {
    margin-top: 15px;
    padding: 10px 15px;
    border-radius: 4px;
    display: none; /* Hidden by default */
    opacity: 0;
    transition: opacity 0.5s ease;
}

.form-status-message.success {
    background-color: #d1e7dd;
    color: #0f5132;
    display: block;
    opacity: 1;
}

.form-status-message.error {
    background-color: #f8d7da;
    color: #842029;
    display: block;
    opacity: 1;
}

.form-status-message.sending {
    background-color: #cff4fc;
    color: #055160;
    display: block;
    opacity: 1;
}