:root {
  --roxo: #6a0f7a;
  --roxo-escuro: #2e0838;
  --magenta: #b0168f;
  --amarelo: #ffb000;
  --verde: #2fbf3a;
  --creme: #fff6ec;
  --texto: #2b1a30;
  --texto-suave: #6b5a70;
  --branco: #ffffff;
  --raio: 20px;
  --sombra: 0 10px 30px rgba(46, 8, 56, .12);
  /* Movimento */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-quique: cubic-bezier(.34, 1.56, .64, 1);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { font-family: "Nunito", system-ui, sans-serif; color: var(--texto); background: var(--branco); line-height: 1.6; }
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: "Baloo 2", "Nunito", sans-serif; line-height: 1.15; text-wrap: balance; }
a, button { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--amarelo); outline-offset: 3px; border-radius: 6px; }
.pular { position: absolute; left: 16px; top: -60px; z-index: 3000; background: var(--amarelo); color: var(--roxo-escuro); font-weight: 800; padding: 10px 18px; border-radius: 999px; text-decoration: none; transition: top .2s var(--ease-out); }
.pular:focus { top: 12px; }
.container { width: min(1180px, 100% - 32px); margin-inline: auto; }

/* Botões */
.btn { display: inline-block; padding: 14px 28px; border-radius: 999px; font-weight: 700; text-decoration: none; border: 2px solid transparent; cursor: pointer; font-size: 1rem; font-family: inherit; transition: transform 160ms var(--ease-out), box-shadow 160ms var(--ease-out); }
.btn:active { transform: scale(.97); }
.btn--amarelo { background: var(--amarelo); color: var(--roxo-escuro); }
.btn--contorno { border-color: var(--branco); color: var(--branco); }
.btn--roxo { background: var(--roxo); color: var(--branco); width: 100%; }
.btn--auto { width: auto; }
.btn svg { width: 1.3em; height: 1.3em; fill: currentColor; vertical-align: -.28em; margin-right: 8px; }
.btn--grande { font-size: 1.1rem; padding: 16px 30px; }

/* Topo */
.topo { position: sticky; top: 0; z-index: 1000; background: var(--roxo-escuro); box-shadow: 0 2px 12px rgba(0,0,0,.25); }
.topo__inner { display: flex; align-items: center; justify-content: space-between; height: 72px; }
.topo__logo img { height: 52px; width: auto; }
.topo__nav { display: flex; gap: 28px; align-items: center; }
.topo__nav a { color: var(--branco); text-decoration: none; font-weight: 700; }
.topo__nav a:hover { color: var(--amarelo); }
.topo__nav .topo__cta { background: var(--amarelo); color: var(--roxo-escuro); padding: 8px 18px; border-radius: 999px; }
.topo__nav .topo__cta:hover { color: var(--roxo-escuro); filter: brightness(1.08); }
.topo__menu-btn { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
.topo__menu-btn span { display: block; width: 26px; height: 3px; background: var(--branco); margin: 5px 0; border-radius: 2px; transition: transform .2s var(--ease-out), opacity .2s ease; }

/* Hero */
.hero { position: relative; background: radial-gradient(circle at 80% 30%, var(--magenta), var(--roxo) 45%, var(--roxo-escuro)); color: var(--branco); overflow: hidden; }
.hero__inner { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center; padding: 80px 0 120px; }
.selo { display: inline-block; background: rgba(255,255,255,.15); padding: 6px 16px; border-radius: 999px; font-weight: 700; font-size: .9rem; margin-bottom: 18px; }
.hero h1 { font-size: clamp(2.4rem, 5vw, 4rem); margin-bottom: 18px; }
.hero h1::after { content: ""; display: block; width: 90px; height: 6px; background: var(--amarelo); border-radius: 3px; margin-top: 14px; }
.hero p { font-size: 1.2rem; opacity: .92; max-width: 480px; margin-bottom: 32px; }
.hero__botoes { display: flex; gap: 14px; flex-wrap: wrap; }
.hero__imagens { position: relative; height: 520px; }
.hero__img { position: absolute; height: auto; filter: drop-shadow(0 20px 30px rgba(0,0,0,.35)); }
.hero__img--pote { width: 72%; left: -4%; top: 22%; z-index: 1; animation: flutuar 6s ease-in-out infinite; }
.hero__img--picole { width: 27%; right: 4%; top: -2%; transform: rotate(6deg); animation: flutuar 5s ease-in-out infinite .6s; }
.hero__img--copo { width: 40%; right: -2%; bottom: -4%; z-index: 2; animation: flutuar 7s ease-in-out infinite 1.2s; }
@keyframes flutuar { 50% { translate: 0 -14px; } }
.onda { position: absolute; bottom: -1px; left: 0; width: 100%; height: 80px; fill: var(--branco); }

/* Números */
.numeros { padding: 10px 0 30px; }
.numeros__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; text-align: center; }
.numeros strong { display: block; font-family: "Baloo 2", sans-serif; font-size: 2.4rem; color: var(--magenta); line-height: 1; }
.numeros span { color: var(--texto-suave); font-weight: 600; }

