:root {
  /* Colors (domain-generated from "example.com") */
  --exa-color-primary: #eef6f0; /* Light text */
  --exa-color-secondary: #47d161; /* Main brand color */
  --exa-color-accent: #e052c6; /* Accent color */
  --exa-color-dark: #265930; /* Main dark background */
  --exa-color-dark-alt: #1a4021; /* Slightly darker for header/footer */
  --exa-color-dark-card: #3a6d45; /* Darker card background */
  
  /* Typography */
  --exa-font-heading: 'Raleway', sans-serif;
  --exa-font-body: 'Roboto', sans-serif;
  --exa-font-size-base: 16px;
  --exa-font-size-h1: 3rem;
  --exa-font-size-h2: 2.25rem;
  --exa-font-size-h3: 1.75rem;
  
  /* Spacing */
  --exa-space-xs: 0.5rem;
  --exa-space-sm: 1rem;
  --exa-space-md: 2rem;
  --exa-space-lg: 4rem;
  --exa-space-xl: 6rem;
  
  /* Layout */
  --exa-container-max: 1200px;
  --exa-radius-sm: 4px;
  --exa-radius-md: 8px;
  --exa-radius-lg: 16px;
  
  /* Shadows */
  --exa-shadow-sm: 0 2px 4px rgba(0,0,0,0.1);
  --exa-shadow-md: 0 4px 8px rgba(0,0,0,0.12);
  --exa-shadow-lg: 0 8px 16px rgba(0,0,0,0.15);
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    background-color: var(--exa-color-dark);
    color: var(--exa-color-primary);
    font-family: var(--exa-font-body);
    font-size: var(--exa-font-size-base);
    line-height: 1.6;
}

h1, h2, h3, h4 {
    font-family: var(--exa-font-heading);
    color: var(--exa-color-primary);
    line-height: 1.2;
    margin-bottom: var(--exa-space-sm);
}

h1 { font-size: var(--exa-font-size-h1); }
h2 { font-size: var(--exa-font-size-h2); }
h3 { font-size: var(--exa-font-size-h3); }

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

a:hover {
    color: var(--exa-color-accent);
}

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

.exa-container {
    width: 90%;
    max-width: var(--exa-container-max);
    margin: 0 auto;
}

/* Header */
.exa-header {
    background-color: var(--exa-color-dark-alt);
    padding: var(--exa-space-sm) 0;
    box-shadow: var(--exa-shadow-md);
}
.exa-header--sticky {
    position: sticky;
    top: 0;
    z-index: 1000;
}
.exa-header__container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.exa-header__logo {
    font-family: var(--exa-font-heading);
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--exa-color-primary);
}
.exa-nav__menu {
    list-style: none;
    display: flex;
    gap: var(--exa-space-md);
}
.exa-nav__link {
    color: var(--exa-color-primary);
    font-weight: 500;
    padding: 0.5rem 0;
}
.exa-nav__toggle { display: none; }

/* Hero */
.exa-hero--split {
    display: flex;
    min-height: 100vh;
    background-color: var(--exa-color-dark-alt);
}
.exa-hero__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--exa-space-lg);
}
.exa-hero__title { margin-bottom: var(--exa-space-md); }
.exa-hero__subtitle { font-size: 1.2rem; margin-bottom: var(--exa-space-md); opacity: 0.9; }
.exa-hero__image-wrapper {
    flex: 1;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Sections */
.exa-section {
    padding: var(--exa-space-lg) 0;
}
.exa-section--darker {
    background-color: var(--exa-color-dark-alt);
}
.exa-section__title, .exa-page-title {
    text-align: center;
    margin-bottom: var(--exa-space-lg);
}

/* Buttons */
.exa-btn {
    display: inline-block;
    padding: 12px 24px;
    border-radius: 4px;
    font-weight: 500;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.3s, color 0.3s, transform 0.3s;
    border: none;
}
.exa-btn--primary {
    background-color: var(--exa-color-secondary);
    color: var(--exa-color-dark);
}
.exa-btn--primary:hover {
    background-color: var(--exa-color-accent);
    color: var(--exa-color-primary);
    transform: translateY(-2px);
}
.exa-btn--secondary {
    background-color: transparent;
    border: 2px solid var(--exa-color-secondary);
    color: var(--exa-color-secondary);
}
.exa-btn--secondary:hover {
    background-color: var(--exa-color-secondary);
    color: var(--exa-color-dark);
}
.exa-btn--full-width { display: block; width: 100%; }

/* Cards */
.exa-card {
    background-color: var(--exa-color-dark-card);
    padding: var(--exa-space-md);
    border-radius: 0;
    box-shadow: none;
}

/* Features */
.exa-features--grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--exa-space-md);
}
.exa-feature {
    text-align: center;
}
.exa-feature__icon {
    width: 60px;
    height: 60px;
    margin-bottom: var(--exa-space-sm);
}

