@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css');

:root {
  /* Green & Earth Palette */
  --primary-color: #27AE60;
  --secondary-color: #2ECC71;
  --accent-color: #D35400; /* Burnt Orange */
  --light-color: #FEFAE0; /* Cream */
  --dark-color: #2C3E50;
  --gradient-primary: linear-gradient(135deg, #A9B388 0%, #27AE60 100%);
  --hover-color: #1E8449;
  --background-color: #EAE4D5; /* Beige/Earth */
  --text-color: #5F6F52;
  --border-color: rgba(39, 174, 96, 0.2);
  --divider-color: rgba(211, 84, 0, 0.2);
  --shadow-color: rgba(95, 111, 82, 0.1);
  --highlight-color: #F1C40F;
  --main-font: 'Playfair Display', serif;
  --alt-font: 'Lato', sans-serif;
}

html { scroll-behavior: smooth; }
body { font-family: var(--alt-font); background-color: var(--background-color); color: var(--text-color); margin: 0; padding: 0; }
h1, h2, h3 { font-family: var(--main-font); color: #333; }

/* Soft Neumorphism for Organic Feel */
.neumorphic {
    background: var(--background-color);
    box-shadow: 12px 12px 24px #c7c1b5, -12px -12px 24px #fffbf5;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,0.4);
}
.neumorphic-inset {
    background: var(--background-color);
    box-shadow: inset 8px 8px 16px #c7c1b5, inset -8px -8px 16px #fffbf5;
    border-radius: 10px;
}

.hero-bg {
    background: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.1)), url('./img/bg.jpg') no-repeat center center/cover;
    height: 65vh;
}
.cta-bg {
    background: linear-gradient(rgba(39, 174, 96, 0.8), rgba(46, 204, 113, 0.7)), url('./img/bg.jpg') no-repeat center center/cover;
    background-attachment: fixed;
}
.section-padding { padding-top: 10dvh; padding-bottom: 10dvh; }

/* Mobile Menu */
#menu-toggle { display: none; }
.mobile-menu { display: none; }
@media (max-width: 768px) {
    .nav-links { display: none; }
    .hamburger { display: block; font-size: 1.5rem; color: var(--dark-color); cursor: pointer; }
    #menu-toggle:checked ~ .mobile-menu { display: block; background: var(--light-color); position: absolute; top: 100%; left: 0; width: 100%; z-index: 50; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
    .mobile-menu a { display: block; padding: 15px; color: var(--dark-color); text-decoration: none; border-bottom: 1px solid #ddd; }
}

/* FAQ */
details { margin-bottom: 1rem; }
details summary { padding: 1rem; font-family: var(--main-font); font-size: 1.2rem; cursor: pointer; color: var(--dark-color); outline: none; }
details[open] summary { color: var(--primary-color); }
details p { padding: 1rem; line-height: 1.6; }