/* style.css */

/* ------------------------------ */
/* ----- CSS VARIABLES ---------- */
/* ------------------------------ */
:root {
    /* Color Scheme: Analogous with a warm accent (Retro inspired) */
    --primary-color: #00796B; /* Teal - main interactive elements, buttons */
    --primary-color-darker: #005A4F; /* Darker Teal for hover/active states */
    --secondary-color: #009688; /* Lighter Teal - supporting elements */
    
    --accent-color: #FF8F00; /* Amber/Warm Orange - CTAs, highlights, retro pop */
    --accent-color-darker: #E65100; /* Darker Amber for hover/active states */

    /* Neutral & Text Colors */
    --text-dark: #263238; /* Dark Slate Grey - for headings and primary text on light backgrounds */
    --text-body: #37474F; /* Slightly lighter for body text */
    --text-light: #FFFFFF; /* For text on dark backgrounds */
    --text-muted: #78909C; /* Muted grey for less important text */
    
    /* Background Colors */
    --background-body: #FCFDFD; /* Very light, almost white with a hint of cool tone */
    --background-light-section: #F4F6F6; /* Light grey for alternating sections */
    --background-dark-section: #263238; /* Dark Slate Grey - e.g., Footer */

    /* Card Styling */
    --card-background: #FFFFFF;
    --card-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    --card-border-radius: 8px;
    --card-padding: 1.5rem;

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

    /* Transitions & Animations */
    --transition-speed-fast: 0.2s;
    --transition-speed-normal: 0.3s;
    --transition-easing: cubic-bezier(0.645, 0.045, 0.355, 1); /* Smooth non-linear */

    /* Other */
    --navbar-height: 52px; /* Bulma's default, can be adjusted if navbar style changes */
    --container-max-width: 1152px; /* Based on Bulma's $widescreen breakpoint */
}

/* ------------------------------ */
/* ----- GLOBAL STYLES ---------- */
/* ------------------------------ */
html {
    scroll-behavior: smooth;
    font-size: 100%; /* Base for rem units */
    background-color: var(--background-body);
    color: var(--text-body);
}

body {
    font-family: var(--font-body);
    line-height: 1.65;
    font-weight: 400;
    color: var(--text-body);
    background-color: var(--background-body);
    overflow-x: hidden; /* Prevent horizontal scroll from animations */
    padding-top: var(--navbar-height); /* Account for fixed navbar */
}

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

.title {
    color: var(--text-dark);
    font-weight: 700;
}
.subtitle {
    color: var(--text-muted);
    font-weight: 400;
}

/* Links */
a {
    color: var(--primary-color);
    text-decoration: none;
    transition: color var(--transition-speed-fast) ease-in-out;
}
a:hover {
    color: var(--primary-color-darker);
    text-decoration: underline;
}

/* Sections */
.section {
    padding: 4rem 1.5rem; /* Default section padding */
}
.section:nth-of-type(even of .section) { /* Alternating section background */
    background-color: var(--background-light-section);
}

.section-title {
    color: var(--text-dark);
    margin-bottom: 2.5rem; /* Space below section title */
    font-size: 2.5rem; /* Adaptive typography */
    text-align: center;
    position: relative;
    padding-bottom: 0.5rem;
}
.section-title::after { /* Subtle underline effect */
    content: '';
    display: block;
    width: 80px;
    height: 4px;
    background-color: var(--accent-color);
    margin: 0.75rem auto 0;
    border-radius: 2px;
}

/* Ensure Bulma container takes our variable */
.container {
    max-width: var(--container-max-width);
    margin-left: auto;
    margin-right: auto;
}

/* ------------------------------ */
/* ----- HEADER / NAVBAR -------- */
/* ------------------------------ */
.header .navbar {
    background-color: rgba(255, 255, 255, 0.95); /* Semi-transparent white for a retro-modern feel */
    backdrop-filter: blur(8px); /* Glassmorphism hint */
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    height: var(--navbar-height);
}
.navbar-item, .navbar-link {
    font-family: var(--font-heading);
    font-weight: 600;
    color: var(--text-dark);
    transition: color var(--transition-speed-fast) ease;
}
.navbar-item:hover, .navbar-link:hover,
.navbar-item.is-active, .navbar-link.is-active {
    background-color: transparent !important; /* Override Bulma's hover background */
    color: var(--primary-color) !important;
}
.navbar-brand .navbar-item {
    color: var(--primary-color);
    font-size: 1.5rem; /* Slightly larger brand name */
}
.navbar-burger span {
    background-color: var(--primary-color);
}


