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

:root {
  --verde:       #1E4433;
  --verde-noite: #0F2A1E;
  --verde-medio: #2C5C45;
  --ouro:        #D9A441;
  --ouro-claro:  #E8C377;
  --creme:       #F6F1E5;
  --branco:      #FFFFFF;
  --texto:       #23302A;
  --cinza:       #5C6B62;
}

html { scroll-behavior:smooth; }
body {
  font-family:'Inter',sans-serif;
  color:var(--texto);
  background:var(--creme);
  line-height:1.65;
}
img { display:block; max-width:100%; }

h1,h2,h3,.serif { font-family:'Marcellus',serif; font-weight:400; }

/* ───────── HEADER ───────── */
header {
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:0.7rem 1.4rem;
  background:linear-gradient(to bottom, rgba(15,42,30,0.85), rgba(15,42,30,0));
  transition:background 0.3s;
}
header.solida { background:var(--verde-noite); box-shadow:0 2px 12px rgba(0,0,0,0.25); }
.marca { display:flex; align-items:center; gap:0.7rem; text-decoration:none; }
.marca img { width:44px; height:44px; border-radius:50%; border:2px solid var(--ouro); }
.marca span { color:var(--branco); font-family:'Marcellus',serif; font-size:1.15rem; letter-spacing:0.06em; }
nav { display:flex; align-items:center; gap:1.4rem; }
nav a { color:rgba(255,255,255,0.85); text-decoration:none; font-size:0.9rem; font-weight:500; transition:color 0.2s; }
nav a:hover { color:var(--ouro-claro); }
.btn-zap-mini {
  background:var(--ouro); color:var(--verde-noite) !important;
  padding:0.5rem 1.1rem; border-radius:40px; font-weight:600;
}
@media (max-width:760px){ nav a:not(.btn-zap-mini){ display:none; } }

/* ───────── HERO ───────── */
.hero {
  position:relative; min-height:100svh;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  text-align:center; padding:5rem 1.5rem 4rem; overflow:hidden;
  background:
    linear-gradient(rgba(15,42,30,0.78), rgba(15,42,30,0.88)),
    var(--hero-img, url('img/arvore-casamento.jpg')) center 30%/cover no-repeat;
}
.hero-logo {
  width:110px; height:110px; border-radius:50%;
  border:3px solid var(--ouro); margin-bottom:1.6rem;
  box-shadow:0 0 40px rgba(217,164,65,0.35);
}
.hero h1 {
  color:var(--branco);
  font-size:clamp(2.6rem, 8vw, 5rem);
  letter-spacing:0.08em; line-height:1.05;
  text-transform:uppercase;
}
.tagline {
  color:var(--ouro-claro);
  font-family:'Marcellus',serif;
  letter-spacing:0.35em; text-transform:uppercase;
  font-size:clamp(0.75rem, 2vw, 0.95rem);
  margin:0.9rem 0 1.4rem;
  border-top:1px solid rgba(217,164,65,0.4);
  border-bottom:1px solid rgba(217,164,65,0.4);
  padding:0.55rem 1.2rem;
}
.hero p.sub {
  color:rgba(255,255,255,0.82);
  max-width:560px; font-size:clamp(1rem, 2.4vw, 1.15rem);
  margin-bottom:2.2rem;
}
.hero-acoes { display:flex; gap:0.9rem; flex-wrap:wrap; justify-content:center; }
.btn {
  display:inline-flex; align-items:center; gap:0.55rem;
  padding:0.95rem 2.1rem; border-radius:50px;
  font-weight:600; font-size:1rem; text-decoration:none;
  transition:transform 0.2s, box-shadow 0.2s; cursor:pointer; border:none;
}
.btn-ouro { background:var(--ouro); color:var(--verde-noite); }
.btn-ouro:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(217,164,65,0.45); }
.btn-contorno { border:1.5px solid rgba(255,255,255,0.6); color:var(--branco); background:transparent; }
.btn-contorno:hover { border-color:var(--ouro); color:var(--ouro-claro); }

/* vagalumes */
.vagalume {
  position:absolute; width:5px; height:5px; border-radius:50%;
  background:var(--ouro-claro); box-shadow:0 0 8px 2px rgba(232,195,119,0.8);
  animation:piscar 4s ease-in-out infinite; opacity:0; pointer-events:none;
}
@keyframes piscar {
  0%,100% { opacity:0; transform:translateY(0); }
  50%     { opacity:0.9; transform:translateY(-14px); }
}
@media (prefers-reduced-motion:reduce){ .vagalume{ animation:none; opacity:0.35; } }

