/* style.css */

/*--------------------------------------------------------------
# CSS Variables
--------------------------------------------------------------*/
:root {
  --font-primary: 'Source Sans Pro', sans-serif;
  --font-secondary: 'Playfair Display', serif;

  /* Pastel Color Scheme */
  --color-primary: #ADD8E6; /* Light Blue */
  --color-primary-darker: #9CC2D6; /* Darker Light Blue for hover */
  --color-secondary: #F2D7D5; /* Soft Pink */
  --color-secondary-darker: #E6C3C1; /* Darker Soft Pink for hover */
  --color-accent: #D4EFDF; /* Pale Mint Green */
  --color-accent-darker: #BCE0BE; /* Darker Pale Mint Green */
  
  --color-background: #FDFEFE; /* Very Light Grey / Off-White */
  --color-surface: #FFFFFF; /* White for cards, etc. */
  --color-surface-alt: #F8F0E5; /* Pastel Beige for alternative backgrounds */

  --text-color-primary: #333333; /* Dark Grey for body text */
  --text-color-secondary: #555555; /* Medium Grey for less important text */
  --text-color-headings: #222222; /* Darker Grey for main headings */
  --text-color-light: #FFFFFF; /* White for text on dark backgrounds */
  --text-color-link: var(--color-primary);
  --text-color-link-hover: var(--color-primary-darker);

  /* Volumetric UI Shadows */
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.1);
  --shadow-volumetric: 3px 3px 8px rgba(0, 0, 0, 0.15), -1px -1px 4px rgba(255, 255, 255, 0.05);
  --shadow-volumetric-inset: inset 2px 2px 5px rgba(0,0,0,0.1), inset -2px -2px 5px rgba(255,255,255,0.7);

  /* Spacing */
  --spacing-xs: 0.5rem;  /* 8px */
  --spacing-sm: 1rem;    /* 16px */
  --spacing-md: 1.5rem;  /* 24px */
  --spacing-lg: 2rem;    /* 32px */
  --spacing-xl: 3rem;    /* 48px */
  --section-padding: 4rem 0; /* 64px top/bottom */

  /* Borders */
  --border-radius-sm: 4px;
  --border-radius-md: 8px;
  --border-radius-lg: 12px;

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

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

html {
  scroll-behavior: smooth;
  font-size: 16px; /* Base font size */
}

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

/* Loading Screen */
.loading-screen {
  transition: opacity 0.5s ease-out, visibility 0.5s ease-out;
}

.loading-screen.hidden {
  opacity: 0;
  visibility: hidden;
}


/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-secondary);
  color: var(--text-color-headings);
  margin-bottom: var(--spacing-md);
  line-height: 1.3;
  font-weight: 700;
}

h1 { font-size: 2.8rem; } /* ~44.8px */
h2 { font-size: 2.2rem; } /* ~35.2px */
h3 { font-size: 1.8rem; } /* ~28.8px */
h4 { font-size: 1.4rem; } /* ~22.4px */

.section-title {
  text-align: center;
  margin-bottom: var(--spacing-xl);
  font-size: 2.5rem; /* ~40px */
  color: var(--text-color-headings);
  text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
}

.section-intro {
  text-align: center;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--spacing-lg);
  color: var(--text-color-secondary);
  font-size: 1.1rem;
}

/* Paragraphs and Links */
p {
  margin-bottom: var(--spacing-sm);
  color: var(--text-color-primary);
}

a {
  color: var(--text-color-link);
  text-decoration: none;
  transition: var(--transition-fast);
}

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

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

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

/* Section Padding */
.section-padding {
  padding: var(--section-padding);
}

/* Background utility */
.bg-surface-alt {
  background-color: var(--color-surface-alt);
}

/* Text alignment utility */
.text-center {
  text-align: center;
}

/* Columns Container */
.columns-container {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-lg);
}

.column {
  flex: 1 1 300px; /* Base for columns, allows wrapping */
}

.column.is-two-thirds {
  flex-basis: 66.66%;
}
.column.is-half {
  flex-basis: calc(50% - (var(--spacing-lg) / 2));
}


