/* style.css */

/* CSS Variables */
:root {
    --font-primary: 'Raleway', sans-serif;
    --font-secondary: 'Open Sans', sans-serif;

    --color-text-dark: #222222; /* Strong dark text for contrast */
    --color-text-medium: #4A4A4A;
    --color-text-light: #FFFFFF;
    --color-text-link: #0056b3;
    --color-text-link-hover: #003d80;

    --color-background-body: #F0F0F0; /* Light grey neutral background */
    --color-background-section-light: #FFFFFF;
    --color-background-section-neutral: #E9E9E9; /* Slightly darker neutral for alternating sections */
    --color-background-footer: #1A1A1A;

    --color-primary: #007BFF; /* A vibrant blue for primary actions */
    --color-primary-dark: #0056b3;
    --color-secondary: #6c757d; /* Muted secondary for less important actions */
    --color-secondary-dark: #494f54;
    
    --color-border-brutal: #000000;
    --color-border-subtle: #CCCCCC;

    --shadow-brutal-sm: 2px 2px 0px var(--color-border-brutal);
    --shadow-brutal-md: 4px 4px 0px var(--color-border-brutal);
    --shadow-brutal-lg: 6px 6px 0px var(--color-border-brutal);

    --shadow-volumetric: 0px 4px 8px rgba(0, 0, 0, 0.1), var(--shadow-brutal-sm);
    --shadow-volumetric-hover: 0px 6px 12px rgba(0, 0, 0, 0.15), 3px 3px 0px var(--color-border-brutal);
    --shadow-volumetric-active: 0px 2px 4px rgba(0, 0, 0, 0.1), 1px 1px 0px var(--color-border-brutal);

    --border-radius-sharp: 0px; /* Brutalism often uses sharp corners */
    --border-radius-slight: 4px; /* For some volumetric elements if needed for softness */

    --spacing-unit: 8px;
    --header-height: 80px;
}

/* Global Styles & Reset */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    font-size: 100%; /* 16px base */
}

body {
    font-family: var(--font-secondary);
    line-height: 1.65;
    color: var(--color-text-dark);
    background-color: var(--color-background-body);
    overflow-x: hidden; /* Prevent horizontal scroll */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-primary);
    font-weight: 900; /* Bold for brutalism */
    line-height: 1.2;
    margin-bottom: calc(var(--spacing-unit) * 2); /* 16px */
    color: var(--color-text-dark);
    text-shadow: 1px 1px 0px rgba(0,0,0,0.1); /* Subtle shadow for depth */
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); } /* Responsive font size */
h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); }
h3 { font-size: clamp(1.5rem, 3.5vw, 2.2rem); }
h4 { font-size: clamp(1.2rem, 3vw, 1.8rem); }

p {
    margin-bottom: calc(var(--spacing-unit) * 2);
    font-size: 1rem; /* 16px */
    color: var(--color-text-medium);
}

a {
    color: var(--color-text-link);
    text-decoration: none;
    transition: color 0.3s ease;
}

a:hover, a:focus {
    color: var(--color-text-link-hover);
    text-decoration: underline;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
    border-style: none; /* Remove border from linked images */
}

ul, ol {
    list-style-position: inside;
    margin-bottom: calc(var(--spacing-unit) * 2);
    padding-left: calc(var(--spacing-unit) * 2);
}
ul li, ol li {
    margin-bottom: var(--spacing-unit);
}

/* Layout */
.container {
    width: 90%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: calc(var(--spacing-unit) * 2);
    padding-right: calc(var(--spacing-unit) * 2);
}

/* Buttons - Global Styles */
.btn, button, input[type="submit"], input[type="button"] {
    display: inline-block;
    font-family: var(--font-primary);
    font-weight: 700;
    font-size: 1rem;
    text-align: center;
    text-decoration: none;
    color: var(--color-text-light);
    background-color: var(--color-primary);
    border: 2px solid var(--color-border-brutal);
    padding: calc(var(--spacing-unit) * 1.5) calc(var(--spacing-unit) * 3); /* 12px 24px */
    border-radius: var(--border-radius-sharp);
    cursor: pointer;
    transition: all 0.2s ease-out;
    box-shadow: var(--shadow-brutal-sm);
    position: relative; /* For volumetric effect */
}