/* ------------------------------ */
/* ----- HERO SECTION ----------- */
/* ------------------------------ */
#hero.hero {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    color: var(--text-light); /* Ensured by HTML inline style, but good to have fallback */
}
#hero .hero-body {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}
#hero .title {
    font-size: clamp(2.5rem, 5vw, 4rem); /* Adaptive typography */
    color: var(--text-light); /* Ensure white text on hero */
    margin-bottom: 1rem;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.5); /* Better readability on varied backgrounds */
}
#hero .subtitle {
    font-size: clamp(1.1rem, 2.5vw, 1.5rem); /* Adaptive typography */
    color: var(--text-light); /* Ensure white text on hero */
    opacity: 0.9;
    margin-bottom: 2rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

/* ------------------------------ */
/* ----- BUTTONS (GLOBAL) ------- */
/* ------------------------------ */
.button, button, input[type="submit"], input[type="button"] {
    font-family: var(--font-heading);
    font-weight: 600;
    border-radius: 6px;
    padding: 0.75em 1.75em;
    transition: all var(--transition-speed-fast) var(--transition-easing);
    border: none;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.button.is-primary {
    background-color: var(--primary-color);
    color: var(--text-light);
}
.button.is-primary:hover {
    background-color: var(--primary-color-darker);
    color: var(--text-light);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.button.is-primary:active {
    transform: translateY(0);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.button.is-accent { /* Example for accent color button */
    background-color: var(--accent-color);
    color: var(--text-light);
}
.button.is-accent:hover {
    background-color: var(--accent-color-darker);
    color: var(--text-light);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

.button.is-link.is-outlined {
    background-color: transparent;
    border-color: var(--primary-color);
    color: var(--primary-color);
    border-width: 2px;
}
.button.is-link.is-outlined:hover {
    background-color: var(--primary-color);
    color: var(--text-light);
}

/* Modern "Read More" link style */
.read-more-link {
    font-family: var(--font-heading);
    color: var(--accent-color);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.9rem;
    display: inline-block;
    margin-top: 0.5rem;
}
.read-more-link:hover {
    color: var(--accent-color-darker);
    text-decoration: underline;
}
.read-more-link::after {
    content: ' →'; /* Arrow */
}

/* ------------------------------ */
/* ----- CARD STYLES (GENERAL) -- */
/* ------------------------------ */
.card {
    background-color: var(--card-background);
    box-shadow: var(--card-shadow);
    border-radius: var(--card-border-radius);
    overflow: hidden; /* Ensures content respects border-radius */
    transition: transform var(--transition-speed-normal) var(--transition-easing), box-shadow var(--transition-speed-normal) var(--transition-easing);
    height: 100%; /* For consistent card heights in a row if using Bulma columns */
    display: flex;
    flex-direction: column;
}
.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.12);
}
.card .card-image, .card .image-container { /* Targets general card images and specific container */
    position: relative;
    overflow: hidden;
    max-height: 250px; /* Control image height */
    display: flex; /* For centering image */
    align-items: center; /* Vertical centering */
    justify-content: center; /* Horizontal centering */
    background-color: #e0e0e0; /* Placeholder bg for images */
}
.card .card-image img, .card .image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures image covers the area, might crop */
    transition: transform var(--transition-speed-normal) var(--transition-easing);
}
.card:hover .card-image img, .card:hover .image-container img {
    transform: scale(1.05); /* Subtle zoom on hover */
}
.card .card-content {
    padding: var(--card-padding);
    flex-grow: 1; /* Allows content to fill space if card height is fixed or in flex layout */
    display: flex;
    flex-direction: column;
    text-align: left; /* Default for card content */
}
.card .card-content .title,
.card .card-content .subtitle {
    margin-bottom: 0.75rem;
}
.card .card-content .title {
    font-size: 1.3rem;
    color: var(--text-dark);
}
.card .card-content .subtitle {
    font-size: 0.9rem;
    color: var(--text-muted);
}
.card .card-content .content {
    font-size: 0.95rem;
    color: var(--text-body);
    margin-bottom: 1rem;
    flex-grow: 1;
}
.card .button {
    margin-top: auto; /* Pushes button to the bottom of the card content */
}

/* Specific card types styling to ensure centering of content like awards */
.award-card .card-content,
.resource-card .card-content {
    text-align: center;
}
.award-card .card-image, .award-card .image-container {
    max-height: 150px; /* Smaller images for awards */
    margin-bottom: 1rem;
}
.award-card .card-image img, .award-card .image-container img {
    max-width: 120px;
    height: auto;
    object-fit: contain;
}
.resource-card .title a {
    color: var(--primary-color);
}
.resource-card .title a:hover {
    color: var(--primary-color-darker);
}

/* Case Study Card and Event Card */
.case-study-card, .event-card {
    background-color: var(--background-light-section); /* Slightly different bg for distinction */
}
.case-study-card .card-content, .event-card .card-content {
    padding: 1.5rem;
}


/* ------------------------------ */
/* ----- SPECIFIC SECTIONS ------ */
/* ------------------------------ */

/* Services Section */
.services-section .service-card .title {
    color: var(--primary-color);
}

/* Innovation Section */
.innovation-section {
    background-color: var(--background-light-section);
}
.innovation-section .image-container img {
    border-radius: var(--card-border-radius);
    box-shadow: var(--card-shadow);
}

/* News Section */
.news-card .card-image, .news-card .image-container {
    max-height: 200px;
}

/* Careers Section */
.careers-section .image-container img {
    border-radius: var(--card-border-radius);
    box-shadow: var(--card-shadow);
}

/* Contact Section & Form */
.contact-section {
    background-color: var(--background-light-section);
}
.contact-section .label {
    font-family: var(--font-heading);
    color: var(--text-dark);
    font-weight: 600;
    margin-bottom: 0.5em;
}
.contact-section .input,
.contact-section .textarea {
    font-family: var(--font-body);
    border-radius: 6px;
    border: 1px solid #DEDEDE;
    padding: 0.75em 1em;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.05);
    transition: border-color var(--transition-speed-fast) ease, box-shadow var(--transition-speed-fast) ease;
}
.contact-section .input:focus,
.contact-section .textarea:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.125em rgba(0, 121, 107, 0.25); /* primary-color with alpha */
    outline: none;
}
.contact-section .input::placeholder,
.contact-section .textarea::placeholder {
    color: var(--text-muted);
    opacity: 0.7;
}
.contact-section strong {
    color: var(--text-dark);
}
.contact-section a {
    font-weight: 600;
}

