/*
Theme Name:  Festival Brasil JP
Theme URI:   https://festivalbrasil.jp
Author:      Festival Brasil
Description: Tema oficial do Festival Brasil no Japão
Version:     1.0.0
Text Domain: festival-brasil
*/

@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Nunito:wght@400;600;700;900&display=swap');

:root {
  --amarelo:    #FFD000;
  --amarelo-dk: #E6B800;
  --verde:      #009c3b;
  --verde-dk:   #007a2e;
  --azul:       #003087;
  --azul-med:   #1a4da0;
  --branco:     #ffffff;
  --cinza-bg:   #F7F5EE;
  --cinza-card: #FFFFFF;
  --cinza-lt:   #EEF0F5;
  --texto:      #1a1a1a;
  --texto-muted:#555555;
  --radius:     12px;
  --shadow:     0 4px 20px rgba(0,0,0,.10);
  --shadow-lg:  0 8px 40px rgba(0,0,0,.15);
  --font-display: 'Archivo Black', 'Impact', sans-serif;
  --font-body:    'Nunito', 'Hiragino Kaku Gothic ProN', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--texto);
  background: var(--branco);
  line-height: 1.7;
}
img { max-width: 100%; height: auto; display: block; }
a   { color: inherit; text-decoration: none; }

.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  border-radius: 50px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  transition: transform .2s, box-shadow .2s, opacity .2s;
  border: none;
  text-align: center;
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.btn-amarelo { background: var(--amarelo); color: var(--azul); }
.btn-verde   { background: var(--verde);   color: var(--branco); }
.btn-azul    { background: var(--azul);    color: var(--branco); }
.btn-outline { background: transparent; color: var(--verde); border: 2px solid var(--verde); }
.btn-outline:hover { background: var(--verde); color: var(--branco); }

.section-title {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  letter-spacing: .01em;
  line-height: 1.1;
  color: var(--azul);
}
.section-title span { color: var(--verde); }

.divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 2.5rem;
}
.divider::before, .divider::after {
  content: '';
  flex: 1;
  height: 3px;
  background: linear-gradient(90deg, var(--verde), var(--amarelo), var(--azul));
  border-radius: 3px;
}

.section     { padding: 72px 0; background: var(--branco); }
.section-alt { background: var(--cinza-bg); }

.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
}
.fade-in.visible { opacity: 1; transform: translateY(0); }
