/* style.css */

/*--------------------------------------------------------------
# Root Variables
--------------------------------------------------------------*/
:root {
  --font-heading: 'Manrope', sans-serif;
  --font-body: 'Rubik', sans-serif;

  --primary-color: #6A994E; /* Eco Green */
  --primary-rgb: 106, 153, 78;
  --primary-darker: #53783c;
  --secondary-color: #A5A58D; /* Muted Earth/Stone */
  --accent-color: #F4A261;   /* Warm Accent */
  --info-color: #5BC0DE;
  --success-color: #5CB85C;

  --text-color-dark: #333333;
  --text-color-medium: #555555;
  --text-color-light: #FFFFFF;
  --heading-color: #222222; /* Darker for headings, good contrast */

  --bg-light: #F8F9FA;
  --bg-white: #FFFFFF;
  --bg-dark-section: #2C3E50; /* For sections like stats */
  --footer-bg: #212529; /* Bootstrap's dark, for footer */

  --border-color: #DEE2E6;
  --border-radius-base: 0.5rem;
  --border-radius-sm: 0.3rem;

  --card-bg: var(--bg-white);
  --card-shadow: 0 6px 18px rgba(0, 0, 0, 0.07);
  --card-border-radius: var(--border-radius-base);
  --card-image-height: 220px; /* Default height for card images */

  --input-bg: var(--bg-white);
  --input-border-color: #CED4DA;
  --input-focus-border-color: rgba(var(--primary-rgb), 0.6);
  --input-focus-box-shadow: 0 0 0 0.25rem rgba(var(--primary-rgb), 0.2);
  --input-placeholder-color: #6c757d;

  --transition-base: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); /* Non-linear */
  --transition-fast: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
  --animation-duration: 0.5s;
}

/*--------------------------------------------------------------
# Global Styles
--------------------------------------------------------------*/
body {
  font-family: var(--font-body);
  color: var(--text-color-medium);
  background-color: var(--bg-white);
  line-height: 1.7;
  font-size: 1rem; /* 16px base */
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  scroll-behavior: smooth;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-heading);
  color: var(--heading-color);
  font-weight: 700;
  margin-top: 0;
  margin-bottom: 0.75rem;
  line-height: 1.3;
}

h1, .h1 { font-size: 2.8rem; }
h2, .h2 { font-size: 2.2rem; }
h3, .h3 { font-size: 1.8rem; }
h4, .h4 { font-size: 1.5rem; }
h5, .h5 { font-size: 1.25rem; }
h6, .h6 { font-size: 1rem; }

@media (max-width: 768px) {
  h1, .h1 { font-size: 2.2rem; }
  h2, .h2 { font-size: 1.8rem; }
  h3, .h3 { font-size: 1.5rem; }
}

p {
  margin-bottom: 1rem;
  color: var(--text-color-medium);
}

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

a:hover {
  color: var(--primary-darker);
  text-decoration: none; /* Often preferred in modern design, provide other visual cues */
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

/* Section Padding & Title */
section {
  padding-top: 70px;
  padding-bottom: 70px;
  overflow: hidden;
}

.section-title {
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--heading-color);
  text-align: center;
  margin-bottom: 2rem; /* Increased margin */
  padding-bottom: 1rem;
  position: relative;
}

.section-title::after {
  content: '';
  position: absolute;
  display: block;
  width: 70px; /* Slightly wider */
  height: 4px; /* Slightly thicker */
  background: var(--primary-color);
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 2px;
}

