:root {
    /* Cores */
    --color-primary: #2E8B57; /* Verde Esmeralda */
    --color-secondary: #F0E68C; /* Amarelo Khaki */
    --color-background: #F8F8F8; /* Branco Suave */
    --color-footer-bg: #1A522E; /* Verde Escuro para Rodapé */
    --color-button: #3CB371; /* Verde Médio Turquesa */
    --color-text-dark: #333333;
    --color-text-light: #F8F8F8;
    --color-accent: #6B8E23; /* Verde Oliva Escuro para acentos sutis */

    /* Cores de fundo das seções */
    --section-bg-1: #FFFFFF;
    --section-bg-2: #F0FFF0; /* Melão Claro */
    --section-bg-3: #E6FFE6; /* Verde Hortelã Claro */
    --section-bg-4: #D9F8D9; /* Verde Pastel */

    /* Tipografia */
    --font-family-heading: 'Quicksand', sans-serif;
    --font-family-body: 'Open Sans', sans-serif;
    --font-size-base: 1.125rem; /* 18px */
    --line-height-base: 1.8;
    --line-height-heading: 1.3;

    /* Espaçamento */
    --spacing-xs: 0.5rem;
    --spacing-sm: 1rem;
    --spacing-md: 1.5rem;
    --spacing-lg: 2rem;
    --spacing-xl: 3rem;
    --spacing-xxl: 4rem;

    /* Bordas e Sombras */
    --border-radius-sm: 0.5rem;
    --border-radius-md: 1rem;
    --border-radius-lg: 2rem;
    --shadow-light: 0 4px 12px rgba(0, 0, 0, 0.08);
    --shadow-medium: 0 8px 24px rgba(0, 0, 0, 0.12);
    --shadow-organic: 0 10px 30px rgba(46, 139, 87, 0.15); /* Sombra com toque da cor primária */

    /* Transições */
    --transition-speed: 0.3s;
    --transition-easing: ease-in-out;
}

/* Importar fontes do Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&family=Quicksand:wght@300;400;500;600;700&display=swap');

/* Base Styles */
html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-family-body);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    color: var(--color-text-dark);
    background-color: var(--color-background);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* Evita rolagem horizontal */
}

/* Tipografia */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-heading);
    color: var(--color-primary);
    line-height: var(--line-height-heading);
    margin-top: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
    letter-spacing: -0.02em; /* Suave para títulos */
}

h1 {
    font-size: 3.5rem; /* 56px */
    font-weight: 700;
}

h2 {
    font-size: 2.5rem; /* 40px */
    font-weight: 600;
}

h3 {
    font-size: 2rem; /* 32px */
    font-weight: 500;
}

h4 {
    font-size: 1.5rem; /* 24px */
    font-weight: 500;
}

p {
    margin-bottom: var(--spacing-md);
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition-speed) var(--transition-easing);
}

a:hover {
    color: var(--color-accent);
    text-decoration: underline;
}

/* Layout e Seções */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--spacing-md);
}

section {
    padding: var(--spacing-xxl) 0; /* Espaçamento generoso para "respirar" */
    position: relative;
    overflow: hidden;
}

.section-bg-1 {
    background-color: var(--section-bg-1);
}

.section-bg-2 {
    background-color: var(--section-bg-2);
}

.section-bg-3 {
    background-color: var(--section-bg-3);
}

.section-bg-4 {
    background-color: var(--section-bg-4);
}

/* Efeito de transição de cor sutil para seções */
.section-bg-transition {
    background: linear-gradient(to bottom, var(--section-bg-1), var(--section-bg-2));
}

/* Botões */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-sm) var(--spacing-lg);
    border-radius: var(--border-radius-md); /* Arredondado */
    font-family: var(--font-family-heading);
    font-weight: 600;
    font-size: var(--font-size-base);
    cursor: pointer;
    border: none;
    transition: all var(--transition-speed) var(--transition-easing);
    box-shadow: var(--shadow-light); /* Sombra suave */
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.btn-primary {
    background-color: var(--color-button);
    color: var(--color-text-light);
}

.btn-primary:hover {
    background-color: var(--color-primary);
    box-shadow: var(--shadow-medium); /* Sombra mais pronunciada no hover */
    transform: translateY(-2px); /* Leve elevação */
}