/* ------------------------------ */
/* ----- FOOTER ----------------- */
/* ------------------------------ */
.footer {
    background-color: var(--background-dark-section);
    color: var(--footer-text);
    padding: 3rem 1.5rem 2rem; /* Reduced bottom padding */
}
.footer .title, .footer .subtitle, .footer p, .footer strong {
    color: var(--footer-text); /* Lighter text for dark background */
}
.footer strong {
    color: var(--text-light); /* Slightly brighter for emphasis */
}
.footer a {
    color: var(--footer-text); /* Make links match footer text color initially */
    font-weight: 500;
}
.footer a:hover {
    color: var(--accent-color); /* Accent color on hover */
    text-decoration: underline;
}
.footer .content .mb-3 { /* Spacing for nav links */
    margin-bottom: 1.5rem !important;
}
.footer .content .is-size-7 {
    color: #90A4AE; /* Even more muted for fine print */
}
/* Social media text links */
.footer .content p:nth-of-type(2) a { /* Targeting the social media links paragraph */
    margin: 0 0.5rem;
    display: inline-block;
    font-weight: 500;
}


/* ------------------------------ */
/* ----- ANIMATIONS ON SCROLL --- */
/* ------------------------------ */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s var(--transition-easing), transform 0.6s var(--transition-easing);
}
.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}
/* Animation Delays */
.animation-delay-1 { transition-delay: 0.15s; }
.animation-delay-2 { transition-delay: 0.3s; }
.animation-delay-3 { transition-delay: 0.45s; }
.animation-delay-4 { transition-delay: 0.6s; }


