:root {
    /* Paleta Editorial Luxo */
    --bg-primary: #faf9f5;      /* Oatmeal Suave (Principal Base) */
    --bg-card: #f4efea;         /* Areia Seca de contraste */
    --bg-sage: #e9eee6;         /* Sálvia claro calmo p/ divisões */
    
    --bg-manifesto: #1e2621;    /* Verde Floresta Absoluto/Escuro */
    
    --text-dark: #1b2621;       /* Preto Musgo */
    --text-light: #faf9f5;      /* Areia para fundos escuros */
    --text-muted: #536b63;      /* Sálvia pálido denso */
    
    --accent-terracotta: #d37a5f; /* Chamadas de Ação e Ofertas */
    --accent-sage-dark: #2c423f;  /* Primário Interativo */
    
    --transition-slow: 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    --transition-fast: 0.3s ease;
}

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

html { scroll-behavior: smooth; }

body {
    background-color: var(--bg-primary);
    color: var(--text-dark);
    font-family: 'Outfit', sans-serif;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

/* Tipografia Base (Lora para Editoriais, Outfit para Interface/Texto Corrido) */
h1, h2, h3, .brand-monogram, .massive-serif {
    font-family: 'Lora', serif;
}

/* ----- HERANÇA DO DESIGN DA HERO ----- */
.hero-layer { min-height: 100vh; position: relative;}
.split-layout {
    display: grid;
    grid-template-columns: 1.1f 0.9f;
    min-height: 100vh;
}
.content-section { padding: 8vw 10vw; display: flex; flex-direction: column; justify-content: center; }
.brand { display: flex; align-items: center; gap: 12px; margin-bottom: 8vh; }
.brand-monogram { font-size: 1.8rem; font-weight: 600; font-style: italic; color: var(--accent-sage-dark); line-height: 1; }
.brand-name { font-size: 1.1rem; font-weight: 500; letter-spacing: 1px; text-transform: uppercase; }
.headline { font-size: clamp(3.2rem, 5vw, 5.5rem); line-height: 1.05; font-weight: 400; margin-bottom: 2rem; letter-spacing: -1.5px; }
.sub-headline { font-size: clamp(1.2rem, 1.4vw, 1.4rem); line-height: 1.6; color: var(--text-muted); font-weight: 300; max-width: 500px; margin-bottom: 4rem; }
.offer-box { background-color: transparent; border-left: 2px solid var(--accent-terracotta); padding: 1rem 0 1rem 2rem; max-width: 450px;}
.offer-pill { display: inline-block; background-color: var(--accent-terracotta); color: white; font-size: 0.75rem; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; padding: 4px 12px; border-radius: 50px; margin-bottom: 1rem; }
.offer-box p { font-size: 1rem; line-height: 1.7; color: var(--text-muted); }
.offer-box em { font-family: 'Lora', serif; font-weight: 500; color: var(--accent-sage-dark); font-style: italic; }

/* Form Component (Mantido minimalista) */
.form-section { background-color: var(--bg-sage); display: flex; align-items: center; justify-content: center; padding: 4vw; }
.form-card { background-color: var(--bg-primary); width: 100%; max-width: 460px; padding: 4rem 3.5rem; box-shadow: 0 25px 50px -12px rgba(44, 66, 63, 0.1); }
.form-card h2 { font-size: 2.2rem; font-weight: 400; margin-bottom: 0.5rem; }
.form-instruction { font-size: 0.95rem; color: var(--text-muted); margin-bottom: 3rem; line-height: 1.6; }
.vip-form { display: flex; flex-direction: column; gap: 2.5rem; }
.input-group { position: relative; }
.input-group input { width: 100%; background: transparent; border: none; border-bottom: 1px solid rgba(83, 107, 99, 0.3); padding: 0.5rem 0; font-family: 'Outfit', sans-serif; font-size: 1rem; color: var(--text-dark); transition: var(--transition-fast); }
.input-group input:focus { outline: none; border-bottom-color: var(--accent-sage-dark); }
.input-group label { position: absolute; left: 0; top: 50%; transform: translateY(-50%); font-size: 1rem; color: var(--text-muted); pointer-events: none; transition: var(--transition-slow); }
.input-group input:focus ~ label, .input-group input:not(:placeholder-shown) ~ label { top: -12px; font-size: 0.75rem; font-family: 'Lora', serif; font-weight: 500; color: var(--accent-sage-dark); letter-spacing: 0.5px; }
.submit-btn { margin-top: 1rem; background-color: var(--accent-sage-dark); color: var(--bg-primary); border: none; padding: 1.2rem; font-family: 'Outfit', sans-serif; font-size: 1.05rem; font-weight: 500; letter-spacing: 1px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; transition: var(--transition-slow); }
.submit-btn:hover { background-color: var(--text-dark); transform: translateY(-3px); box-shadow: 0 10px 20px rgba(44, 66, 63, 0.15); }
.arrow-icon { width: 20px; height: 20px; transition: var(--transition-slow); }
.submit-btn:hover .arrow-icon { transform: translateX(5px); }
.privacy-note { font-size: 0.75rem; color: var(--text-muted); text-align: left; margin-top: -1rem; opacity: 0.7; line-height: 1.5; }

/* ----- O MANIFESTO EDITORIAL ----- */
.manifesto-layer {
    background-color: var(--bg-manifesto);
    color: var(--text-light);
    padding: 15vw 10vw;
    display: flex;
    justify-content: center;
}
.manifesto-container {
    max-width: 1200px;
    width: 100%;
}
.massive-serif {
    font-size: clamp(3.5rem, 6vw, 6.5rem);
    line-height: 1.05;
    font-weight: 300;
    letter-spacing: -2px;
    margin-bottom: 4rem;
}
.indent-text { padding-left: 10vw; font-style: italic;}
.indent-text-deep { padding-left: 20vw; color: var(--accent-terracotta);}

.manifesto-body {
    font-size: clamp(1.2rem, 1.8vw, 2rem);
    line-height: 1.5;
    max-width: 700px;
    margin-left: auto; /* Empurrar para a direita para formato assimétrico */
    font-weight: 300;
    opacity: 0.9;
}

/* ----- GALERIA DE FEATURES (01, 02, 03) ----- */
.feature-layer {
    padding: 12vw 10vw;
    display: flex;
    position: relative;
}
.feature-layer.alternate-bg {
    background-color: var(--bg-card); /* Fundo contrastante sútil */
}

.feature-content {
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
    display: flex;
    gap: 8vw;
    align-items: flex-start;
}
.feature-content.reverse {
    flex-direction: row-reverse;
}

.feature-number {
    font-family: 'Outfit', sans-serif;
    font-size: clamp(6rem, 15vw, 15rem);
    line-height: 0.8;
    font-weight: 200;
    color: var(--bg-sage);
    letter-spacing: -5px;
    user-select: none;
}
/* O contraste para alternado */
.alternate-bg .feature-number { color: #e2dcd7; }

.feature-text { max-width: 500px; padding-top: 3vw; }
.feature-title {
    font-size: clamp(2.5rem, 4vw, 4rem);
    line-height: 1.1;
    font-weight: 400;
    margin-bottom: 2rem;
    letter-spacing: -1px;
    color: var(--bg-manifesto);
}
.feature-description {
    font-size: 1.25rem;
    line-height: 1.6;
    color: var(--text-muted);
    font-weight: 300;
}

/* ----- FOOTER DE CONFIANÇA (LGPD) ----- */
.trust-layer {
    background-color: var(--bg-manifesto);
    color: var(--text-light);
    padding: 12vw 10vw;
    position: relative;
    overflow: hidden;
}

.trust-container {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.trust-title {
    font-size: clamp(2.5rem, 4vw, 4.5rem);
    line-height: 1.1;
    font-weight: 300;
    margin-bottom: 1rem;
    letter-spacing: -1px;
}
.trust-subtitle {
    font-size: 1.25rem;
    color: #a8b8b0;
    font-weight: 300;
    margin-bottom: 5rem;
}

.compliance-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 4rem;
    margin-bottom: 8rem;
    border-top: 1px solid rgba(250, 249, 245, 0.1);
    padding-top: 4rem;
}

.compliance-badge h4 {
    font-family: 'Lora', serif;
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--accent-terracotta);
    margin-bottom: 1rem;
}

.compliance-badge p {
    font-size: 1rem;
    line-height: 1.6;
    color: #a8b8b0;
    font-weight: 300;
}

.final-cta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
}
.final-cta p {
    font-size: 1.5rem;
    font-family: 'Lora', serif;
    font-style: italic;
    color: var(--text-light);
}