.btn:hover, button:hover, input[type="submit"]:hover, input[type="button"]:hover {
    background-color: var(--color-primary-dark);
    box-shadow: var(--shadow-brutal-md);
    transform: translate(-1px, -1px); /* Slight move for brutal hover */
    color: var(--color-text-light);
    text-decoration: none;
}

.btn:active, button:active, input[type="submit"]:active, input[type="button"]:active {
    box-shadow: var(--shadow-brutal-sm);
    transform: translate(1px, 1px); /* Pressed effect */
}

.btn-primary {
    background-color: var(--color-primary);
    color: var(--color-text-light);
}
.btn-primary:hover {
    background-color: var(--color-primary-dark);
}

.btn-secondary {
    background-color: var(--color-secondary);
    color: var(--color-text-light);
}
.btn-secondary:hover {
    background-color: var(--color-secondary-dark);
}

/* Volumetric Buttons - subtle 3D effect */
.btn-volumetric, .btn-volumetric-small {
    color: var(--color-text-light);
    background-color: var(--color-primary);
    border: 2px solid var(--color-border-brutal);
    box-shadow: var(--shadow-volumetric);
    position: relative;
    transition: transform 0.1s ease-out, box-shadow 0.1s ease-out, background-color 0.2s ease-out;
}

.btn-volumetric:hover, .btn-volumetric-small:hover {
    background-color: var(--color-primary-dark);
    box-shadow: var(--shadow-volumetric-hover);
    transform: translate(-2px, -2px);
}
.btn-volumetric:active, .btn-volumetric-small:active {
    background-color: var(--color-primary-dark);
    box-shadow: var(--shadow-volumetric-active);
    transform: translate(1px, 1px);
}

.btn-volumetric-small {
    font-size: 0.9rem;
    padding: var(--spacing-unit) calc(var(--spacing-unit) * 2); /* 8px 16px */
}


/* Forms - Global Styles */
.form-group {
    margin-bottom: calc(var(--spacing-unit) * 2.5); /* 20px */
}

.form-group label {
    display: block;
    font-family: var(--font-primary);
    font-weight: 700;
    margin-bottom: var(--spacing-unit);
    color: var(--color-text-dark);
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="url"],
textarea {
    width: 100%;
    padding: calc(var(--spacing-unit) * 1.5); /* 12px */
    font-family: var(--font-secondary);
    font-size: 1rem;
    border: 2px solid var(--color-border-brutal);
    border-radius: var(--border-radius-sharp);
    background-color: var(--color-background-section-light);
    color: var(--color-text-dark);
    box-shadow: var(--shadow-brutal-sm);
    transition: box-shadow 0.2s ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
textarea:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    box-shadow: var(--shadow-brutal-md);
}

textarea {
    resize: vertical;
    min-height: 120px;
}

/* Header & Navigation */
.site-header {
    background-color: var(--color-background-section-light);
    padding: var(--spacing-unit) 0;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1), var(--shadow-brutal-sm);
    border-bottom: 2px solid var(--color-border-brutal);
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: var(--header-height);
}

.site-logo {
    font-family: var(--font-primary);
    font-size: 1.8rem;
    font-weight: 900;
    color: var(--color-text-dark);
    text-decoration: none;
    text-shadow: var(--shadow-brutal-sm);
}
.site-logo:hover {
    text-decoration: none;
    color: var(--color-primary);
}

.main-navigation .nav-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
}

.main-navigation .nav-menu li {
    margin-left: calc(var(--spacing-unit) * 2.5); /* 20px */
}

.main-navigation .nav-menu a {
    font-family: var(--font-primary);
    font-weight: 700;
    color: var(--color-text-medium);
    text-decoration: none;
    padding: calc(var(--spacing-unit) / 2) var(--spacing-unit);
    transition: color 0.2s ease, text-shadow 0.2s ease;
    font-size: 0.95rem;
}