.hero::after {
  content:''; position:absolute; bottom:-1px; left:0; right:0; height:90px;
  background:linear-gradient(to top, var(--creme), transparent);
}

/* ───────── FAIXA ───────── */
.faixa {
  background:var(--verde); color:var(--ouro-claro);
  text-align:center; padding:0.85rem 1rem;
  font-family:'Marcellus',serif; letter-spacing:0.18em;
  font-size:0.82rem; text-transform:uppercase;
}

/* ───────── SEÇÕES ───────── */
section { padding:4.5rem 1.5rem; }
.caixa { max-width:1050px; margin:0 auto; }
.olho {
  color:var(--ouro); font-weight:700; letter-spacing:0.16em;
  text-transform:uppercase; font-size:0.75rem; margin-bottom:0.6rem;
}
h2 { color:var(--verde); font-size:clamp(1.8rem, 4vw, 2.5rem); line-height:1.2; margin-bottom:1rem; }

.sobre-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.sobre-grid p { color:var(--cinza); margin-bottom:0.9rem; font-size:1.02rem; }
.foto-moldura { border-radius:14px; overflow:hidden; box-shadow:0 12px 40px rgba(30,68,51,0.22); position:relative; }
.foto-moldura::after {
  content:''; position:absolute; inset:10px;
  border:1px solid rgba(232,195,119,0.55); border-radius:8px; pointer-events:none;
}
@media (max-width:780px){ .sobre-grid { grid-template-columns:1fr; gap:2rem; } }

.estrutura { background:var(--branco); }
.cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:1.6rem; margin-top:2.2rem; }
.card { border-radius:14px; overflow:hidden; background:var(--creme); box-shadow:0 6px 24px rgba(30,68,51,0.1); transition:transform 0.25s; }
.card:hover { transform:translateY(-5px); }
.card img { height:210px; width:100%; object-fit:cover; }
.card-corpo { padding:1.4rem 1.5rem 1.6rem; }
.card h3 { color:var(--verde); font-size:1.25rem; margin-bottom:0.4rem; }
.card p { color:var(--cinza); font-size:0.93rem; }

.eventos { background:var(--verde-noite); }
.eventos .olho { color:var(--ouro); }
.eventos h2 { color:var(--branco); }
.eventos > .caixa > p { color:rgba(255,255,255,0.7); max-width:640px; }
.eventos .card { background:var(--verde); }
.eventos .card h3 { color:var(--ouro-claro); }
.eventos .card p { color:rgba(255,255,255,0.72); }

/* ───────── RESERVAS ───────── */
.reservas-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:2.5rem; margin-top:2rem; align-items:start; }
@media (max-width:820px){ .reservas-grid { grid-template-columns:1fr; } }

.painel {
  background:var(--branco); border-radius:16px; padding:1.6rem;
  box-shadow:0 8px 30px rgba(30,68,51,0.12);
}