/*--------------------------------------------------------------
# Buttons (Global)
--------------------------------------------------------------*/
.btn, button, input[type="submit"], input[type="reset"], input[type="button"] {
  display: inline-block;
  font-family: var(--font-primary);
  font-weight: 600;
  font-size: 1rem;
  padding: var(--spacing-sm) var(--spacing-lg);
  border-radius: var(--border-radius-md);
  border: none;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  transition: var(--transition-medium);
  box-shadow: var(--shadow-volumetric);
  letter-spacing: 0.5px;
}

.btn:active, button:active, input[type="submit"]:active {
  transform: translateY(1px) scale(0.98);
  box-shadow: var(--shadow-sm);
}

.btn-primary,
button.btn-primary,
input[type="submit"].btn-primary {
  background-color: var(--color-primary);
  color: var(--text-color-headings);
}

.btn-primary:hover,
button.btn-primary:hover,
input[type="submit"].btn-primary:hover {
  background-color: var(--color-primary-darker);
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  transform: translateY(-2px);
  color: var(--text-color-headings);
  text-decoration: none;
}

.btn-secondary,
button.btn-secondary,
input[type="submit"].btn-secondary {
  background-color: var(--color-secondary);
  color: var(--text-color-headings);
}

.btn-secondary:hover,
button.btn-secondary:hover,
input[type="submit"].btn-secondary:hover {
  background-color: var(--color-secondary-darker);
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  transform: translateY(-2px);
  color: var(--text-color-headings);
  text-decoration: none;
}

/* Volumetric Element Style */
.volumetric-element {
  background-color: var(--color-surface);
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow-volumetric);
  padding: var(--spacing-lg);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.volumetric-element:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15), -2px -2px 8px rgba(255, 255, 255, 0.07);
}
.volumetric-element.padded-content {
    padding: var(--spacing-xl); /* Extra padding for content heavy volumetric elements */
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.site-header {
  background-color: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: var(--spacing-sm) 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  box-shadow: var(--shadow-md);
  transition: background-color 0.3s ease;
}

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

.site-header .logo {
  font-family: var(--font-secondary);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--text-color-headings);
  text-decoration: none;
}
.site-header .logo:hover {
  color: var(--color-primary);
}

.main-nav .nav-links {
  list-style: none;
  display: flex;
  gap: var(--spacing-md);
}

.main-nav .nav-links a {
  font-family: var(--font-primary);
  color: var(--text-color-primary);
  text-decoration: none;
  font-weight: 600;
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--border-radius-sm);
  transition: var(--transition-fast);
}

.main-nav .nav-links a:hover,
.main-nav .nav-links a.active {
  color: var(--color-primary-darker);
  background-color: rgba(173, 216, 230, 0.2); /* Light primary translucent */
}

.nav-toggle {
  display: none; /* Hidden by default, shown on mobile */
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--spacing-xs);
  z-index: 1001;
}

.nav-toggle span {
  display: block;
  width: 25px;
  height: 3px;
  background-color: var(--text-color-headings);
  margin: 5px 0;
  border-radius: 3px;
  transition: var(--transition-medium);
}

/*--------------------------------------------------------------
# Hero Section
--------------------------------------------------------------*/
.hero-section {
  min-height: 85vh; /* Adjusted from 100vh to account for header */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative; /* For overlay */
  padding: var(--spacing-xl) var(--spacing-sm);
  margin-top: 0; /* Header is fixed, so hero can be at the top */
}

.hero-content {
  max-width: 800px;
  position: relative; /* To be above the pseudo-element if used */
  z-index: 2;
}

.hero-content h1 {
  font-size: 3.5rem; /* ~56px */
  color: var(--text-color-light);
  text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.7);
  margin-bottom: var(--spacing-md);
}

.hero-content p {
  font-size: 1.3rem; /* ~20.8px */
  color: var(--text-color-light);
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);
  margin-bottom: var(--spacing-lg);
  line-height: 1.6;
}

.hero-content .btn-primary {
  font-size: 1.1rem;
  padding: var(--spacing-md) var(--spacing-xl);
}

/*--------------------------------------------------------------
# Stats Section
--------------------------------------------------------------*/
.stats-section {
  background-color: var(--color-surface-alt);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--spacing-lg);
}

.stat-widget {
  text-align: center;
  padding: var(--spacing-xl) var(--spacing-lg); /* Increased padding */
}