.main-navigation .nav-menu a:hover,
.main-navigation .nav-menu a:focus,
.main-navigation .nav-menu .active a {
    color: var(--color-primary);
    text-shadow: 1px 1px 0px rgba(0,0,0,0.1);
}

.menu-toggle {
    display: none; /* Hidden by default, shown on mobile */
    font-size: 1.8rem;
    background: none;
    border: none;
    color: var(--color-text-dark);
    cursor: pointer;
}

/* Content Sections */
.content-section {
    padding: calc(var(--spacing-unit) * 6) 0; /* 48px */
}
.content-section:first-of-type { /* For Hero, if it's a content-section */
    padding-top: calc(var(--header-height) + var(--spacing-unit) * 4); /* Adjust for fixed header */
}
.section-neutral-bg {
    background-color: var(--color-background-section-neutral);
    border-top: 2px solid var(--color-border-brutal);
    border-bottom: 2px solid var(--color-border-brutal);
}

.section-title {
    text-align: center;
    margin-bottom: calc(var(--spacing-unit) * 5); /* 40px */
    font-weight: 900;
    color: var(--color-text-dark);
}

.section-intro {
    text-align: center;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: calc(var(--spacing-unit) * 4); /* 32px */
    font-size: 1.1rem;
    color: var(--color-text-medium);
}

/* Hero Section */
.hero-section {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: calc(var(--spacing-unit) * 10) var(--spacing-unit); /* 80px 8px */
    position: relative;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    min-height: 80vh; /* Ensure it's substantial but not overly huge */
    margin-top: var(--header-height); /* Account for fixed header */
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.7)); /* Dark overlay for text readability */
    z-index: 1;
}

.hero-content {
    position: relative;
    z-index: 2;
    max-width: 900px;
}

.hero-title {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    color: var(--color-text-light) !important; /* IMPORTANT: Ensures white text */
    margin-bottom: calc(var(--spacing-unit) * 2);
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7); /* Stronger shadow for hero */
}

.hero-subtitle {
    font-size: clamp(1.1rem, 3vw, 1.5rem);
    color: var(--color-text-light) !important; /* IMPORTANT: Ensures white text */
    margin-bottom: calc(var(--spacing-unit) * 4);
    line-height: 1.7;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.7);
}

/* Cards - Global Pattern */
.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: calc(var(--spacing-unit) * 3); /* 24px */
}

.card {
    background-color: var(--color-background-section-light);
    border: 2px solid var(--color-border-brutal);
    border-radius: var(--border-radius-sharp);
    box-shadow: var(--shadow-brutal-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center; /* Center content within the card */
    text-align: center; /* Center text within card content */
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
    transform: translateY(-5px) scale(1.01);
    box-shadow: var(--shadow-brutal-lg);
}

.card-image {
    width: 100%;
    height: 200px; /* Fixed height for image container */
    overflow: hidden;
    display: flex; /* For centering if image is smaller */
    align-items: center;
    justify-content: center;
    border-bottom: 2px solid var(--color-border-brutal);
}

.card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures image covers the area, might crop */
    margin: 0 auto; /* Center image if its aspect ratio doesn't fill width */
}

.card-content {
    padding: calc(var(--spacing-unit) * 2.5); /* 20px */
    flex-grow: 1; /* Allows content to fill space, useful for buttons at bottom */
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Pushes button to bottom if card has fixed height */
}

.card-title {
    margin-top: 0;
    margin-bottom: var(--spacing-unit);
    font-size: 1.4rem;
}

.card .btn, .card button {
    margin-top: auto; /* Pushes button to the bottom of card-content */
    align-self: center;
}

.read-more-link {
    font-weight: 700;
    display: inline-block;
    margin-top: var(--spacing-unit);
    color: var(--color-primary);
    text-decoration: underline dotted;
}
.read-more-link:hover {
    color: var(--color-primary-dark);
    text-decoration: underline solid;
}