.cta-floating {
    background-color: var(--text-light);
    color: var(--bg-manifesto);
    border: none;
    padding: 1.2rem 2rem;
    font-family: 'Outfit', sans-serif;
    font-size: 1.05rem;
    font-weight: 500;
    border-radius: 50px;
    cursor: pointer;
    transition: var(--transition-slow);
}
.cta-floating:hover {
    background-color: var(--accent-terracotta);
    color: var(--text-light);
    transform: translateY(-3px);
}

/* ----- SISTEMA DE ANIMAÇÕES ----- */
.fade-element {
    opacity: 0;
    animation: fadeInUp 1s var(--transition-slow) forwards;
}
.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.3s; }
.delay-3 { animation-delay: 0.5s; }
.delay-4 { animation-delay: 0.7s; }

/* Intersection Observer Classes */
.scroll-reveal {
    opacity: 0;
    transform: translateY(60px);
    transition: all 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.scroll-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ----- RESPONSIVIDADE ----- */
@media (max-width: 1024px) {
    .split-layout { grid-template-columns: 1fr; }
    .content-section { padding: 10vw 8vw; align-items: flex-start; text-align: left; }
    .offer-box { margin: 0; border-left: none; border-top: 2px solid var(--accent-terracotta); padding: 2rem 0 0 0; }
    .form-section { padding: 5vw; background-color: var(--bg-sage); }
    .form-card { box-shadow: 0 15px 35px -5px rgba(44, 66, 63, 0.08); padding: 3rem 2rem; }
    
    .indent-text { padding-left: 0; }
    .indent-text-deep { padding-left: 0; }
    .manifesto-body { margin-left: 0; margin-top: 2rem;}
    
    .feature-content { flex-direction: column !important; gap: 2rem; }
    .feature-number { font-size: 8rem; line-height: 0.8; margin-left: -5px; }
    .feature-text { padding-top: 0; }
    
    .compliance-grid { gap: 2rem; }
    .cta-floating { width: 100%; text-align: center; }
}
