/* GLOBAL STYLES AND VARIABLES */
:root {
    /* Tetrad Color Scheme with Retro/Neo-Brutalism influence */
    --color-primary: #2C5E77;       /* Deep Teal/Blue */
    --color-primary-rgb: 44, 94, 119;
    --color-primary-darker: #1E4252;

    --color-secondary: #E74C3C;     /* Crimson Red */
    --color-secondary-darker: #c0392b;

    --color-accent1: #F1C40F;       /* Bright Yellow */
    --color-accent1-darker: #d4ac0d;

    --color-accent2: #1ABC9C;       /* Turquoise */
    --color-accent2-darker: #16a085;

    /* Text Colors */
    --color-text-light: #FFFFFF;
    --color-text-dark-title: #222222; /* For main titles */
    --color-text-body-dark: #333333;  /* For body text */
    --color-text-body-on-dark: #EAEAEA; /* For body text on dark backgrounds */

    /* Background Colors */
    --color-background-light: #F8F9FA;
    --color-background-medium: #EAECEE;
    --color-background-dark: #212529; /* Dark footer/section background */

    /* Borders and Shadows */
    --color-border-light: #DEE2E6;
    --color-border-strong: #000000;
    --border-radius-sharp: 0;
    --border-radius-slight: 4px;
    --shadow-neo: 4px 4px 0px var(--color-border-strong);
    --shadow-neo-hover: 6px 6px 0px var(--color-border-strong);
    --shadow-soft: 0 5px 15px rgba(0, 0, 0, 0.1);

    /* Fonts */
    --font-heading: 'Montserrat', sans-serif;
    --font-body: 'Merriweather', serif;

    /* Transitions */
    --transition-fast: all 0.2s ease-in-out;
    --transition-medium: all 0.3s ease-in-out;

    /* Header Height - adjust if necessary */
    --header-height: 60px; /* Approx. Bulma navbar height */
}

/* BASE AND ELEMENT STYLES */
body {
    font-family: var(--font-body);
    color: var(--color-text-body-dark);
    background-color: var(--color-background-light);
    line-height: 1.7;
    font-size: 16px; /* Base font size */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6, .title, .subtitle {
    font-family: var(--font-heading);
    color: var(--color-text-dark-title);
    font-weight: 700;
    line-height: 1.3;
}
/* Bulma title/subtitle color override */
.title { color: var(--color-text-dark-title); }
.subtitle { color: var(--color-text-body-dark); }

p {
    margin-bottom: 1.25rem;
    color: var(--color-text-body-dark);
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: var(--transition-fast);
}
a:hover {
    color: var(--color-primary-darker);
    text-decoration: underline;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Main Container */
.main-container {
    overflow-x: hidden; /* Prevent horizontal scroll */
}

/* Section Styling */
.section {
    padding: 4rem 1.5rem; /* More vertical padding than Bulma default */
}
.section:nth-child(even).alternate-bg { /* Optional alternating background */
    background-color: var(--color-background-medium);
}

.section-title {
    font-size: 2.5rem; /* Larger for impact */
    color: var(--color-text-dark-title);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 2.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 4px solid var(--color-primary);
    display: inline-block; /* For border to not span full width */
    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
}
.has-text-centered .section-title { /* Ensure it's centered if parent has text-align:center */
    margin-left: auto;
    margin-right: auto;
}


/* UTILITY CLASSES */
.text-on-dark-bg { /* Utility for text on dark backgrounds */
    color: var(--color-text-body-on-dark);
}
.title-on-dark-bg {
    color: var(--color-text-light);
}

/* HEADER AND NAVIGATION */
.header .navbar {
    background-color: rgba(255, 255, 255, 0.95); /* Slightly transparent for modern feel */
    box-shadow: var(--shadow-soft);
    min-height: var(--header-height);
}
.header .navbar .navbar-brand .site-title {
    font-family: var(--font-heading);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--color-primary) !important; /* Bulma override */
}
.header .navbar .navbar-item {
    font-family: var(--font-body);
    color: var(--color-text-body-dark);
    font-weight: 500; /* Slightly bolder for nav items */
    transition: var(--transition-fast);
}
.header .navbar .navbar-item:hover,
.header .navbar .navbar-item.is-active {
    background-color: transparent; /* No bg change, just text */
    color: var(--color-primary) !important;
}
.navbar-burger span {
    background-color: var(--color-primary); /* Burger lines color */
}

/* HERO SECTION */
#hero {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative; /* For particle container */
}
#particles-js-hero {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}
#hero .hero-body {
    position: relative;
    z-index: 2; /* Content above particles */
    padding: 3rem 1.5rem;
}
#hero .hero-title,
#hero .hero-subtitle {
    color: var(--color-text-light) !important; /* Ensure white text, !important for Bulma override */
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
}
#hero .hero-title {
    font-size: 3.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
}
#hero .hero-subtitle {
    font-size: 1.5rem;
    margin-bottom: 2rem;
    font-weight: 400;
}
#hero .hero-cta {
    margin-top: 1rem;
}

