/* =============================================================================
   DONUT COM AMOR — estilo
   Cores tiradas do logotipo oficial (índigo #414684, rosa #FF66A3,
   rosa escuro #D14193, creme #FFF2DE). Letras "candy" imitam o DONUT do logo:
   rosa, contorno creme e sombra rosa-escura embaixo.
   ============================================================================= */

:root {
    --indigo: #414684;
    --indigo-950: #17183a;
    --indigo-900: #262a58;
    --indigo-800: #343a77;
    --indigo-600: #5c6095;
    --indigo-300: #aeb1dd;
    --indigo-100: #e4e5f5;
    --rosa: #ff66a3;
    --rosa-600: #d14193;
    --rosa-300: #ffa3c8;
    --rosa-100: #ffe6f0;
    --creme: #fff2de;
    --massa: #f9deb7;
    --lilas: #ebe5ff;
    --choco: #4a2a1a;
    --tinta: #23264d;

    --fundo: #414684;

    --f-titulo: "Fredoka", "Baloo 2", ui-rounded, system-ui, sans-serif;
    --f-texto: "Nunito", ui-rounded, system-ui, -apple-system, "Segoe UI", sans-serif;
    --f-script: "Sacramento", "Brush Script MT", cursive;

    --raio: 28px;
    --raio-folha: clamp(32px, 5vw, 64px);
    --lado: clamp(20px, 5vw, 72px);
    --max: 1240px;
    --sombra: 0 24px 60px -24px rgba(23, 24, 58, .55);
    --mola: cubic-bezier(.34, 1.56, .64, 1);
    --suave: cubic-bezier(.22, 1, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: auto; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
body {
    margin: 0;
    font-family: var(--f-texto);
    font-size: clamp(16px, 1.05vw + 10px, 18px);
    line-height: 1.6;
    color: var(--creme);
    background: var(--fundo);
    overflow-x: clip;
    -webkit-font-smoothing: antialiased;
}
img, video, svg, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--f-titulo); font-weight: 600; line-height: 1.02; letter-spacing: -.01em; margin: 0; }
p { margin: 0 0 1em; }
button { font: inherit; color: inherit; }
::selection { background: var(--rosa); color: #fff; }
:focus-visible { outline: 3px solid var(--rosa); outline-offset: 3px; border-radius: 8px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.centro { text-align: center; }

/* ---------- tipografia da marca ---------- */
.candy {
    font-style: normal;
    font-family: var(--f-titulo);
    font-weight: 700;
    color: var(--rosa);
    -webkit-text-stroke: .09em var(--creme);
    paint-order: stroke fill;
    text-shadow: 0 .07em 0 var(--rosa-600), 0 .12em .2em rgba(23, 24, 58, .35);
    letter-spacing: .01em;
    display: inline-block;
}
.script { font-family: var(--f-script); font-weight: 400; letter-spacing: 0; line-height: .8; }
.script-leve { font-family: var(--f-script); font-size: 1.6em; line-height: 1.1; }
.rotulo {
    font-family: var(--f-titulo); font-weight: 600; font-size: .82rem; letter-spacing: .14em;
    text-transform: uppercase; color: var(--rosa); margin-bottom: 1rem;
    display: inline-flex; align-items: center; gap: .6em;
}
.rotulo::before { content: ""; width: 1.6em; height: 2px; background: currentColor; border-radius: 2px; }

/* ---------- botões (doces, brilhantes) ---------- */
.btn {
    --bg: var(--rosa);
    display: inline-flex; align-items: center; justify-content: center; gap: .5em;
    padding: .95em 1.6em; border-radius: 999px; border: 3px solid var(--creme);
    background: var(--bg); color: #fff; text-decoration: none; cursor: pointer;
    font-family: var(--f-titulo); font-weight: 600; font-size: 1.02rem; letter-spacing: .01em; line-height: 1;
    position: relative; isolation: isolate; white-space: nowrap;
    box-shadow: inset 0 -5px 0 rgba(0, 0, 0, .14), 0 10px 24px -10px rgba(209, 65, 147, .8);
    transition: transform .35s var(--mola), box-shadow .3s, background .3s;
    will-change: transform;
}
.btn::after { /* brilho de bala no topo */
    content: ""; position: absolute; left: 14%; right: 14%; top: 5px; height: 30%;
    border-radius: 999px; background: linear-gradient(rgba(255, 255, 255, .5), rgba(255, 255, 255, 0)); z-index: -1;
}
.btn:hover { transform: translateY(-3px) scale(1.03); box-shadow: inset 0 -5px 0 rgba(0, 0, 0, .14), 0 16px 30px -10px rgba(209, 65, 147, .9); }
.btn:active { transform: translateY(1px) scale(.98); }
.btn-doce { text-shadow: 0 2px 0 var(--rosa-600); }
.btn-indigo { --bg: var(--indigo); box-shadow: inset 0 -5px 0 rgba(0, 0, 0, .2), 0 10px 24px -10px rgba(23, 24, 58, .8); }
.btn-contorno { background: transparent; color: var(--creme); box-shadow: none; }
.btn-contorno::after, .btn-contorno-claro::after { display: none; }
.btn-contorno-claro { background: rgba(255, 255, 255, .08); color: #fff; border-color: rgba(255, 242, 222, .7); box-shadow: none; backdrop-filter: blur(6px); }
.btn-grande { font-size: 1.15rem; padding: 1.05em 1.9em; }
.btn-pequeno { font-size: .9rem; padding: .7em 1.15em; border-width: 2px; }
.btn.is-desativado { opacity: .45; pointer-events: none; filter: saturate(.6); }
.btn-redondo { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: #25d366; color: #fff; border: 3px solid var(--creme); box-shadow: 0 10px 20px -8px rgba(0, 0, 0, .4); }
.link-sub { display: inline-block; margin-top: .8rem; font-weight: 700; text-decoration-thickness: 2px; text-underline-offset: 4px; }

/* ---------- camadas fixas ---------- */
.grao {
    position: fixed; inset: 0; z-index: 60; pointer-events: none; opacity: .06;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    animation: grao 1.2s steps(6) infinite;
}
@keyframes grao { 0% { background-position: 0 0; } 20% { background-position: -37px 23px; } 40% { background-position: 41px -53px; } 60% { background-position: -61px -17px; } 80% { background-position: 29px 47px; } 100% { background-position: 0 0; } }

.palco { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; opacity: 0; }
.palco-reserva { display: none; }
html.sem-3d .palco { display: none; }
html.sem-3d .palco-reserva { display: block; position: absolute; right: 8vw; top: 22vh; width: min(34vw, 380px); animation: flutua 5s ease-in-out infinite; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .35)); z-index: 2; }
@keyframes flutua { 50% { transform: translateY(-18px) rotate(-4deg); } }

.cortina {
    position: fixed; inset: 0; z-index: 10000; background: var(--rosa); display: grid; place-items: center;
    clip-path: circle(0% at 50% 50%); pointer-events: none;
}
.cortina img { width: 120px; transform: scale(.6); opacity: 0; }

.preloader {
    position: fixed; inset: 0; z-index: 9500; background: var(--indigo); display: none;
    flex-direction: column; align-items: center; justify-content: center; gap: 1.2rem;
}
html.com-preloader .preloader { display: flex; animation: some 0s 6s forwards; }  /* trava: some sozinho se o JS falhar */
@keyframes some { to { visibility: hidden; opacity: 0; } }
.preloader-coracao img { width: 130px; animation: bate 1s var(--mola) infinite; }
@keyframes bate { 0%, 100% { transform: scale(1); } 30% { transform: scale(1.14) rotate(-4deg); } 45% { transform: scale(.96); } }
.preloader-texto { font-family: var(--f-titulo); color: var(--rosa-300); letter-spacing: .08em; }

/* ---------- navegação ---------- */
.nav {
    position: fixed; z-index: 50; top: 14px; left: var(--lado); right: var(--lado);
    display: flex; align-items: center; gap: 1.4rem; padding: 10px 12px 10px 22px;
    border-radius: 999px; transition: background .4s, box-shadow .4s, transform .5s var(--suave), backdrop-filter .4s;
}
.nav.solida { background: rgba(38, 42, 88, .72); backdrop-filter: blur(16px) saturate(1.4); -webkit-backdrop-filter: blur(16px) saturate(1.4); box-shadow: 0 10px 40px -20px rgba(0, 0, 0, .6), inset 0 0 0 1px rgba(255, 242, 222, .12); }
.nav.escondida { transform: translateY(-140%); }
.nav-logo img { width: 150px; }
.nav-links { list-style: none; display: flex; gap: 1.6rem; margin: 0 0 0 auto; padding: 0; }
.nav-links a { text-decoration: none; font-family: var(--f-titulo); font-weight: 500; position: relative; padding: .3em 0; }
.nav-links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 3px; border-radius: 3px; background: var(--rosa); transform: scaleX(0); transform-origin: right; transition: transform .4s var(--suave); }
.nav-links a:hover::after, .nav-links a[aria-current]::after { transform: scaleX(1); transform-origin: left; }
.nav-status { font-size: .8rem; font-weight: 700; display: inline-flex; align-items: center; gap: .5em; padding: .45em .9em; border-radius: 999px; background: rgba(255, 255, 255, .1); white-space: nowrap; margin: 0; }
.nav-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #9aa0c8; }
.nav-status.aberto::before { background: #4ade80; box-shadow: 0 0 0 0 rgba(74, 222, 128, .7); animation: pulso 2s infinite; }
.nav-status.grande { font-size: 1rem; padding: .6em 1.1em; }
@keyframes pulso { 70% { box-shadow: 0 0 0 10px rgba(74, 222, 128, 0); } 100% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0); } }
.nav-cta { padding: .75em 1.3em; }
.nav-menu { display: none; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--rosa); cursor: pointer; position: relative; }
.nav-menu span { position: absolute; left: 14px; right: 14px; height: 3px; border-radius: 3px; background: #fff; transition: transform .4s var(--mola), top .3s; }
.nav-menu span:first-child { top: 18px; } .nav-menu span:last-child { top: 27px; }
.nav-menu[aria-expanded="true"] span:first-child { top: 22px; transform: rotate(45deg); }
.nav-menu[aria-expanded="true"] span:last-child { top: 22px; transform: rotate(-45deg); }
.menu-cheio {
    position: fixed; inset: 0; z-index: 45; background: var(--rosa); padding: 120px var(--lado) 40px;
    display: flex; flex-direction: column; justify-content: space-between;
    clip-path: circle(0% at calc(100% - 50px) 40px); transition: clip-path .7s var(--suave);
}
.menu-cheio.aberto { clip-path: circle(150% at calc(100% - 50px) 40px); }
.menu-cheio ul { list-style: none; margin: 0; padding: 0; }
.menu-cheio li a { font-family: var(--f-titulo); font-weight: 700; font-size: clamp(2.4rem, 11vw, 4rem); text-decoration: none; color: #fff; display: block; line-height: 1.15; text-shadow: 0 4px 0 var(--rosa-600); }
.menu-cheio-rodape { color: #fff; font-weight: 600; }
.menu-cheio-rodape p { margin: 0 0 .4rem; }

/* ---------- barra de pedido (celular) ---------- */
.barra-pedido { position: fixed; z-index: 40; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); display: none; gap: 10px; transform: translateY(160%); transition: transform .6s var(--mola); }
.barra-pedido .btn { flex: 1; }
.barra-pedido.visivel { transform: none; }

.progresso-donut { position: fixed; z-index: 40; right: 22px; bottom: 22px; width: 54px; height: 54px; border-radius: 50%; background: var(--indigo-900); box-shadow: var(--sombra); display: grid; place-items: center; opacity: 0; transform: scale(.6); transition: opacity .4s, transform .5s var(--mola); }
.progresso-donut.visivel { opacity: 1; transform: none; }
.progresso-donut svg { width: 44px; height: 44px; transform: rotate(-90deg); }
.progresso-donut circle { fill: none; stroke-width: 9; }
.pd-trilho { stroke: var(--massa); }
.pd-cheio { stroke: var(--rosa); stroke-linecap: round; stroke-dasharray: 100.53; stroke-dashoffset: 100.53; }

/* ---------- estrutura ---------- */
/* main sem z-index de propósito: o palco 3D (z 1), as seções (z 3) e o
   preloader (z 9500) precisam empilhar no mesmo contexto que o menu (z 50). */
main { position: relative; overflow-x: clip; }  /* nada vaza para os lados (no celular isso afastava o zoom) */
.folha {
    position: relative; z-index: 3;
    border-radius: var(--raio-folha) var(--raio-folha) 0 0;
    margin-top: calc(var(--raio-folha) * -1);
    padding: clamp(90px, 12vw, 160px) var(--lado);
    box-shadow: 0 -30px 60px -30px rgba(23, 24, 58, .5);
}
.folha-creme { background: var(--creme); color: var(--tinta); }
.folha-rosa { background: var(--rosa); color: #fff; }
.folha-rosa-claro { background: var(--rosa-100); color: var(--tinta); }
.folha-lilas { background: var(--lilas); color: var(--tinta); }
.folha-noite { background: var(--indigo-900); color: var(--creme); }
.folha-creme .candy, .folha-lilas .candy, .folha-rosa-claro .candy { text-shadow: 0 .07em 0 var(--rosa-600); }
.secao-topo { max-width: 820px; margin: 0 auto clamp(40px, 6vw, 80px); text-align: center; }
.secao-topo h2 { font-size: clamp(2.4rem, 6vw, 5.2rem); margin-bottom: .35em; }
.secao-topo > p:last-child { font-size: 1.12em; opacity: .85; margin: 0 auto; max-width: 620px; }
.folha-creme .rotulo, .folha-lilas .rotulo, .folha-rosa-claro .rotulo { color: var(--rosa-600); }
.folha-rosa .rotulo { color: var(--indigo); }

/* ---------- HERO ---------- */
.hero {
    position: relative; min-height: 100svh; padding: 130px var(--lado) 40px;
    display: grid; grid-template-rows: 1fr auto; align-items: center;
    background:
        radial-gradient(60vw 60vw at 78% 40%, rgba(255, 102, 163, .38), transparent 60%),
        radial-gradient(50vw 50vw at 10% 90%, rgba(154, 160, 255, .25), transparent 60%);
}
.hero::before { /* coraçõezinhos da embalagem */
    content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72'%3E%3Cpath d='M18 26c-3-5-11-3-10 3 1 5 10 10 10 10s9-5 10-10c1-6-7-8-10-3z' fill='%234e5391'/%3E%3Cpath d='M54 62c-3-5-11-3-10 3 1 5 10 10 10 10s9-5 10-10c1-6-7-8-10-3z' fill='%234e5391'/%3E%3C/svg%3E");
    -webkit-mask-image: radial-gradient(ellipse at 30% 40%, #000 20%, transparent 75%); mask-image: radial-gradient(ellipse at 30% 40%, #000 20%, transparent 75%);
}
.hero-conteudo { position: relative; z-index: 3; max-width: 720px; }
.selo { display: inline-flex; align-items: center; gap: .6em; padding: .5em 1em; border-radius: 999px; background: rgba(255, 255, 255, .1); backdrop-filter: blur(8px); font-weight: 700; font-size: .92rem; border: 1px solid rgba(255, 242, 222, .2); }
.pulso { width: 9px; height: 9px; border-radius: 50%; background: var(--rosa); box-shadow: 0 0 0 0 rgba(255, 102, 163, .8); animation: pulsoRosa 1.8s infinite; }
@keyframes pulsoRosa { 70% { box-shadow: 0 0 0 12px rgba(255, 102, 163, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 102, 163, 0); } }
.hero-titulo { margin: 1.4rem 0 1.2rem; }
.hero-kicker { display: block; font-family: var(--f-texto); font-weight: 800; font-size: clamp(.95rem, 1.2vw, 1.1rem); color: var(--rosa-300); letter-spacing: .02em; margin-bottom: .8rem; }
.hero-slogan { display: block; font-size: clamp(3rem, 7.4vw, 7rem); font-weight: 600; line-height: .98; text-wrap: balance; }
.hero-slogan .candy { font-size: 1.08em; }
.hero-slogan .script { font-size: 1.35em; color: var(--rosa-300); display: inline-block; transform: translateY(.08em); }
.hero-sub { font-size: clamp(1.05rem, 1.3vw, 1.25rem); max-width: 540px; color: var(--indigo-100); }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin: 1.8rem 0 1.6rem; }
.hero-ctas.centro { justify-content: center; }
.hero-google { display: inline-flex; align-items: center; gap: .7em; text-decoration: none; font-size: .95rem; color: var(--indigo-100); }
.hero-google b { color: #fff; }
.estrelas {
    --nota: 5; font-size: 1.1em; letter-spacing: 2px; line-height: 1;
    background: linear-gradient(90deg, #ffc84d calc(var(--nota) / 5 * 100%), rgba(255, 255, 255, .25) 0);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero-fatos {
    position: relative; z-index: 3; list-style: none; margin: 30px 0 0; padding: 0;
    display: grid; grid-template-columns: repeat(4, 1fr);
    border-radius: 22px; overflow: hidden; background: rgba(23, 24, 58, .35);
    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255, 242, 222, .14);
}
.hero-fatos li { padding: 16px 20px; display: flex; flex-direction: column; gap: 2px; border-left: 1px dashed rgba(255, 242, 222, .2); }
.hero-fatos li:first-child { border-left: 0; }
.hero-fatos strong { font-family: var(--f-titulo); font-weight: 600; font-size: 1.05rem; }
.hero-fatos span { font-size: .84rem; color: var(--indigo-300); }
.hero-rolar { position: absolute; left: 50%; bottom: 150px; transform: translateX(-50%); display: none; }
.hero-rolar i { display: block; width: 26px; height: 42px; border: 3px solid var(--creme); border-radius: 20px; margin: 8px auto 0; position: relative; }
.hero-rolar i::after { content: ""; position: absolute; left: 50%; top: 7px; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; background: var(--rosa); animation: rolar 1.6s infinite; }
@keyframes rolar { 60% { transform: translateY(14px); opacity: 0; } 100% { opacity: 0; } }

/* ---------- MANIFESTO ---------- */
.manifesto { position: relative; z-index: 3; min-height: 120vh; padding: 20vh var(--lado); display: flex; flex-direction: column; justify-content: center; max-width: min(1100px, 64vw); }
@media (max-width: 860px) { .manifesto { max-width: none; padding-top: 48vh; } }
.manifesto-titulo { font-size: clamp(2.8rem, 8vw, 7.5rem); margin-bottom: .5em; }
.manifesto-texto { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.5rem, 3vw, 2.6rem); line-height: 1.25; max-width: 980px; }
.manifesto-texto .palavra { opacity: .18; transition: none; }
html:not(.js) .manifesto-texto .palavra { opacity: 1; }

/* ---------- SABORES ---------- */
.sabores { position: relative; z-index: 3; }
.sabor { position: relative; min-height: 130vh; display: flex; align-items: center; padding: 10vh var(--lado); overflow-x: clip; }
.sabor.lado-dir { justify-content: flex-end; }
.sabor-gigante {
    position: absolute; top: 50%; left: 0; transform: translateY(-50%); white-space: nowrap; pointer-events: none;
    font-family: var(--f-titulo); font-weight: 700; font-size: clamp(8rem, 24vw, 26rem); line-height: 1;
    color: transparent; -webkit-text-stroke: 2px rgba(255, 242, 222, .12); z-index: -1;
}
.sabor-card {
    position: relative; width: min(460px, 100%); padding: 34px 32px 28px; border-radius: 34px;
    background: rgba(23, 24, 58, .42); backdrop-filter: blur(18px) saturate(1.3); -webkit-backdrop-filter: blur(18px) saturate(1.3);
    border: 1px solid rgba(255, 242, 222, .16); box-shadow: var(--sombra);
}
.sabor-num { font-family: var(--f-titulo); font-size: .9rem; color: var(--indigo-300); letter-spacing: .1em; margin-bottom: .6rem; }
.sabor-num span { color: var(--rosa); font-weight: 600; }
.sabor-num b { color: #ffd23f; font-weight: 600; }
.sabor-nome { font-size: clamp(2.8rem, 5vw, 4.4rem); font-weight: 700; color: #fff; }
.sabor-frase { color: var(--rosa-300); margin: .2em 0 .4em; }
.sabor-desc { color: var(--indigo-100); }
.sabor-rodape { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 1.2rem; }
.preco { font-family: var(--f-titulo); font-weight: 700; font-size: 1.7rem; color: #fff; }
.sabor-foto { position: absolute; right: 26px; top: -78px; width: 128px; margin: 0; transform: rotate(8deg); }
.sabor.lado-dir .sabor-foto { transform: rotate(-8deg); }
.sabor-foto img { width: 128px; height: 128px; object-fit: cover; border-radius: 22px; border: 5px solid var(--creme); box-shadow: var(--sombra); }
.sabor-foto figcaption { position: absolute; bottom: -12px; left: 50%; transform: translateX(-50%); font-size: .7rem; font-weight: 800; background: var(--rosa); color: #fff; padding: .15em .7em; border-radius: 999px; white-space: nowrap; }
.sabores-hud {
    position: fixed; z-index: 30; left: 50%; bottom: 22px; transform: translate(-50%, 160%);
    display: flex; gap: 4px; padding: 6px; border-radius: 999px; background: rgba(23, 24, 58, .6);
    backdrop-filter: blur(12px); border: 1px solid rgba(255, 242, 222, .14);
    opacity: 0; visibility: hidden; transition: transform .6s var(--mola), opacity .3s, visibility .3s;
}
.sabores-hud.visivel { transform: translate(-50%, 0); opacity: 1; visibility: visible; }
.sabores-hud a { white-space: nowrap; text-decoration: none; font-size: .82rem; font-weight: 800; padding: .5em .9em; border-radius: 999px; color: var(--indigo-300); transition: background .3s, color .3s; }
.sabores-hud a.ativo { background: var(--rosa); color: #fff; }

/* ---------- CINEMA ---------- */
.cinema { position: relative; z-index: 4; height: 420vh; background: #0f1026; margin-top: 10vh; }
.cinema-palco { position: sticky; top: 0; height: 100vh; overflow: hidden; display: grid; place-items: center; }
.cinema-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.cinema-poster { position: absolute; height: 100%; width: auto; object-fit: cover; opacity: 0; }
html:not(.js) .cinema-poster, html.sem-seq .cinema-poster { opacity: 1; }
.cinema-faixa { position: absolute; left: 0; right: 0; height: 12vh; background: #07071a; z-index: 2; }
.cinema-faixa-topo { top: 0; } .cinema-faixa-base { bottom: 0; }
.cinema-legendas { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.cinema-legendas p {
    position: absolute; left: 50%; bottom: 17vh; transform: translateX(-50%); margin: 0; white-space: nowrap;
    font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.4rem, 3.2vw, 3rem); color: #fff;
    text-shadow: 0 4px 30px rgba(0, 0, 0, .6); opacity: 0;
}
.cinema-legendas p.script { font-size: clamp(3.4rem, 9vw, 8rem); color: var(--rosa); bottom: 38vh; }
.cinema-rec { position: absolute; z-index: 3; top: calc(12vh + 18px); left: var(--lado); margin: 0; font-size: .8rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .75); display: flex; align-items: center; gap: .6em; }
.cinema-rec i { width: 10px; height: 10px; border-radius: 50%; background: #ff3b5c; animation: pisca 1s steps(2) infinite; }
@keyframes pisca { 50% { opacity: 0; } }

/* ---------- QUERIDINHOS ---------- */
.queridinhos { padding-left: 0; padding-right: 0; overflow: hidden; }
.queridinhos .secao-topo { padding: 0 var(--lado); }
.trilho-h { overflow: hidden; }
.trilho-h-conteudo { display: flex; gap: 26px; padding: 20px var(--lado) 40px; width: max-content; }
.card-produto {
    width: 340px; flex: none; background: #fff; border-radius: 30px; padding: 14px 14px 22px; color: var(--tinta);
    box-shadow: 0 30px 50px -30px rgba(65, 70, 132, .45); transition: transform .5s var(--mola), box-shadow .4s; text-decoration: none;
    transform-style: preserve-3d;
}
.card-produto:hover { box-shadow: 0 40px 70px -30px rgba(65, 70, 132, .6); }
.card-produto-foto { position: relative; border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--rosa-100); }
.card-produto-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--suave); }
.card-produto:hover .card-produto-foto img { transform: scale(1.08); }
.etiqueta { position: absolute; top: 12px; left: 12px; background: var(--indigo); color: #fff; font-size: .78rem; font-weight: 800; padding: .3em .8em; border-radius: 999px; text-decoration: line-through; }
.card-produto h3 { font-size: 1.6rem; margin: 18px 8px 6px; }
.card-produto > p { margin: 0 8px; font-size: .95rem; color: #5a5d86; min-height: 4.8em; }
.card-produto .preco { color: var(--indigo); font-size: 1.5rem; }
.card-produto-preco { display: flex; align-items: center; justify-content: space-between; margin: 14px 8px 0 !important; min-height: 0 !important; }
.card-ver-tudo { display: flex; flex-direction: column; justify-content: space-between; background: var(--indigo); color: #fff; padding: 34px; font-family: var(--f-titulo); font-size: 2rem; font-weight: 600; line-height: 1.1; }
.card-ver-tudo i { font-style: normal; font-size: 3.4rem; align-self: flex-end; transition: transform .5s var(--mola); }
.card-ver-tudo:hover i { transform: translateX(10px) rotate(-12deg); }

/* ---------- mini donut em CSS ---------- */
.mini {
    --cob: #ff66a3; --g1: #fff; --g2: #ffd23f; --g3: #3ec1f3;
    width: 46px; height: 46px; border-radius: 50%; flex: none; position: relative;
    background:
        radial-gradient(circle at 50% 50%, transparent 0 19%, rgba(0, 0, 0, .18) 20% 23%, transparent 24%),
        radial-gradient(circle at 50% 50%, transparent 0 21%, var(--cob) 22% 63%, #d99a55 64% 71%, #c07d3c 72% 72.5%, transparent 73%);
    box-shadow: inset 0 -3px 6px rgba(0, 0, 0, .15);
}
.mini::after { /* granulado */
    content: ""; position: absolute; inset: 0; border-radius: 50%;
    background:
        radial-gradient(3px 1.6px at 30% 26%, var(--g1) 98%, transparent), radial-gradient(1.6px 3px at 70% 30%, var(--g2) 98%, transparent),
        radial-gradient(3px 1.6px at 76% 62%, var(--g3) 98%, transparent), radial-gradient(1.6px 3px at 30% 70%, var(--g1) 98%, transparent),
        radial-gradient(3px 1.6px at 52% 82%, var(--g2) 98%, transparent), radial-gradient(1.6px 3px at 18% 48%, var(--g3) 98%, transparent),
        radial-gradient(3px 1.6px at 84% 44%, var(--g1) 98%, transparent), radial-gradient(1.6px 3px at 48% 15%, var(--g3) 98%, transparent);
}
.mini-glaze::after, .mini-cacau::after { background: none; }
.mini-glaze { filter: saturate(.9) brightness(1.05); }
.mini-pedacos::after { filter: blur(.3px); transform: scale(1.1); }

/* ---------- COMBO ---------- */
.combo { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(30px, 6vw, 90px); align-items: center; }
.combo h2 { font-size: clamp(2.6rem, 6vw, 5.4rem); color: #fff; text-shadow: 0 5px 0 var(--rosa-600); }
.num-gigante { font-size: 1.5em; color: var(--indigo); text-shadow: 0 6px 0 rgba(0, 0, 0, .15); display: inline-block; }
.combo-preco { font-family: var(--f-titulo); font-size: 2rem; margin: .4em 0; }
.combo-preco s { opacity: .6; font-size: .7em; }
.combo-preco strong { font-weight: 700; font-size: 1.4em; color: var(--indigo); }
.combo-opcoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.4rem; }
.combo-opcao {
    display: inline-flex; align-items: center; gap: .6em; padding: 8px 18px 8px 8px; border-radius: 999px; cursor: pointer;
    background: #fff; color: var(--tinta); border: 3px solid var(--creme); font-family: var(--f-titulo); font-weight: 600; font-size: 1.02rem;
    box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .08), 0 10px 20px -12px rgba(0, 0, 0, .4); transition: transform .35s var(--mola);
}
.combo-opcao:hover { transform: translateY(-3px) rotate(-2deg); }
.combo-opcao:active { transform: scale(.94); }
.combo-caixa-area { text-align: center; }
.combo-caixa {
    position: relative; margin: 0 auto 1.4rem; width: min(440px, 100%); aspect-ratio: 1; padding: 22px;
    background: #fff; border-radius: 26px; box-shadow: 0 40px 60px -30px rgba(90, 20, 60, .6), inset 0 0 0 10px #ffd9e8;
    perspective: 900px;
}
.combo-slots { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; height: 100%; }
.combo-slot { border: 3px dashed #ffc2da; border-radius: 20px; background: #fff7fa; cursor: pointer; display: grid; place-items: center; position: relative; }
.combo-slot .mini { width: 78%; height: auto; aspect-ratio: 1; }
.combo-slot .mini::after { transform: scale(1); }
.combo-slot.cheio { border-style: solid; border-color: #ffe0ec; }
.combo-tampa {
    position: absolute; inset: 0; border-radius: 26px; background: var(--indigo); display: grid; place-items: center;
    transform-origin: top center; transform: rotateX(-100deg); opacity: 0; backface-visibility: hidden;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M16 20c-3-5-11-3-10 3 1 5 10 10 10 10s9-5 10-10c1-6-7-8-10-3z' fill='%234e5391'/%3E%3C/svg%3E");
}
.combo-tampa img { width: 70%; }
.combo-status { font-family: var(--f-titulo); font-size: 1.2rem; margin-bottom: 1rem; }

/* ---------- CANECA ---------- */
.caneca-grade { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 80px); align-items: start; max-width: var(--max); margin: 0 auto; }
.caneca-visual { position: sticky; top: 110px; }
.caneca-svg { width: 100%; max-width: 480px; margin: 0 auto; overflow: visible; }
.caneca-sombra { fill: rgba(65, 70, 132, .18); }
.caneca-alca { fill: none; stroke: #fffaf3; stroke-width: 34; stroke-linecap: round; filter: drop-shadow(0 6px 0 rgba(65, 70, 132, .12)); }
.caneca-corpo { fill: #fffaf3; stroke: #eadfcf; stroke-width: 3; }
.caneca-janela { stroke: rgba(65, 70, 132, .25); stroke-width: 3; stroke-dasharray: 8 8; }
.caneca-boca { fill: #fffaf3; stroke: #eadfcf; stroke-width: 3; }
.caneca-topo { fill: #f3ead9; transition: fill .5s; }
.caneca-escrita { font-family: var(--f-titulo); font-weight: 700; font-size: 26px; fill: #e2b646; paint-order: stroke; stroke: #a8791c; stroke-width: 1px; letter-spacing: 1px; }
.caneca-vela { opacity: 0; }
.caneca-vela .chama { transform-origin: 266px 42px; animation: chama .5s ease-in-out infinite alternate; filter: drop-shadow(0 0 8px #ffb02e); }
@keyframes chama { to { transform: scale(.9, 1.1) rotate(3deg); } }
.caneca-luzes circle { filter: drop-shadow(0 0 5px currentColor); animation: brilha 1.4s ease-in-out infinite alternate; }
@keyframes brilha { from { opacity: .35; } }
.caneca-total { display: flex; flex-direction: column; align-items: center; margin-top: 10px; }
.caneca-total span { font-weight: 700; opacity: .7; }
.caneca-total strong { font-family: var(--f-titulo); font-size: clamp(2.4rem, 4vw, 3.4rem); color: var(--indigo); line-height: 1.1; }
.caneca-total small { opacity: .6; }
.caneca-form { display: flex; flex-direction: column; gap: 18px; }
.caneca-grupo { border: 0; margin: 0; padding: 18px 20px 20px; background: #fff; border-radius: 24px; box-shadow: 0 20px 40px -30px rgba(65, 70, 132, .5); }
.caneca-grupo legend { float: left; width: 100%; font-family: var(--f-titulo); font-weight: 600; font-size: 1.15rem; margin-bottom: 12px; display: flex; justify-content: space-between; gap: 10px; }
.caneca-grupo legend small { font-family: var(--f-texto); font-weight: 700; font-size: .8rem; color: var(--rosa-600); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; clear: both; }
.chip { position: relative; }
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip span {
    display: inline-flex; align-items: center; gap: .45em; padding: .55em 1em; border-radius: 999px; cursor: pointer;
    background: var(--lilas); font-weight: 700; font-size: .92rem; border: 2px solid transparent; transition: all .3s var(--mola);
}
.chip span i { width: 14px; height: 14px; border-radius: 50%; background: var(--c, #ccc); box-shadow: inset 0 0 0 2px rgba(0, 0, 0, .1); }
.chip span small { font-weight: 800; color: var(--rosa-600); }
.chip input:checked + span { background: var(--rosa); color: #fff; border-color: var(--creme); transform: scale(1.04); box-shadow: 0 8px 18px -8px rgba(209, 65, 147, .8); }
.chip input:checked + span small { color: #fff; }
.chip input:focus-visible + span { outline: 3px solid var(--indigo); outline-offset: 2px; }
.campo { width: 100%; padding: .9em 1.1em; border-radius: 16px; border: 2px solid #d9d4f5; font: inherit; font-weight: 700; color: var(--tinta); background: #fff; clear: both; }
.campo:focus { outline: none; border-color: var(--rosa); box-shadow: 0 0 0 4px rgba(255, 102, 163, .2); }
.caneca-aviso { font-size: .9rem; opacity: .75; margin: 0; }
.caneca-fotos { display: flex; justify-content: center; gap: 18px; margin-top: 60px; flex-wrap: wrap; }
.caneca-fotos img { width: 240px; aspect-ratio: 1; object-fit: cover; border-radius: 24px; border: 6px solid #fff; box-shadow: var(--sombra); }
.caneca-fotos img:nth-child(1) { transform: rotate(-5deg); } .caneca-fotos img:nth-child(3) { transform: rotate(4deg); }

/* ---------- HISTÓRIA ---------- */
.historia .secao-topo h2 .script { color: var(--rosa); font-size: 1.3em; display: inline-block; }
.linha-tempo-area { position: relative; max-width: var(--max); margin: 0 auto; }
.linha-tempo-traco { position: absolute; top: 12px; left: 0; width: 100%; height: 40px; overflow: visible; }
.linha-tempo-traco path { fill: none; stroke: var(--rosa); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 8 12; }
.linha-tempo { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 26px; position: relative; }
.marco { padding-top: 56px; position: relative; }
.marco::before { content: ""; position: absolute; top: 20px; left: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--rosa); border: 5px solid var(--creme); box-shadow: 0 0 0 6px rgba(255, 102, 163, .25); }
.marco-ano { font-family: var(--f-titulo); font-weight: 700; font-size: 2rem; color: var(--rosa); }
.marco h3 { font-size: 1.3rem; margin: .3em 0 .5em; }
.marco p { font-size: .95rem; color: var(--indigo-300); }
.numeros { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; max-width: var(--max); margin: 80px auto 60px; }
.numero { padding: 28px; border-radius: 28px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 242, 222, .12); }
.numero-valor { font-family: var(--f-titulo); font-weight: 700; font-size: clamp(2.6rem, 5vw, 4.2rem); color: #fff; margin: 0; line-height: 1; }
.numero-rotulo { margin: .5em 0 0; color: var(--indigo-300); font-size: .95rem; }

/* ---------- REELS ---------- */
.reels-grade { display: flex; justify-content: center; gap: clamp(14px, 3vw, 40px); max-width: var(--max); margin: 0 auto; }
.reel { margin: 0; width: min(300px, 30vw); flex: none; }
.reel:nth-child(2) { transform: translateY(60px); }
.reel video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 36px; border: 8px solid var(--indigo-900); background: var(--indigo-900); box-shadow: 0 40px 70px -30px rgba(23, 24, 58, .7); }
.reel figcaption { text-align: center; margin-top: 14px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.1rem; }
.reels-cta { margin-top: 110px; font-weight: 600; }
.reels-cta .btn { margin-top: 1rem; }

/* ---------- AVALIAÇÕES ---------- */
.amor { padding-left: 0; padding-right: 0; overflow: hidden; }
.amor-topo { display: flex; align-items: center; justify-content: center; gap: clamp(20px, 4vw, 50px); padding: 0 var(--lado); margin-bottom: 60px; flex-wrap: wrap; }
.nota-grande { font-family: var(--f-titulo); font-weight: 700; font-size: clamp(7rem, 16vw, 13rem); line-height: .8; margin: 0; color: var(--rosa); -webkit-text-stroke: .05em #fff; paint-order: stroke fill; text-shadow: 0 .06em 0 var(--rosa-600); }
.amor-topo .estrelas { font-size: 2rem; background: linear-gradient(90deg, #ffb72e calc(var(--nota) / 5 * 100%), rgba(65, 70, 132, .2) 0); -webkit-background-clip: text; background-clip: text; }
.amor-topo h2 { font-size: clamp(2.2rem, 5vw, 4rem); margin: .2em 0; }
.amor-topo h2 .script { color: var(--rosa-600); font-size: 1.3em; }
.marquee { overflow: hidden; padding: 14px 0; }
.marquee-trilho { display: flex; gap: 22px; width: max-content; will-change: transform; }
.depoimento { margin: 0; width: 380px; flex: none; padding: 26px 28px; border-radius: 28px; background: #fff; box-shadow: 0 20px 40px -30px rgba(209, 65, 147, .5); }
.depoimento p { font-size: 1.05rem; font-weight: 600; margin-bottom: 1rem; }
.depoimento footer { display: flex; align-items: center; gap: .6em; font-size: .9rem; color: #6a6d94; }
.depoimento .estrelas { font-size: .95rem; background: linear-gradient(90deg, #ffb72e 100%, transparent 0); -webkit-background-clip: text; background-clip: text; }
.depoimento cite { font-style: normal; font-weight: 800; color: var(--tinta); }

/* ---------- DELIVERY ---------- */
.entrega { overflow: hidden; color: #fff; background: var(--indigo-800); }
.entrega-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.entrega::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(100deg, rgba(38, 42, 88, .94) 30%, rgba(65, 70, 132, .72) 60%, rgba(209, 65, 147, .45)); }
.entrega-conteudo { position: relative; z-index: 1; max-width: 760px; }
.entrega h2 { font-size: clamp(2.6rem, 6vw, 5.4rem); margin-bottom: .6em; }
.busca-rotulo { display: block; font-family: var(--f-titulo); font-weight: 600; font-size: 1.3rem; margin-bottom: .5rem; }
.busca-bairro .campo { font-size: 1.1rem; max-width: 520px; border-color: transparent; }
.bairro-resultado { min-height: 3.2em; margin: 14px 0; font-size: 1.1rem; font-weight: 700; }
.bairro-resultado b { font-family: var(--f-titulo); color: var(--rosa-300); font-size: 1.3em; }
.bairros-chips { list-style: none; margin: 0 0 30px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.bairros-chips button { border: 1px solid rgba(255, 242, 222, .3); background: rgba(255, 255, 255, .08); border-radius: 999px; padding: .45em .9em; font-weight: 700; font-size: .86rem; cursor: pointer; transition: background .3s, border-color .3s; }
.bairros-chips button:hover, .bairros-chips button.ativo { background: var(--rosa); border-color: var(--creme); transform: translateY(-2px); }
.entrega-infos { list-style: none; margin: 0 0 30px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.entrega-infos li { padding: 16px; border-radius: 20px; background: rgba(255, 255, 255, .1); backdrop-filter: blur(8px); display: flex; flex-direction: column; }
.entrega-infos strong { font-family: var(--f-titulo); font-weight: 600; font-size: 1.1rem; }
.entrega-infos span { font-size: .85rem; opacity: .8; }
.entrega-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.nota-rodape { font-size: .82rem; opacity: .7; margin-top: 18px; }

/* ---------- FAQ ---------- */
.faq { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.faq-item { background: #fff; border-radius: 24px; box-shadow: 0 20px 40px -34px rgba(65, 70, 132, .6); overflow: hidden; }
.faq-item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 26px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary h3 { font-size: clamp(1.1rem, 1.8vw, 1.35rem); font-weight: 600; line-height: 1.25; }
.faq-item summary i { width: 38px; height: 38px; flex: none; border-radius: 50%; background: var(--rosa-100); position: relative; transition: transform .5s var(--mola), background .3s; }
.faq-item summary i::before, .faq-item summary i::after { content: ""; position: absolute; left: 11px; right: 11px; top: 17px; height: 4px; border-radius: 4px; background: var(--rosa-600); }
.faq-item summary i::after { transform: rotate(90deg); transition: transform .4s; }
.faq-item[open] summary i { transform: rotate(180deg); background: var(--rosa); }
.faq-item[open] summary i::before, .faq-item[open] summary i::after { background: #fff; }
.faq-item[open] summary i::after { transform: rotate(0); }
.faq-resposta { padding: 0 26px 24px; color: #4a4d78; font-size: 1.05rem; }
.faq-resposta p { margin: 0; }

/* ---------- VISITE ---------- */
.visite { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(30px, 5vw, 80px); align-items: center; }
.visite-mapa { position: relative; border-radius: 36px; overflow: hidden; aspect-ratio: 1 / 1; background: #f6f3ff; box-shadow: var(--sombra); border: 8px solid #fff; }
.visite-mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapa-desenho { position: absolute; inset: 0; background:
    linear-gradient(28deg, transparent 47%, #fff 47% 53%, transparent 53%),
    linear-gradient(118deg, transparent 58%, #fff 58% 62%, transparent 62%),
    linear-gradient(-20deg, transparent 30%, #fff 30% 33%, transparent 33%),
    radial-gradient(circle at 20% 22%, #dfe9d6 0 12%, transparent 12.5%),
    radial-gradient(circle at 80% 80%, #dfe9d6 0 9%, transparent 9.5%),
    #eef0fb; }
.rua { position: absolute; font-size: .72rem; font-weight: 800; color: #8a8db8; text-transform: uppercase; letter-spacing: .08em; }
.r1 { left: 12%; top: 38%; transform: rotate(-28deg); } .r2 { left: 52%; top: 58%; transform: rotate(62deg); }
.r3 { left: 18%; bottom: 20%; transform: rotate(20deg); } .r4 { left: 14%; top: 18%; background: #fff; padding: .2em .6em; border-radius: 8px; color: var(--indigo); }
.pino { position: absolute; left: 50%; top: 46%; transform: translate(-50%, -100%); animation: pino 1.6s var(--mola) infinite; }
.pino::after { content: ""; position: absolute; left: 50%; bottom: -8px; width: 30px; height: 10px; margin-left: -15px; border-radius: 50%; background: rgba(65, 70, 132, .25); }
@keyframes pino { 50% { transform: translate(-50%, -115%); } }
.mapa-carregar { position: absolute; left: 50%; bottom: 24px; transform: translateX(-50%); }
.mapa-carregar:hover { transform: translateX(-50%) translateY(-3px); }
.visite h2 { font-size: clamp(2.4rem, 5vw, 4.4rem); margin-bottom: .5em; }
.visite address { font-style: normal; }
.visite-endereco { font-family: var(--f-titulo); font-size: 1.5rem; font-weight: 500; line-height: 1.3; }
.visite-ref { opacity: .75; }
.visite .nav-status { background: #fff; color: var(--tinta); }
.tabela-horas { width: 100%; max-width: 440px; border-collapse: collapse; margin: 22px 0 28px; }
.tabela-horas th, .tabela-horas td { padding: 12px 4px; border-bottom: 2px dashed #d6d0f2; text-align: left; font-weight: 700; }
.tabela-horas td { text-align: right; }
.tabela-horas tr.hoje th, .tabela-horas tr.hoje td { color: var(--rosa-600); }
.tabela-horas tr.hoje th::after { content: " · hoje"; font-size: .8em; }
.visite-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.visite .btn-contorno { color: var(--indigo); border-color: var(--indigo); }

/* ---------- FINAL ---------- */
.final { position: relative; z-index: 3; min-height: 130vh; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; text-align: center; padding: 0 var(--lado) 18vh; }
.final-titulo { font-size: clamp(2.8rem, 7.6vw, 7.4rem); max-width: 1100px; text-wrap: balance; }
.final-titulo .script { color: var(--rosa-300); font-size: 1.3em; }
.final > p { font-size: 1.3rem; margin: 1rem 0 0; }

/* ---------- RODAPÉ ---------- */
.rodape { position: relative; z-index: 4; background: var(--indigo-950); color: var(--indigo-100); border-radius: var(--raio-folha) var(--raio-folha) 0 0; padding-bottom: 30px; overflow: hidden; }
.rodape-marquee { padding: 50px 0 30px; overflow: hidden; }
.rodape-marquee span { display: inline-flex; align-items: center; gap: .4em; padding-right: .6em; font-family: var(--f-titulo); font-weight: 600; font-size: clamp(3rem, 8vw, 7rem); white-space: nowrap; color: var(--creme); }
.rodape-marquee img { width: 1em; height: auto; }
.rodape-grade { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding: 40px var(--lado); max-width: 1400px; margin: 0 auto; }
.rodape-marca p { max-width: 320px; margin: 16px 0 22px; }
.rodape-bloco h2 { font-size: 1.1rem; color: var(--rosa); margin-bottom: 1rem; letter-spacing: .06em; text-transform: uppercase; }
.rodape-bloco p, .rodape-bloco li { margin: 0 0 .5rem; }
.rodape-bloco ul { list-style: none; margin: 0; padding: 0; }
.rodape-bloco a { text-decoration: none; }
.rodape-bloco a:hover { color: var(--rosa-300); }
address.rodape-bloco { font-style: normal; }
.rodape-horas { margin: 0; }
.rodape-horas div { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dashed rgba(255, 242, 222, .15); padding: 6px 0; }
.rodape-horas dt { font-weight: 700; } .rodape-horas dd { margin: 0; }
.rodape-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding: 24px var(--lado) 0; border-top: 1px solid rgba(255, 242, 222, .1); max-width: 1400px; margin: 0 auto; font-size: .86rem; opacity: .75; }
.rodape-base p { margin: 0; }
.rodape-base a { text-decoration-color: rgba(255, 255, 255, .3); }
.rodape-merlo span { color: var(--rosa); }

/* ---------- PÁGINAS INTERNAS ---------- */
.pagina-topo { position: relative; isolation: isolate; padding: 170px var(--lado) 120px; overflow: hidden; min-height: 70vh; display: flex; flex-direction: column; justify-content: flex-end; }
.pagina-topo video, .pagina-topo .topo-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.pagina-topo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(38, 42, 88, .55), rgba(38, 42, 88, .95)); }
.pagina-topo h1 { font-size: clamp(3rem, 9vw, 8rem); }
.pagina-topo p { font-size: 1.2rem; max-width: 640px; color: var(--indigo-100); }
.migalhas { font-size: .9rem; margin-bottom: 1.4rem; color: var(--indigo-300); }
.migalhas a { text-decoration: none; color: var(--rosa-300); }
.cardapio-abas { position: sticky; top: 90px; z-index: 5; display: flex; gap: 8px; overflow-x: auto; padding: 10px; margin: 0 auto 50px; width: max-content; max-width: 100%; border-radius: 999px; background: rgba(255, 255, 255, .8); backdrop-filter: blur(10px); box-shadow: 0 10px 30px -20px rgba(65, 70, 132, .5); scrollbar-width: none; }
.cardapio-abas a { white-space: nowrap; text-decoration: none; font-weight: 800; padding: .6em 1.1em; border-radius: 999px; font-size: .92rem; }
.cardapio-abas a.ativo, .cardapio-abas a:hover { background: var(--rosa); color: #fff; }
.cat { max-width: var(--max); margin: 0 auto 90px; scroll-margin-top: 170px; }
.cat-topo { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; border-bottom: 3px dashed #eadcc5; padding-bottom: 16px; }
.cat-topo h2 { font-size: clamp(2.2rem, 4.5vw, 3.6rem); }
.cat-topo p { margin: 0; font-family: var(--f-script); font-size: 2rem; color: var(--rosa-600); line-height: 1; }
.itens { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.itens .card-produto { width: auto; }
.lista-simples { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 0 40px; }
.lista-simples li { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 2px dotted #e5d6bf; font-weight: 700; }
.lista-simples li span:last-child { font-family: var(--f-titulo); color: var(--indigo); white-space: nowrap; }
.texto-longo { max-width: 760px; margin: 0 auto; font-size: 1.12rem; }
.texto-longo h2 { font-size: clamp(2rem, 4vw, 3rem); margin: 1.6em 0 .6em; }
.texto-longo blockquote { margin: 1.6em 0; padding: 26px 30px; border-radius: 26px; background: #fff; font-family: var(--f-titulo); font-size: 1.4rem; line-height: 1.35; box-shadow: var(--sombra); }
.fonte { font-size: .9rem; opacity: .7; }
.pagina-erro { min-height: 100vh; display: grid; place-items: center; text-align: center; padding: 140px var(--lado) 80px; }
.pagina-erro h1 { font-size: clamp(5rem, 18vw, 14rem); }
.pagina-erro img { width: 180px; margin: 0 auto 10px; animation: flutua 4s ease-in-out infinite; }

/* ---------- animações de entrada (só com JS e sem "reduzir movimento") ---------- */
@media (prefers-reduced-motion: no-preference) {
    html.js [data-revelar] { opacity: 0; transform: translateY(40px); }
}
html.js-falhou [data-revelar], html.js-falhou .manifesto-texto .palavra { opacity: 1 !important; transform: none !important; }

/* ---------- RESPONSIVO ---------- */
@media (max-width: 1100px) {
    .nav-links { display: none; }
    .nav-status { margin-left: auto; }
    .hero-fatos { grid-template-columns: 1fr 1fr; }
    .hero-fatos li:nth-child(3) { border-left: 0; }
    .hero-fatos li:nth-child(n+3) { border-top: 1px dashed rgba(255, 242, 222, .2); }
    .linha-tempo { grid-template-columns: repeat(3, 1fr); }
    .linha-tempo-traco { display: none; }
    .numeros { grid-template-columns: 1fr 1fr; }
    .entrega-infos { grid-template-columns: 1fr 1fr; }
    .rodape-grade { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
    .nav { top: 10px; left: 12px; right: 12px; padding: 8px 8px 8px 16px; gap: 10px; }
    .nav-logo img { width: 124px; }
    .nav-cta, .nav .nav-status { display: none; }
    .nav-menu { display: block; margin-left: auto; }
    .barra-pedido { display: flex; }
    .progresso-donut { bottom: 90px; right: 14px; width: 46px; height: 46px; }
    .progresso-donut svg { width: 38px; height: 38px; }
    .hero { padding-top: 46vh; align-items: end; text-align: left; }
    .hero-slogan { font-size: clamp(2.7rem, 12.5vw, 4.4rem); }
    .hero-ctas .btn { flex: 1; }
    html.sem-3d .palco-reserva { right: 50%; transform: translateX(50%); top: 110px; width: 52vw; }
    .hero-fatos li { padding: 12px 14px; }
    .hero-fatos strong { font-size: .95rem; }
    .sabor { min-height: 120vh; align-items: flex-end; padding-bottom: 17vh; justify-content: center !important; }
    .sabor-card { padding: 26px 22px 22px; }
    .sabor-foto { width: 96px; top: -60px; right: 16px; }
    .sabor-foto img { width: 96px; height: 96px; }
    .sabores-hud { display: none; }
    .combo, .caneca-grade, .visite { grid-template-columns: 1fr; }
    .caneca-visual { position: relative; top: 0; }
    .linha-tempo { grid-template-columns: 1fr; gap: 0; border-left: 3px dashed var(--rosa); margin-left: 12px; }
    .marco { padding: 0 0 30px 34px; }
    .marco::before { top: 4px; left: -15px; }
    .reels-grade { overflow-x: auto; justify-content: flex-start; padding: 0 var(--lado) 70px; margin: 0 calc(var(--lado) * -1); scroll-snap-type: x mandatory; scrollbar-width: none; }
    .reel { width: 64vw; scroll-snap-align: center; }
    .reel:nth-child(2) { transform: none; }
    .reels-cta { margin-top: 20px; }
    .depoimento { width: 300px; }
    .entrega-infos { grid-template-columns: 1fr 1fr; }
    .card-produto { width: 76vw; }
    .trilho-h { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .trilho-h-conteudo .card-produto { scroll-snap-align: center; }
    .rodape-grade { grid-template-columns: 1fr; }
    .rodape { padding-bottom: 100px; }
    .cinema-faixa { height: 8vh; }
    .cinema-legendas p { bottom: 12vh; white-space: normal; width: 90%; text-align: center; }
    .caneca-fotos img { width: 42vw; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .grao { display: none; }
}