/*--------------------------------------------------------------
# Buttons (Global Styles)
--------------------------------------------------------------*/
.btn {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.95rem;
  letter-spacing: 0.5px;
  display: inline-block;
  padding: 12px 30px;
  border-radius: var(--border-radius-sm);
  transition: var(--transition-base);
  line-height: 1.5;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  border: 1px solid transparent;
  text-transform: capitalize; /* As per HTML, some are capitalized */
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
.btn:hover {
  transform: translateY(-3px); /* Slightly more lift */
  box-shadow: 0 6px 12px rgba(0,0,0,0.1);
}
.btn:active {
  transform: translateY(-1px);
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

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

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

.btn-success {
  background-color: var(--success-color);
  border-color: var(--success-color);
  color: var(--text-color-light);
}
.btn-success:hover {
  background-color: #49a349; /* Darker success */
  border-color: #49a349;
  color: var(--text-color-light);
}

.btn-info {
  background-color: var(--info-color);
  border-color: var(--info-color);
  color: var(--text-color-light);
}
.btn-info:hover {
  background-color: #4aabbc; /* Darker info */
  border-color: #4aabbc;
  color: var(--text-color-light);
}

.btn-light {
  background-color: var(--bg-white);
  border-color: #dae0e5; /* Slightly visible border */
  color: var(--text-color-dark);
}
.btn-light:hover {
  background-color: #eef1f3;
  border-color: #d1d7dc;
  color: var(--text-color-dark);
}

.btn-lg {
  padding: 14px 35px;
  font-size: 1.05rem; /* Slightly adjusted */
}

/*--------------------------------------------------------------
# Forms (Global Styles)
--------------------------------------------------------------*/
.form-control, .form-select {
  font-family: var(--font-body);
  border-radius: var(--border-radius-sm);
  padding: 0.8rem 1.1rem; /* Slightly more padding */
  font-size: 0.95rem;
  border: 1px solid var(--input-border-color);
  transition: var(--transition-base);
  background-color: var(--input-bg);
  color: var(--text-color-dark);
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.03);
}
.form-control::placeholder {
  color: var(--input-placeholder-color);
  opacity: 1;
}
.form-control:focus, .form-select:focus {
  border-color: var(--input-focus-border-color);
  box-shadow: var(--input-focus-box-shadow), inset 0 1px 2px rgba(0,0,0,0.03);
  background-color: var(--input-bg);
}
.form-control-lg, .form-select-lg {
  padding: 0.9rem 1.25rem;
  font-size: 1.05rem;
}
textarea.form-control {
    min-height: 120px;
}

/*--------------------------------------------------------------
# Header / Navbar
--------------------------------------------------------------*/
.navbar.sticky-top {
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.06);
  background-color: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.navbar-brand {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1.8rem;
  color: var(--heading-color) !important;
}
.nav-link {
  font-family: var(--font-body);
  font-weight: 500;
  color: var(--text-color-medium) !important;
  padding: 0.6rem 1rem !important;
  transition: var(--transition-fast);
  font-size: 0.95rem;
  position: relative;
}
.nav-link:hover, .nav-link.active {
  color: var(--primary-color) !important;
}
.nav-link::before { /* Underline effect for active/hover */
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 2px;
    background-color: var(--primary-color);
    transition: width 0.3s ease-in-out;
}
.nav-link:hover::before, .nav-link.active::before {
    width: 70%;
}
.navbar-toggler {
  border: none;
  padding: 0.5rem;
}
.navbar-toggler:focus {
  box-shadow: none;
}
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(34,34,34,0.8)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.5' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  width: 1.8em;
  height: 1.8em;
}

/*--------------------------------------------------------------
# Hero Section
--------------------------------------------------------------*/
.hero-section {
  position: relative;
  /* background-attachment: fixed; -- already in HTML */
}
.hero-section .container h1 {
  color: var(--text-color-light); /* Enforced white */
  font-size: 3.2rem;
  font-weight: 800;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.7); /* Stronger shadow for readability */
}
.hero-section .container p.lead {
  color: var(--text-color-light); /* Enforced white */
  font-size: 1.25rem;
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
  text-shadow: 1px 1px 6px rgba(0, 0, 0, 0.6);
}

@media (max-width: 768px) {
  .hero-section .container h1 {
    font-size: 2.5rem;
  }
  .hero-section .container p.lead {
    font-size: 1.1rem;
  }
}

/*--------------------------------------------------------------
# Clientele Section
--------------------------------------------------------------*/
#clientele .carousel-item img {
  max-height: 70px;
  width: auto;
  margin: 0 auto;
  filter: grayscale(90%) contrast(0.8);
  opacity: 0.7;
  transition: var(--transition-base);
}
#clientele .carousel-item img:hover {
  filter: grayscale(0%) contrast(1);
  opacity: 1;
  transform: scale(1.1);
}
#clientele .carousel-control-prev-icon,
#clientele .carousel-control-next-icon {
  background-color: rgba(var(--primary-rgb), 0.15); /* Subtle color */
  border-radius: 50%;
  padding: 20px; /* Make clickable area larger */
  background-size: 50%; /* Adjust icon size within padding */
  filter: invert(0.6) sepia(0.2) saturate(5) hue-rotate(80deg); /* Colorize the default Bootstrap icons */
}
#clientele .carousel-control-prev-icon:hover,
#clientele .carousel-control-next-icon:hover {
    background-color: rgba(var(--primary-rgb), 0.3);
}

/*--------------------------------------------------------------
# Cards (Global styling for cards used in Suppliers, Experts, Resources etc.)
--------------------------------------------------------------*/
.card {
  border: 1px solid var(--border-color);
  border-radius: var(--card-border-radius);
  box-shadow: var(--card-shadow);
  transition: var(--transition-base);
  background-color: var(--card-bg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%; /* For equal height cards in Bootstrap rows */
}

.card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

.card .card-image {
  width: 100%;
  height: var(--card-image-height);
  overflow: hidden;
  background-color: #e9ecef; /* Placeholder bg for images */
  position: relative; /* For potential overlays or icons */
}

.card .card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.card:hover .card-image img {
  transform: scale(1.08); /* Slightly more zoom on hover */
}

.card .card-body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  text-align: left; /* Default, can be overridden by .text-center on card */
}

