/* =========================================================
   AAMA — Associação dos Trabalhos Artesanais e Sociais
   Identidade: paleta extraída dos arquivos vetoriais da logomarca
   ========================================================= */
:root {
  --vinho: #72181F;
  --terracota: #C43B28;
  --terracota-esc: #9E2D1D;
  --sol: #FFAF1D;
  --sol-esc: #DB8B00;
  --creme: #FFDC9C;
  --bg: #FFF6E6;
  --bg2: #FFEDD0;
  --verde: #139C83;
  --verde-esc: #0C7563;
  --azul: #495DA8;
  --azul-esc: #34458A;
  --ink: #3A1712;
  --ink2: #6A4336;
  --r: 26px;
  --shadow: 0 22px 44px -22px rgba(114, 24, 31, .45);
  --shadow-sm: 0 10px 24px -14px rgba(114, 24, 31, .45);
  --fd: 'Grandstander', 'Baloo 2', 'Trebuchet MS', system-ui, sans-serif;
  --fb: 'Nunito', 'Segoe UI', system-ui, sans-serif;
  --hdr: 84px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--fb); font-size: 17px; line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}
main { overflow-x: clip; }
img { max-width: 100%; display: block; }
a { color: var(--terracota); }
h1, h2, h3, h4 { font-family: var(--fd); color: var(--vinho); line-height: 1.06; margin: 0 0 .45em; letter-spacing: -.01em; }
h1 { font-size: clamp(2.35rem, 5.4vw, 4.6rem); font-weight: 900; }
h2 { font-size: clamp(1.95rem, 3.8vw, 3.1rem); font-weight: 900; }
h3 { font-size: clamp(1.2rem, 1.8vw, 1.45rem); font-weight: 800; }
p { margin: 0 0 1em; }
.wrap { width: 100%; max-width: 1220px; margin: 0 auto; padding: 0 24px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ico { width: 1.25em; height: 1.25em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.ico.fill { fill: currentColor; stroke: none; }
:focus-visible { outline: 3px solid var(--azul); outline-offset: 3px; border-radius: 10px; }

/* ---------- barra de progresso ---------- */
.progress { position: fixed; top: 0; left: 0; height: 5px; width: 100%; z-index: 80; transform-origin: 0 50%; transform: scaleX(0);
  background: linear-gradient(90deg, var(--verde), var(--sol), var(--terracota), var(--azul)); }

/* ---------- cabeçalho ---------- */
.hdr { position: fixed; inset: 0 0 auto 0; z-index: 60; padding: 14px 0; transition: background .35s, box-shadow .35s, padding .35s; }
.hdr.solid { background: rgba(255, 246, 230, .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 8px 26px -16px rgba(114, 24, 31, .5); padding: 6px 0; }
.hdr .wrap { display: flex; align-items: center; justify-content: space-between; gap: 18px; max-width: 1320px; }
.brand { display: block; flex: none; border-radius: 12px; }
.brand img { height: 62px; width: auto; transition: height .35s; filter: drop-shadow(0 6px 10px rgba(114, 24, 31, .18)); }
.hdr.solid .brand img { height: 50px; }
.nav > ul { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.nav li { position: relative; }
.nav .top { font-family: var(--fd); font-weight: 800; font-size: 1.04rem; color: var(--vinho); text-decoration: none;
  padding: 10px 14px; border-radius: 999px; display: inline-flex; align-items: center; gap: 4px; transition: background .2s, color .2s, transform .2s; }
.nav .top:hover, .nav li.active > .row > .top { background: rgba(196, 59, 40, .1); color: var(--terracota); }
.nav .row { display: flex; align-items: center; }
.nav .caret { background: none; border: 0; color: var(--vinho); padding: 6px 4px; margin-left: -10px; cursor: pointer; border-radius: 8px; display: grid; place-items: center; }
.nav .caret .ico { width: 18px; height: 18px; transition: transform .25s; }
.nav .apoie .top { background: var(--sol); color: var(--vinho); box-shadow: 0 4px 0 var(--sol-esc); margin-left: 6px; }
.nav .apoie .top:hover { transform: translateY(-2px); background: #FFBB3A; }
.nav .apoie .caret { margin-left: 2px; }
.sub { list-style: none; margin: 0; padding: 10px; position: absolute; top: calc(100% + 6px); left: 0; min-width: 260px; background: #fff;
  border-radius: 20px; box-shadow: 0 26px 50px -20px rgba(114, 24, 31, .45); opacity: 0; visibility: hidden;
  transform: perspective(700px) rotateX(-18deg) translateY(6px); transform-origin: top center; transition: opacity .25s, transform .3s, visibility .3s; }
.sub::before { content: ''; position: absolute; top: -14px; left: 0; right: 0; height: 14px; }
.sub a { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 12px; color: var(--ink); text-decoration: none; font-weight: 700; }
.sub a:hover { background: var(--bg); color: var(--terracota); }
.sub a .dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.has-sub:hover .sub, .has-sub:focus-within .sub, .has-sub.open .sub { opacity: 1; visibility: visible; transform: none; }
.has-sub:hover .caret .ico, .has-sub.open .caret .ico { transform: rotate(180deg); }
.burger { display: none; width: 50px; height: 50px; border-radius: 16px; border: 0; background: var(--terracota); color: #fff; box-shadow: 0 4px 0 var(--terracota-esc); cursor: pointer; place-items: center; }
.burger .ico { width: 26px; height: 26px; }

@media (max-width: 1260px) { .blocks { gap: 12px; } .cube { --s: 78px; } }
@media (max-width: 1100px) {
  .hdr.solid { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(255, 246, 230, .97); }
  .burger { display: grid; }
  .nav { position: fixed; inset: 0; background: var(--bg); z-index: 70; padding: 96px 24px 40px; overflow-y: auto;
    transform: translateX(100%); transition: transform .45s cubic-bezier(.2, .8, .2, 1); visibility: hidden; }
  .nav.open { transform: none; visibility: visible; }
  .nav > ul { flex-direction: column; align-items: stretch; gap: 6px; }
  .nav .row { justify-content: space-between; background: #fff; border-radius: 18px; box-shadow: var(--shadow-sm); }
  .nav .top { font-size: 1.3rem; padding: 14px 18px; flex: 1; }
  .nav .apoie .top { margin: 0; box-shadow: none; }
  .nav .apoie .row { background: var(--sol); }
  .nav .caret { margin: 0 8px 0 0; padding: 10px; }
  .sub { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: transparent; display: none; min-width: 0; padding: 6px 0 4px 16px; }
  .has-sub.open .sub { display: block; }
  .has-sub:hover .caret .ico { transform: none; }
  .has-sub.open .caret .ico { transform: rotate(180deg); }
  .sub a { font-size: 1.1rem; }
  .nav-close { position: absolute; top: 18px; right: 22px; }
}
@media (min-width: 1101px) { .nav-close { display: none; } }

/* ---------- botões 3D ---------- */
.btn { --c: var(--terracota); --d: var(--terracota-esc); --t: #fff;
  font-family: var(--fd); font-weight: 800; font-size: 1.06rem; display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 26px; border-radius: 999px; background: var(--c); color: var(--t); text-decoration: none; border: 0; cursor: pointer;
  box-shadow: 0 6px 0 var(--d), 0 16px 26px -14px rgba(114, 24, 31, .6); transition: transform .18s, box-shadow .18s; line-height: 1.1; }
.btn:hover { transform: translateY(-3px); box-shadow: 0 9px 0 var(--d), 0 22px 30px -16px rgba(114, 24, 31, .6); }
.btn:active { transform: translateY(4px); box-shadow: 0 2px 0 var(--d), 0 8px 14px -10px rgba(114, 24, 31, .6); }
.btn .ico { width: 20px; height: 20px; }
.btn.sol { --c: var(--sol); --d: var(--sol-esc); --t: var(--vinho); }
.btn.verde { --c: var(--verde); --d: var(--verde-esc); }
.btn.azul { --c: var(--azul); --d: var(--azul-esc); }
.btn.vinho { --c: var(--vinho); --d: #4A0E13; }
.btn.claro { --c: #fff; --d: #E9D3B3; --t: var(--vinho); }
.btns { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 26px; }

/* ---------- páginas ---------- */
.page { display: none; }
.page.on { display: block; animation: pageIn .7s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes pageIn { from { opacity: 0; transform: perspective(1200px) translateY(30px) rotateX(4deg); } to { opacity: 1; transform: none; } }
.sec { padding: clamp(70px, 9vw, 120px) 0; position: relative; }
.sec.alt { background: var(--bg2); }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-family: var(--fd); font-weight: 800; font-size: .95rem; letter-spacing: .04em; text-transform: uppercase;
  color: var(--terracota); background: rgba(196, 59, 40, .1); padding: 7px 16px; border-radius: 999px; margin-bottom: 18px; }
.eyebrow.v { color: var(--verde-esc); background: rgba(19, 156, 131, .12); }
.eyebrow.a { color: var(--azul); background: rgba(73, 93, 168, .12); }
.lead { font-size: clamp(1.08rem, 1.5vw, 1.25rem); color: var(--ink2); }
.center { text-align: center; }
.center .lead { max-width: 760px; margin-left: auto; margin-right: auto; }

/* reveal 3D */
[data-reveal] { opacity: 0; transform: perspective(1000px) translateY(46px) rotateX(16deg); transition: opacity .8s ease, transform 1s cubic-bezier(.2, .75, .2, 1); transition-delay: var(--dl, 0s); }
[data-reveal].in { opacity: 1; transform: none; }

/* ---------- herói da home ---------- */
.hero { position: relative; min-height: max(100vh, 720px); max-height: 980px; overflow: hidden; perspective: 1200px;
  background: radial-gradient(120% 80% at 80% 0%, #FFE7AE 0%, #FFF3DA 45%, var(--bg) 75%); }
.hero .layer { position: absolute; left: 0; right: 0; will-change: transform; }
.hero .sun { position: absolute; width: min(46vw, 620px); aspect-ratio: 1; right: -8vw; top: -14vw; opacity: .95; will-change: transform; filter: drop-shadow(0 30px 40px rgba(196, 59, 40, .25)); }
.hero .clouds { inset: 0; pointer-events: none; }
.hero .clouds svg { position: absolute; width: 100%; height: 60%; top: 8%; }
.hero-in { position: relative; z-index: 5; padding-top: calc(var(--hdr) + 64px); }
.hero-in > div:first-child { max-width: 690px; }
.hero h1 { font-size: clamp(2.3rem, 4.3vw, 3.7rem); }
.hero h1 { text-shadow: 0 3px 0 rgba(255, 255, 255, .7); }
.hero h1 .hl { color: var(--terracota); display: inline-block; }
.hero .lead { max-width: 560px; color: var(--ink); }
.chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.chip { display: inline-flex; align-items: center; gap: 8px; background: #fff; border-radius: 999px; padding: 8px 15px; font-weight: 800; font-size: .92rem; color: var(--vinho); box-shadow: var(--shadow-sm); }
.chip i { width: 11px; height: 11px; border-radius: 50%; background: var(--c, var(--sol)); display: inline-block; }
.hero-scene { position: absolute; left: 0; right: 0; bottom: 0; height: 44%; z-index: 4; }
.hero-scene svg, .phero-scene svg, .scene svg { width: 100%; height: 100%; overflow: visible; display: block; }

/* blocos 3D A-A-M-A */
.blocks { position: absolute; right: 24px; top: calc(var(--hdr) + 70px); height: 230px; display: flex; justify-content: center; align-items: center; gap: 18px; perspective: 900px; }
.cube { --s: 96px; width: var(--s); height: var(--s); position: relative; transform-style: preserve-3d; will-change: transform; }
.cube .f { position: absolute; inset: 0; border-radius: 16px; display: grid; place-items: center; font-family: var(--fd); font-weight: 900; font-size: calc(var(--s) * .66);
  color: #fff; text-shadow: 0 4px 0 rgba(0, 0, 0, .18); backface-visibility: hidden;
  box-shadow: inset 0 -8px 0 rgba(0, 0, 0, .14), inset 0 7px 0 rgba(255, 255, 255, .28); }
.cube .f1 { transform: translateZ(calc(var(--s) / 2)); }
.cube .f2 { transform: rotateY(180deg) translateZ(calc(var(--s) / 2)); }
.cube .f3 { transform: rotateY(90deg) translateZ(calc(var(--s) / 2)); }
.cube .f4 { transform: rotateY(-90deg) translateZ(calc(var(--s) / 2)); }
.cube .f5 { transform: rotateX(90deg) translateZ(calc(var(--s) / 2)); }
.cube .f6 { transform: rotateX(-90deg) translateZ(calc(var(--s) / 2)); }
.cube .pat { background-image: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .55) 0 18%, transparent 19%); background-size: 50% 50%; }
.cube .tri { background-image: linear-gradient(135deg, rgba(255, 255, 255, .35) 25%, transparent 25%), linear-gradient(225deg, rgba(255, 255, 255, .35) 25%, transparent 25%); background-size: 30px 30px; }

/* ---------- herói das páginas internas ---------- */
.phero { --c1: var(--terracota); --c2: #D9563C; position: relative; overflow: hidden; color: #fff;
  background: radial-gradient(90% 120% at 15% 0%, var(--c2), var(--c1)); min-height: 560px; padding-top: calc(var(--hdr) + 54px); }
.phero.verde { --c1: var(--verde-esc); --c2: var(--verde); }
.phero.azul { --c1: var(--azul-esc); --c2: #5C71C0; }
.phero.vinho { --c1: #5A1218; --c2: var(--vinho); }
.phero.sol { --c1: #F39C12; --c2: var(--sol); color: var(--vinho); }
.phero h1 { color: inherit; text-shadow: 0 4px 0 rgba(0, 0, 0, .14); max-width: 760px; position: relative; z-index: 3; }
.phero .lead { color: inherit; opacity: .95; max-width: 620px; font-weight: 700; position: relative; z-index: 3; font-size: clamp(1.15rem, 1.8vw, 1.4rem); }
.phero .crumb { font-family: var(--fd); font-weight: 800; opacity: .9; margin-bottom: 14px; font-size: .95rem; letter-spacing: .03em; text-transform: uppercase; position: relative; z-index: 3; }
.phero .crumb a { color: inherit; text-decoration: none; }
.phero .sunr { position: absolute; width: 520px; aspect-ratio: 1; right: -120px; top: -150px; opacity: .22; will-change: transform; }
.phero-scene { position: absolute; left: 0; right: 0; bottom: 0; height: 285px; z-index: 2; }
.phero::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 26px; z-index: 3;
  background: linear-gradient(135deg, var(--bg) 25%, transparent 25%) -13px 0 / 26px 26px, linear-gradient(225deg, var(--bg) 25%, transparent 25%) -13px 0 / 26px 26px; }
.phero.to-alt::after { background: linear-gradient(135deg, var(--bg2) 25%, transparent 25%) -13px 0 / 26px 26px, linear-gradient(225deg, var(--bg2) 25%, transparent 25%) -13px 0 / 26px 26px; }

/* ---------- cartões ---------- */
.card { background: #fff; border-radius: var(--r); box-shadow: var(--shadow); position: relative; }
.grid { display: grid; gap: 26px; }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 980px) { .g3, .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .g2, .g3, .g4 { grid-template-columns: minmax(0, 1fr); } }
[data-tilt] { transform-style: preserve-3d; transition: transform .25s ease, box-shadow .25s; will-change: transform; }
[data-tilt] .pop { transform: translateZ(36px); }
.badge-ico { width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; color: #fff; background: var(--c, var(--terracota));
  box-shadow: inset 0 -6px 0 rgba(0, 0, 0, .16), inset 0 5px 0 rgba(255, 255, 255, .25), 0 12px 20px -10px var(--c, var(--terracota)); margin-bottom: 18px; }
.badge-ico .ico { width: 32px; height: 32px; }

/* dois blocos lado a lado */
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 6vw, 80px); align-items: center; }
.split.rev > :first-child { order: 2; }
@media (max-width: 900px) { .split { grid-template-columns: minmax(0, 1fr); } .split.rev > :first-child { order: 0; } }

/* colagem de fotos 3D */
.stack { position: relative; aspect-ratio: 1 / .92; perspective: 1200px; }
.stack figure { position: absolute; margin: 0; border-radius: 26px; overflow: hidden; border: 8px solid #fff; box-shadow: var(--shadow); background: #eee; cursor: zoom-in; will-change: transform; }
.stack figure img { width: 100%; height: 100%; object-fit: cover; }
.stack .s1 { width: 64%; height: 62%; left: 0; top: 4%; transform: rotate(-5deg); z-index: 2; }
.stack .s2 { width: 54%; height: 58%; right: 0; top: 0; transform: rotate(5deg); z-index: 1; }
.stack .s3 { width: 56%; height: 50%; left: 24%; bottom: 0; transform: rotate(2deg); z-index: 3; }
.stack .sticker { position: absolute; z-index: 5; width: 26%; right: 2%; bottom: 6%; filter: drop-shadow(0 14px 20px rgba(114, 24, 31, .35)); will-change: transform; }

/* áreas (o que fazemos) */
.area { padding: 30px 26px 26px; overflow: hidden; text-decoration: none; color: inherit; display: block; height: 100%; }
.area p { color: var(--ink2); margin: 0; }
.area h3 { margin-bottom: 8px; }
.area .more { display: inline-flex; gap: 6px; align-items: center; color: var(--terracota); font-weight: 800; margin-top: 14px; font-family: var(--fd); }
.area::after { content: ''; position: absolute; right: -40px; top: -40px; width: 120px; height: 120px; border-radius: 50%; background: var(--c, var(--sol)); opacity: .12; }

/* impacto */
.impact { background: linear-gradient(180deg, var(--bg) 0%, #FFE3B0 100%); overflow: hidden; }
.impact-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px; align-items: center; }
@media (max-width: 960px) { .impact-grid { grid-template-columns: minmax(0, 1fr); } }
.nums { display: grid; gap: 18px; margin-top: 26px; }
.num { display: flex; align-items: center; gap: 18px; background: #fff; border-radius: 22px; padding: 18px 22px; box-shadow: var(--shadow-sm); }
.num b { font-family: var(--fd); font-weight: 900; font-size: clamp(2.2rem, 4.4vw, 3.2rem); line-height: 1; color: var(--c, var(--terracota)); flex: none; min-width: 4.6ch; }
.num span { font-weight: 700; color: var(--ink2); line-height: 1.35; }
.num.big b { font-size: clamp(3rem, 6vw, 4.6rem); min-width: 0; }
.note { font-size: .92rem; color: var(--ink2); font-style: italic; margin-top: 14px; }
.ciranda { position: relative; aspect-ratio: 900 / 520; }

/* carrossel 3D */
.carousel { position: relative; height: 300vh; background: linear-gradient(180deg, #FFE3B0, var(--bg2) 30%, var(--bg2)); }
.carousel .stick { position: sticky; top: 0; height: 100vh; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.carousel .head { text-align: center; position: relative; z-index: 3; padding: 0 20px; margin-top: calc(var(--hdr) - 30px); }
.carousel .stage { perspective: 1400px; width: 100%; height: min(50vh, 420px); display: grid; place-items: center; position: relative; z-index: 2; }
.ring { position: relative; width: var(--cw, 230px); height: var(--ch, 310px); transform-style: preserve-3d; will-change: transform; }
.ring figure { position: absolute; inset: 0; margin: 0; border-radius: 24px; overflow: hidden; border: 6px solid #fff; box-shadow: 0 30px 50px -26px rgba(114, 24, 31, .7); cursor: zoom-in; background: #ddd; }
.ring figure img { width: 100%; height: 100%; object-fit: cover; }
.ring figure .dim { position: absolute; inset: 0; background: var(--vinho); pointer-events: none; }
.carousel .floor { position: absolute; left: 0; right: 0; bottom: 0; height: 26%; z-index: 1; }
.carousel .hint { font-weight: 800; color: var(--ink2); font-size: .95rem; }

/* faixa CTA */
.cta { background: radial-gradient(100% 140% at 50% 0%, #D9563C, var(--terracota) 60%, #A83020); color: #fff; overflow: hidden; text-align: center; }
.cta h2 { color: #fff; text-shadow: 0 4px 0 rgba(0, 0, 0, .15); }
.cta .lead { color: #FFF1DC; max-width: 720px; margin: 0 auto; font-weight: 600; }
.cta .btns { justify-content: center; }
.cta .scene { position: absolute; left: 0; right: 0; bottom: 0; height: 240px; pointer-events: none; }
.cta .wrap { position: relative; z-index: 2; padding-bottom: 170px; }
.cta .sunr { position: absolute; width: 640px; aspect-ratio: 1; left: 50%; top: 50%; margin: -320px 0 0 -320px; opacity: .12; will-change: transform; }

/* ---------- missão / visão / valores ---------- */
.mvv .card { padding: 34px 30px; height: 100%; }
.mvv .card p { color: var(--ink2); margin: 0; }
.values { display: flex; flex-wrap: wrap; gap: 10px; }
.values span { font-family: var(--fd); font-weight: 800; padding: 9px 16px; border-radius: 999px; color: #fff; background: var(--c); box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .15); }
.banner { border-radius: 32px; padding: clamp(28px, 5vw, 54px); background: var(--vinho); color: #FFF1DC; position: relative; overflow: hidden; box-shadow: var(--shadow); }
.banner h3, .banner h2 { color: var(--sol); }
.banner p { margin: 0; font-size: 1.12rem; }
.banner .sunr { position: absolute; right: -90px; bottom: -90px; width: 300px; opacity: .25; }
.banner > * { position: relative; }
.photo { margin: 0; border-radius: 30px; overflow: hidden; box-shadow: var(--shadow); border: 8px solid #fff; cursor: zoom-in; }
.photo img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.photo.tall img { aspect-ratio: 3 / 4; }

/* ---------- linha do tempo ---------- */
.tl { position: relative; margin-top: 50px; padding: 20px 0 30px; }
.tl .line { position: absolute; left: 50%; top: 0; bottom: 0; width: 10px; margin-left: -5px; border-radius: 10px;
  background: repeating-linear-gradient(180deg, var(--sol) 0 22px, var(--terracota) 22px 44px, var(--verde) 44px 66px, var(--azul) 66px 88px); opacity: .9; }
.tl .walker { position: absolute; left: 50%; top: 0; width: 120px; height: 150px; margin-left: -60px; z-index: 4; pointer-events: none; will-change: transform; }
.tl .walker svg { width: 100%; height: 100%; overflow: visible; }
.tl-item { position: relative; width: 50%; padding: 0 70px 50px 0; }
.tl-item:nth-of-type(even) { margin-left: 50%; padding: 0 0 50px 70px; }
.tl-item .card { padding: 28px 28px 24px; }
.tl-item .yr { display: inline-block; font-family: var(--fd); font-weight: 900; font-size: 1.05rem; color: #fff; background: var(--c, var(--terracota)); padding: 6px 16px; border-radius: 999px; margin-bottom: 12px; box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .15); }
.tl-item .dot { position: absolute; top: 26px; right: -22px; width: 44px; height: 44px; border-radius: 50%; background: #fff; border: 6px solid var(--c, var(--terracota)); display: grid; place-items: center; z-index: 2; color: var(--c, var(--terracota)); }
.tl-item:nth-of-type(even) .dot { right: auto; left: -22px; }
.tl-item .dot .ico { width: 18px; height: 18px; }
.tl-item p { margin: 0; color: var(--ink2); }
@media (max-width: 820px) {
  .tl .line { left: 26px; }
  .tl .walker { left: 26px; width: 90px; height: 112px; margin-left: -45px; }
  .tl-item, .tl-item:nth-of-type(even) { width: 100%; margin-left: 0; padding: 0 0 40px 74px; }
  .tl-item .dot, .tl-item:nth-of-type(even) .dot { left: 4px; right: auto; }
}
.quote { text-align: center; max-width: 900px; margin: 30px auto 0; }
.quote blockquote { margin: 0; font-family: var(--fd); font-weight: 900; font-size: clamp(1.6rem, 3.4vw, 2.6rem); color: var(--vinho); line-height: 1.15; }
.quote .ico { width: 56px; height: 56px; color: var(--sol); margin: 0 auto 10px; }

/* ---------- atuação ---------- */
.row-area { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(26px, 5vw, 70px); align-items: center; margin-bottom: clamp(50px, 7vw, 90px); }
.row-area:nth-child(even) .photo { order: 2; }
.row-area h3 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
.row-area p { font-size: 1.12rem; color: var(--ink2); }
@media (max-width: 860px) { .row-area { grid-template-columns: minmax(0, 1fr); } .row-area:nth-child(even) .photo { order: 0; } }

/* ---------- atividades ---------- */
.filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 36px; }
.filters button { font-family: var(--fd); font-weight: 800; font-size: 1rem; border: 0; cursor: pointer; padding: 10px 18px; border-radius: 999px; background: #fff; color: var(--vinho); box-shadow: 0 4px 0 #EAD3AF; transition: transform .15s, background .2s, color .2s; }
.filters button:hover { transform: translateY(-2px); }
.filters button.on { background: var(--vinho); color: #fff; box-shadow: 0 4px 0 #4A0E13; }
.acts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
@media (max-width: 1000px) { .acts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .acts { grid-template-columns: minmax(0, 1fr); } }
.act { overflow: hidden; display: flex; flex-direction: column; transition: transform .25s, opacity .3s; }
.act.hide { display: none; }
.act .media { position: relative; aspect-ratio: 16 / 11; overflow: hidden; background: var(--bg2); cursor: zoom-in; }
.act .media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.act:hover .media img { transform: scale(1.06); }
.act .media.illus { cursor: default; background: linear-gradient(180deg, #FFE7B4, var(--bg)); }
.act .media .tag { position: absolute; left: 14px; top: 14px; background: var(--c, var(--terracota)); color: #fff; font-family: var(--fd); font-weight: 800; font-size: .82rem; padding: 6px 12px; border-radius: 999px; box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .15); z-index: 2; }
.act .body { padding: 22px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.act .body p { color: var(--ink2); font-size: .98rem; }
.meta { list-style: none; margin: auto 0 0; padding: 14px 0 0; border-top: 2px dashed #F1DDBC; display: grid; gap: 8px; font-size: .93rem; }
.meta li { display: flex; gap: 10px; align-items: flex-start; }
.meta .ico { color: var(--terracota); margin-top: 2px; width: 18px; height: 18px; }
.meta b { color: var(--vinho); }
.status { display: inline-flex; align-items: center; gap: 8px; background: #FDE4DF; color: var(--terracota-esc); font-weight: 800; font-size: .85rem; padding: 6px 12px; border-radius: 999px; margin-bottom: 10px; align-self: flex-start; }

/* ---------- ODS ---------- */
.ods-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 22px; perspective: 1400px; }
@media (max-width: 1100px) { .ods-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) { .ods-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
.flip { position: relative; aspect-ratio: 3 / 4.1; border: 0; padding: 0; background: none; cursor: pointer; font: inherit; text-align: left; color: inherit; }
.flip .in3d { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform .8s cubic-bezier(.2, .8, .2, 1); }
.flip.on .in3d { transform: rotateY(180deg); }
@media (hover: hover) { .flip:hover .in3d { transform: rotateY(180deg); } }
.flip .fc, .flip .bc { position: absolute; inset: 0; border-radius: 22px; backface-visibility: hidden; -webkit-backface-visibility: hidden; overflow: hidden; box-shadow: var(--shadow); }
.flip .fc { background: var(--c); display: flex; flex-direction: column; }
.flip .fc img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.flip .fc .t { padding: 10px 44px 14px 14px; color: #fff; font-family: var(--fd); font-weight: 800; font-size: 1rem; line-height: 1.15; flex: 1; display: flex; align-items: center; }
.flip .bc { background: #fff; transform: rotateY(180deg); padding: 18px 16px; display: flex; flex-direction: column; gap: 8px; border-top: 10px solid var(--c); overflow-y: auto; }
.flip .bc h4 { font-size: 1.02rem; margin: 0; color: var(--c); filter: brightness(.8); }
.flip .bc p { font-size: .86rem; line-height: 1.45; color: var(--ink); margin: 0; }
.flip .bc .ind { font-size: .8rem; color: var(--ink2); background: var(--bg); border-radius: 12px; padding: 8px 10px; margin-top: auto; }
.flip .ribbon { position: absolute; top: 12px; right: -34px; transform: rotate(35deg); background: var(--sol); color: var(--vinho); font-weight: 900; font-family: var(--fd); font-size: .72rem; padding: 4px 40px; z-index: 3; box-shadow: 0 4px 8px rgba(0, 0, 0, .2); }
.flip .turn { position: absolute; right: 10px; bottom: 10px; width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, .25); color: #fff; display: grid; place-items: center; }
.flip .turn .ico { width: 16px; height: 16px; }

/* ---------- mural / notícias ---------- */
.mural { columns: 3 260px; column-gap: 22px; }
.mural figure { break-inside: avoid; margin: 0 0 22px; border-radius: 22px; overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); cursor: zoom-in; position: relative; }
.mural figure img { width: 100%; height: auto; }
.mural figcaption { padding: 12px 16px 14px; font-weight: 800; color: var(--vinho); font-size: .95rem; display: flex; align-items: center; gap: 8px; }
.mural figcaption i { width: 10px; height: 10px; border-radius: 50%; background: var(--c, var(--sol)); flex: none; }
.empty { border: 3px dashed #EBCFA5; border-radius: 26px; padding: 34px; text-align: center; color: var(--ink2); background: rgba(255, 255, 255, .5); }
.empty h3 { color: var(--terracota); }

/* eventos */
.ev .card { overflow: hidden; height: 100%; display: flex; flex-direction: column; }
.ev .card .media { aspect-ratio: 16 / 10; overflow: hidden; cursor: zoom-in; }
.ev .card .media img { width: 100%; height: 100%; object-fit: cover; }
.ev .card .media.illus { cursor: default; background: linear-gradient(180deg, #FFE7B4, var(--bg)); }
.ev .card .body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.ev .card .body p { color: var(--ink2); }
.ev .card .body .btn { margin-top: auto; align-self: flex-start; font-size: .98rem; padding: 11px 20px; }

/* ---------- transparência ---------- */
.idcard { padding: 34px; display: grid; gap: 14px; }
.idcard dl { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 12px 22px; }
.idcard dt { font-family: var(--fd); font-weight: 800; color: var(--terracota); }
.idcard dd { margin: 0; font-weight: 700; }
@media (max-width: 560px) { .idcard dl { grid-template-columns: 1fr; gap: 2px; } .idcard dd { margin-bottom: 10px; } }
.certs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 860px) { .certs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .certs { grid-template-columns: minmax(0, 1fr); } }
.cert { display: flex; gap: 14px; align-items: center; background: #fff; border-radius: 20px; padding: 16px 18px; box-shadow: var(--shadow-sm); font-weight: 800; color: var(--vinho); line-height: 1.3; }
.cert .ico { color: var(--verde); width: 30px; height: 30px; }
.docs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 860px) { .docs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.doc { border: 3px dashed #EBCFA5; border-radius: 20px; padding: 18px; display: flex; gap: 14px; align-items: center; background: rgba(255, 255, 255, .6); }
.doc .ico { width: 34px; height: 34px; color: var(--azul); }
.doc b { display: block; color: var(--vinho); line-height: 1.25; }
.doc small { color: var(--ink2); font-weight: 700; }
.medals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
@media (max-width: 900px) { .medals { grid-template-columns: minmax(0, 1fr); } }
.medal { text-align: center; padding: 34px 26px 30px; }
.coin { width: 150px; height: 150px; margin: -10px auto 18px; position: relative; transform-style: preserve-3d; will-change: transform; }
.coin .face { position: absolute; inset: 0; border-radius: 50%; backface-visibility: hidden; display: grid; place-items: center; }
.coin .front { background: radial-gradient(circle at 35% 30%, #FFE29A, var(--sol) 45%, #D98400 100%); box-shadow: inset 0 0 0 8px rgba(255, 255, 255, .35), inset 0 -10px 18px rgba(114, 24, 31, .25); color: var(--vinho); }
.coin .front { transform: translateZ(5px); }
.coin .back { transform: rotateY(180deg) translateZ(5px); background: radial-gradient(circle at 35% 30%, #E5684F, var(--terracota) 50%, #8E2516); }
.coin .back img { width: 84%; }
.coin .front .ico { width: 64px; height: 64px; stroke-width: 1.6; }
.coin .edge { position: absolute; inset: 1px; border-radius: 50%; background: #C67A00; }
.coin .edge.e1 { transform: translateZ(-3px); } .coin .edge.e2 { transform: translateZ(0); } .coin .edge.e3 { transform: translateZ(3px); }
.medal .yr { display: inline-block; font-family: var(--fd); font-weight: 900; color: #fff; background: var(--azul); border-radius: 999px; padding: 4px 14px; margin-bottom: 10px; }

/* ---------- parceiros ---------- */
.bars { display: grid; gap: 20px; margin-top: 10px; }
.bar { display: grid; gap: 8px; }
.bar .lbl { display: flex; justify-content: space-between; gap: 12px; font-weight: 800; color: var(--vinho); }
.bar .trk { height: 30px; border-radius: 999px; background: #F6E3C4; overflow: hidden; box-shadow: inset 0 3px 6px rgba(114, 24, 31, .15); }
.bar .fill { height: 100%; border-radius: 999px; background: var(--c); width: 0; transition: width 1.6s cubic-bezier(.2, .8, .2, 1); box-shadow: inset 0 -6px 0 rgba(0, 0, 0, .12), inset 0 5px 0 rgba(255, 255, 255, .25); }
.logos { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 860px) { .logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.logos div { aspect-ratio: 3 / 2; border: 3px dashed #EBCFA5; border-radius: 20px; display: grid; place-items: center; text-align: center; padding: 12px; color: #B48A62; font-weight: 800; font-size: .9rem; background: rgba(255, 255, 255, .6); }

/* ---------- apoie ---------- */
.ways { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 980px) { .ways { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .ways { grid-template-columns: minmax(0, 1fr); } }
.way { background: #fff; border-radius: 20px; padding: 18px; box-shadow: var(--shadow-sm); display: flex; gap: 12px; align-items: center; font-weight: 800; color: var(--vinho); line-height: 1.3; }
.way .ico { width: 34px; height: 34px; padding: 6px; border-radius: 12px; background: var(--c); color: #fff; }
.support .card { padding: 32px 28px 28px; height: 100%; }
.support .card p { color: var(--ink2); }
.mats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.mats span { background: var(--bg); border-radius: 999px; padding: 6px 12px; font-weight: 800; color: var(--verde-esc); font-size: .9rem; }
.price { font-family: var(--fd); font-weight: 900; font-size: 2rem; color: var(--terracota); line-height: 1; margin: 4px 0 10px; }
.price small { font-size: 1rem; color: var(--ink2); }

/* ---------- contato ---------- */
.contact-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 34px; align-items: start; }
@media (max-width: 960px) { .contact-grid { grid-template-columns: minmax(0, 1fr); } }
.info { display: grid; gap: 18px; }
.info .card { padding: 22px 24px; display: flex; gap: 16px; align-items: flex-start; }
.info .card .badge-ico { width: 54px; height: 54px; border-radius: 16px; margin: 0; flex: none; }
.info .card .badge-ico .ico { width: 26px; height: 26px; }
.info h3 { margin-bottom: 4px; font-size: 1.2rem; }
.info p { margin: 0; color: var(--ink2); }
.info a { font-weight: 800; }
form.card { padding: clamp(24px, 4vw, 40px); }
.field { display: grid; gap: 6px; margin-bottom: 16px; }
.field label { font-weight: 800; color: var(--vinho); font-size: .95rem; }
.field input, .field select, .field textarea { font: inherit; padding: 13px 16px; border-radius: 16px; border: 2px solid #EED6B2; background: var(--bg); color: var(--ink); transition: border-color .2s, box-shadow .2s; width: 100%; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 4px rgba(73, 93, 168, .18); }
.field textarea { min-height: 130px; resize: vertical; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 560px) { .two { grid-template-columns: 1fr; } }
.consent { display: flex; gap: 12px; align-items: flex-start; font-size: .92rem; color: var(--ink2); margin: 6px 0 18px; }
.consent input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--terracota); flex: none; }
.privacy { font-size: .85rem; color: var(--ink2); background: var(--bg); border-radius: 14px; padding: 12px 14px; margin-bottom: 16px; }
.err { color: var(--terracota-esc); font-weight: 800; font-size: .9rem; min-height: 1.2em; }
.ready { display: none; margin-top: 18px; background: #E6F6F1; border-radius: 18px; padding: 18px; }
.ready.on { display: block; }
.ready p { margin: 0 0 12px; font-weight: 700; color: var(--verde-esc); }
.ready .btns { margin-top: 0; }

/* ---------- rodapé ---------- */
.foot { background: var(--vinho); color: #FFE9CC; position: relative; padding: 210px 0 30px; margin-top: 0; overflow: hidden; }
.foot .scene { position: absolute; left: 0; right: 0; top: 0; height: 200px; }
.foot .tri { position: absolute; left: 0; right: 0; top: 0; height: 26px; z-index: 2;
  background: linear-gradient(135deg, var(--bg) 25%, transparent 25%) -13px 0 / 26px 26px, linear-gradient(225deg, var(--bg) 25%, transparent 25%) -13px 0 / 26px 26px; transform: rotate(180deg); }
.foot-grid { display: grid; grid-template-columns: 1.2fr 1.6fr 1.1fr; gap: 40px; position: relative; z-index: 2; }
@media (max-width: 900px) { .foot-grid { grid-template-columns: 1fr; } }
.foot .logo-f { background: #FFF6E6; border-radius: 26px; padding: 18px 22px; display: inline-block; box-shadow: 0 16px 30px -16px rgba(0, 0, 0, .6); }
.foot .logo-f img { width: 230px; }
.foot .tag { font-family: var(--fd); font-weight: 800; font-size: 1.3rem; color: var(--sol); margin: 20px 0 6px; line-height: 1.2; }
.foot h4 { color: var(--sol); font-size: 1.15rem; margin-bottom: 14px; }
.foot ul { list-style: none; padding: 0; margin: 0; }
.foot-menu { columns: 2; column-gap: 24px; }
.foot-menu li { margin-bottom: 8px; break-inside: avoid; }
.foot a { color: #FFE9CC; text-decoration: none; font-weight: 700; }
.foot a:hover { color: var(--sol); }
.foot .c li { display: flex; gap: 10px; margin-bottom: 12px; line-height: 1.4; }
.foot .c .ico { color: var(--sol); margin-top: 2px; }
.foot .bottom { border-top: 1px solid rgba(255, 233, 204, .2); margin-top: 40px; padding-top: 20px; display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: space-between; font-size: .9rem; opacity: .85; position: relative; z-index: 2; }

/* ---------- flutuantes ---------- */
.fab { position: fixed; right: 20px; bottom: 20px; z-index: 55; display: flex; flex-direction: column; gap: 12px; align-items: flex-end; }
.fab a, .fab button { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; border: 0; cursor: pointer; color: #fff; text-decoration: none;
  box-shadow: inset 0 -6px 0 rgba(0, 0, 0, .18), inset 0 5px 0 rgba(255, 255, 255, .25), 0 14px 24px -10px rgba(0, 0, 0, .45); transition: transform .2s; }
.fab a:hover, .fab button:hover { transform: translateY(-4px) scale(1.05); }
.fab .wa { background: var(--verde); }
.fab .up { background: var(--sol); color: var(--vinho); opacity: 0; pointer-events: none; transform: translateY(20px); transition: opacity .3s, transform .3s; }
.fab .up.on { opacity: 1; pointer-events: auto; transform: none; }
.fab .ico { width: 28px; height: 28px; }

/* lightbox */
.lb { position: fixed; inset: 0; z-index: 90; background: rgba(58, 23, 18, .92); display: none; align-items: center; justify-content: center; padding: 30px; }
.lb.on { display: flex; animation: lbIn .35s ease both; }
@keyframes lbIn { from { opacity: 0; } to { opacity: 1; } }
.lb figure { margin: 0; max-width: min(1100px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 12px; animation: lbPop .5s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes lbPop { from { transform: perspective(900px) rotateY(-25deg) scale(.85); } to { transform: none; } }
.lb img { max-height: calc(100vh - 140px); width: auto; border-radius: 20px; border: 6px solid #fff; }
.lb figcaption { color: #FFE9CC; font-weight: 800; text-align: center; }
.lb button { position: absolute; border: 0; background: var(--sol); color: var(--vinho); width: 52px; height: 52px; border-radius: 50%; cursor: pointer; display: grid; place-items: center; box-shadow: 0 5px 0 var(--sol-esc); }
.lb .x { top: 18px; right: 18px; }
.lb .pv { left: 18px; top: 50%; margin-top: -26px; }
.lb .nx { right: 18px; top: 50%; margin-top: -26px; }
.lb button .ico { width: 26px; height: 26px; }

/* ---------- responsivo do herói ---------- */
@media (max-width: 1100px) {
  .hero { min-height: 0; max-height: none; padding-bottom: 300px; }
  .hero-in { padding-top: calc(var(--hdr) + 30px); display: flex; flex-direction: column; }
  .blocks { position: relative; right: auto; top: auto; height: 130px; gap: 12px; order: -1; justify-content: flex-start; margin-bottom: 8px; }
  .cube { --s: 62px; }
  .cube .f { border-radius: 12px; }
  .hero-scene { height: 330px; }
  .hero .sun { width: min(90vw, 560px); right: -22vw; top: -24vw; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  :root { --hdr: 74px; }
  .brand img { height: 50px; }
  .hdr.solid .brand img { height: 44px; }
  .phero { min-height: 520px; padding-top: calc(var(--hdr) + 36px); }
  .phero-scene { height: 230px; }
  .blocks { height: 110px; }
  .cube { --s: 54px; }
  .num { padding: 14px 16px; }
  .fab { right: 14px; bottom: 14px; }
  .fab a, .fab button { width: 52px; height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* ---------- ajustes finais ---------- */
[data-reveal][data-tilt] { transition: opacity .8s ease, transform 1s cubic-bezier(.2, .75, .2, 1); transition-delay: var(--dl, 0s); }
[data-reveal][data-tilt].done { transition: transform .25s ease, box-shadow .25s; transition-delay: 0s; }
.brand { background: #FFF6E6; padding: 5px 12px; border-radius: 20px; box-shadow: 0 10px 22px -14px rgba(114, 24, 31, .55); }
.brand img { filter: none; }
.burger { background: #fff; color: var(--terracota); box-shadow: 0 4px 0 #EBCFA5, 0 10px 18px -10px rgba(114, 24, 31, .5); }
@media (min-width: 1101px) {
  body.on-color .hdr:not(.solid) .nav .top, body.on-color .hdr:not(.solid) .nav .caret { color: #fff; }
  body.on-color .hdr:not(.solid) .nav .top:hover, body.on-color .hdr:not(.solid) .nav li.active > .row > .top { background: rgba(255, 255, 255, .18); color: #fff; }
  body.on-color .hdr:not(.solid) .nav .apoie .top { color: var(--vinho); }
}
.phero { padding-bottom: 250px; min-height: 0; }
@media (max-width: 640px) { .phero { padding-bottom: 205px; } }
.hint { font-weight: 800; color: var(--ink2); }

body.is-home .hdr:not(.solid) { background: linear-gradient(180deg, rgba(255, 246, 230, .9), rgba(255, 246, 230, 0)); }
.foot .scene svg { overflow: hidden; }
