@import url('./fonts/fonts.css');

:root {
  --green-500: #3eb86c;
  --green-600: #309959;
  --green-700: #257a46;
  --green-800: #1a5c33;
  --green-900: #0f3d20;
  --green-950: #062814;
  --gold-300: #f3d57a;
  --gold-400: #e5c158;
  --cream: #faf7f0;
  --slate-50: #f8fafc;
  --slate-100: #f1f5f9;
  --slate-200: #e2e8f0;
  --slate-300: #cbd5e1;
  --slate-400: #94a3b8;
  --slate-500: #64748b;
  --slate-600: #475569;
  --slate-800: #1e293b;
  --stone-50: #fafaf9;
  --stone-100: #f5f5f4;
  --stone-200: #e7e5e4;
  --stone-300: #d6d3d1;
  --stone-400: #a8a29e;
  --stone-900: #1c1917;
  --stone-950: #0c0a09;
  --teal-icon: #1e7e65;
  --font-sans: "Open Sans", ui-sans-serif, system-ui, sans-serif;
  --font-serif: "Montserrat", ui-serif, Georgia, serif;
  --container: 1200px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  color: var(--slate-800);
  background: #f8fafc;
  line-height: 1.5;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
.container { width: min(100% - 3rem, var(--container)); margin-inline: auto; }

/* Header */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  transition: background .35s ease, border-color .35s ease, box-shadow .35s ease, color .25s ease;
  border-bottom: 1px solid transparent;
  padding: 0.85rem 0;
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  backdrop-filter: blur(16px) saturate(1.2);
}
/* Escuro translúcido — hero, stats, eventos, footer (como o original) */
.site-header.on-dark,
.site-header.on-hero {
  background: rgba(6, 40, 20, .55);
  border-color: rgba(255,255,255,.1);
  box-shadow: none;
}
/* Claro translúcido — seções claras, com glow verde no logo */
.site-header.on-light {
  background: rgba(255,255,255,.55);
  border-color: rgba(15,61,32,.06);
  box-shadow: 0 4px 24px rgba(15,61,32,.04);
}
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { display: flex; align-items: center; flex-shrink: 0; position: relative; z-index: 1; }
.brand img {
  height: 72px; width: auto; max-width: 210px; object-fit: contain; display: block;
  background: transparent !important;
}
.site-header.on-dark .brand img,
.site-header.on-hero .brand img { mix-blend-mode: lighten; }
.nav-desktop { display: none; align-items: center; gap: 1.75rem; margin-left: auto; }
@media (min-width: 1024px) { .nav-desktop { display: flex; } }
.nav-link, .nav-drop > button {
  background: none; border: 0; cursor: pointer;
  font-size: .875rem; font-weight: 500;
  display: inline-flex; align-items: center; gap: .35rem;
  transition: color .2s;
}
.site-header.on-dark .nav-link,
.site-header.on-dark .nav-drop > button,
.site-header.on-hero .nav-link,
.site-header.on-hero .nav-drop > button { color: rgba(255,255,255,.9); }
.site-header.on-dark .nav-link:hover,
.site-header.on-dark .nav-drop > button:hover,
.site-header.on-hero .nav-link:hover,
.site-header.on-hero .nav-drop > button:hover { color: #86efac; }
.site-header.on-light .nav-link,
.site-header.on-light .nav-drop > button { color: #334155; }
.site-header.on-light .nav-link:hover,
.site-header.on-light .nav-drop > button:hover { color: var(--green-800); }
.btn-portal {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .65rem 1.25rem; border-radius: 999px;
  background: var(--green-600); color: #fff !important; font-weight: 700; font-size: .875rem;
  transition: background .2s, transform .15s;
}
.btn-portal:hover { background: var(--green-500); }
.icon-btn {
  width: 40px; height: 40px; border-radius: 999px; border: 0; background: transparent;
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  transition: background .2s, color .2s;
}
.site-header.on-dark .icon-btn,
.site-header.on-hero .icon-btn { color: rgba(255,255,255,.9); }
.site-header.on-dark .icon-btn:hover,
.site-header.on-hero .icon-btn:hover { background: rgba(255,255,255,.1); color: #86efac; }
.site-header.on-light .icon-btn { color: #334155; }
.site-header.on-light .icon-btn:hover { background: rgba(15,61,32,.06); color: var(--green-800); }
.mobile-actions { display: flex; align-items: center; gap: .35rem; }
@media (min-width: 1024px) { .mobile-actions { display: none; } }

.dropdown {
  position: absolute; top: calc(100% + .5rem); left: 0; min-width: 220px;
  background: #fff; border: 1px solid var(--slate-200); border-radius: 1rem;
  padding: .5rem; box-shadow: 0 16px 40px rgba(15,61,32,.12);
  display: none; z-index: 60;
}
.nav-drop { position: relative; }
.nav-drop.open .dropdown { display: block; }
.dropdown a {
  display: block; padding: .65rem .85rem; border-radius: .75rem;
  font-size: .875rem; color: var(--slate-600);
}
.dropdown a:hover { background: var(--slate-50); color: var(--green-900); }

.mobile-menu {
  display: none; position: fixed; inset: 72px 0 0 0; z-index: 45;
  background: #fff; padding: 1.5rem; overflow: auto;
}
.mobile-menu.open { display: block; }
.mobile-menu a, .mobile-menu button {
  display: block; width: 100%; text-align: left; padding: .9rem 0;
  border: 0; border-bottom: 1px solid var(--slate-100); background: none;
  font-size: 1rem; color: var(--green-900); font-weight: 600; cursor: pointer;
}

/* Hero */
.hero {
  position: relative; min-height: 90vh; display: flex; align-items: center;
  color: #fff; overflow: hidden; background: var(--green-900);
}
.hero-media { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: #0a1f12; }
.hero-media video, .hero-media img {
  width: 100%; height: 100%; object-fit: cover; object-position: center center;
  opacity: .85; display: block; border: 0;
}
.hero-overlay-x {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(12,10,9,.95), rgba(12,10,9,.75), rgba(12,10,9,.4));
}
.hero-overlay-y {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(12,10,9,.6), transparent 40%, rgba(12,10,9,.9));
}
.hero-content { position: relative; z-index: 10; padding-top: 5rem; max-width: 48rem; }
.hero h1 {
  font-family: var(--font-serif); font-weight: 800; line-height: 1.12;
  font-size: clamp(2rem, 4.2vw, 3.6rem); margin-bottom: 1.5rem;
  text-shadow: 0 2px 16px rgba(0,0,0,.35); text-transform: uppercase;
  letter-spacing: -.02em; max-width: 16ch;
}
.hero .sub {
  font-size: clamp(1.1rem, 2vw, 1.5rem); color: #f5f5f4; font-weight: 500;
  max-width: 36rem; margin-bottom: 2.5rem; text-shadow: 0 1px 8px rgba(0,0,0,.3);
}
.btn-green {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: 1rem 2rem; border-radius: 999px; border: 0; cursor: pointer;
  background: var(--green-600); color: #fff; font-weight: 600;
  box-shadow: 0 12px 28px rgba(15,61,32,.35); transition: background .2s, transform .15s;
}
.btn-green:hover { background: var(--green-500); transform: translateY(-1px); }
.hero-dots {
  position: absolute; right: 1.5rem; top: 50%; transform: translateY(-50%);
  z-index: 20; display: flex; flex-direction: column; gap: 1rem;
}
.hero-dots button {
  width: 14px; height: 14px; border-radius: 999px; border: 0; cursor: pointer;
  background: rgba(255,255,255,.4); transition: .3s;
}
.hero-dots button.active {
  background: var(--green-500); transform: scale(1.25);
  box-shadow: 0 0 16px rgba(62,184,108,.5);
}
.hero-arrows {
  position: absolute; bottom: 2.5rem; right: 1.5rem; z-index: 20;
  display: flex; gap: .75rem;
}
@media (min-width: 768px) { .hero-arrows { right: 3rem; } }
.hero-arrows button {
  width: 40px; height: 40px; border-radius: 999px; cursor: pointer;
  border: 1px solid rgba(255,255,255,.2); background: rgba(0,0,0,.2);
  color: #fff; display: grid; place-items: center; transition: .2s;
}
.hero-arrows button:hover { background: rgba(48,153,89,.8); border-color: rgba(62,184,108,.5); }
.scroll-cue {
  position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%);
  z-index: 20; color: rgba(255,255,255,.6); animation: bob 2s ease-in-out infinite;
}
@keyframes bob { 0%,100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 6px); } }