.stat-widget .stat-number {
  font-size: 3.5rem;
  color: var(--color-primary-darker);
  margin-bottom: var(--spacing-xs);
  font-weight: 700;
}

.stat-widget .stat-description {
  font-size: 1rem;
  color: var(--text-color-secondary);
  line-height: 1.5;
}

/*--------------------------------------------------------------
# Research Section & External Resources Section (Card-based)
--------------------------------------------------------------*/
.research-section,
.external-resources-section {
    /* Common styles if any */
}

.research-content,
.resources-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--spacing-lg);
}

.card {
  background-color: var(--color-surface);
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  transition: var(--transition-medium);
  display: flex;
  flex-direction: column;
  /* align-items: center; STROGO: Already part of .volumetric-element */
}

/* .card:hover applied by .volumetric-element:hover */

.card .card-image {
  width: 100%;
  height: 200px; /* Fixed height for card images */
  overflow: hidden;
  display: flex; /* For centering image inside */
  align-items: center;
  justify-content: center;
}

.card .card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Ensures image covers the area, may crop */
  transition: transform 0.3s ease;
}

.card:hover .card-image img {
  transform: scale(1.05);
}

.card .card-content {
  padding: var(--spacing-lg);
  text-align: left; /* Default, can be overridden if needed */
  flex-grow: 1; /* Allows content to fill space if cards have different heights */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.card .card-content h3 {
  margin-bottom: var(--spacing-sm);
  font-size: 1.5rem;
  color: var(--text-color-headings);
}
.card .card-content h3 a {
    color: var(--text-color-headings);
}
.card .card-content h3 a:hover {
    color: var(--color-primary-darker);
}

.card .card-content p {
  margin-bottom: var(--spacing-md);
  font-size: 0.95rem;
  color: var(--text-color-secondary);
  flex-grow: 1;
}

.card .card-content .read-more-link {
  display: inline-block;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  margin-top: auto; /* Pushes to bottom */
}

.card .card-content .read-more-link:hover {
  color: var(--color-primary-darker);
  text-decoration: underline;
}

/* Resource Card specific if needed */
.resource-card .card-content p {
  font-size: 0.9rem;
}

/*--------------------------------------------------------------
# Events Calendar Section (Timeline)
--------------------------------------------------------------*/
.events-section {
  background-color: var(--color-surface-alt);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.timeline {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
  padding: var(--spacing-lg) 0;
}

.timeline::after { /* The central line */
  content: '';
  position: absolute;
  width: 4px;
  background-color: var(--color-primary);
  top: 0;
  bottom: 0;
  left: 50%;
  margin-left: -2px;
  border-radius: 2px;
  z-index: 0;
}

.timeline-item {
  padding: var(--spacing-sm) var(--spacing-lg);
  position: relative;
  background-color: inherit;
  width: 50%;
  margin-bottom: var(--spacing-lg);
  z-index: 1;
}

/* The circles on the timeline */
.timeline-item::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  right: -10px;
  background-color: var(--color-surface);
  border: 4px solid var(--color-primary);
  top: 20px;
  border-radius: 50%;
  z-index: 2;
}

/* Place the item to the left */
.timeline-item:nth-child(odd) {
  left: 0;
  padding-right: calc(var(--spacing-lg) + 25px); /* Space for the circle */
}

/* Place the item to the right */
.timeline-item:nth-child(even) {
  left: 50%;
  padding-left: calc(var(--spacing-lg) + 25px); /* Space for the circle */
}

/* Fix the circle for right-sided items */
.timeline-item:nth-child(even)::after {
  left: -10px;
}

.timeline-date {
  font-weight: 600;
  color: var(--color-primary-darker);
  margin-bottom: var(--spacing-xs);
  font-size: 0.9rem;
}
.timeline-item:nth-child(odd) .timeline-date { text-align: right; }
.timeline-item:nth-child(even) .timeline-date { text-align: left; }


.timeline-content {
  /* .volumetric-element already applies padding, background, shadow, radius */
  text-align: left;
}
.timeline-item:nth-child(odd) .timeline-content {
    margin-right: 20px; /* Additional spacing from the central line */
}
.timeline-item:nth-child(even) .timeline-content {
    margin-left: 20px; /* Additional spacing from the central line */
}

.timeline-content h4 {
  margin-top: 0;
  color: var(--text-color-headings);
  font-size: 1.3rem;
}

.timeline-content p {
  font-size: 0.95rem;
  color: var(--text-color-secondary);
  margin-bottom: 0;
}

/*--------------------------------------------------------------
# Behind the Scenes Section
--------------------------------------------------------------*/
.behind-scenes-section .column p {
    font-size: 1.05rem;
    line-height: 1.8;
}
.behind-scenes-section .image-container {
    display: flex; /* Center image if it's smaller */
    justify-content: center;
    align-items: center;
    overflow: hidden;
    /* .volumetric-element applies padding, use it carefully or override */
    padding: 0; /* Override if volumetric-element adds too much space around image */
    border-radius: var(--border-radius-lg); /* Ensure radius from volumetric is applied */
}
.behind-scenes-section .image-container img {
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-md); /* Shadow directly on image if not on container */
}