.btn-secondary {
    background-color: transparent;
    color: var(--color-primary);
    border: 2px solid var(--color-primary);
    box-shadow: none;
}

.btn-secondary:hover {
    background-color: var(--color-primary);
    color: var(--color-text-light);
    transform: translateY(-2px);
    box-shadow: var(--shadow-light);
}

/* Cards (Exemplo de elemento que pode ter sombra e borda arredondada) */
.card {
    background-color: var(--section-bg-1);
    border-radius: var(--border-radius-lg); /* Mais arredondado */
    box-shadow: var(--shadow-organic); /* Sombra orgânica */
    padding: var(--spacing-xl);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    transition: transform var(--transition-speed) var(--transition-easing), box-shadow var(--transition-speed) var(--transition-easing);
}

.card:hover {
    transform: translateY(-5px); /* Elevação suave */
    box-shadow: 0 15px 40px rgba(46, 139, 87, 0.25); /* Sombra mais intensa */
}

/* Formulários */
input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
    width: 100%;
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
    border: 1px solid rgba(46, 139, 87, 0.3); /* Borda suave com cor primária */
    border-radius: var(--border-radius-sm);
    font-family: var(--font-family-body);
    font-size: var(--font-size-base);
    color: var(--color-text-dark);
    background-color: var(--section-bg-1);
    transition: border-color var(--transition-speed) var(--transition-easing), box-shadow var(--transition-speed) var(--transition-easing);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(46, 139, 87, 0.2); /* Sombra de foco suave */
}

textarea {
    resize: vertical;
    min-height: 120px;
}

/* Rodapé */
footer {
    background-color: var(--color-footer-bg);
    color: var(--color-text-light);
    padding: var(--spacing-xxl) 0;
    text-align: center;
}

footer a {
    color: var(--color-secondary);
}

footer a:hover {
    color: var(--color-button);
}

/* Utilitários de Margem/Padding (para complementar Tailwind) */
.mb-lg { margin-bottom: var(--spacing-lg); }
.pt-xxl { padding-top: var(--spacing-xxl); }
.pb-xxl { padding-bottom: var(--spacing-xxl); }

/* Efeitos Visuais - Texturas Sutis para um toque orgânico */
.texture-wood {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><g fill="%23000" fill-opacity="0.03"><path d="M49 99V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm-4 0V1h2v98h-2zm48 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2zm4 0V1h2v98h-2z" /></g></svg>');
    background-size: 100px 100px;
    background-repeat: repeat;
}

.texture-stone {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><g fill="%23000" fill-opacity="0.02"><path d="M50 0 L60 10 L50 20 L40 10 ZM0 50 L10 60 L20 50 L10 40 ZM100 50 L90 60 L80 50 L90 40 ZM50 100 L60 90 L50 80 L40 90 Z" /></g></svg>');
    background-size: 100px 100px;
    background-repeat: repeat;
}

/* Media Queries para Responsividade */
@media (max-width: 1024px) {
    h1 {
        font-size: 3rem;
    }
    h2 {
        font-size: 2rem;
    }
    h3 {
        font-size: 1.75rem;
    }
    .container {
        padding: 0 var(--spacing-sm);
    }
    section {
        padding: var(--spacing-xl) 0;
    }
}

@media (max-width: 768px) {
    h1 {
        font-size: 2.5rem;
    }
    h2 {
        font-size: 1.8rem;
    }
    h3 {
        font-size: 1.5rem;
    }
    body {
        font-size: 1rem;
    }
    .btn {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: 1rem;
    }
    .card {
        padding: var(--spacing-lg);
    }
    section {
        padding: var(--spacing-lg) 0;
    }
}

@media (max-width: 480px) {
    h1 {
        font-size: 2rem;
    }
    h2 {
        font-size: 1.5rem;
    }
    h3 {
        font-size: 1.25rem;
    }
    .container {
        padding: 0 var(--spacing-xs);
    }
    section {
        padding: var(--spacing-md) 0;
    }
    .btn {
        width: 100%;
        margin-bottom: var(--spacing-sm);
    }
}


/* Cookie Banner Additional Styles for Tailwind */
.cookie-banner-hover-effect:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

@media (prefers-reduced-motion: reduce) {
    .cookie-banner-hover-effect:hover {
        transform: none;
    }
}