/* Testimonials */
.exa-testimonials--grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--exa-space-md);
}
.exa-testimonial {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.exa-testimonial__avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    margin-bottom: var(--exa-space-sm);
}
.exa-testimonial__author { font-style: italic; margin-top: auto; padding-top: var(--exa-space-sm); color: var(--exa-color-secondary);}

/* Gallery */
.exa-gallery--masonry {
    column-count: 3;
    column-gap: 1rem;
}
.exa-gallery__item {
    width: 100%;
    margin-bottom: 1rem;
    display: block;
}

/* Newsletter */
.exa-newsletter--fullwidth {
    background-color: var(--exa-color-dark-alt);
    padding: var(--exa-space-md) 0;
    text-align: center;
}
.exa-newsletter__form {
    display: flex;
    justify-content: center;
    gap: var(--exa-space-sm);
    margin-top: var(--exa-space-md);
}
.exa-newsletter__form .exa-form__input { max-width: 400px; }

/* Footer */
.exa-footer {
    background-color: var(--exa-color-dark-alt);
    padding: var(--exa-space-lg) 0 0;
    color: var(--exa-color-primary);
}
.exa-footer__container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--exa-space-md);
    margin-bottom: var(--exa-space-lg);
}
.exa-footer__title { color: var(--exa-color-secondary); }
.exa-footer__list { list-style: none; }
.exa-footer__link { color: var(--exa-color-primary); opacity: 0.8; }
.exa-footer__link:hover { opacity: 1; color: var(--exa-color-accent); }
.exa-footer__bottom {
    text-align: center;
    padding: var(--exa-space-sm) 0;
    margin-top: var(--exa-space-lg);
    border-top: 1px solid var(--exa-color-dark-card);
    font-size: 0.9rem;
}

/* Cookie Banner */
.exa-cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--exa-color-dark-alt);
    color: var(--exa-color-primary);
    padding: var(--exa-space-sm);
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: var(--exa-shadow-lg);
    z-index: 2000;
}
.exa-cookie-banner p { margin: 0; }
.exa-cookie-banner div { display: flex; gap: var(--exa-space-sm); }
.exa-cookie-banner__btn { background: var(--exa-color-secondary); color: var(--exa-color-dark); border: none; padding: 0.5rem 1rem; border-radius: 4px; cursor: pointer; }
.exa-cookie-banner__btn--decline { background: var(--exa-color-dark-card); color: var(--exa-color-primary); }

/* About Page */
.exa-page-main { padding: var(--exa-space-lg) 0; }
.exa-text--columns { display: flex; gap: var(--exa-space-lg); align-items: center; }
.exa-text__column { flex: 1; }
.exa-image-responsive { width: 100%; height: auto; }
.exa-quote--centered { text-align: center; }
.exa-quote__text { font-size: 1.5rem; font-style: italic; margin-bottom: var(--exa-space-sm); }
.exa-quote__author { color: var(--exa-color-secondary); }
.exa-team--cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--exa-space-md); }
.exa-team-member { text-align: center; }
.exa-team-member__photo { width: 100%; aspect-ratio: 1/1; object-fit: cover; margin-bottom: var(--exa-space-sm); }
.exa-team-member__name { font-size: 1.2rem; }
.exa-team-member__title { font-size: 0.9rem; color: var(--exa-color-primary); opacity: 0.8; }
.exa-stats--row { display: flex; justify-content: space-around; text-align: center; }
.exa-stat-item__number { font-size: 2.5rem; font-weight: 700; color: var(--exa-color-secondary); }
.exa-cta--simple { text-align: center; padding: var(--exa-space-lg) 0; }