/*--------------------------------------------------------------
# Clientele Section
--------------------------------------------------------------*/
.clientele-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--spacing-xl);
  margin-bottom: var(--spacing-xl);
}

.clientele-logos .logo-item {
  padding: var(--spacing-sm); /* Padding from volumetric-element */
  background-color: var(--color-surface); /* Ensure surface color if not default */
  display: flex;
  justify-content: center;
  align-items: center;
}

.clientele-logos .logo-item img {
  max-height: 60px; /* Control logo height */
  width: auto;
  filter: grayscale(80%);
  opacity: 0.8;
  transition: var(--transition-medium);
}

.clientele-logos .logo-item:hover img {
  filter: grayscale(0%);
  opacity: 1;
  transform: scale(1.1);
}

.testimonials {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--spacing-lg);
  margin-top: var(--spacing-xl);
}

.testimonial-item {
  /* .volumetric-element applies base styles */
  text-align: center; /* Center content inside testimonial */
}

.testimonial-item p {
  font-style: italic;
  color: var(--text-color-secondary);
  margin-bottom: var(--spacing-sm);
  font-size: 1.05rem;
  line-height: 1.6;
  position: relative;
  padding-left: 30px; /* Space for quote icon */
  padding-right: 30px;
  text-align: left;
}
.testimonial-item p::before {
    content: '\201C'; /* Left double quotation mark */
    font-family: var(--font-secondary);
    font-size: 3rem;
    color: var(--color-accent);
    position: absolute;
    left: 0px;
    top: -10px;
    line-height: 1;
}


.testimonial-item span {
  display: block;
  font-weight: 600;
  color: var(--text-color-headings);
  margin-top: var(--spacing-sm);
  font-size: 0.95rem;
  text-align: right;
}

/*--------------------------------------------------------------
# Contact Section Teaser / Actual Contact Form Page
--------------------------------------------------------------*/
.contact-teaser-section {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--text-color-primary); /* Ensure readability on its background */
}
.contact-teaser-section h2 {
    color: var(--text-color-headings); /* Ensure contrast if background is light */
    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
}
.contact-teaser-section p {
    color: var(--text-color-secondary);
    margin-bottom: var(--spacing-lg);
}

.contact-form-section {
    padding-top: var(--spacing-xl); /* Give space if used on separate page with header */
}

.contact-form .form-group {
  margin-bottom: var(--spacing-md);
}

.contact-form label {
  display: block;
  font-weight: 600;
  margin-bottom: var(--spacing-xs);
  color: var(--text-color-primary);
}

.contact-form .form-control {
  width: 100%;
  padding: var(--spacing-sm);
  border: 1px solid #ddd; /* Softer border */
  border-radius: var(--border-radius-md);
  font-family: var(--font-primary);
  font-size: 1rem;
  transition: var(--transition-fast);
  background-color: var(--color-surface);
  box-shadow: var(--shadow-volumetric-inset);
}

.contact-form .form-control:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(173, 216, 230, 0.3), var(--shadow-volumetric-inset); /* Focus ring + inset */
}

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

.contact-form button[type="submit"] {
  width: auto;
  min-width: 180px;
}