/* News Section Specifics (if any, mostly uses card-grid) */

/* Webinars Section */
/* Uses card-grid. Modal styles below. */

/* Team Section */
.team-grid {
    gap: calc(var(--spacing-unit) * 4); /* 32px */
}
.team-grid .card-image {
    height: 250px; /* Slightly larger for profile pics */
    border-radius: 0; /* Brutalism often avoids rounded profile pics */
}
.team-grid .card-image img {
    border-radius: 0;
}
.team-role {
    font-style: italic;
    color: var(--color-text-medium);
    margin-bottom: var(--spacing-unit);
    font-size: 0.9rem;
}

/* Sustainability Section */
.sustainability-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--spacing-unit) * 3);
}
.sustainability-image-container {
    width: 100%;
    max-width: 700px; /* Control image size */
    border: 2px solid var(--color-border-brutal);
    box-shadow: var(--shadow-brutal-md);
}
.sustainability-content p {
    text-align: left;
    max-width: 700px;
}
@media (min-width: 768px) {
    .sustainability-content {
        flex-direction: row;
        align-items: flex-start;
    }
    .sustainability-image-container {
        flex: 0 0 45%; /* Image takes up 45% of width */
    }
    .sustainability-content p {
        flex: 1;
    }
}

/* Press Section */
.press-mentions .press-item {
    background-color: var(--color-background-section-light);
    padding: calc(var(--spacing-unit) * 2.5);
    margin-bottom: calc(var(--spacing-unit) * 2);
    border: 2px solid var(--color-border-brutal);
    box-shadow: var(--shadow-brutal-sm);
    text-align: center;
}
.press-mentions .press-item p {
    margin-bottom: 0;
}
.press-mentions .press-item strong {
    display: block;
    margin-top: var(--spacing-unit);
    font-family: var(--font-primary);
}

/* Customer Stories / Testimonials */
.testimonials-grid .card-image {
    width: 100px;
    height: 100px;
    border-radius: var(--border-radius-sharp); /* Sharp for brutalism */
    margin: 0 auto calc(var(--spacing-unit) * 2) auto; /* Center and add bottom margin */
    border: 2px solid var(--color-border-brutal);
    box-shadow: var(--shadow-brutal-sm);
}
.testimonials-grid .card-content p {
    font-style: italic;
    margin-bottom: var(--spacing-unit);
}
.testimonials-grid .card-content cite {
    font-weight: 700;
    font-style: normal;
    color: var(--color-text-dark);
    font-family: var(--font-primary);
}

/* External Resources Section */
.external-links-list .external-link-item {
    margin-bottom: calc(var(--spacing-unit) * 2);
    padding: calc(var(--spacing-unit) * 2);
    /* Uses .card styles by default via HTML structure */
}
.external-links-list .external-link-item h4 a {
    text-decoration: none;
    color: var(--color-primary);
}
.external-links-list .external-link-item h4 a:hover {
    text-decoration: underline;
}

/* Contact Section */
.contact-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: calc(var(--spacing-unit) * 4); /* 32px */
    align-items: start;
}

@media (min-width: 992px) {
    .contact-wrapper {
        grid-template-columns: 1fr 1.5fr; /* Info | Form */
    }
    .contact-info {
        padding-right: calc(var(--spacing-unit) * 3);
    }
}

.contact-info h3 {
    margin-bottom: calc(var(--spacing-unit) * 1.5);
}
.contact-info p {
    margin-bottom: var(--spacing-unit);
}
.contact-form {
    background-color: var(--color-background-section-light);
    padding: calc(var(--spacing-unit) * 3);
    border: 2px solid var(--color-border-brutal);
    box-shadow: var(--shadow-brutal-md);
}

/* Footer */
.site-footer {
    background-color: var(--color-background-footer);
    color: var(--color-text-light);
    padding: calc(var(--spacing-unit) * 5) 0 calc(var(--spacing-unit) * 2) 0;
    border-top: 4px solid var(--color-border-brutal);
}