.cal-topo { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.cal-topo b { font-family:'Marcellus',serif; font-size:1.15rem; color:var(--verde); text-transform:capitalize; }
.cal-nav {
  background:var(--creme); border:none; width:36px; height:36px; border-radius:50%;
  cursor:pointer; font-size:1rem; color:var(--verde); transition:background 0.2s;
}
.cal-nav:hover { background:var(--ouro-claro); }
.cal-nav:disabled { opacity:0.35; cursor:not-allowed; }
.cal-dias-semana, .cal-grade { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-dias-semana span { text-align:center; font-size:0.7rem; font-weight:700; color:var(--cinza); text-transform:uppercase; padding:0.3rem 0; }
.dia {
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  border-radius:8px; font-size:0.88rem; cursor:pointer; border:none;
  background:var(--creme); color:var(--texto); transition:all 0.15s; position:relative;
}
.dia:hover:not(:disabled) { background:var(--ouro-claro); }
.dia:disabled { background:transparent; color:#c9c4b6; cursor:not-allowed; text-decoration:line-through; }
.dia.vazio { background:transparent; cursor:default; }
.dia.ocupado { background:#f3e0e0; color:#b06060; text-decoration:line-through; cursor:not-allowed; }
.dia.selecionado { background:var(--verde); color:var(--branco); font-weight:700; box-shadow:0 4px 12px rgba(30,68,51,0.35); }
.legenda { display:flex; gap:1.2rem; margin-top:0.9rem; font-size:0.75rem; color:var(--cinza); flex-wrap:wrap; }
.legenda i { display:inline-block; width:11px; height:11px; border-radius:3px; margin-right:5px; vertical-align:-1px; }

.pacote {
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  border:2px solid var(--creme); border-radius:12px;
  padding:0.95rem 1.1rem; margin-bottom:0.7rem; cursor:pointer; transition:all 0.2s;
}
.pacote:hover { border-color:var(--ouro-claro); }
.pacote.ativo { border-color:var(--ouro); background:#fdf8ec; }
.pacote b { color:var(--verde); font-size:0.98rem; display:block; }
.pacote small { color:var(--cinza); font-size:0.8rem; }
.preco { font-family:'Marcellus',serif; color:var(--ouro); font-size:1.1rem; white-space:nowrap; }

.resumo {
  background:var(--verde-noite); color:var(--branco);
  border-radius:12px; padding:1.2rem 1.3rem; margin-top:1.1rem;
}
.resumo p { font-size:0.88rem; color:rgba(255,255,255,0.75); margin-bottom:0.15rem; }
.resumo b { color:var(--ouro-claro); font-size:1.05rem; }
#btn-reservar { width:100%; justify-content:center; margin-top:1rem; }
#btn-reservar:disabled { opacity:0.45; cursor:not-allowed; transform:none; box-shadow:none; }
.obs { font-size:0.75rem; color:var(--cinza); margin-top:0.8rem; text-align:center; }

/* ───────── PÁGINAS EXTRAS ───────── */
.pagina-topo {
  background:
    linear-gradient(rgba(15,42,30,0.85), rgba(15,42,30,0.9)),
    url('img/arvore-casamento.jpg') center 35%/cover no-repeat;
  padding:8rem 1.5rem 4rem; text-align:center;
}
.pagina-topo h1 { color:var(--branco); font-size:clamp(2rem, 5vw, 3.2rem); letter-spacing:0.05em; }
.pagina-topo .tagline { display:inline-block; }
.bloco-texto { max-width:760px; margin:0 auto; }
.bloco-texto h2 { margin-top:1rem; }
.bloco-texto p { color:var(--cinza); margin-bottom:1rem; font-size:1.03rem; }

.faq-item {
  background:var(--branco); border-radius:12px; margin-bottom:0.8rem;
  box-shadow:0 4px 18px rgba(30,68,51,0.08); overflow:hidden;
}
.faq-item summary {
  list-style:none; cursor:pointer; padding:1.1rem 1.4rem;
  font-weight:600; color:var(--verde); display:flex; justify-content:space-between; align-items:center; gap:1rem;
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; font-family:'Marcellus',serif; font-size:1.4rem; color:var(--ouro); transition:transform 0.2s; }
.faq-item[open] summary::after { transform:rotate(45deg); }
.faq-item .resposta { padding:0 1.4rem 1.2rem; color:var(--cinza); font-size:0.95rem; }

.cta-pagina { text-align:center; margin-top:2.5rem; }

/* ───────── FOOTER ───────── */
footer {
  background:var(--verde-noite); color:rgba(255,255,255,0.7);
  text-align:center; padding:3rem 1.5rem 2rem;
}
footer img { width:70px; height:70px; border-radius:50%; margin:0 auto 1rem; border:2px solid var(--ouro); }
footer .serif { color:var(--branco); font-size:1.3rem; letter-spacing:0.08em; }
footer small { display:block; margin-top:0.3rem; color:var(--ouro-claro); letter-spacing:0.25em; text-transform:uppercase; font-size:0.68rem; }
.footer-links { margin:1.4rem 0 1rem; display:flex; gap:1.6rem; justify-content:center; flex-wrap:wrap; }
.footer-links a { color:rgba(255,255,255,0.8); text-decoration:none; font-size:0.9rem; }
.footer-links a:hover { color:var(--ouro-claro); }
.credito { font-size:0.72rem; color:rgba(255,255,255,0.35); margin-top:1.5rem; }

.zap-flutuante {
  position:fixed; bottom:22px; right:22px; z-index:60;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(0,0,0,0.3); transition:transform 0.2s;
}
.zap-flutuante:hover { transform:scale(1.08); }
.zap-flutuante svg { width:30px; height:30px; fill:#fff; }