.contact-details-column .contact-info {
    /* .volumetric-element applies base styles */
}
.contact-details-column .contact-info h3 {
    margin-bottom: var(--spacing-md);
}
.contact-details-column .contact-info p {
    margin-bottom: var(--spacing-sm);
    color: var(--text-color-secondary);
    line-height: 1.6;
}
.contact-details-column .contact-info strong {
    color: var(--text-color-primary);
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.site-footer {
  background-color: #333; /* Dark background for footer */
  color: #ccc; /* Light grey text */
  padding: var(--spacing-xl) 0 var(--spacing-sm) 0;
  font-size: 0.9rem;
}

.footer-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--spacing-lg);
  padding-bottom: var(--spacing-lg);
  border-bottom: 1px solid #444; /* Separator line */
  margin-bottom: var(--spacing-lg);
}

.site-footer h4 {
  font-family: var(--font-secondary);
  color: var(--text-color-light);
  margin-bottom: var(--spacing-md);
  font-size: 1.3rem;
}

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

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

.site-footer ul a {
  color: #ccc;
  text-decoration: none;
  transition: var(--transition-fast);
}

.site-footer ul a:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

.footer-contact p {
  margin-bottom: var(--spacing-xs);
  color: #ccc;
}
.footer-contact a {
    color: var(--color-primary);
}
.footer-contact a:hover {
    color: var(--color-primary-darker);
}

/* Social links are text-based as per requirement */
.footer-social ul {
    /* Standard ul styling applies */
}
.footer-social ul li a {
    /* Standard 'a' styling in footer applies */
    /* Add specific icons via pseudo-elements or font icons if needed, but keep text */
}


.footer-bottom {
  text-align: center;
  padding-top: var(--spacing-sm);
  font-size: 0.85rem;
  color: #aaa;
}

/*--------------------------------------------------------------
# Page Specific Styles (About, Terms, Privacy, Success)
--------------------------------------------------------------*/
.page-header-section {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 6rem 0 4rem 0; /* Increased top padding to push content below fixed header */
  text-align: center;
  margin-top: 0; /* Header is fixed */
}
.page-header-section h1 {
  color: var(--text-color-light);
  text-shadow: 2px 2px 6px rgba(0,0,0,0.7);
  font-size: 3rem;
}

.about-content-section,
.legal-content-section,
.success-section {
  padding-top: calc(60px + var(--spacing-xl)); /* 60px approx header height + extra space */
                                                /* This is for pages that don't have their own .page-header-section */
}

/* For legal pages like privacy.html and terms.html */
main[data-barba-namespace="privacy"] .legal-content-section,
main[data-barba-namespace="terms"] .legal-content-section {
    padding-top: 100px; /* Specific top padding for these pages to avoid header overlap */
}

.legal-content-section h2 {
    margin-top: var(--spacing-lg);
    margin-bottom: var(--spacing-sm);
    font-size: 1.8rem;
}
.legal-content-section h3 {
    margin-top: var(--spacing-md);
    margin-bottom: var(--spacing-xs);
    font-size: 1.4rem;
}
.legal-content-section ul {
    list-style-position: inside;
    margin-left: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
}

/* Success Page */
main[data-barba-namespace="success"] {
  display: flex;
  flex-direction: column; /* To make footer stick to bottom */
  min-height: 100vh;
}
.success-section {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-top: 0; /* Reset, as the flex handles centering */
}
.success-section .container {
    max-width: 600px;
}
.success-section .success-icon img {
    margin: 0 auto var(--spacing-lg) auto;
    width: 100px; /* Adjust as needed */
    height: 100px;
}
.success-section h1 {
    color: var(--color-accent-darker);
    font-size: 2.5rem;
}
.success-section p {
    font-size: 1.1rem;
    color: var(--text-color-secondary);
    margin-bottom: var(--spacing-md);
}

/*--------------------------------------------------------------
# Responsive Styles
--------------------------------------------------------------*/
@media (max-width: 992px) {
  .section-title { font-size: 2.2rem; }
  h1 { font-size: 2.5rem; }
  .hero-content h1 { font-size: 3rem; }
  .hero-content p { font-size: 1.15rem; }

  .column.is-two-thirds, .column.is-half {
    flex-basis: 100%; /* Stack columns */
  }
}