.card .card-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--heading-color);
  margin-bottom: 0.75rem;
}

.card .card-text {
  font-size: 0.9rem;
  color: var(--text-color-medium);
  flex-grow: 1; /* Pushes button down in flex column */
  margin-bottom: 1.25rem; /* Space before button */
}
.card .card-text.text-muted {
  font-size: 0.85rem;
  margin-bottom: 0.5rem;
}

/* Resource Card Specifics */
#external-resources .resource-card {
    background-color: #fdfdfd; /* Slightly off-white for distinction */
}
#external-resources .resource-card .card-body {
  text-align: left;
}
#external-resources .resource-card h5 a {
  color: var(--primary-color);
  font-weight: 600;
  text-decoration: none;
  font-size: 1.1rem; /* Clearer title */
}
#external-resources .resource-card h5 a:hover {
  color: var(--primary-darker);
  text-decoration: underline;
}
#external-resources .resource-card p {
  font-size: 0.85rem;
  line-height: 1.6;
}

/*--------------------------------------------------------------
# Our Process Section
--------------------------------------------------------------*/
#process .process-step .p-4 {
  transition: var(--transition-base);
  height: 100%;
  border-radius: var(--border-radius-base);
  background-color: var(--bg-white);
}
#process .process-step .p-4:hover {
  transform: translateY(-8px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}
#process .process-step img {
  margin-bottom: 1rem;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); /* Bouncy effect */
  max-width: 70px; /* Control icon size */
}
#process .process-step .p-4:hover img {
  transform: scale(1.15) rotate(-5deg);
}
#process .process-step h5 {
  color: var(--heading-color);
  font-weight: 600;
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}
#process .process-step p {
  font-size: 0.9rem;
  line-height: 1.6;
}

/*--------------------------------------------------------------
# Statistical Widgets Section
--------------------------------------------------------------*/
#stats {
  background-color: var(--bg-dark-section) !important;
  /* background-attachment: fixed; if a pattern is used */
}
#stats .section-title, #stats h3, #stats p {
  color: var(--text-color-light);
}
#stats .section-title::after {
  background: var(--text-color-light);
}
#stats .stat-widget h3 {
  font-size: 3.8rem; /* Larger numbers */
  font-weight: 800;
  margin-bottom: 0.5rem;
}
#stats .stat-widget p {
  font-size: 1.1rem;
  opacity: 0.85;
  font-weight: 500;
}

/*--------------------------------------------------------------
# Sustainability, Experts, Community Sections with Image + Text
--------------------------------------------------------------*/
#sustainability img, #experts img, #community img {
  border-radius: var(--border-radius-base);
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}
#experts .card .card-text.text-muted {
  font-style: italic;
  color: var(--secondary-color);
}

/*--------------------------------------------------------------
# Opportunities Section
--------------------------------------------------------------*/
#opportunities img {
  max-height: 350px;
  object-fit: cover;
  border-radius: var(--border-radius-base);
}

/*--------------------------------------------------------------
# Contact Teaser Section
--------------------------------------------------------------*/
#contact-teaser h2 {
  color: var(--text-color-light);
  font-weight: 700;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
}
#contact-teaser p.lead {
  color: #e8e8e8; /* Slightly brighter */
  max-width: 650px;
  margin-left: auto;
  margin-right: auto;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.4);
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
footer {
  background-color: var(--footer-bg);
  color: #b0bec5; /* Lighter text for footer */
  padding-top: 4rem;
  padding-bottom: 2.5rem;
}
footer h5 {
  color: var(--text-color-light);
  font-size: 1.15rem;
  margin-bottom: 1.25rem;
  font-weight: 600;
}
footer p, footer ul {
  font-size: 0.9rem;
  line-height: 1.8;
}
footer ul {
  list-style: none;
  padding-left: 0;
}
footer ul li {
  margin-bottom: 0.6rem;
}
footer a.footer-link {
  color: #ced4da; /* Slightly brighter links */
  text-decoration: none;
  transition: var(--transition-fast);
}
footer a.footer-link:hover {
  color: var(--text-color-light);
  text-decoration: none; /* No underline, rely on color change */
  padding-left: 3px; /* Subtle movement */
}
footer hr {
  border-color: #3e444a; /* Darker hr for dark bg */
  margin-top: 2rem;
  margin-bottom: 2rem;
}
footer .list-unstyled a.footer-link { /* For social media text links */
  display: inline-block;
  padding: 3px 0;
  font-weight: 500;
}