/* Seções */
.secao { padding: 90px 0; }
.secao--creme { background: var(--creme); }
.secao--roxo { background: var(--roxo-escuro); color: var(--branco); }
.secao__titulo { text-align: center; max-width: 680px; margin: 0 auto 44px; }
.secao__titulo h2 { font-size: clamp(2rem, 4vw, 2.8rem); }
.secao__titulo p { margin-top: 12px; opacity: .85; }
.sobretitulo { display: inline-block; color: var(--magenta); font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .85rem; margin-bottom: 6px; }
.secao--roxo .sobretitulo { color: var(--amarelo); }

/* Produtos */
.filtros { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 36px; }
.filtro { border: 2px solid var(--roxo); background: var(--branco); color: var(--roxo); padding: 8px 18px; border-radius: 999px; font-weight: 700; font-family: inherit; font-size: .95rem; cursor: pointer; transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform 160ms var(--ease-out); }
.filtro:active { transform: scale(.97); }
.filtro[aria-pressed="true"] { background: var(--roxo); color: var(--branco); }
.produtos { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 22px; }
.produto { --cor: #f6e3f8; background: var(--branco); border-radius: var(--raio); box-shadow: var(--sombra); padding: 18px 16px 20px; text-align: center; cursor: pointer; border: 0; font-family: inherit; color: inherit; transition: transform 250ms var(--ease-out), box-shadow 250ms var(--ease-out); }
.produto:focus-visible { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(46,8,56,.18); }
.produto:active { transform: scale(.97); transition-duration: 160ms; }
.produto__img { aspect-ratio: 1; display: grid; place-items: center; position: relative; margin-bottom: 12px; }
.produto__img::before { content: ""; position: absolute; inset: 10%; border-radius: 50%; background: var(--cor); transform: scale(.92); transition: transform 250ms var(--ease-out), filter 250ms ease; }
.produto__img img { position: relative; width: 92%; height: auto; aspect-ratio: 1; object-fit: contain; transition: transform 250ms var(--ease-out); filter: drop-shadow(0 8px 10px rgba(46,8,56,.15)); }
.produto:focus-visible .produto__img::before { transform: scale(1.06); filter: saturate(1.4); }
.produto:focus-visible .produto__img img { transform: scale(1.06) rotate(-3deg); }

/* Entrada em cascata */
.produto.entrar { animation: entrar .55s var(--ease-quique) both; animation-delay: calc(min(var(--i), 8) * 45ms); }
@keyframes entrar { from { opacity: 0; transform: translateY(28px) scale(.94); } }
.produtos.aguardando .produto { opacity: 0; }

/* Cor do círculo por categoria */
.produtos[data-cat="gourmet"] .produto { --cor: #fbe9b7; }
.produtos[data-cat="potes2l"] .produto { --cor: #dbe6ff; }
.produtos[data-cat="potes1l"] .produto { --cor: #ffe6d3; }
.produtos[data-cat="acai"] .produto { --cor: #e6d6f7; }
.produtos[data-cat="picoles"] .produto { --cor: #dff3e0; }
.produtos[data-cat="copos"] .produto { --cor: #dcecfb; }
.produtos[data-cat="sundaes"] .produto { --cor: #f9dede; }
.produtos[data-cat="gelo"] .produto { --cor: #dcf1f7; }

/* Produtos: identidade visual por categoria */
.secao-produtos { padding: 130px 0 140px; }
.secao-produtos .onda { z-index: 0; pointer-events: none; }
.secao-produtos > .container { position: relative; z-index: 1; }
.secao-produtos .onda--topo { top: -1px; bottom: auto; fill: var(--branco); }
.secao-produtos .onda--base { fill: var(--creme); }
@property --p-c1 { syntax: "<color>"; inherits: true; initial-value: #2b2226; }
@property --p-c2 { syntax: "<color>"; inherits: true; initial-value: #0c0909; }
.secao-produtos { position: relative; overflow: hidden; isolation: isolate;
  background: radial-gradient(ellipse at 50% 0%, var(--p-c1), var(--p-c2) 75%);
  transition: --p-c1 .45s ease, --p-c2 .45s ease; }
.secao-produtos__padrao { position: absolute; z-index: -1; top: calc(-1 * var(--p-dy)); left: calc(-1 * var(--p-dx)); right: 0; bottom: 0; background-image: var(--p-padrao); opacity: var(--p-op); will-change: translate; animation: padrao-deriva 40s linear infinite; }
.secao-produtos__padrao.trocar { animation: padrao-entra .45s var(--ease-out) both, padrao-deriva 40s linear infinite; }
@keyframes padrao-entra { from { opacity: 0; scale: 1.06; } }
@keyframes padrao-deriva { to { translate: var(--p-dx) var(--p-dy); } }
.secao-produtos__marca { position: absolute; z-index: -1; top: 80px; left: 50%; translate: -50% 0; white-space: nowrap; font-family: "Baloo 2", sans-serif; font-weight: 800; font-size: clamp(5rem, 16vw, 13rem); line-height: 1; color: var(--p-sobre); opacity: .1; text-transform: uppercase; pointer-events: none; }
.secao-produtos__marca.trocar { animation: marca-entra .5s var(--ease-out) both; }
@keyframes marca-entra { from { opacity: 0; } }
.secao-produtos .secao__titulo h2 { color: var(--p-titulo); transition: color .35s ease; }
.secao-produtos .sobretitulo { color: var(--p-sobre); transition: color .35s ease; }
.secao-produtos__frase { color: var(--p-texto); font-size: 1.15rem; font-weight: 600; min-height: 1.6em; }
.secao-produtos__frase.trocar { animation: frase-entra .35s var(--ease-out) both; }
@keyframes frase-entra { from { opacity: 0; transform: translateY(8px); } }
.secao-produtos .filtro { background: transparent; border-color: var(--p-chip); color: var(--p-chip); transition: background-color .3s ease, color .3s ease, border-color .3s ease, transform 160ms var(--ease-out); }
.secao-produtos .filtro[aria-pressed="true"] { background: var(--p-ativo); border-color: var(--p-ativo); color: var(--p-ativo-txt); }
.secao-produtos .produto { box-shadow: 0 14px 34px rgba(0,0,0,.18); }
.produtos[data-cat="gourmet"] .produto { --cor: #f6e2a8; }
.secao-produtos[data-tema="gourmet"] { --p-dx: 168px; --p-dy: 168px; --p-c1: #2b2226; --p-c2: #0c0909; --p-titulo: #f3cf6b; --p-texto: #e9dfc9; --p-sobre: #e0b04a; --p-chip: #f3cf6b; --p-ativo: #e0b04a; --p-ativo-txt: #1a1214; --p-op: .22; --p-padrao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56'%3E%3Cpath d='M0 28L28 0L56 28L28 56Z' fill='none' stroke='%23e0b04a' stroke-width='1.2'/%3E%3Ccircle cx='28' cy='28' r='2.2' fill='%23e0b04a'/%3E%3C/svg%3E"); }
.secao-produtos[data-tema="potes2l"] { --p-dx: 270px; --p-dy: 270px; --p-c1: #2a56b8; --p-c2: #0c1f55; --p-titulo: #ffffff; --p-texto: #dfe8ff; --p-sobre: #ffd23f; --p-chip: #ffffff; --p-ativo: #ffd23f; --p-ativo-txt: #0c1f55; --p-op: .35; --p-padrao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cpath d='M22 8l4.1 8.3 9.2 1.3-6.6 6.5 1.6 9.1L22 29l-8.3 4.2 1.6-9.1-6.6-6.5 9.2-1.3z' fill='%23ffd23f'/%3E%3Cpath d='M68 52l2.6 5.2 5.8.8-4.2 4.1 1 5.8-5.2-2.7-5.2 2.7 1-5.8-4.2-4.1 5.8-.8z' fill='%23ffd23f'/%3E%3C/svg%3E"); }
.secao-produtos[data-tema="potes1l"] { --p-dx: 210px; --p-dy: 210px; --p-c1: #a446cc; --p-c2: #55187f; --p-titulo: #ffffff; --p-texto: #f6e6ff; --p-sobre: #ff8cc0; --p-chip: #ffffff; --p-ativo: #ff8cc0; --p-ativo-txt: #4a1268; --p-op: .4; --p-padrao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Ccircle cx='15' cy='15' r='5' fill='%23ff8cc0'/%3E%3Ccircle cx='50' cy='45' r='3' fill='%23ffffff'/%3E%3Ccircle cx='55' cy='12' r='2' fill='%23ff8cc0'/%3E%3C/svg%3E"); }
.secao-produtos[data-tema="acai"] { --p-dx: 240px; --p-dy: 240px; --p-c1: #5d2489; --p-c2: #250a3d; --p-titulo: #ffffff; --p-texto: #eadcf7; --p-sobre: #9ad23b; --p-chip: #ffffff; --p-ativo: #9ad23b; --p-ativo-txt: #250a3d; --p-op: .3; --p-padrao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Ccircle cx='20' cy='22' r='7' fill='%239ad23b'/%3E%3Ccircle cx='29' cy='28' r='5' fill='%239ad23b'/%3E%3Ccircle cx='60' cy='60' r='4' fill='%23ffffff'/%3E%3C/svg%3E"); }
.secao-produtos[data-tema="picoles"] { --p-dx: 300px; --p-dy: 300px; --p-c1: #fff8e8; --p-c2: #ffe4f0; --p-titulo: #2b1a30; --p-texto: #6b5a70; --p-sobre: #e8327c; --p-chip: #6a0f7a; --p-ativo: #e8327c; --p-ativo-txt: #ffffff; --p-op: .55; --p-padrao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Crect x='10' y='12' width='14' height='5' rx='2.5' fill='%23e8327c' transform='rotate(30 17 14)'/%3E%3Crect x='60' y='20' width='14' height='5' rx='2.5' fill='%232fbf3a' transform='rotate(-20 67 22)'/%3E%3Crect x='30' y='62' width='14' height='5' rx='2.5' fill='%23ffb000' transform='rotate(70 37 64)'/%3E%3Crect x='74' y='74' width='14' height='5' rx='2.5' fill='%233a8be8' transform='rotate(10 81 76)'/%3E%3Crect x='8' y='84' width='14' height='5' rx='2.5' fill='%238a3fd1' transform='rotate(-50 15 86)'/%3E%3C/svg%3E"); }
.secao-produtos[data-tema="copos"] { --p-dx: 240px; --p-dy: 240px; --p-c1: #7d3ba8; --p-c2: #45196a; --p-titulo: #ffffff; --p-texto: #f1e4fb; --p-sobre: #ffc93c; --p-chip: #ffffff; --p-ativo: #ffc93c; --p-ativo-txt: #45196a; --p-op: .35; --p-padrao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cpath d='M10 40q10-12 20 0t20 0 20 0' fill='none' stroke='%23ffc93c' stroke-width='2.5' stroke-linecap='round'/%3E%3Ccircle cx='60' cy='14' r='4' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3C/svg%3E"); }
.secao-produtos[data-tema="sundaes"] { --p-dx: 360px; --p-dy: 180px; --p-c1: #7c4b33; --p-c2: #3d2115; --p-titulo: #f8e7cf; --p-texto: #ecd8bf; --p-sobre: #f5dfc0; --p-chip: #f8e7cf; --p-ativo: #f5dfc0; --p-ativo-txt: #3d2115; --p-op: .18; --p-padrao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='60'%3E%3Cpath d='M0 10h120v8c-8 0-8 22-16 22s-8-22-16-22-6 14-14 14-8-14-16-14-8 30-16 30-8-30-16-30-8 18-16 18S8 18 0 18z' fill='%23f5dfc0'/%3E%3C/svg%3E"); }
.secao-produtos[data-tema="gelo"] { --p-dx: 270px; --p-dy: 270px; --p-c1: #eefaff; --p-c2: #b6e1f5; --p-titulo: #0f3f6e; --p-texto: #3d6a8f; --p-sobre: #1f6fb5; --p-chip: #1f6fb5; --p-ativo: #1f6fb5; --p-ativo-txt: #ffffff; --p-op: .8; --p-padrao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Crect x='12' y='14' width='22' height='22' rx='5' fill='none' stroke='%23ffffff' stroke-width='2.5' transform='rotate(15 23 25)'/%3E%3Crect x='56' y='54' width='16' height='16' rx='4' fill='%23ffffff' fill-opacity='.7' transform='rotate(-10 64 62)'/%3E%3Ccircle cx='70' cy='18' r='3' fill='%231f6fb5'/%3E%3C/svg%3E"); }

.produto h3 { font-size: 1.15rem; }
.produto p { color: var(--texto-suave); font-size: .9rem; font-weight: 600; }

/* História */
.linha-tempo { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; position: relative; margin-bottom: 50px; }
.linha-tempo li { background: var(--branco); border-radius: var(--raio); padding: 28px 24px; box-shadow: var(--sombra); position: relative; }
.linha-tempo__ano { display: inline-block; background: var(--magenta); color: var(--branco); font-family: "Baloo 2", sans-serif; font-weight: 800; font-size: 1.3rem; padding: 2px 16px; border-radius: 999px; margin-bottom: 12px; }
.linha-tempo h3 { font-size: 1.35rem; margin-bottom: 8px; color: var(--roxo); }
.valores { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; background: var(--roxo); color: var(--branco); border-radius: var(--raio); padding: 36px; }
.valores h3 { font-size: 1.6rem; color: var(--amarelo); margin-bottom: 8px; }
.valores__missao p { font-size: 1.15rem; }
.valores__lista { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
.valores__lista li { background: rgba(255,255,255,.14); padding: 8px 16px; border-radius: 999px; font-weight: 700; }

/* Lojas */
.secao-lojas { position: relative; overflow: hidden; padding: 130px 0 140px; color: var(--branco);
  background: radial-gradient(ellipse at 20% 0%, #5a1470, var(--roxo-escuro) 60%), var(--roxo-escuro); }
.secao-lojas .onda--topo { top: -1px; bottom: auto; fill: var(--creme); }
.secao-lojas .onda--base { fill: var(--branco); }
.secao-lojas > .container { position: relative; z-index: 1; }
.secao-lojas .secao__titulo { margin-bottom: 24px; }
.secao-lojas .sobretitulo { color: var(--amarelo); }
.lojas__acao { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-bottom: 36px; }
.lojas__aviso { color: rgba(255,255,255,.8); font-weight: 600; text-align: center; min-height: 1.6em; }

.lojas { position: relative; border-radius: 28px; overflow: hidden; box-shadow: 0 30px 60px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08); }
.lojas__mapa { height: 560px; background: #1d0826; z-index: 0; }
.lojas__mapa .leaflet-tile-pane { filter: grayscale(1) invert(.92) brightness(1.3) contrast(1.2) sepia(.8) hue-rotate(230deg) saturate(2.6); }
.lojas__mapa .leaflet-control-zoom a { background: var(--roxo-escuro); color: var(--branco); border-color: rgba(255,255,255,.15); }
.lojas__mapa .leaflet-control-attribution { background: rgba(46,8,56,.7); color: rgba(255,255,255,.6); }
.lojas__mapa .leaflet-control-attribution a { color: var(--amarelo); }

.lojas__painel { position: absolute; z-index: 500; top: 20px; right: 20px; bottom: 20px; width: 330px; overflow-y: auto;
  background: rgba(46,8,56,.72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.12); border-radius: 22px; padding: 22px; }
.lojas__painel-titulo { font-size: 1.1rem; color: var(--amarelo); margin-bottom: 14px; }
.lojas__lista { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.loja { background: rgba(255,255,255,.07); border-radius: 16px; padding: 16px 18px; cursor: pointer; border: 2px solid transparent; transition: background-color .2s ease, border-color .2s ease, transform .2s var(--ease-out); }
.loja__nome { all: unset; cursor: pointer; font: inherit; color: inherit; }
.loja__nome:focus-visible { outline: 3px solid var(--amarelo); outline-offset: 3px; border-radius: 6px; }
.loja.ativa { border-color: var(--amarelo); background: rgba(255,176,0,.12); }
.loja h3 { font-size: 1.2rem; color: var(--branco); }
.loja small { color: var(--amarelo); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; }
.loja p { font-size: .92rem; color: rgba(255,255,255,.75); }
.loja a { color: var(--amarelo); font-weight: 700; text-decoration: none; }
.loja--breve { border: 2px dashed rgba(255,255,255,.2); background: transparent; cursor: default; text-align: center; color: rgba(255,255,255,.55); font-size: .9rem; }
.loja--breve:hover { background: transparent; transform: none; }
.loja:has(.loja__nome:focus-visible) { border-color: var(--amarelo); }
.loja__dist { float: right; background: var(--amarelo); color: var(--roxo-escuro); font-weight: 800; font-size: .85rem; padding: 2px 10px; border-radius: 999px; }

/* Marcador casquinha */
.pino-sorvete { position: relative; width: 44px; height: 62px; }
.pino-sorvete__queda { position: relative; width: 100%; height: 100%; animation: cair .9s var(--ease-quique) both; animation-delay: var(--atraso, 0s); }
.pino-sorvete svg { display: block; width: 100%; height: 100%; filter: drop-shadow(0 6px 6px rgba(0,0,0,.45)); transform-origin: 50% 100%; }
.pino-sorvete::before { content: ""; position: absolute; left: 50%; bottom: -6px; width: 40px; height: 14px; margin-left: -20px; border-radius: 50%; background: rgba(255,176,0,.55); animation: pulso 2s ease-out infinite; animation-delay: calc(var(--atraso, 0s) + .9s); opacity: 0; }
@keyframes cair { 0% { opacity: 0; transform: translateY(-90px); } 60% { opacity: 1; } }
@keyframes pulso { 0% { transform: scale(.4); opacity: .9; } 100% { transform: scale(2.2); opacity: 0; } }
@keyframes balancar { 25% { transform: rotate(-10deg); } 75% { transform: rotate(10deg); } }
/* Foto da fachada ao passar o mouse na loja */
.pino-foto { position: absolute; left: 50%; bottom: calc(100% + 10px); width: 180px; margin: 0 0 0 -90px; padding: 6px 6px 8px;
  background: var(--branco); border-radius: 16px; box-shadow: 0 14px 34px rgba(0,0,0,.45); pointer-events: none;
  opacity: 0; transform: translateY(6px) scale(.92); transform-origin: 50% 100%;
  transition: opacity 120ms ease, transform 120ms var(--ease-out); }
.pino-foto::after { content: ""; position: absolute; left: 50%; bottom: -7px; width: 14px; height: 14px; margin-left: -7px; background: var(--branco); transform: rotate(45deg); border-radius: 0 0 3px 0; }
.pino-foto img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 11px; }
.pino-foto figcaption { margin-top: 6px; text-align: center; font-family: "Baloo 2", sans-serif; font-weight: 800; font-size: .95rem; line-height: 1.1; color: var(--roxo); }
.mostrar-foto .pino-foto { opacity: 1; transform: none; transition-duration: 200ms; }
.com-balao .pino-foto { opacity: 0 !important; }
.foto-abaixo .pino-foto { bottom: auto; top: calc(100% + 10px); transform-origin: 50% 0; transform: translateY(-6px) scale(.92); }
.foto-abaixo .pino-foto::after { bottom: auto; top: -7px; border-radius: 3px 0 0 0; }
.mostrar-foto.foto-abaixo .pino-foto { transform: none; }
.voce { width: 18px; height: 18px; border-radius: 50%; background: #4da3ff; border: 3px solid var(--branco); box-shadow: 0 0 0 8px rgba(77,163,255,.3); }

/* Balão do mapa */
.lojas__mapa .leaflet-popup-content-wrapper { background: var(--branco); border-radius: 18px; padding: 0; overflow: hidden; box-shadow: 0 12px 30px rgba(0,0,0,.35); }
.lojas__mapa .leaflet-popup-content { margin: 0; font-family: "Nunito", sans-serif; }
.lojas__mapa .leaflet-popup-tip { background: var(--branco); }
.balao__topo { background: linear-gradient(135deg, var(--magenta), var(--roxo)); color: var(--branco); padding: 12px 16px; font-family: "Baloo 2", sans-serif; font-weight: 800; font-size: 1.1rem; }
.balao__corpo { padding: 10px 16px 14px; color: var(--texto); font-size: .9rem; }
.balao__corpo a { display: inline-block; margin-top: 6px; background: var(--amarelo); color: var(--roxo-escuro); font-weight: 800; text-decoration: none; padding: 6px 14px; border-radius: 999px; }

/* Frota */
.frota { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.frota__foto { aspect-ratio: 4/3; border-radius: var(--raio); overflow: hidden; }
.frota__foto img { width: 100%; height: 100%; object-fit: cover; }
.frota__foto--vazia { border: 2px dashed rgba(255,255,255,.35); display: grid; place-items: center; color: rgba(255,255,255,.6); font-weight: 700; }

/* Parceiro */
.parceiro { display: grid; grid-template-columns: 1.1fr 1fr; gap: 50px; align-items: start; }
.parceiro h2 { font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: 14px; }
.parceiro__texto > p { font-size: 1.15rem; color: var(--texto-suave); margin-bottom: 24px; }
.vantagens { list-style: none; display: grid; gap: 14px; }
.vantagens li { padding-left: 38px; position: relative; }
.vantagens li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--amarelo); color: var(--roxo-escuro); display: grid; place-items: center; font-weight: 800; font-size: .9rem; }
.formulario { background: var(--creme); border-radius: var(--raio); padding: 32px; display: grid; gap: 14px; box-shadow: var(--sombra); }
.formulario h3 { font-size: 1.6rem; color: var(--roxo); }
.formulario label { display: grid; gap: 4px; font-weight: 700; font-size: .95rem; }
.formulario input, .formulario textarea { font: inherit; padding: 12px 14px; border: 2px solid #ead9ec; border-radius: 12px; background: var(--branco); }
.formulario input:focus-visible, .formulario textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--magenta) 35%, transparent); outline-offset: 1px; border-color: var(--magenta); }

/* Rodapé */
.rodape { background: var(--roxo-escuro); color: var(--branco); padding: 60px 0 24px; }
.rodape__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 30px; margin-bottom: 30px; }
.rodape__logo { width: 200px; height: auto; margin-bottom: 10px; }
.rodape h3 { color: var(--amarelo); font-size: 1.2rem; margin-bottom: 10px; }
.rodape p { opacity: .9; margin-bottom: 6px; }
.rodape a { text-decoration: none; }
.rodape a:hover { color: var(--amarelo); }
.rodape__copy { text-align: center; font-size: .85rem; opacity: .6; border-top: 1px solid rgba(255,255,255,.12); padding-top: 20px; width: min(1180px, 100% - 32px); margin: 0 auto; }

/* Modal */
.modal { position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; padding: 16px; overscroll-behavior: contain; }
.modal[hidden] { display: none; }
.modal__fundo { position: absolute; inset: 0; background: rgba(46,8,56,.7); opacity: 0; transition: opacity 150ms ease; }
.modal__caixa { position: relative; background: var(--branco); border-radius: var(--raio); padding: 30px; max-width: 460px; width: 100%; text-align: center;
  opacity: 0; transform: scale(.96); transition: opacity 150ms ease, transform 150ms var(--ease-out); }
.modal.visivel .modal__fundo { opacity: 1; transition-duration: 220ms; }
.modal.visivel .modal__caixa { opacity: 1; transform: none; transition-duration: 220ms; }
.modal__caixa img { width: auto; height: auto; max-width: 100%; max-height: 55vh; margin: 0 auto 16px; object-fit: contain; }
.modal__caixa h3 { font-size: 1.6rem; color: var(--roxo); }
.modal__caixa p { color: var(--texto-suave); font-weight: 700; }
.modal__fechar { position: absolute; top: 10px; right: 14px; background: none; border: 0; font-size: 2rem; cursor: pointer; color: var(--texto-suave); line-height: 1; }

/* Responsivo */
@media (max-width: 900px) {
  .topo__menu-btn { display: block; }
  .topo__nav { position: absolute; top: 72px; left: 0; right: 0; background: var(--roxo-escuro); flex-direction: column; gap: 0; padding: 8px 16px 20px;
    opacity: 0; translate: 0 -8px; visibility: hidden; pointer-events: none;
    transition: opacity 150ms ease, translate 150ms var(--ease-out), visibility 0s 150ms; }
  .topo__nav.aberto { opacity: 1; translate: 0 0; visibility: visible; pointer-events: auto; transition-duration: 200ms; transition-delay: 0s; }
  .topo__nav a { padding: 12px 0; width: 100%; text-align: center; }
  .topo__nav .topo__cta { margin-top: 8px; padding: 12px; }
  .hero__inner { grid-template-columns: 1fr; padding: 50px 0 100px; text-align: center; }
  .hero h1::after { margin-inline: auto; }
  .hero p { margin-inline: auto; }
  .hero__botoes { justify-content: center; }
  .hero__imagens { height: 380px; max-width: 440px; width: 100%; margin: 0 auto; }
  .numeros__grid { grid-template-columns: repeat(2, 1fr); row-gap: 24px; }
  .linha-tempo, .valores, .lojas, .parceiro, .rodape__grid { grid-template-columns: 1fr; }
  .frota { grid-template-columns: 1fr; }
  .lojas__mapa { height: 380px; }
  .lojas { overflow: visible; box-shadow: none; }
  .lojas__mapa { border-radius: 22px; overflow: hidden; }
  .lojas__painel { position: static; width: auto; margin-top: 16px; }
  .secao-lojas { padding: 90px 0 100px; }
  .secao-lojas .onda { height: 40px; }
  .secao { padding: 64px 0; }
  .secao-produtos { padding: 90px 0 100px; }
  .secao-produtos .onda { height: 40px; }
}
@media (max-width: 480px) {
  .produtos { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .produto { padding: 12px 10px 14px; }
  .produto h3 { font-size: 1rem; }
  .formulario, .valores { padding: 22px; }
}
@media (hover: hover) and (pointer: fine) {
  .filtro:hover { background: #f6e8f8; }
  .secao-produtos .filtro:hover { background: color-mix(in srgb, var(--p-chip) 15%, transparent); }
  .loja:hover { background: rgba(255,255,255,.12); }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.18); }
  .btn:active { transform: scale(.97); }
  .secao-produtos .filtro:hover { transform: translateY(-2px); }
  .secao-produtos .filtro:active { transform: scale(.97); }
  .produto:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(46,8,56,.18); }
  .produto:hover .produto__img::before { transform: scale(1.06); filter: saturate(1.4); }
  .produto:hover .produto__img img { transform: scale(1.06) rotate(-3deg); }
  .produto:active { transform: scale(.97); }
  .loja:hover { transform: translateX(-3px); }
  .pino-sorvete:hover svg { animation: balancar .6s ease-in-out; }
}
@media (hover: hover) and (pointer: fine) {
  .pino-sorvete:hover .pino-foto { opacity: 1; transform: none; transition-duration: 200ms; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero__img, .produto.entrar, .secao-produtos__padrao, .secao-produtos__marca.trocar, .secao-produtos__frase.trocar, .pino-sorvete__queda, .pino-sorvete::before { animation: none; }
  .produto:focus-visible, .produto:focus-visible .produto__img img, .produto:focus-visible .produto__img::before { transform: none; }
  .modal__caixa, .modal.visivel .modal__caixa, .pino-foto { transform: none; }
  .topo__nav { translate: none !important; }
  .produtos.aguardando .produto { opacity: 1; }
}