.footer-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: calc(var(--spacing-unit) * 3);
    margin-bottom: calc(var(--spacing-unit) * 3);
}

.site-footer h4 {
    font-family: var(--font-primary);
    font-weight: 700;
    color: var(--color-text-light);
    margin-bottom: var(--spacing-unit) * 1.5;
    font-size: 1.2rem;
}

.site-footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.site-footer ul li {
    margin-bottom: var(--spacing-unit);
}

.site-footer ul a {
    color: #A9A9A9; /* Lighter grey for footer links */
    text-decoration: none;
    font-size: 0.95rem;
}

.site-footer ul a:hover, .site-footer ul a:focus {
    color: var(--color-text-light);
    text-decoration: underline;
}
.footer-social ul a { /* Text links for social media */
    display: inline-block; /* Better for hover effects if any */
}

.footer-contact p {
    font-size: 0.95rem;
    color: #A9A9A9;
    margin-bottom: calc(var(--spacing-unit) / 2);
}
.footer-contact a {
    color: #A9A9A9;
}
.footer-contact a:hover {
    color: var(--color-text-light);
}


.footer-bottom {
    text-align: center;
    padding-top: calc(var(--spacing-unit) * 2);
    border-top: 1px solid #444; /* Subtle separator */
    font-size: 0.9rem;
    color: #A9A9A9;
}

/* Modals */
.modal {
    display: none; /* Hidden by default */
    position: fixed;
    z-index: 2000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.6); /* Dimmed background */
    backdrop-filter: blur(5px); /* Glassmorphism effect */
    -webkit-backdrop-filter: blur(5px);
}

.modal-content {
    background-color: var(--color-background-section-light);
    margin: 10% auto;
    padding: calc(var(--spacing-unit) * 3); /* 24px */
    border: 3px solid var(--color-border-brutal);
    box-shadow: var(--shadow-brutal-lg);
    width: 80%;
    max-width: 700px;
    position: relative;
    border-radius: var(--border-radius-sharp);
    animation: modalOpen 0.4s ease-out;
}

@keyframes modalOpen {
    from { transform: scale(0.9) translateY(-50px); opacity: 0; }
    to { transform: scale(1) translateY(0); opacity: 1; }
}

.modal-title {
    margin-top: 0;
    margin-bottom: calc(var(--spacing-unit) * 2);
}

.modal-content img {
    max-width: 100%;
    height: auto;
    margin-bottom: var(--spacing-unit) * 2;
    border: 2px solid var(--color-border-brutal);
}

.close-button {
    color: var(--color-text-dark);
    position: absolute;
    top: calc(var(--spacing-unit) * 1.5);
    right: calc(var(--spacing-unit) * 2);
    font-size: 2rem;
    font-weight: bold;
    line-height: 1;
    transition: color 0.2s ease;
}

.close-button:hover,
.close-button:focus {
    color: var(--color-primary);
    text-decoration: none;
    cursor: pointer;
}

/* Progress Indicators */
.progress-indicator-container {
    margin-top: calc(var(--spacing-unit) * 2.5); /* 20px */
    text-align: center;
}
.progress-indicator-container p {
    margin-bottom: var(--spacing-unit);
    font-style: italic;
}
.progress-bar {
    width: 80%;
    max-width: 400px;
    height: 20px;
    border: 2px solid var(--color-border-brutal);
    border-radius: var(--border-radius-sharp);
    overflow: hidden;
    box-shadow: var(--shadow-brutal-sm);
    background-color: var(--color-background-section-neutral); /* Track color */
}
.progress-bar::-webkit-progress-bar {
    background-color: var(--color-background-section-neutral);
    border-radius: var(--border-radius-sharp);
}
.progress-bar::-webkit-progress-value {
    background-color: var(--color-primary);
    transition: width 0.5s ease-out;
}
.progress-bar::-moz-progress-bar { /* Firefox */
    background-color: var(--color-primary);
    border-radius: var(--border-radius-sharp);
    transition: width 0.5s ease-out;
}