/* GLOBAL BUTTON STYLES */
.button, button, input[type="submit"], input[type="button"] {
    font-family: var(--font-heading);
    font-weight: bold;
    padding: 12px 30px; /* Slightly more padding */
    border-radius: var(--border-radius-slight);
    border: 2px solid var(--color-border-strong); /* Neo-Brutalism: solid border */
    cursor: pointer;
    transition: var(--transition-fast);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    background-color: var(--color-accent1);
    color: var(--color-text-dark-title); /* Dark text on yellow */
    box-shadow: var(--shadow-neo);
    text-align: center;
}
.button:hover, button:hover, input[type="submit"]:hover, input[type="button"]:hover {
    transform: translate(-2px, -2px);
    box-shadow: var(--shadow-neo-hover);
    background-color: var(--color-accent1-darker);
}
.button.is-primary, button.is-primary, input[type="submit"].is-primary { /* Bulma primary */
    background-color: var(--color-primary);
    color: var(--color-text-light);
    border-color: var(--color-primary); /* Match border to bg for primary */
    box-shadow: 4px 4px 0px var(--color-primary-darker); /* Tone-on-tone shadow */
}
.button.is-primary:hover, button.is-primary:hover, input[type="submit"].is-primary:hover {
    background-color: var(--color-primary-darker);
    border-color: var(--color-primary-darker);
    box-shadow: 6px 6px 0px var(--color-primary-darker);
    transform: translate(-2px, -2px);
}
.button.is-large {
    padding: 15px 40px;
    font-size: 1.1rem;
}