/*--------------------------------------------------------------
# Privacy & Terms Pages
--------------------------------------------------------------*/
.privacy-page-content,
.terms-page-content {
  padding-top: 120px; /* Increased padding to ensure no overlap with taller fixed header */
  padding-bottom: 70px;
}
.privacy-page-content .container,
.terms-page-content .container {
    max-width: 800px; /* Constrain content width for readability */
}
.privacy-page-content h1,
.terms-page-content h1 {
  margin-bottom: 2.5rem;
  text-align: center;
  font-size: 2.5rem;
}
.privacy-page-content h2,
.terms-page-content h2 {
  margin-top: 2.5rem;
  margin-bottom: 1.25rem;
  font-size: 1.8rem;
  color: var(--primary-color); /* Use primary color for subheadings */
}
.privacy-page-content p,
.terms-page-content p,
.privacy-page-content li,
.terms-page-content li {
  line-height: 1.8;
  color: var(--text-color-medium);
  margin-bottom: 1rem;
}
.privacy-page-content ul, .privacy-page-content ol,
.terms-page-content ul, .terms-page-content ol {
    padding-left: 1.5rem;
    margin-bottom: 1rem;
}

/*--------------------------------------------------------------
# Success Page
--------------------------------------------------------------*/
.success-page-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  text-align: center;
  padding: 30px;
  background-color: var(--bg-light);
}
.success-page-container .icon svg { /* If using SVG icon */
  width: 80px;
  height: 80px;
  fill: var(--success-color);
  margin-bottom: 1.5rem;
}
.success-page-container .icon { /* Fallback for font icon or text */
  font-size: 5rem;
  color: var(--success-color);
  margin-bottom: 1.5rem;
}
.success-page-container h1 {
  color: var(--heading-color);
  margin-bottom: 1rem;
  font-size: 2.5rem;
}
.success-page-container p {
  color: var(--text-color-medium);
  font-size: 1.15rem;
  margin-bottom: 2.5rem;
  max-width: 550px;
}

/*--------------------------------------------------------------
# Cookie Consent Popup
--------------------------------------------------------------*/
#cookieConsentPopup {
  background-color: rgba(25, 25, 25, 0.9); /* Darker, high contrast */
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.9em;
  padding: 20px 25px; /* More padding */
}
#cookieConsentPopup p {
  color: #e0e0e0; /* Ensure text is light */
  margin: 0 0 18px 0;
  line-height: 1.6;
}
#acceptCookieConsent {
  background-color: var(--primary-color);
  border: none;
  padding: 10px 28px;
  font-size: 0.95em;
  font-weight: 500;
  transition: background-color 0.2s ease, transform 0.2s ease;
  border-radius: var(--border-radius-sm);
}
#acceptCookieConsent:hover {
  background-color: var(--primary-darker);
  transform: scale(1.03);
}

/*--------------------------------------------------------------
# Animations on Scroll (basic setup)
--------------------------------------------------------------*/
.animate-on-scroll {
  opacity: 0;
  transform: translateY(40px); /* Slightly more distance */
  transition: opacity var(--animation-duration) cubic-bezier(0.645, 0.045, 0.355, 1), transform var(--animation-duration) cubic-bezier(0.645, 0.045, 0.355, 1);
}
.animate-on-scroll.animated {
  opacity: 1;
  transform: translateY(0);
}

/* Responsive adjustments */
@media (max-width: 992px) {
  .section-title {
    font-size: 2.1rem;
  }
}

@media (max-width: 576px) {
  h1, .h1 { font-size: 2rem; }
  h2, .h2 { font-size: 1.7rem; }
  .section-title { font-size: 1.8rem; margin-bottom: 1.5rem; }
  .btn {
    padding: 10px 20px;
    font-size: 0.9rem;
  }
  .btn-lg {
    padding: 12px 25px;
    font-size: 1rem;
  }
  section {
    padding-top: 50px;
    padding-bottom: 50px;
  }
  .hero-section .container h1 {
    font-size: 2rem; /* Adjusted for smaller screens */
  }
  .hero-section .container p.lead {
    font-size: 1rem;
  }
  .navbar-brand { font-size: 1.6rem;}
  #cookieConsentPopup { padding: 15px; }
  #cookieConsentPopup p { font-size: 0.85em; margin-bottom: 12px;}
  #acceptCookieConsent { padding: 8px 20px; font-size: 0.9em;}
}

/* Background image handling - ensuring cover and no-repeat globally for elements with data-prompt */
[style*="background-image"] {
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
}