/* Particle Animation Container */
#particle-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1; /* Behind all content */
    /* Particles will be drawn here by JS */
}

/* Specific Page Styles */
/* For pages like privacy.html, terms.html */
.page-content {
    padding-top: var(--header-height); /* Push content below fixed header */
}
.page-content .content-section { /* Ensure sections within these pages also have top padding */
     padding-top: calc(var(--spacing-unit) * 5); /* 40px */
}
.page-content h1.section-title {
    margin-top: calc(var(--spacing-unit) * 3); /* Additional top margin for page title */
}

/* Success Page (success.html) */
.success-container { /* Applied to the container in success.html */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - var(--header-height) - 100px); /* Full viewport height minus header and approximate footer */
    text-align: center;
    padding: 20px;
}
/* Adjust success.html min-height if footer height is known and fixed */
/* Note: The HTML structure of success.html uses .content-section and .container.
   The .success-container class in HTML will apply these styles.
   If success.html only has ONE .content-section, this will work well.
*/


/* Cookie Consent Popup */
/* Basic styling already in HTML. This can enhance or override if needed. */
#cookie-consent-popup {
    font-family: var(--font-secondary);
    border-top: 3px solid var(--color-border-brutal) !important;
    box-shadow: 0 -3px 5px rgba(0,0,0,0.1);
}
#cookie-consent-popup p {
    color: #FFF; /* Ensure high contrast */
    font-size: 0.95em !important;
}
#accept-cookies-button {
    background-color: var(--color-primary) !important;
    color: var(--color-text-light) !important;
    border: 2px solid var(--color-border-brutal) !important;
    box-shadow: var(--shadow-brutal-sm) !important;
    padding: 10px 25px !important;
    border-radius: var(--border-radius-sharp) !important;
    transition: background-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
#accept-cookies-button:hover {
    background-color: var(--color-primary-dark) !important;
    box-shadow: var(--shadow-brutal-md) !important;
    transform: translate(-1px, -1px);
}


/* Responsive Adjustments */
@media (max-width: 991px) {
    .main-navigation .nav-menu {
        display: none; /* Hide menu by default */
        flex-direction: column;
        position: absolute;
        top: calc(var(--header-height) + 2px); /* Below header + border */
        left: 0;
        width: 100%;
        background-color: var(--color-background-section-light);
        border-top: 2px solid var(--color-border-brutal);
        border-bottom: 2px solid var(--color-border-brutal);
        box-shadow: 0 3px 5px rgba(0,0,0,0.1);
        padding: var(--spacing-unit) 0;
    }

    .main-navigation .nav-menu.is-active {
        display: flex; /* Show when active */
    }

    .main-navigation .nav-menu li {
        margin-left: 0;
        width: 100%;
        text-align: center;
    }

    .main-navigation .nav-menu a {
        display: block;
        padding: calc(var(--spacing-unit) * 1.5) var(--spacing-unit); /* 12px 8px */
        border-bottom: 1px solid var(--color-background-section-neutral);
    }
    .main-navigation .nav-menu li:last-child a {
        border-bottom: none;
    }

    .menu-toggle {
        display: block; /* Show burger icon */
    }

    .hero-title {
        font-size: clamp(2rem, 8vw, 3rem);
    }
    .hero-subtitle {
        font-size: clamp(1rem, 5vw, 1.2rem);
    }

    .footer-content {
        grid-template-columns: 1fr; /* Stack footer columns */
        text-align: center;
    }
    .footer-content > div {
        margin-bottom: calc(var(--spacing-unit) * 2);
    }
}

@media (max-width: 767px) {
    .card-grid {
        grid-template-columns: 1fr; /* Single column for cards on small screens */
    }
    .contact-wrapper {
        grid-template-columns: 1fr;
    }
}


/* Parallax and Scroll Animation Placeholders */
/* These would typically be handled with JavaScript observing elements */
.parallax-background {
    /* JS will manipulate background-position */
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Utility Classes */
.text-center { text-align: center; }
.hidden { display: none; }
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}