/* CARD STYLES */
.card {
    background-color: var(--color-background-light);
    border: 2px solid var(--color-border-strong);
    box-shadow: var(--shadow-neo);
    border-radius: var(--border-radius-slight);
    overflow: hidden;
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    display: flex;
    flex-direction: column;
    height: 100%; /* For consistent height in columns */
}
.card:hover {
    transform: translateY(-5px) translateX(-2px);
    box-shadow: var(--shadow-neo-hover);
}
.card .card-image { /* Bulma's card-image */
    /* display: flex; already default for figure parent */
    /* justify-content: center; */
    /* align-items: center; */
    overflow: hidden; /* Clip image if it overflows figure */
    position: relative; /* For potential overlays */
}
/* The figure.image element acts as image-container */
.card .card-image .image-container {
    width: 100%;
    background-color: var(--color-background-medium); /* Placeholder bg */
}
/* Ensure image covers the figure container, respecting Bulma's aspect ratio classes */
.card .card-image .image-container img {
    width: 100%;
    height: 100%; /* Works with Bulma's aspect ratio classes on figure */
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
.card:hover .card-image .image-container img {
    transform: scale(1.05);
}
.card .card-content {
    padding: 1.5rem;
    flex-grow: 1; /* Allow content to grow and push footer down if card has footer */
}
.card .card-content .title {
    margin-bottom: 0.75rem;
    font-size: 1.3rem; /* Adjust as needed */
    color: var(--color-primary);
}
.card .card-content .subtitle, .card .card-content p {
    font-size: 0.95rem;
    color: var(--color-text-body-dark);
}
/* Specific card types, if needed for additional styling */
.project-card, .case-study-card, .resource-card {
    margin-bottom: 1.5rem; /* Spacing between cards */
}
.resource-card .card-content .title a {
    color: var(--color-secondary);
}
.resource-card .card-content .title a:hover {
    color: var(--color-secondary-darker);
}

/* TIMELINE STYLES (Bulma customization) */
.timeline.is-centered .timeline-header .tag {
    background-color: var(--color-secondary);
    color: var(--color-text-light);
    font-size: 0.9rem;
    padding: 0.5em 1em;
}
.timeline .timeline-item .timeline-marker {
    background-color: var(--color-primary);
    border: 3px solid var(--color-primary-darker);
}
.timeline .timeline-item .timeline-content {
    background-color: var(--color-background-light);
    padding: 1.5rem;
    border: 1px solid var(--color-border-light);
    border-radius: var(--border-radius-slight);
    box-shadow: var(--shadow-soft);
}
.timeline .timeline-item .timeline-content p.heading {
    color: var(--color-secondary);
    font-family: var(--font-heading);
    font-size: 0.9em;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}

/* ACCORDION STYLES */
.accordion-container {
    margin-top: 2rem;
}
.accordion-item {
    border: 2px solid var(--color-border-strong);
    margin-bottom: 10px;
    border-radius: var(--border-radius-slight); /* Sharp for neo */
    box-shadow: var(--shadow-neo);
}
.accordion-header {
    background-color: var(--color-background-light);
    color: var(--color-text-dark-title);
    padding: 15px 20px;
    width: 100%;
    text-align: left;
    border: none;
    cursor: pointer;
    font-family: var(--font-heading);
    font-size: 1.1em;
    font-weight: bold;
    transition: var(--transition-fast);
    position: relative; /* For pseudo-element icon */
}
.accordion-header::after { /* Simple +/- icon */
    content: '+';
    position: absolute;
    right: 20px;
    font-size: 1.5em;
    line-height: 1;
    color: var(--color-primary);
}
.accordion-header.active::after {
    content: '–';
}
.accordion-header:hover {
    background-color: var(--color-background-medium);
}
.accordion-header.active {
    background-color: var(--color-accent1);
    color: var(--color-text-dark-title);
}
.accordion-content {
    padding: 0 20px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out, padding 0.3s ease-out;
    background-color: #fff; /* White for content area */
}
.accordion-content.active {
    max-height: 600px; /* Adjust based on content */
    padding: 20px;
    border-top: 2px solid var(--color-border-strong);
}

/* FORM STYLES (Contact Form) */
.contact-section .label {
    font-family: var(--font-heading);
    color: var(--color-text-dark-title);
    font-weight: bold;
    font-size: 0.9rem;
}
.contact-section .input,
.contact-section .textarea {
    font-family: var(--font-body);
    border: 2px solid var(--color-border-strong);
    border-radius: var(--border-radius-sharp); /* Sharp edges */
    box-shadow: none;
    padding: 12px 15px;
    transition: var(--transition-fast);
    background-color: #fff;
}
.contact-section .input:focus,
.contact-section .textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.2);
}
.contact-section .contact-details {
    margin-top: 2rem;
    font-size: 0.95rem;
}
.contact-section .contact-details p {
    margin-bottom: 0.5rem;
}