/* ------------------------------ */
/* SPECIFIC PAGE STYLES (success.html, privacy.html, terms.html) */
/* ------------------------------ */
.page-content-section {
    padding-top: calc(var(--navbar-height) + 2rem); /* For static pages like privacy, terms */
    padding-bottom: 4rem;
    min-height: calc(100vh - var(--navbar-height) - 150px); /* Navbar height + approx footer height */
}
.page-content-section .container {
    max-width: 800px; /* Narrower container for text-heavy pages */
}
.page-content-section h1.title {
    font-size: 2.5rem;
    margin-bottom: 1.5rem;
    color: var(--text-dark);
}
.page-content-section h2.title {
    font-size: 1.8rem;
    margin-top: 2rem;
    margin-bottom: 1rem;
    color: var(--text-dark);
}
.page-content-section p {
    margin-bottom: 1rem;
    line-height: 1.7;
    color: var(--text-body);
}
.page-content-section ul {
    list-style: disc;
    margin-left: 1.5rem;
    margin-bottom: 1rem;
}
.page-content-section li {
    margin-bottom: 0.5rem;
}

/* Success Page */
.success-page-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: calc(100vh - var(--navbar-height)); /* Full height minus navbar */
    text-align: center;
    padding: 2rem;
}
.success-page-container .icon {
    font-size: 4rem;
    color: var(--primary-color);
    margin-bottom: 1.5rem;
}
.success-page-container .title {
    color: var(--text-dark);
    margin-bottom: 1rem;
}
.success-page-container .subtitle {
    color: var(--text-muted);
    margin-bottom: 2rem;
    max-width: 500px;
}

/* Privacy & Terms pages specific padding (already added to .page-content-section) */
/* If body padding-top is not enough or specific adjustment is needed:
body.privacy-page, body.terms-page {
    padding-top: var(--navbar-height); 
}
#privacy-content, #terms-content { // Assuming these are main content wrappers on those pages
    padding-top: 100px; // As requested, ensure this overrides general body padding
}
*/

/* Cookie Consent Bar (already has inline styles, this is just a fallback/enhancement if needed) */
#cookieConsentContainer {
    /* User provides inline styles, these are potential overrides or additions if needed */
    /* font-family: var(--font-body); ensure it uses theme font */
}
#cookieConsentContainer p a {
    color: var(--accent-color); /* Make link stand out */
}
#cookieConsentContainer #acceptCookieButton {
    background-color: var(--primary-color);
    font-family: var(--font-heading);
}
#cookieConsentContainer #acceptCookieButton:hover {
    background-color: var(--primary-color-darker);
}

/* ------------------------------ */
/* ----- RESPONSIVE STYLES ------ */
/* ------------------------------ */
@media screen and (max-width: 1023px) { /* Bulma's $desktop breakpoint */
    .section-title {
        font-size: 2rem;
    }
    .columns.is-vcentered .column.is-half:first-child { /* Stack image above text on mobile for certain layouts */
        order: 1;
    }
    .columns.is-vcentered .column.is-half:last-child {
        order: 2;
        text-align: center; /* Center text if image is above */
    }
    .innovation-section .column.is-two-thirds,
    .careers-section .column.is-half {
        text-align: center;
    }
    .innovation-section .image-container,
    .careers-section .image-container {
        margin: 0 auto 2rem auto;
    }
}

@media screen and (max-width: 768px) { /* Bulma's $tablet breakpoint */
    body {
      padding-top: 0; /* Remove padding as navbar might not be fixed or handled differently by Bulma */
    }
    .navbar.is-fixed-top {
        position: relative; /* Allow navbar to scroll with page on mobile for simplicity */
    }
    #hero.hero {
        /* Adjust hero height if navbar is not fixed on mobile */
        min-height: calc(80vh - var(--navbar-height)); 
    }
    #hero .title {
        font-size: clamp(2rem, 6vw, 3rem);
    }
    #hero .subtitle {
        font-size: clamp(1rem, 3vw, 1.2rem);
    }
    .section {
        padding: 3rem 1rem;
    }
    .card .card-content {
        padding: 1.25rem;
    }
    .contact-section .columns {
        flex-direction: column-reverse; /* Form below contact info on mobile */
    }
    .contact-section .column.is-half:last-child { /* Form */
        margin-bottom: 2rem;
    }
     .page-content-section {
        padding-top: 2rem;
    }
    .footer {
        text-align: center;
    }
    .footer .content p:nth-of-type(2) a {
        margin: 0.25rem 0.5rem; /* Adjust spacing for social links on mobile */
    }
}
.button.is-large {
    font-size: 1.0rem;
}
.button, .is-primary{
    font-size: 11px!important;
}