/* Contact Page */
.exa-contact-split { display: flex; gap: var(--exa-space-lg); }
.exa-contact-split__info, .exa-contact-split__form { flex: 1; }
.exa-contact-hours ul { list-style: none; }
.exa-form__group { margin-bottom: var(--exa-space-md); }
.exa-form__label { display: block; margin-bottom: var(--exa-space-xs); font-weight: 500; }
.exa-form__input, .exa-form__textarea, .exa-form__select {
    width: 100%;
    padding: 12px;
    background-color: var(--exa-color-dark-card);
    border: 1px solid var(--exa-color-dark-alt);
    color: var(--exa-color-primary);
    border-radius: 4px;
}

/* FAQ Page */
.exa-faq--grid { display: grid; gap: var(--exa-space-sm); }
.exa-faq__item { background-color: var(--exa-color-dark-card); }
.exa-faq__question { font-weight: 500; font-size: 1.2rem; cursor: pointer; padding: var(--exa-space-sm); }
.exa-faq__answer { padding: 0 var(--exa-space-sm) var(--exa-space-sm); }

/* Legal Pages */
.exa-legal h2 { margin-top: var(--exa-space-md); color: var(--exa-color-secondary); }

/* Responsive */
@media (max-width: 992px) {
    .exa-hero--split { flex-direction: column; height: auto; }
    .exa-hero__content { min-height: 80vh; }
    .exa-hero__image-wrapper { min-height: 400px; }
    .exa-features--grid, .exa-testimonials--grid { grid-template-columns: 1fr; }
    .exa-team--cards { grid-template-columns: repeat(2, 1fr); }
    .exa-footer__container { grid-template-columns: repeat(2, 1fr); }
    .exa-contact-split { flex-direction: column; }
    .exa-gallery--masonry { column-count: 2; }
}

@media (max-width: 768px) {
    h1 { font-size: 2.5rem; }
    h2 { font-size: 1.75rem; }
    .exa-nav__toggle {
        display: block;
        background: none; border: none; cursor: pointer;
        width: 30px; height: 25px; position: relative;
    }
    .exa-nav__toggle-icon, .exa-nav__toggle-icon::before, .exa-nav__toggle-icon::after {
        content: '';
        position: absolute; left: 0;
        height: 3px; width: 100%;
        background: var(--exa-color-primary); transition: all 0.3s;
    }
    .exa-nav__toggle-icon { top: 11px; }
    .exa-nav__toggle-icon::before { top: -8px; }
    .exa-nav__toggle-icon::after { top: 8px; }
    .exa-nav[aria-expanded='true'] .exa-nav__toggle-icon { background: transparent; }
    .exa-nav[aria-expanded='true'] .exa-nav__toggle-icon::before { transform: rotate(45deg); top: 0; }
    .exa-nav[aria-expanded='true'] .exa-nav__toggle-icon::after { transform: rotate(-45deg); top: 0; }

    .exa-nav__menu {
        display: none;
        flex-direction: column;
        position: absolute;
        top: 100%; right: 0;
        background-color: var(--exa-color-dark-alt);
        width: 100%;
        padding: var(--exa-space-md);
    }
    .exa-nav__menu--open { display: flex; }
    .exa-footer__container { grid-template-columns: 1fr; text-align: center; }
    .exa-stats--row, .exa-text--columns { flex-direction: column; }
    .exa-cookie-banner { flex-direction: column; text-align: center; gap: var(--exa-space-sm); }
}

@media (max-width: 576px) {
    .exa-gallery--masonry { column-count: 1; }
    .exa-team--cards { grid-template-columns: 1fr; }
    .exa-newsletter__form { flex-direction: column; }
}