/* FOOTER */
.footer {
    background-color: var(--color-background-dark);
    color: var(--color-text-body-on-dark);
    padding: 3rem 1.5rem 2rem; /* Less bottom padding */
}
.footer .title {
    color: var(--color-text-light) !important; /* Titles in footer should be light */
    font-size: 1.2rem;
    margin-bottom: 1rem;
}
.footer p {
    color: var(--color-text-body-on-dark);
    font-size: 0.9rem;
}
.footer a {
    color: var(--color-accent2); /* Use an accent for links */
    font-weight: 500;
}
.footer a:hover {
    color: var(--color-accent2-darker);
    text-decoration: underline;
}
.footer hr {
    background-color: rgba(255, 255, 255, 0.1);
    height: 1px;
    margin: 2rem 0;
}
.footer .content.has-text-centered p {
    font-size: 0.85rem;
}
/* Social media links in footer */
.footer .column ul {
    list-style: none;
    margin-left: 0;
}
.footer .column ul li {
    margin-bottom: 0.5rem;
}
.footer .column ul li a {
    padding: 0.2rem 0; /* Adjust for text links */
    display: inline-block;
}


/* Awards Section Images */
.awards-section figure img {
    margin-left: auto;
    margin-right: auto;
    filter: grayscale(30%);
    transition: var(--transition-medium);
}
.awards-section figure img:hover {
    filter: grayscale(0%);
    transform: scale(1.1);
}
.awards-section figcaption {
    color: var(--color-text-body-dark);
    font-weight: bold;
    font-size: 0.9rem;
    margin-top: 0.5rem;
}

/* Events Calendar Cards */
.events-calendar-section .event-item.card {
    border-left: 5px solid var(--color-secondary); /* Accent border */
}


/* PAGE SPECIFIC STYLES */
/* For pages like privacy.html, terms.html to prevent content overlap with fixed header */
.static-page-content-wrapper { /* Add this class to the main content div of these pages */
    padding-top: calc(var(--header-height) + 40px);
    padding-bottom: 40px;
}
.static-page-content-wrapper .section-title {
    margin-top: 0; /* Adjust if needed */
}

/* For success.html page */
.success-page-container { /* Wrap success.html content in this */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    text-align: center;
    padding: 2rem;
    background-color: var(--color-background-light);
}
.success-page-container h1 {
    color: var(--color-accent2);
    font-size: 3rem;
    margin-bottom: 1rem;
}
.success-page-container p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
}
.success-page-container .button {
    background-color: var(--color-accent2);
    border-color: var(--color-accent2);
    color: var(--color-text-light);
}
.success-page-container .button:hover {
    background-color: var(--color-accent2-darker);
    border-color: var(--color-accent2-darker);
}


/* RESPONSIVE ADJUSTMENTS */
@media screen and (max-width: 768px) {
    .section-title {
        font-size: 2rem;
    }
    #hero .hero-title {
        font-size: 2.5rem;
    }
    #hero .hero-subtitle {
        font-size: 1.2rem;
    }
    .columns.is-multiline .column { /* Ensure cards stack properly */
        width: 100%;
    }
}

/* Styles for "Read More" links, if used generally */
.read-more-link {
    display: inline-block;
    margin-top: 1rem;
    color: var(--color-secondary);
    font-weight: bold;
    text-transform: uppercase;
    font-size: 0.9em;
    letter-spacing: 0.5px;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color 0.3s ease, border-color 0.3s ease;
}
.read-more-link:hover {
    color: var(--color-secondary-darker);
    border-bottom-color: var(--color-secondary-darker);
}

/* Fix for Bulma column gaps on mobile if needed */
@media screen and (max-width: 768px) {
    .columns.is-mobile > .column {
        /* Bulma default might be fine, adjust if needed */
    }
}

/* Ensure high contrast for all text */
/* Dark text on light backgrounds */
.section, .card, .accordion-item, .timeline-item .timeline-content {
    /* Default text color is var(--color-text-body-dark) or var(--color-text-dark-title) */
    /* Backgrounds are var(--color-background-light) or similar */
}
/* Light text on dark backgrounds */
#hero, .footer {
    /* Hero text explicitly set to white/light */
    /* Footer text color var(--color-text-body-on-dark) */
}
.button.is-primary {
    /* color: var(--color-text-light); background: var(--color-primary) */
}