:root{--ameixa:#3b1646;--ameixa2:#54205f;--vinho:#6b2a2a;--ouro:#b8913f;--ouro2:#e0c176;--champagne:#f3e6cc;--marfim:#fffaf0;--creme:#f8eed8;--txt:#4a3340;--lav:#efdff0;--serif:"Palatino Linotype","Book Antiqua",Palatino,Georgia,"Times New Roman",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;position:relative;font-family:var(--serif);color:var(--txt);line-height:1.65;font-size:1.0625rem;background:radial-gradient(ellipse at 20% 10%,rgba(255,255,255,.55),transparent 55%),linear-gradient(180deg,var(--champagne),var(--marfim) 40%,var(--champagne))}html,body{overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
/* topo */
.topo{position:sticky;top:0;z-index:30;background:linear-gradient(var(--ameixa2),var(--ameixa));border-bottom:2px solid var(--ouro);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.3rem clamp(.8rem,3vw,2.5rem)}
.marca img{height:76px;width:auto;border:0;background:none;padding:0;border-radius:0;filter:drop-shadow(0 1px 3px rgba(0,0,0,.35))}
.topo .marca img{height:60px}
.topo nav{display:flex;gap:clamp(.9rem,2.6vw,2.6rem);align-items:center}
.topo nav a{color:#f6e6bf;font-size:clamp(.95rem,1.4vw,1.2rem);padding:.5rem .2rem;white-space:nowrap;border-bottom:2px solid transparent;transition:.2s}
.topo nav a:hover,.topo nav a.ativo{color:#fff;border-bottom-color:var(--ouro2)}
.hero{background:var(--ameixa);line-height:0}.hero img{width:100%;height:auto}
/* secoes */
section{padding:clamp(2rem,5vw,3.5rem) clamp(1rem,4vw,3rem);max-width:1280px;margin:auto}
section.hero{max-width:none;padding:0}
h2{font-weight:700;color:var(--vinho);text-align:center;font-size:clamp(1.75rem,6vw,3.2rem);line-height:1.15;margin:0 0 .6rem;display:flex;align-items:center;justify-content:center;gap:.6em}
h2::before,h2::after{content:"";flex:0 1 clamp(40px,10vw,120px);height:14px;background:linear-gradient(90deg,transparent,var(--ouro)) center/100% 1px no-repeat}
h2::after{transform:scaleX(-1)}
.sub{text-align:center;margin:0 0 1rem;font-size:1.1rem}
.programa{max-width:980px;text-align:center;margin-top:-2.2rem;position:relative}
.programa p{margin:.7rem auto;font-size:clamp(1.05rem,2.6vw,1.2rem);max-width:840px}
.destaque{font-size:clamp(1.3rem,3.4vw,1.6rem)!important;color:var(--ameixa);font-weight:700}
.faixa{display:flex;align-items:center;justify-content:center;gap:clamp(.8rem,3vw,2rem);flex-wrap:wrap;margin:1.8rem auto 0;padding:.9rem 1.4rem;max-width:760px;border:1px solid #e3cf9e;border-radius:40px;background:rgba(255,255,255,.55);color:var(--ameixa);font-size:clamp(1rem,2.8vw,1.25rem)}
.faixa span{display:flex;align-items:center;gap:.6rem}.faixa i{width:1px;height:30px;background:var(--ouro)}
.faixa svg,.lupa,#go svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.faixa svg{width:26px;height:26px;color:var(--vinho)}
/* sessoes e carrossel */
.sessao{margin:2.5rem 0 3.5rem}
.sessao>h3{text-align:center;color:var(--ameixa);font-weight:700;font-size:clamp(1.5rem,5vw,2rem);margin:0 0 .3rem;letter-spacing:.04em}
.sessao>h3::before,.sessao>h3::after{content:" ✦ ";color:var(--ouro);font-size:1rem}
.car{position:relative}
.trilho{display:flex;align-items:center;gap:clamp(10px,2vw,22px);overflow-x:auto;scroll-snap-type:x mandatory;padding:1.8rem calc(50% - 37vw);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.trilho::-webkit-scrollbar{display:none}
.capa{flex:0 0 74vw;scroll-snap-align:center;border:3px solid var(--ouro);padding:0;background:#2a1233;border-radius:16px;overflow:hidden;opacity:.7;transform:scale(.86);transition:transform .35s,opacity .35s,box-shadow .35s;cursor:pointer;line-height:0}
.capa img{width:100%;aspect-ratio:16/9;object-fit:cover}
.capa.on{opacity:1;transform:scale(1);border-color:var(--ouro2);box-shadow:0 0 0 3px rgba(224,193,118,.45),0 12px 28px rgba(59,22,70,.4)}
.seta{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ouro);background:rgba(255,250,240,.95);color:var(--ameixa);font-size:1.7rem;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.seta.e{left:6px}.seta.d{right:6px}.seta:hover{background:var(--ameixa);color:#fff}
.pontos{display:flex;justify-content:center;gap:10px;margin:.2rem 0 1rem}
.pontos button{width:12px;height:12px;border-radius:50%;border:0;background:#d8c7a0;padding:0;cursor:pointer;position:relative}
.pontos button::after{content:"";position:absolute;inset:-9px}.pontos .on{background:var(--ameixa);transform:scale(1.2)}
/* detalhes */
.det{display:grid;gap:1.4rem;grid-template-columns:1fr;padding:1.2rem;border:1px solid var(--ouro);border-radius:18px;background:linear-gradient(var(--marfim),#fbf2df);box-shadow:0 4px 16px rgba(120,90,40,.12)}
.det .im img{width:100%;border-radius:14px;border:2px solid var(--ouro)}
.det h4{font-size:clamp(1.6rem,5vw,2.1rem);line-height:1.2;color:var(--ameixa);margin:.2rem 0 .6rem}
.sin{white-space:pre-line;margin:0 0 .8rem;font-size:1rem}
.lado{border-top:1px solid #e3cf9e;padding-top:1rem}
.lado .rot{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--vinho)}
.lado .nome{font-size:1.15rem;font-weight:700;color:var(--ameixa);margin-bottom:.6rem}
.cont{display:flex;align-items:center;gap:.6rem;background:#f5e7c8;border:1px solid #e3cf9e;border-radius:12px;padding:.6rem .9rem;margin:.6rem 0;font-size:1rem}.cont b{display:block}
.tag{display:inline-block;background:var(--vinho);color:#fff;padding:.1rem .8rem;border-radius:20px;font-size:.85rem}
.btn{width:100%;margin-top:.6rem;background:linear-gradient(var(--ameixa2),var(--ameixa));color:#fff;border:1px solid var(--ouro);border-radius:12px;padding:.85rem 1.2rem;font:inherit;font-size:1.05rem;cursor:pointer}
.btn:hover{background:var(--vinho)}.btn::after{content:" ⌄"}.btn[aria-expanded=true]::after{content:" ⌃"}
.elenco{display:none;grid-column:1/-1;border-top:1px solid #e3cf9e;padding-top:.8rem}.elenco.aberto{display:block}
.grupo h5{margin:1rem 0 .3rem;color:var(--vinho);font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--ouro);padding-bottom:.2rem}
.grupo small{display:block;color:#7a5c6a;font-style:italic}.grupo ul{margin:.3rem 0;padding-left:1.2rem;columns:1}.grupo li{break-inside:avoid;margin-bottom:.15rem}.grupo em{color:#7a5c6a}
/* busca */
.buscabox{display:grid;grid-template-columns:auto 1fr;gap:.8rem 1rem;align-items:center;padding:1.2rem;border-radius:20px;border:1px solid #d9b9dc;background:linear-gradient(100deg,#f1e0f2,#f8ecf3)}
.lupa{width:46px;height:46px;color:var(--ameixa);stroke-width:2}
.bt h2{display:block;text-align:left;font-size:clamp(1.5rem,5vw,2rem);margin:0;color:var(--ameixa)}.bt h2::before,.bt h2::after{display:none}.bt p{margin:.1rem 0 0;font-size:1rem;line-height:1.4}
.campo{grid-column:1/-1;display:flex}
#q{flex:1;min-width:0;padding:.95rem 1rem;font:inherit;font-size:1.05rem;border:1px solid #cfb2d3;border-right:0;border-radius:12px 0 0 12px;background:#fff;color:var(--txt)}
#go{width:60px;border:0;background:var(--ameixa);color:#fff;border-radius:0 12px 12px 0;cursor:pointer;display:grid;place-items:center}#go svg{width:26px;height:26px}
#resultados{margin-top:1rem}.res{background:var(--marfim);border:1px solid var(--ouro);border-radius:12px;padding:.8rem 1rem;margin-bottom:.8rem}
.res strong{display:block;color:var(--ameixa);font-size:1.1rem}.res button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--vinho);font:inherit;padding:.5rem 0;cursor:pointer;text-decoration:underline;min-height:44px}
/* ficha */
.moldura{border:1px solid var(--ouro);outline:1px solid var(--ouro);outline-offset:6px;background:rgba(255,250,240,.75);border-radius:6px;padding:1.6rem 1.2rem;width:calc(100% - 16px);margin:1.2rem auto}

.ficha h3{margin:1.2rem 0 .2rem;color:var(--vinho);font-size:1rem;text-transform:uppercase;letter-spacing:.12em;padding-top:.8rem;border-top:1px solid #e3cf9e}
.ficha div>h3:first-child{margin-top:0;border-top:0;padding-top:0}.ficha p{margin:0;font-size:1.1rem}
/* patrocinadores */
.grade{--n:2;display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:1rem}
.grade div{flex:0 0 calc((100% - (var(--n) - 1)*12px)/var(--n));background:none;border:0;aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;padding:6px}
.grade img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:6px}
/* rodape */
footer{position:relative;margin-top:2rem;background:linear-gradient(var(--ameixa2),var(--ameixa));color:#f6e6bf;text-align:center;padding:2.2rem 1rem 2rem;border-top:3px solid var(--ouro);overflow:visible}
footer>*{position:relative;z-index:1}footer .marca{display:inline-block}footer .marca img{height:96px;margin:auto}
footer span{display:block;margin-top:.8rem;font-size:1rem}.dev{margin:1.2rem 0 .5rem;font-size:.95rem;letter-spacing:.14em;text-transform:uppercase}.ipa{margin:auto;width:190px}
@media(max-width:560px){.topo{flex-wrap:wrap;justify-content:center;padding:.4rem .5rem}.topo .marca img{height:44px}.topo nav{width:100%;justify-content:space-between;gap:.2rem}.topo nav a{font-size:.9rem;padding:.55rem .3rem}html{scroll-padding-top:110px}.seta{width:44px;height:44px}}
@media(min-width:700px){.capa{flex-basis:56vw}.trilho{padding-left:calc(50% - 28vw);padding-right:calc(50% - 28vw)}.grade{--n:4}.det{grid-template-columns:minmax(240px,5fr) 7fr;padding:1.6rem}.grupo ul{columns:2}.buscabox{grid-template-columns:auto 1fr minmax(260px,420px)}.campo{grid-column:auto}}
@media(min-width:1000px){.capa{flex-basis:min(620px,40vw)}.trilho{padding-left:calc(50% - min(310px,20vw));padding-right:calc(50% - min(310px,20vw))}.grade{--n:5}.det{grid-template-columns:5fr 4fr 3fr;align-items:start}.det .lado{border-top:0;border-left:1px solid #e3cf9e;padding:0 0 0 1.2rem}.grupo ul{columns:3}}
@media(max-width:699px){.programa{margin-top:-1rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* flores decorativas independentes (camadas) */
.flores{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.f{position:absolute;display:block;background:url("../assets/decoracoes/floral-lateral.svg") no-repeat center/contain;width:clamp(90px,15vw,230px);aspect-ratio:240/760}
.f.d,.f-topo-d{transform:scaleX(-1)}
.f-topo-e,.f-topo-d{background-image:url("../assets/decoracoes/floral-canto.svg");width:clamp(110px,21vw,320px);aspect-ratio:420/520;top:66px;z-index:25}
.f-topo-e{left:-6.5vw}.f-topo-d{right:-6.5vw}
.f-l1{left:-6vw;top:620px;opacity:.95}.f-l2{right:-6vw;top:900px}
.f-l3{left:-7vw;top:1700px}.f-l4{right:-7vw;top:2100px}
.f-l5{left:-7vw;top:2800px}.f-l6{right:-7vw;top:3300px}
main{position:relative;z-index:1}footer{position:relative}
.topo{z-index:40}
.ff{position:absolute;bottom:0;display:block;pointer-events:none;background:url("../assets/decoracoes/floral-canto.svg") no-repeat center/contain;z-index:0}
.ff-a{left:0;bottom:0;width:clamp(150px,22vw,320px);aspect-ratio:420/520;transform:scaleY(-1) rotate(0)}
.ff-b{left:clamp(60px,12vw,190px);bottom:0;width:clamp(90px,13vw,190px);aspect-ratio:240/760;background-image:url("../assets/decoracoes/floral-lateral.svg");transform:rotate(80deg);opacity:.9}
.ff-c{right:0;bottom:0;width:clamp(150px,22vw,320px);aspect-ratio:420/520;transform:scale(-1,-1)}
.ff-d{right:clamp(60px,12vw,190px);bottom:0;width:clamp(90px,13vw,190px);aspect-ratio:240/760;background-image:url("../assets/decoracoes/floral-lateral.svg");transform:rotate(-80deg) scaleX(-1);opacity:.9}
footer>*:not(.ff){position:relative;z-index:2}
/* ficha tecnica */
.ficha{display:grid;grid-template-columns:1fr;gap:0;text-align:center;padding:1.2rem}
.ficha .col{display:flex;flex-direction:column;justify-content:space-around}
.cred{padding:1.1rem .6rem;border-top:1px solid #e3cf9e}
.col:first-child .cred:first-child{border-top:0}
.cred h3{margin:0 0 .35rem;border:0;padding:0;color:var(--vinho);font-size:.98rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em}
.cred h3::after{content:"";display:block;width:34px;height:1px;background:var(--ouro);margin:.4rem auto 0}
.cred p{margin:.12rem 0;font-size:1.12rem;color:var(--txt)}
@media(min-width:800px){.ficha{grid-template-columns:repeat(3,1fr);padding:1.6rem .6rem}.ficha .col{border-left:1px solid #e3cf9e}.ficha .col:first-child{border-left:0}.cred:first-child{border-top:0}}
@media(max-width:560px){.f-topo-e,.f-topo-d{width:30vw;top:106px}.f{width:70px}.ff-a,.ff-c{width:130px}.ff-b,.ff-d{display:none}}

/* rodape como na referencia */
footer{padding:1.6rem 1rem 1.6rem;border-top:0;background:linear-gradient(var(--ameixa2),var(--ameixa));box-shadow:inset 0 3px 0 var(--ouro),inset 0 8px 0 rgba(224,193,118,.18)}
.rod{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:clamp(.8rem,2.5vw,2.2rem);flex-wrap:nowrap;max-width:1100px;margin:auto}
.rod .div{width:1px;height:70px;background:linear-gradient(transparent,var(--ouro),transparent)}
.devby{display:flex;align-items:center;gap:1rem;flex-wrap:nowrap;justify-content:center}
.devby .dev{margin:0;font-size:1.1rem;letter-spacing:.02em;text-transform:none;color:#f6e6bf}
.devby .ipa{margin:0;width:150px}
.orn{flex:0 0 auto;width:clamp(60px,7vw,110px);height:auto}.orn.dir{transform:scaleX(-1)}
footer>span{display:none}
@media(max-width:700px){.rod .div,.orn{display:none}.rod{flex-direction:column;flex-wrap:wrap;gap:.8rem}footer .marca img{height:60px}.devby{flex-direction:column;flex-wrap:wrap;gap:.4rem}}

/* flores do rodape continuam pela pagina (sem corte no topo) */
footer{overflow:visible;clip-path:inset(-700px 0 0 0)}
.ff{z-index:0}
.ff-a,.ff-c{width:clamp(140px,16vw,250px);bottom:0}
.ff-b,.ff-d{bottom:0;width:clamp(80px,9vw,140px)}
.devby .ipa{width:105px}
@media(max-width:560px){.ff-a,.ff-c{width:96px;bottom:0}.ff-b,.ff-d{display:none}}

/* flores do rodape: sobem apenas pelas laterais */
.ff-a,.ff-c{background-image:url("../assets/decoracoes/floral-lateral.svg");aspect-ratio:240/760;width:clamp(110px,13vw,190px);bottom:0;transform:none}
.ff-a{left:0}.ff-c{right:0;transform:scaleX(-1)}
.ff-b,.ff-d{display:none}
@media(max-width:560px){.ff-a,.ff-c{width:64px}}

/* rodape: cacho de rosas colado na borda + ramo subindo pela lateral */
.ff-a,.ff-c{display:block;background:url("../assets/decoracoes/floral-canto.svg") no-repeat left bottom/auto 100%;width:clamp(120px,12vw,175px);aspect-ratio:auto;height:clamp(240px,24vw,340px);bottom:0;transform:scaleY(-1)}
.ff-a{left:0}.ff-c{right:0;transform:scale(-1,-1)}
.ff-b,.ff-d{display:block;background:url("../assets/decoracoes/floral-lateral.svg") no-repeat center bottom/100% auto;width:clamp(80px,8.5vw,125px);aspect-ratio:auto;height:clamp(300px,30vw,430px);bottom:clamp(220px,22vw,310px);opacity:1;transform:none}
.ff-b{left:0}.ff-d{right:0;transform:scaleX(-1)}
@media(max-width:560px){.ff-a,.ff-c{width:92px;height:190px}.ff-b,.ff-d{width:52px;height:170px;bottom:150px}}
.ff-a,.ff-c{-webkit-mask-image:linear-gradient(to right,#000 70%,transparent 100%);mask-image:linear-gradient(to right,#000 70%,transparent 100%)}
/* rodape: cachos de rosas nos cantos inferiores, subindo um pouco acima do rodape */
.ff-b,.ff-d{display:none}
.ff-a,.ff-c{display:block;-webkit-mask-image:none;mask-image:none;background:url("../assets/decoracoes/floral-canto.svg") no-repeat left bottom/100% 100%;width:clamp(170px,17vw,250px);height:clamp(210px,21vw,310px);aspect-ratio:auto;bottom:0}
.ff-a{left:0;transform:scaleY(-1)}.ff-c{right:0;transform:scale(-1,-1)}
@media(max-width:560px){.ff-a,.ff-c{width:118px;height:146px}}

/* flores: so no banner principal (base agrupada, passando um pouco para a pagina) e no rodape */
.f-l1,.f-l2,.f-l3,.f-l4,.f-l5,.f-l6{display:none}
.hero{position:relative;z-index:2}
.fh{position:absolute;bottom:calc(-1 * clamp(40px,6vw,95px));display:block;pointer-events:none;background:url("../assets/decoracoes/floral-canto.svg") no-repeat left bottom/100% 100%;width:clamp(120px,24vw,360px);height:clamp(150px,30vw,445px);z-index:3}
.fh-e{left:0;transform:scaleY(-1)}.fh-d{right:0;transform:scale(-1,-1)}
@media(max-width:560px){.fh{width:84px;height:104px;bottom:-26px}}

/* borda inferior do banner em arco, como na referencia */
.arco{position:absolute;left:0;bottom:-1px;width:100%;height:clamp(26px,6vw,88px);z-index:2;display:block;pointer-events:none}
.programa{margin-top:-1rem}
@media(max-width:699px){.programa{margin-top:0}}