@media (max-width: 768px) {
  .header-container {
    padding-left: var(--spacing-sm);
    padding-right: var(--spacing-sm);
  }
  .main-nav .nav-links {
    display: none; /* Hide links for burger menu */
    flex-direction: column;
    position: absolute;
    top: 100%; /* Position below header */
    left: 0;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-sm) 0;
    border-top: 1px solid #eee;
  }
  .main-nav .nav-links.active {
    display: flex; /* Show when active */
  }
  .main-nav .nav-links li {
    width: 100%;
    text-align: center;
  }
  .main-nav .nav-links a {
    display: block;
    padding: var(--spacing-sm);
    width: 100%;
    border-radius: 0;
  }
  .main-nav .nav-links a:hover {
    background-color: rgba(173, 216, 230, 0.3);
  }

  .nav-toggle {
    display: block; /* Show burger icon */
  }
  
  /* Open state for burger icon */
  .nav-toggle.open span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  .nav-toggle.open span:nth-child(2) {
    opacity: 0;
  }
  .nav-toggle.open span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }

  .hero-content h1 { font-size: 2.5rem; }
  .hero-content p { font-size: 1rem; }
  .hero-section { min-height: 70vh; }

  .stats-grid { grid-template-columns: 1fr; } /* Stack stat widgets */

  .timeline::after { left: 20px; margin-left: 0; }
  .timeline-item { width: 100%; padding-left: var(--spacing-lg) + 25px; padding-right: var(--spacing-sm); }
  .timeline-item:nth-child(odd),
  .timeline-item:nth-child(even) {
    left: 0;
    padding-left: calc(var(--spacing-lg) + 25px); /* Space for circle */
    padding-right: var(--spacing-sm);
  }
  .timeline-item::after,
  .timeline-item:nth-child(even)::after {
    left: 10px; /* Position circle to the left of item */
  }
  .timeline-item:nth-child(odd) .timeline-date,
  .timeline-item:nth-child(even) .timeline-date { text-align: left; }
  .timeline-item:nth-child(odd) .timeline-content,
  .timeline-item:nth-child(even) .timeline-content { margin-left: 0; }


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

@media (max-width: 576px) {
  .section-title { font-size: 1.8rem; }
  h1 { font-size: 2rem; }
  .hero-content h1 { font-size: 2rem; }
  .hero-content p { font-size: 0.9rem; }

  .btn, button, input[type="submit"] {
    font-size: 0.9rem;
    padding: var(--spacing-sm) var(--spacing-md);
  }
}

/* Animate.css - Trigger animations on scroll */
/* Ensure elements have 'animate__animated' and the specific animation class */
/* JavaScript will be needed to add a class like 'animate__fadeInUp' when element is in viewport */
.animate__animated {
  visibility: hidden; /* Hide until JS adds animation trigger */
}

/* Style for elements that have been animated (made visible) */
.animate__animated.animate__start-animation {
  visibility: visible;
}

/* Cookie Consent Popup */
#cookieConsentPopup p a {
  color: var(--color-primary); /* Use a pastel color for the link */
}
#cookieConsentPopup p a:hover {
  color: var(--color-primary-darker);
}
#cookieConsentPopup button {
  background-color: var(--color-primary);
  color: var(--text-color-headings);
  font-weight: 600;
  box-shadow: var(--shadow-sm); /* Lighter shadow for this button */
}
#cookieConsentPopup button:hover {
  background-color: var(--color-primary-darker);
  box-shadow: var(--shadow-md);
}

/* Parallax effect for background images - basic CSS version */
/* For more advanced parallax, JS is usually required */
/*
.parallax-section {
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
*/
/* This can be applied to sections like Hero, Events, Contact Teaser if they have background images */

/* Ensuring high contrast for text on images - Global approach for background images */
[style*="background-image"] { /* Selects elements with inline background-image style */
    position: relative; /* Needed for pseudo-element overlay */
}

/* Example of how the HTML uses linear-gradient for overlays
   If not, you might need a pseudo-element approach:
[style*="background-image"]:not(.no-overlay)::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4));
    z-index: 1;
}
[style*="background-image"] > * {
    position: relative;
    z-index: 2;
}
*/
.nav-toggle{
  display: none;
}