/* Ticker */
.ticker {
  background: #020617; color: #fff; border-block: 1px solid rgba(255,255,255,.1);
  padding: .75rem 0; overflow: hidden; position: relative; z-index: 20;
}
.ticker::before, .ticker::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 4rem; z-index: 2; pointer-events: none;
}
.ticker::before { left: 0; background: linear-gradient(90deg, #020617, transparent); }
.ticker::after { right: 0; background: linear-gradient(270deg, #020617, transparent); }
.ticker-track {
  display: flex; gap: 3rem; width: max-content; white-space: nowrap;
  animation: ticker 35s linear infinite;
}
.ticker-item { display: inline-flex; align-items: center; gap: .75rem; font-size: .95rem; }
.ticker-item .name { color: #cbd5e1; font-weight: 600; }
.ticker-item .price { font-family: ui-monospace, monospace; }
.ticker-item .up { color: var(--gold-400); display: inline-flex; align-items: center; gap: .2rem; font-size: .85rem; font-weight: 600; }
.ticker-item .down { color: #f87171; display: inline-flex; align-items: center; gap: .2rem; font-size: .85rem; font-weight: 600; }
@keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Sections common */
.section { padding: 6rem 0; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }

/* Nossa empresa */
#nossa-empresa { background: var(--cream); }
#nossa-empresa h2 {
  text-align: center; margin-bottom: 4rem;
  font-family: var(--font-serif); font-weight: 700; letter-spacing: -.02em;
  color: var(--green-900); font-size: clamp(1.75rem, 3vw, 2.25rem);
}
.trust-grid {
  display: grid; gap: 3rem; align-items: center;
}
@media (min-width: 1024px) {
  .trust-grid { grid-template-columns: 1fr 1fr; gap: 4rem; }
}
.trust-img {
  width: 100%; height: 400px; object-fit: cover; border-radius: 2.5rem;
  box-shadow: 0 8px 30px rgba(15,61,32,.08);
}
@media (min-width: 768px) { .trust-img { height: 520px; } }
.trust-copy h3 {
  font-family: var(--font-serif); font-weight: 800; color: var(--green-900);
  font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.15; letter-spacing: -.03em;
  margin-bottom: 3rem;
}
.feature-row { display: flex; gap: 1.25rem; align-items: flex-start; margin-bottom: 2.5rem; }
.feature-icon {
  width: 44px; height: 44px; border-radius: 999px; background: var(--teal-icon);
  color: #fff; display: grid; place-items: center; flex-shrink: 0; box-shadow: 0 4px 12px rgba(30,126,101,.25);
}
.feature-row h4 {
  font-family: var(--font-serif); font-weight: 700; color: var(--green-900);
  font-size: clamp(1.25rem, 2vw, 1.5rem); margin-bottom: .35rem;
}
.feature-row p { color: var(--slate-600); font-weight: 300; max-width: 28rem; }

/* Vantagens */
#vantagens { background: #fff; }
.pill {
  display: inline-block; padding: .4rem 1rem; border: 1px solid var(--slate-300);
  border-radius: 999px; font-size: .7rem; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: var(--slate-500); margin-bottom: 1.25rem;
}
#vantagens .title {
  font-family: var(--font-serif); font-weight: 800; color: var(--green-900);
  font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.15; letter-spacing: -.03em;
  max-width: 40rem; margin-bottom: 3.5rem;
}
.cards-3 {
  display: grid; gap: 1.5rem; margin-bottom: 3rem;
  align-items: stretch;
}
@media (min-width: 768px) {
  .cards-3 { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
}
.v-card {
  background: #fff; border: 1px solid rgba(226,232,240,.9); border-radius: 2rem;
  display: flex; flex-direction: column;
  overflow: hidden; box-shadow: 0 4px 16px rgba(15,61,32,.04);
  transition: transform .3s, box-shadow .3s; cursor: pointer;
  min-height: 0;
}
/* Mobile: card compacto, imagem padronizada em aspect-ratio */
.v-card .pad { padding: 1.5rem 1.5rem 1rem; flex: 0 0 auto; }
.v-card h3 {
  font-family: var(--font-serif); font-weight: 700; color: var(--green-900);
  font-size: 1.35rem; line-height: 1.25; margin: 0 0 .85rem;
  min-height: 2.7em; /* 2 linhas — títulos alinhados */
}
.v-card .arrow {
  width: 40px; height: 40px; border-radius: 999px; background: var(--slate-100);
  color: var(--green-900); display: grid; place-items: center; transition: .3s;
  margin-bottom: .25rem;
}
.v-card:hover .arrow { background: var(--green-900); color: #fff; }
.v-card .photo {
  width: auto;
  margin: 0 1rem 1rem;
  margin-top: auto;
  flex: 0 0 auto;
  aspect-ratio: 16 / 10;
  height: auto;
  overflow: hidden;
  position: relative;
  background: #e8efe9;
  border-radius: 1.5rem;
}
.v-card .photo img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  border-radius: 1.5rem;
}
.v-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(15,61,32,.12); }

/* Desktop: altura fixa igual ao original + curva grande no canto */
@media (min-width: 768px) {
  .v-card {
    height: 480px;
    justify-content: space-between;
  }
  .v-card .pad { padding: 2rem 2rem 0; }
  .v-card h3 { font-size: 1.5rem; margin: 1rem 0 .75rem; min-height: 2.5em; }
  .v-card .photo {
    width: 100%;
    margin: 0;
    flex: 0 0 240px;
    height: 240px;
    min-height: 240px;
    max-height: 240px;
    aspect-ratio: auto;
    border-radius: 0;
  }
  .v-card .photo img {
    border-radius: 0;
    border-top-left-radius: 6rem;
    transform-origin: bottom;
  }
}
.tech-note { text-align: center; color: var(--slate-500); font-weight: 300; font-size: .9rem; }
.tech-note a { color: var(--green-800); font-weight: 600; text-decoration: underline; }

/* Stats band */
.stats-band {
  position: relative; padding: 7rem 0; overflow: hidden; color: #fff; margin-top: 0;
}
.stats-band .bg {
  position: absolute; inset: 0; background:
    linear-gradient(rgba(0,0,0,.75), rgba(0,0,0,.75)),
    url('./assets/stats-bg.jpg?v=16') center/cover;
}
.stats-grid {
  position: relative; z-index: 2;
  display: grid; gap: 2.5rem; text-align: center;
}
@media (min-width: 768px) {
  .stats-grid { grid-template-columns: repeat(3, 1fr); text-align: left; gap: 2rem; }
}
.stat-num {
  font-family: var(--font-serif); font-weight: 800; letter-spacing: -.03em;
  font-size: clamp(3rem, 6vw, 4.5rem); line-height: 1; margin-bottom: .75rem;
}
.stat-num .accent { color: var(--green-500); }
.stat-text { color: #e2e8f0; font-weight: 300; max-width: 18rem; margin-inline: auto; }
@media (min-width: 768px) { .stat-text { margin-inline: 0; } }

/* Como atuamos */
#como-atuamos { background: #fff; }
.tech-split {
  display: grid; gap: 3rem; align-items: center; margin-bottom: 6rem;
}
@media (min-width: 1024px) { .tech-split { grid-template-columns: 1fr 1fr; } }
.tech-split h2 {
  font-family: var(--font-serif); font-weight: 800; color: var(--green-900);
  font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.15; letter-spacing: -.03em;
  margin: 1.25rem 0 2rem;
}
.tech-split img {
  width: 100%; height: 320px; object-fit: cover; border-radius: 2rem;
  box-shadow: 0 8px 24px rgba(15,61,32,.08);
}
@media (min-width: 768px) { .tech-split img { height: 400px; } }
.pillars {
  display: grid; gap: 3rem;
}
@media (min-width: 768px) { .pillars { grid-template-columns: repeat(3, 1fr); gap: 4rem; } }
.pillar { display: flex; flex-direction: column; justify-content: space-between; min-height: 100%; }
.pillar .ico { color: var(--green-700); margin-bottom: 1.5rem; }
.pillar h3 {
  font-family: var(--font-serif); font-weight: 700; color: var(--green-900);
  font-size: 1.5rem; margin-bottom: 1rem;
}
.pillar p { color: var(--slate-600); font-weight: 300; font-size: .95rem; }
.plus-btn {
  margin-top: 1.5rem; width: 40px; height: 40px; border-radius: 999px; border: 0;
  background: var(--green-600); color: #fff; font-size: 1.35rem; font-weight: 700;
  cursor: pointer; transition: transform .2s, background .2s;
}
.plus-btn:hover { background: var(--green-500); transform: scale(1.1); }

/* Simulator */
#planos {
  background: var(--slate-50); position: relative; overflow: hidden;
}
#planos::before, #planos::after {
  content: ""; position: absolute; width: 400px; height: 400px; border-radius: 999px;
  filter: blur(100px); pointer-events: none;
}
#planos::before { top: 0; right: 0; background: rgba(62,184,108,.05); }
#planos::after { bottom: 0; left: 0; background: rgba(243,213,122,.05); }
.sim-head { max-width: 40rem; margin: 0 auto 4rem; text-align: center; position: relative; z-index: 1; }
.sim-badge {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .4rem .9rem; border-radius: 999px; margin-bottom: 1rem;
  background: rgba(15,61,32,.05); border: 1px solid rgba(15,61,32,.1);
  color: var(--green-800); font-size: .65rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
}
.sim-head h2 {
  font-family: var(--font-serif); font-weight: 700; color: var(--green-900);
  font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 1rem;
}
.sim-head p { color: var(--slate-500); font-weight: 300; }
.sim-card {
  max-width: 56rem; margin: 0 auto; background: #fff;
  border: 1px solid rgba(226,232,240,.7); border-radius: 2.5rem;
  box-shadow: 0 16px 40px rgba(15,61,32,.08); overflow: hidden;
  display: grid; position: relative; z-index: 1;
}
@media (min-width: 768px) { .sim-card { grid-template-columns: 7fr 5fr; } }
.sim-left { padding: 1.5rem; }
@media (min-width: 768px) { .sim-left { padding: 2.5rem 3rem; } }
.sim-label {
  font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--slate-500); display: flex; justify-content: space-between; margin-bottom: .75rem;
}
.sim-label span { font-family: ui-monospace, monospace; font-size: .65rem; color: var(--slate-400); }
.money-wrap { position: relative; margin-bottom: 1rem; }
.money-wrap .prefix {
  position: absolute; left: 1.25rem; top: 50%; transform: translateY(-50%);
  color: var(--slate-400); font-weight: 800; font-size: 1.1rem;
}
.money-wrap input {
  width: 100%; background: var(--slate-50); border: 1px solid var(--slate-200);
  border-radius: 999px; padding: .9rem 1.5rem .9rem 3rem;
  font-size: 1.25rem; font-weight: 800; color: var(--green-900); outline: none;
}
.money-wrap input:focus { border-color: var(--green-700); box-shadow: 0 0 0 4px rgba(15,61,32,.05); }
.quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-bottom: 1.25rem; }
.chip {
  padding: .55rem .25rem; border-radius: 999px; border: 1px solid var(--slate-200);
  background: #fff; color: var(--slate-600); font-size: .75rem; font-weight: 700;
  cursor: pointer; transition: .2s;
}
.chip.active { background: var(--green-900); border-color: var(--green-900); color: #fff; }
.range {
  width: 100%; accent-color: var(--green-900); height: 6px; cursor: pointer; margin-bottom: .35rem;
}
.range-labels {
  display: flex; justify-content: space-between; font-size: .65rem;
  color: var(--slate-400); font-weight: 600; margin-bottom: 1.5rem;
}
.prazo-wrap {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem;
  background: var(--slate-50); border: 1px solid var(--slate-200);
  padding: .35rem; border-radius: 999px;
}
.prazo-wrap button {
  border: 0; border-radius: 999px; padding: .55rem; cursor: pointer;
  background: transparent; color: var(--slate-500); font-size: .75rem; font-weight: 700;
}
.prazo-wrap button.active { background: var(--green-900); color: #fff; box-shadow: 0 2px 8px rgba(15,61,32,.2); }
.sim-right {
  background: var(--green-900); color: #fff; padding: 1.5rem;
  display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem;
}
@media (min-width: 768px) { .sim-right { padding: 2.5rem 3rem; } }
.sim-right .lbl {
  font-size: .65rem; letter-spacing: .12em; text-transform: uppercase;
  font-weight: 800; color: #bbf7d0; font-family: ui-monospace, monospace;
}
.sim-right .total {
  font-family: var(--font-serif); font-weight: 800; font-size: clamp(1.75rem, 3vw, 2.25rem);
  margin-top: .25rem;
}
.sim-rows { border-top: 1px solid rgba(255,255,255,.1); padding-top: 1rem; display: grid; gap: 1rem; }
.sim-rows .row { display: flex; justify-content: space-between; align-items: center; font-size: .8rem; }
.sim-rows .muted { color: rgba(187,247,208,.8); font-weight: 300; }
.sim-rows .gold { color: var(--gold-300); font-weight: 700; font-family: ui-monospace, monospace; }
.btn-proposta {
  width: 100%; border: 0; border-radius: 999px; cursor: pointer;
  padding: 1rem; background: var(--green-600); color: #fff;
  font-weight: 700; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase;
  display: inline-flex; align-items: center; justify-content: center; gap: .35rem;
  box-shadow: 0 12px 28px rgba(6,40,20,.4); transition: .2s;
}
.btn-proposta:hover { background: var(--green-500); transform: scale(1.02); }
.sim-disclaimer {
  text-align: center; max-width: 40rem; margin: 3rem auto 0;
  font-size: .65rem; color: var(--slate-400); font-weight: 300; line-height: 1.6;
}

/* Eventos */
#eventos {
  position: relative; padding: 6rem 0; color: #fff; overflow: hidden;
  background: #1c120c;
}
#eventos .bg {
  position: absolute; inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
#eventos .bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
#eventos .veil {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(12,10,9,.55), rgba(28,18,12,.35) 40%, rgba(12,10,9,.6));
  pointer-events: none;
}
#eventos .inner { position: relative; z-index: 2; }
.event-head { max-width: 40rem; margin: 0 auto 4rem; text-align: center; }
.event-badge {
  display: inline-block; padding: .4rem 1rem; margin-bottom: 1rem;
  border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2);
  color: var(--green-500); font-size: .7rem; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; backdrop-filter: blur(6px);
}
.event-head h2 {
  font-family: var(--font-serif); font-weight: 700; font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 1.25rem;
}
.event-head p { color: #e7e5e4; font-weight: 300; font-size: 1.1rem; }
.event-cards {
  display: grid; gap: 2rem; max-width: 72rem; margin: 0 auto;
}
@media (min-width: 768px) { .event-cards { grid-template-columns: repeat(3, 1fr); } }
.e-card {
  backdrop-filter: blur(14px); background: rgba(28,25,23,.55);
  border: 1px solid rgba(255,255,255,.1); border-radius: 2rem; padding: 2rem;
  text-align: center; box-shadow: 0 20px 50px rgba(0,0,0,.35);
  display: flex; flex-direction: column; justify-content: space-between;
  transition: .3s;
}
.e-card:hover { background: rgba(28,25,23,.45); border-color: rgba(255,255,255,.2); }
.e-ico {
  width: 64px; height: 64px; margin: 0 auto 1.5rem; border-radius: 999px;
  background: rgba(62,184,108,.2); color: var(--green-500);
  display: grid; place-items: center;
}
.e-tag {
  display: inline-block; padding: .25rem .75rem; margin-bottom: .75rem;
  border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15);
  color: #4ade80; font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.e-card h3 {
  font-family: var(--font-serif); font-weight: 700; color: var(--green-500);
  font-size: 1.25rem; margin-bottom: .75rem;
}
.e-card p { color: #e7e5e4; font-weight: 300; font-size: .9rem; line-height: 1.6; margin-bottom: 1.5rem; }
.e-meta {
  border-top: 1px solid rgba(255,255,255,.1); padding-top: 1rem;
  font-size: .75rem; color: #d6d3d1; display: grid; gap: .5rem;
}
.e-meta .when { color: #4ade80; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; }
.e-meta .where { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; }
.event-cta { text-align: center; margin-top: 4rem; }
.btn-agenda {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: 1.15rem 2.5rem; border-radius: 999px; background: var(--green-500);
  color: #fff; font-weight: 700; font-size: 1.1rem;
  box-shadow: 0 12px 28px rgba(62,184,108,.25); transition: .2s;
}
.btn-agenda:hover { background: var(--green-600); transform: scale(1.02); }

/* Newsletter */
#newsletter {
  background: linear-gradient(180deg, var(--stone-50), var(--stone-100));
  border-top: 1px solid var(--stone-200); padding: 5rem 0; color: var(--stone-900);
}
.nl-card {
  max-width: 72rem; margin: 0 auto; background: #fff;
  border: 1px solid var(--stone-200); border-radius: 1.5rem;
  box-shadow: 0 20px 50px rgba(15,61,32,.08); padding: 2rem;
  display: flex; flex-direction: column; gap: 2rem; position: relative; overflow: hidden;
}
@media (min-width: 1024px) {
  .nl-card { flex-direction: row; align-items: center; justify-content: space-between; padding: 3.5rem; gap: 3.5rem; }
}
.nl-card::before {
  content: ""; position: absolute; top: 0; right: 0; width: 24rem; height: 24rem;
  background: rgba(62,184,108,.1); border-radius: 999px; filter: blur(60px); pointer-events: none;
}
.nl-left { position: relative; z-index: 1; flex: 1; }
.nl-title-row { display: flex; align-items: center; gap: 1rem; margin-bottom: .75rem; }
.nl-ico {
  width: 56px; height: 56px; border-radius: 1rem; flex-shrink: 0;
  background: rgba(62,184,108,.1); border: 1px solid rgba(62,184,108,.2);
  color: var(--green-700); display: grid; place-items: center;
}
.nl-left h3 {
  font-family: var(--font-serif); font-weight: 800; color: var(--green-950);
  font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.2;
}
.nl-left p { color: #57534e; font-weight: 300; max-width: 36rem; font-size: 1.05rem; }
.nl-form { width: 100%; max-width: 480px; position: relative; z-index: 1; display: grid; gap: .85rem; }
.nl-input-wrap { position: relative; }
.nl-input-wrap svg {
  position: absolute; left: 1.25rem; top: 50%; transform: translateY(-50%); color: var(--stone-400);
}
.nl-input-wrap input {
  width: 100%; padding: 1rem 1.5rem 1rem 3.25rem; border-radius: 999px;
  border: 1px solid var(--stone-300); background: var(--stone-50); color: var(--stone-900);
  outline: none; transition: .2s;
}
.nl-input-wrap input:focus {
  background: #fff; border-color: var(--green-600); box-shadow: 0 0 0 3px rgba(62,184,108,.25);
}
.nl-submit {
  width: 100%; border: 0; border-radius: 999px; cursor: pointer;
  padding: 1rem 2rem; background: var(--green-600); color: #fff; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  box-shadow: 0 12px 28px rgba(48,153,89,.25); transition: .2s;
}
.nl-submit:hover { background: var(--green-700); transform: scale(1.01); }

/* Footer */
footer {
  background: var(--green-950); color: #e7e5e4; padding: 4rem 0 2rem;
  border-top: 1px solid rgba(255,255,255,.1);
}
.footer-grid {
  display: grid; gap: 2.5rem;
}
@media (min-width: 768px) { .footer-grid { grid-template-columns: 2fr 1fr 1fr; gap: 2.5rem; } }
.footer-brand img { height: 72px; width: auto; max-width: 180px; object-fit: contain; margin-bottom: 1.5rem; }
.footer-brand p { font-weight: 300; font-size: .9rem; max-width: 22rem; color: #d6d3d1; }
footer h4 { color: #fff; font-family: var(--font-serif); font-weight: 700; margin-bottom: 1.5rem; }
footer ul { list-style: none; display: grid; gap: .85rem; font-size: .9rem; font-weight: 300; }
footer li { display: flex; align-items: center; gap: .75rem; }
footer li svg { color: #4ade80; flex-shrink: 0; }
footer a:hover { color: #4ade80; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.1); margin-top: 4rem; padding-top: 2rem;
  display: flex; flex-direction: column; gap: 1rem; align-items: center;
  text-align: center; font-size: .875rem; color: var(--stone-400); font-weight: 300;
}
@media (min-width: 768px) {
  .footer-bottom { flex-direction: row; justify-content: space-between; text-align: left; }
}
.footer-bottom .links { display: flex; gap: 1rem; }
.footer-bottom a:hover { color: #fff; }

/* Search modal */
.search-modal {
  position: fixed; inset: 0; z-index: 80; background: rgba(6,40,20,.55);
  display: none; align-items: flex-start; justify-content: center; padding: 6rem 1.5rem;
  backdrop-filter: blur(4px);
}
.search-modal.open { display: flex; }
.search-box {
  width: min(100%, 560px); background: #fff; border-radius: 1.25rem;
  padding: 1rem 1.25rem; display: flex; align-items: center; gap: .75rem;
  box-shadow: 0 24px 60px rgba(0,0,0,.25);
}
.search-box input {
  flex: 1; border: 0; outline: none; font-size: 1.05rem; color: var(--green-900);
}
