/* Trismera — vitrine */
@font-face { font-family: 'Cinzel'; src: url('../fonts/cinzel-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Cinzel'; src: url('../fonts/cinzel-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Jost'; src: url('../fonts/jost-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Jost'; src: url('../fonts/jost-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Jost'; src: url('../fonts/jost-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }

:root {
  color-scheme: light;
  --bordo: #5C1A2B;
  --vinho: #3A0F1B;
  --dourado: #B8893A;
  --dourado-texto: #8A6420;   /* dourado legível sobre fundo claro */
  --dourado-claro: #E3C27E;   /* dourado legível sobre fundo escuro */
  --offwhite: #F7EFE8;
  --rose: #F0DDD6;
  --creme-foto: #F8EEE6;      /* fundo das fotos provisórias */
  --chocolate: #3B2420;
  --tinta: #2E1A17;
  --tinta-suave: #6B5049;
  --linha-fina: rgba(92, 26, 43, .16);

  --fonte-titulo: 'Cinzel', 'Times New Roman', serif;
  --fonte-texto: 'Jost', system-ui, sans-serif;
  --largura: 1180px;
  --gutter: clamp(16px, 4vw, 40px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: rgba(92, 26, 43, .12); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  background: var(--offwhite);
  color: var(--tinta);
  font-family: var(--fonte-texto);
  font-size: 1.0625rem;
  line-height: 1.6;
}
img { max-width: 100%; display: block; }
[hidden] { display: none !important; }
h1, h2, h3, h4 { font-family: var(--fonte-titulo); font-weight: 500; color: var(--bordo); line-height: 1.15; margin: 0; text-wrap: balance; }
p { margin: 0; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--dourado); outline-offset: 3px; border-radius: 4px; }

.pular { position: absolute; left: -9999px; top: 8px; background: var(--bordo); color: #fff; padding: 10px 16px; border-radius: 6px; z-index: 10; }
.pular:focus { left: 16px; }

/* ----- Botões ----- */
.botao {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 12px 24px;
  border-radius: 999px; border: 1.5px solid var(--bordo);
  background: var(--bordo); color: #fff;
  font: 500 1rem/1.2 var(--fonte-texto); text-decoration: none; letter-spacing: .01em;
  transition: background-color .2s, color .2s, border-color .2s;
  touch-action: manipulation;
}
.botao:hover { background: var(--vinho); border-color: var(--vinho); }
.botao--contorno { background: transparent; color: var(--bordo); }
.botao--contorno:hover { background: var(--bordo); color: #fff; }
.botao--dourado { background: var(--dourado-claro); border-color: var(--dourado-claro); color: var(--vinho); }
.botao--dourado:hover { background: #fff; border-color: #fff; }
.botao--pequeno { min-height: 40px; padding: 8px 18px; font-size: .9375rem; }

/* ----- Topo ----- */
.topo { position: sticky; top: 0; z-index: 5; background: rgba(247, 239, 232, .94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--linha-fina); }
.topo__dentro { max-width: var(--largura); margin: 0 auto; padding: 10px var(--gutter); display: flex; align-items: center; gap: 24px; }
.topo__logo img { width: 177px; height: auto; }
.topo__menu { display: flex; gap: 24px; margin-left: auto; }
.topo__menu a { text-decoration: none; font-size: .9375rem; color: var(--tinta-suave); padding: 6px 0; border-bottom: 1.5px solid transparent; }
.topo__menu a:hover { color: var(--bordo); border-bottom-color: var(--dourado); }
@media (max-width: 860px) {
  .topo__menu { display: none; }
  .topo .botao { margin-left: auto; }
}

/* ----- Abertura ----- */
.abertura {
  max-width: var(--largura); margin: 0 auto;
  padding: clamp(40px, 7vw, 96px) var(--gutter) clamp(48px, 7vw, 88px);
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 72px); align-items: center;
}
.abertura h1 { font-size: clamp(2.25rem, 5.2vw, 4rem); letter-spacing: .01em; }
.abertura__resumo { margin-top: 20px; font-size: 1.1875rem; color: var(--tinta-suave); max-width: 34em; }
.abertura__acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.fatos { display: flex; flex-wrap: wrap; gap: 12px 36px; margin: 40px 0 0; padding-top: 24px; border-top: 1px solid var(--linha-fina); }
.fatos dt { font-size: .875rem; color: var(--tinta-suave); }
.fatos dd { margin: 2px 0 0; font-family: var(--fonte-titulo); font-size: 1.375rem; color: var(--bordo); }

/* A bandeja: moldura bordô com 12 divisórias, como a embalagem real */
.bandeja { margin: 0; }
.bandeja__fundo {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px;
  padding: clamp(10px, 1.6vw, 18px);
  background: var(--bordo);
  border-radius: 10px;
  box-shadow: 0 1px 0 var(--dourado) inset, 0 30px 60px -30px rgba(58, 15, 27, .55);
  transform: perspective(1400px) rotateX(8deg);
  transform-origin: 50% 100%;
}
.bandeja__doce { display: block; padding: 0; border: 0; background: var(--creme-foto); border-radius: 3px; cursor: zoom-in; }
.bandeja__fundo img { width: 100%; height: auto; aspect-ratio: 256 / 236; object-fit: cover; border-radius: 3px; }
.bandeja figcaption { margin-top: 16px; font-size: .875rem; color: var(--tinta-suave); text-align: center; }
@media (max-width: 860px) {
  .abertura { grid-template-columns: 1fr; }
  .abertura { padding-top: 32px; }
  .bandeja__fundo { transform: none; }
}

/* ----- Seções genéricas ----- */
.secao { max-width: var(--largura); margin: 0 auto; padding: clamp(56px, 8vw, 104px) var(--gutter); }
.secao--estreita { max-width: 820px; }
.secao__cabeca { max-width: 640px; margin-bottom: clamp(32px, 4vw, 48px); }
.secao__cabeca h2 { font-size: clamp(1.75rem, 3.6vw, 2.625rem); }
.secao__cabeca p { margin-top: 14px; color: var(--tinta-suave); }


/* ----- Passos (sequência real: 1 a 4), ligados por um fio trançado ----- */
.passos-caixa { position: relative; }
.passos__fio { position: absolute; top: 9px; left: 18px; right: 0; height: 18px; background: url(../img/fios/fio-claro.svg) repeat-x 0 0 / 48px 18px; }
.passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; counter-reset: passo; position: relative; }
.passos li { counter-increment: passo; padding-top: 60px; position: relative; }
.passos li::before {
  content: counter(passo); position: absolute; top: 0; left: 0;
  width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center;
  background: var(--offwhite); border: 1.5px solid var(--dourado);
  font-family: var(--fonte-titulo); font-size: 1.125rem; line-height: 1; color: var(--dourado-texto);
}
.passos h3 { font-size: 1.25rem; margin-bottom: 10px; }
.passos p { color: var(--tinta-suave); font-size: .9875rem; }
@media (max-width: 900px) {
  .passos { grid-template-columns: 1fr; gap: 32px; max-width: 560px; }
  .passos__fio { top: 18px; bottom: 0; left: 9px; right: auto; width: 18px; height: auto; background: url(../img/fios/fio-claro-v.svg) repeat-y 0 0 / 18px 48px; }
  .passos li { padding: 4px 0 0 60px; }
}

/* ----- Degustação + entrega ----- */
.dupla { max-width: var(--largura); margin: 0 auto; padding: 0 var(--gutter) clamp(56px, 8vw, 104px); display: grid; grid-template-columns: 1fr 1fr; gap: 20px; scroll-margin-top: 80px; }
.dupla__item { background: #FFFBF8; border: 1px solid var(--linha-fina); border-radius: 14px; padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.dupla__item--degustacao { background: var(--rose); border-color: transparent; }
.dupla__item h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.dupla__item p { color: var(--tinta-suave); }
.lista-simples { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; }
.lista-simples li::marker { color: var(--dourado); }
@media (max-width: 760px) { .dupla { grid-template-columns: 1fr; } }

/* ----- Dúvidas ----- */
.duvidas { border-top: 1px solid var(--linha-fina); }
.duvidas details { border-bottom: 1px solid var(--linha-fina); }
.duvidas summary { cursor: pointer; list-style: none; padding: 20px 40px 20px 0; position: relative; font-weight: 500; font-size: 1.0625rem; }
.duvidas summary::-webkit-details-marker { display: none; }
.duvidas summary::after { content: '+'; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 1.5rem; color: var(--dourado-texto); transition: transform .2s; }
.duvidas details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.duvidas details p { padding: 0 0 22px; color: var(--tinta-suave); max-width: 62ch; }
@media (prefers-reduced-motion: reduce) { .duvidas summary::after { transition: none; } }

/* ----- Convite final ----- */
section[id] { scroll-margin-top: 72px; }
.convite { background: var(--vinho); color: #E9D7CF; text-align: center; padding: clamp(64px, 9vw, 112px) var(--gutter); }
.convite h2 { color: #fff; font-size: clamp(1.875rem, 4vw, 2.875rem); max-width: 18em; margin: 0 auto; }
.convite p { max-width: 36em; margin: 18px auto 32px; }
.convite__aviso { font-size: .875rem; color: var(--dourado-claro); margin: 18px auto 0 !important; }

/* ----- Rodapé ----- */
.rodape { background: var(--chocolate); color: #CDB8AF; text-align: center; padding: 48px var(--gutter); display: grid; justify-items: center; gap: 12px; font-size: .9375rem; }
.rodape img { width: 217px; height: auto; margin-bottom: 8px; }
.rodape__pequeno { font-size: .8125rem; opacity: .75; }
.rodape__equipe { color: inherit; margin-left: 10px; text-underline-offset: 3px; }
.rodape__equipe:hover { color: var(--dourado-claro); }

/* Logo menor no celular, para o botão do topo caber numa linha */
@media (max-width: 520px) { .topo__logo img { width: 138px; } }

/* Página 404 */
.convite--404 { min-height: 100vh; display: grid; place-content: center; justify-items: center; gap: 8px; }
.convite--404 img { width: 217px; height: auto; margin-bottom: 24px; }
.convite--404 h1 { color: #fff; font-size: clamp(1.875rem, 4vw, 2.875rem); margin: 0; }

/* ===== Enfeites: os três fios da Trismera ===== */
.abertura__fio { position: relative; width: var(--largura-fio, min(354px, 86%)); max-width: 100%; height: 44px; margin-top: 22px; }
.abertura__fio-linhas { position: absolute; inset: 0; display: block; width: 100%; height: 44px; }
.abertura__fio-coracao { position: absolute; left: 50%; top: 50%; width: 44px; height: auto; transform: translate(-50%, -50%); }
.abertura__resumo { margin-top: 16px; }

/* Acabamento de trança dourada nas faixas escuras, como fita de caixa de doce */
.basica, .convite { position: relative; }
.basica::before, .convite::before {
  content: ''; position: absolute; left: 0; right: 0; top: 14px; height: 18px;
  background: url(../img/fios/fio-bordo.svg) repeat-x 0 0 / 48px 18px;
}
.convite::before { background-image: url(../img/fios/fio-vinho.svg); }
.convite__coracao { display: block; width: 92px; height: auto; margin: 0 auto 22px; }

/* ===== Animações =====
   1) Abertura (ao carregar): título → fios se trançam até o coração → copinhos pousam na bandeja.
   2) Ao rolar: o fio dos passos se desenha e acende os números; o coração do convite aparece.
   Quem pede "reduzir movimento" no celular vê tudo pronto (o JS nem liga a classe js-anima). */
@keyframes surge { from { opacity: 0; transform: translateY(10px); } }
@keyframes revela-x { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes revela-centro { from { clip-path: inset(0 50% 0 50%); } to { clip-path: inset(0 0 0 0); } }
@keyframes coracao-surge { from { opacity: 0; transform: translate(-50%, -50%) scale(.4); } }
@keyframes pousa { from { opacity: 0; transform: translateY(-16px) scale(.94); } }

@media (prefers-reduced-motion: no-preference) {
  .abertura h1 { animation: surge .8s cubic-bezier(.2, .7, .2, 1) both; }
  .abertura__fio-coracao { animation: coracao-surge .7s cubic-bezier(.3, 1.4, .5, 1) .35s both; }
  .abertura__fio-linhas { animation: revela-centro 1.5s cubic-bezier(.65, .05, .3, 1) .75s both; }
  .abertura__resumo { animation: surge .7s ease-out .85s both; }
  .abertura__acoes { animation: surge .7s ease-out .95s both; }
  .fatos { animation: surge .7s ease-out 1.05s both; }
  .bandeja__doce { animation: pousa .55s cubic-bezier(.2, .8, .3, 1.15) both; }
  .bandeja__doce:nth-child(1) { animation-delay: .55s; }
  .bandeja__doce:nth-child(2) { animation-delay: .61s; }
  .bandeja__doce:nth-child(3) { animation-delay: .67s; }
  .bandeja__doce:nth-child(4) { animation-delay: .73s; }
  .bandeja__doce:nth-child(5) { animation-delay: .79s; }
  .bandeja__doce:nth-child(6) { animation-delay: .85s; }
  .bandeja__doce:nth-child(7) { animation-delay: .91s; }
  .bandeja__doce:nth-child(8) { animation-delay: .97s; }
  .bandeja__doce:nth-child(9) { animation-delay: 1.03s; }
  .bandeja__doce:nth-child(10) { animation-delay: 1.09s; }
  .bandeja__doce:nth-child(11) { animation-delay: 1.15s; }
  .bandeja__doce:nth-child(12) { animation-delay: 1.21s; }
}

.js-anima .passos__fio { clip-path: inset(0 100% 0 0); transition: clip-path 1.8s cubic-bezier(.6, .05, .35, 1); }
.js-anima .passos li::before { opacity: 0; transform: scale(.5); transition: opacity .4s, transform .5s cubic-bezier(.3, 1.4, .5, 1); }
.js-anima .visivel .passos__fio { clip-path: inset(0 0 0 0); }
.js-anima .visivel li::before { opacity: 1; transform: none; }
.js-anima .visivel li:nth-child(2)::before { transition-delay: .45s; }
.js-anima .visivel li:nth-child(3)::before { transition-delay: .9s; }
.js-anima .visivel li:nth-child(4)::before { transition-delay: 1.35s; }
@media (max-width: 900px) { .js-anima .passos__fio { clip-path: inset(0 0 100% 0); } }

.js-anima .convite__coracao { opacity: 0; transform: translateY(12px) scale(.9); transition: opacity .9s ease-out, transform 1s cubic-bezier(.2, .8, .3, 1); }
.js-anima .convite__coracao.visivel { opacity: 1; transform: none; }

/* O fio dos passos termina no último número (cobre o pedaço que sobraria depois dele) */
.passos li:last-child::after { content: ''; position: absolute; top: 0; left: 37px; right: -100vw; height: 36px; background: var(--offwhite); }
@media (max-width: 900px) {
  .passos li:last-child::after { top: 37px; left: 0; right: auto; bottom: -2px; width: 36px; height: auto; }
}
.passos-caixa { overflow: hidden; }

/* ===== Fundo da página: silhuetas de doces, só contorno e quase transparentes ===== */
body { background: var(--offwhite) url(../img/fundo/doces-claro.svg) 0 0 / 260px 260px; }

/* ===== Abertura (js/intro.js): tela vinho → fios formam o coração → slogan → dissolve =====
   intro-cobre: cobre a página antes de o HTML aparecer (com saída automática se algo falhar). */
html.intro-cobre::after {
  content: ''; position: fixed; inset: 0; z-index: 60; background: var(--vinho);
  animation: intro-falha .5s 6s forwards;
}
@keyframes intro-falha { to { opacity: 0; visibility: hidden; } }
html.com-intro:not(.intro-solta) body { overflow: hidden; }

.intro {
  position: fixed; inset: 0; z-index: 61; cursor: pointer;
  background: var(--vinho) url(../img/fundo/doces-vinho.svg) 0 0 / 260px 260px;
  display: grid; place-items: center;
  transition: opacity 1.4s cubic-bezier(.4, 0, .2, 1), visibility 1.4s;
}
.intro--saindo { opacity: 0; visibility: hidden; }
.intro__centro { display: grid; justify-items: center; gap: clamp(18px, 3vh, 28px); padding: 0 24px; text-align: center; transition: transform 1.4s cubic-bezier(.3, 0, .2, 1), filter 1.4s, opacity 1.1s; }
.intro--saindo .intro__centro { transform: scale(1.18); filter: blur(6px); opacity: 0; }
.intro__desenho { position: relative; width: min(48vw, 200px); aspect-ratio: 138 / 122; }
.intro__fios, .intro__coracao { position: absolute; inset: 0; width: 100%; height: 100%; }
.intro__fios path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: intro-traca 1.8s cubic-bezier(.55, .1, .35, 1) forwards; }
.intro__fios path:nth-child(1) { animation-delay: .25s; }
.intro__fios path:nth-child(2) { animation-delay: .4s; }
.intro__fios path:nth-child(3) { animation-delay: .55s; }
.intro__fios { animation: intro-some .5s 2.3s forwards; }
.intro__coracao { opacity: 0; animation: intro-aparece .6s 2.1s forwards; }
.intro__slogan {
  font-family: var(--fonte-titulo); font-weight: 500; color: var(--dourado-claro);
  font-size: clamp(1.25rem, 4.6vw, 1.875rem); line-height: 1.3; letter-spacing: .32em;
  opacity: 0; animation: intro-slogan 1.2s cubic-bezier(.2, .7, .2, 1) 2.9s forwards;
}
.intro__nome { width: min(72vw, 360px); height: auto; margin-top: 4px; opacity: 0; animation: intro-nome 1s cubic-bezier(.2, .7, .2, 1) 2.25s forwards; }
@keyframes intro-nome { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes intro-traca { to { stroke-dashoffset: 0; } }
@keyframes intro-some { to { opacity: 0; } }
@keyframes intro-aparece { to { opacity: 1; } }
@keyframes intro-slogan { to { opacity: 1; letter-spacing: .08em; } }

/* A animação da abertura da página espera a tela vinho sair */
html.com-intro:not(.intro-solta) :is(.abertura h1, .abertura__fio-linhas, .abertura__fio-coracao, .abertura__resumo, .abertura__acoes, .fatos, .bandeja__doce) { animation-play-state: paused; }
.intro__slogan span { white-space: nowrap; }
@media (max-width: 640px) { .intro__slogan span { display: block; } }

/* ===================== Montar meu pedido ===================== */
.opcao-linha input, .cartao-sabor input, .opcao-simples input {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.topo__voltar { margin-left: auto; font-size: .9375rem; color: var(--tinta-suave); text-decoration: none; padding: 10px 0; }
.topo__voltar:hover { color: var(--bordo); text-decoration: underline; text-decoration-color: var(--dourado); }

.montador { max-width: 760px; margin: 0 auto; padding: clamp(28px, 5vw, 56px) var(--gutter) 0; }
.montador__cabeca h1 { font-size: clamp(1.875rem, 4.4vw, 2.75rem); }
.montador__passo { margin-top: 10px; font-size: .9375rem; color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
/* Progresso: o fio trançado vai se completando a cada passo */
.montador__progresso { position: relative; height: 18px; margin: 12px 0 clamp(28px, 4vw, 40px); }
.montador__progresso::before { content: ''; position: absolute; left: 0; right: 0; top: 8px; height: 2px; border-radius: 2px; background: var(--linha-fina); }
.montador__fio {
  position: absolute; inset: 0; background: url(../img/fios/fio-claro.svg) repeat-x 0 0 / 48px 18px;
  clip-path: inset(0 calc((1 - var(--progresso, .14)) * 100%) 0 0);
  transition: clip-path .7s cubic-bezier(.6, .05, .35, 1);
}
@media (prefers-reduced-motion: reduce) { .montador__fio { transition: none; } }

.etapa h2 { font-size: clamp(1.5rem, 3.4vw, 2rem); outline: none; }
.etapa__ajuda { margin-top: 8px; color: var(--tinta-suave); }
.etapa__nota { margin-top: 16px; font-size: .9375rem; color: var(--tinta-suave); }
.etapa__aviso { margin-top: 12px; font-size: .9375rem; color: var(--bordo); }
.etapa > :is(.opcoes-linha, .contador, .sabores-escolha, .campos, .opcoes-simples, .resumo) { margin-top: 24px; }

/* Linhas: cartões que se marcam inteiros */
.opcoes-linha { display: grid; gap: 12px; }
.opcao-linha {
  position: relative; display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center;
  padding: 16px 18px; border-radius: 14px; cursor: pointer;
  background: #FFFBF8; border: 1.5px solid var(--linha-fina); transition: border-color .2s, box-shadow .2s;
}
.opcao-linha--premium { background: var(--rose); }
.opcao-linha--signature { background: var(--vinho); color: #F3E6DF; }
.opcao-linha:hover { border-color: var(--dourado); }
.opcao-linha:has(input:checked) { border-color: var(--dourado); box-shadow: 0 0 0 2px var(--dourado); }
.opcao-linha:has(input:focus-visible) { outline: 3px solid var(--dourado); outline-offset: 3px; }
.opcao-linha:has(input:checked)::after {
  content: '✓'; position: absolute; top: 10px; right: 12px; width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center; background: var(--dourado); color: #fff; font-size: .875rem;
}
.opcao-linha__fotos { display: flex; }
.opcao-linha__fotos img { width: 48px; height: 44px; object-fit: cover; border-radius: 50%; border: 2px solid #fff; background: var(--creme-foto); }
.opcao-linha__fotos img + img { margin-left: -14px; }
.opcao-linha__texto { display: grid; gap: 2px; font-size: .9375rem; color: var(--tinta-suave); padding-right: 28px; }
.opcao-linha__texto strong { font-family: var(--fonte-titulo); font-weight: 500; font-size: 1.25rem; color: var(--bordo); }
.opcao-linha__tamanho { color: var(--dourado-texto); font-weight: 500; }
.opcao-linha--signature .opcao-linha__texto { color: #D9C3BA; }
.opcao-linha--signature .opcao-linha__texto strong { color: #fff; }
.opcao-linha--signature .opcao-linha__tamanho { color: var(--dourado-claro); }
.opcao-linha--signature .opcao-linha__fotos img { border-color: var(--vinho); }
@media (max-width: 420px) { .opcao-linha { grid-template-columns: 1fr; gap: 10px; } }

/* Contadores (− valor +) */
.contador { display: inline-flex; align-items: center; gap: 4px; }
.contador__botao {
  width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--bordo); background: transparent; color: var(--bordo);
  font: 500 1.25rem/1 var(--fonte-texto); cursor: pointer; touch-action: manipulation; transition: background-color .2s, color .2s;
}
.contador__botao:hover:not(:disabled) { background: var(--bordo); color: #fff; }
.contador__botao:disabled { opacity: .35; cursor: not-allowed; }
.contador__valor { min-width: 3ch; text-align: center; font-variant-numeric: tabular-nums; font-weight: 600; }
.contador--grande { gap: 18px; }
.contador--grande .contador__botao { width: 56px; height: 56px; font-size: 1.75rem; }
.contador--grande .contador__valor { font-family: var(--fonte-titulo); font-weight: 500; font-size: 3rem; color: var(--bordo); min-width: 4ch; }
.atalhos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.atalho {
  min-height: 40px; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--linha-fina); background: #FFFBF8;
  font: 500 .9375rem/1 var(--fonte-texto); color: var(--tinta); cursor: pointer; touch-action: manipulation; font-variant-numeric: tabular-nums;
}
.atalho:hover { border-color: var(--dourado); }
.atalho[aria-pressed="true"] { background: var(--bordo); border-color: var(--bordo); color: #fff; }

/* Sabores */
.grupo-sabores { border: 0; margin: 0 0 20px; padding: 0; min-width: 0; }
.grupo-sabores legend { font-family: var(--fonte-titulo); font-size: 1.125rem; color: var(--bordo); margin-bottom: 12px; padding: 0; }
.grade-sabores { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.cartao-sabor {
  position: relative; display: grid; gap: 4px; align-content: start; padding: 10px 10px 12px; border-radius: 12px; cursor: pointer;
  background: #FFFBF8; border: 1.5px solid var(--linha-fina); transition: border-color .2s, box-shadow .2s, opacity .2s;
}
.cartao-sabor img { width: 100%; height: auto; aspect-ratio: 256 / 236; object-fit: cover; border-radius: 8px; background: var(--creme-foto); margin-bottom: 4px; }
.cartao-sabor__nome { font-weight: 600; font-size: .9375rem; line-height: 1.3; }
.cartao-sabor__desc { font-size: .8125rem; line-height: 1.4; color: var(--tinta-suave); }
.cartao-sabor:hover { border-color: var(--dourado); }
.cartao-sabor:has(input:checked) { border-color: var(--dourado); box-shadow: 0 0 0 2px var(--dourado); }
.cartao-sabor:has(input:checked)::after {
  content: '✓'; position: absolute; top: 16px; right: 16px; width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center; background: var(--dourado); color: #fff; font-size: .875rem;
}
.cartao-sabor:has(input:disabled) { opacity: .45; cursor: not-allowed; }
.cartao-sabor:has(input:focus-visible) { outline: 3px solid var(--dourado); outline-offset: 3px; }
@media (max-width: 380px) { .grade-sabores { grid-template-columns: 1fr 1fr; } }

.distribuicao { margin-top: 8px; padding: 18px; border-radius: 14px; background: var(--rose); }
.distribuicao__cabeca { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: baseline; justify-content: space-between; }
.distribuicao h3 { font-size: 1.125rem; }
.distribuicao__lista { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.linha-dist { display: grid; grid-template-columns: 44px 1fr auto; gap: 12px; align-items: center; }
.linha-dist img { width: 44px; height: 41px; object-fit: cover; border-radius: 50%; background: var(--creme-foto); }
.linha-dist__nome { font-size: .9375rem; line-height: 1.3; min-width: 0; }
.distribuicao__total { margin-top: 14px; font-weight: 500; color: var(--bordo); font-variant-numeric: tabular-nums; }
.distribuicao__total--ok { color: var(--tinta); }
.botao-texto {
  background: none; border: 0; padding: 6px 0; font: 500 .9375rem var(--fonte-texto); color: var(--bordo);
  text-decoration: underline; text-decoration-color: var(--dourado); text-underline-offset: 3px; cursor: pointer;
}

/* Campos */
.campos { display: grid; gap: 18px; }
.campo { display: grid; gap: 6px; }
.campo > span { font-weight: 500; font-size: .9375rem; }
.campo em { font-style: normal; font-weight: 400; color: var(--tinta-suave); }
.campo :is(input, textarea) {
  width: 100%; min-height: 48px; padding: 12px 14px; border-radius: 10px; border: 1.5px solid rgba(92, 26, 43, .25); background: #FFFBF8;
  font: 400 1rem/1.4 var(--fonte-texto); color: var(--tinta);
}
.campo textarea { resize: vertical; }
.campo :is(input, textarea):focus-visible { outline: none; border-color: var(--dourado); box-shadow: 0 0 0 3px rgba(184, 137, 58, .3); }
.campo ::placeholder { color: #9C8580; }
.opcoes-simples { display: grid; gap: 12px; }
.opcao-simples {
  position: relative; display: block; padding: 16px 18px 16px 52px; border-radius: 14px; cursor: pointer;
  background: #FFFBF8; border: 1.5px solid var(--linha-fina); color: var(--tinta-suave); font-size: .9375rem;
}
.opcao-simples strong { display: block; font-family: var(--fonte-titulo); font-weight: 500; font-size: 1.25rem; color: var(--bordo); }
.opcao-simples::before {
  content: ''; position: absolute; left: 18px; top: 20px; width: 20px; height: 20px; border-radius: 50%;
  border: 1.5px solid var(--dourado); background: #fff;
}
.opcao-simples:has(input:checked) { border-color: var(--dourado); box-shadow: 0 0 0 2px var(--dourado); }
.opcao-simples:has(input:checked)::before { background: radial-gradient(circle, var(--dourado) 45%, #fff 50%); }
.opcao-simples:has(input:focus-visible) { outline: 3px solid var(--dourado); outline-offset: 3px; }
#campos-endereco { margin-top: 20px; }

/* Resumo */
.resumo { display: grid; gap: 12px; }
.resumo__bloco { padding: 16px 18px; border-radius: 14px; background: #FFFBF8; border: 1px solid var(--linha-fina); display: grid; gap: 4px; }
.resumo__topo { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 4px; }
.resumo__topo h3 { font-size: 1.125rem; }
.resumo__sabores { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.resumo__sabores li { display: flex; align-items: center; gap: 10px; }
.resumo__sabores img { width: 36px; height: 33px; object-fit: cover; border-radius: 50%; background: var(--creme-foto); }
.resumo__obs { white-space: pre-line; color: var(--tinta-suave); }
.botao--largo { width: 100%; margin-top: 20px; }
.botao[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }

.montador__erro { margin-top: 16px; color: #A3203A; font-weight: 500; }
.montador__erro:empty { margin: 0; }
/* Barra de navegação fixa embaixo, sempre ao alcance do polegar */
.montador__navegacao {
  position: sticky; bottom: 0; z-index: 4; display: flex; align-items: center; gap: 12px;
  margin: 24px calc(var(--gutter) * -1) 0; padding: 12px var(--gutter) calc(12px + env(safe-area-inset-bottom));
  background: rgba(247, 239, 232, .96); backdrop-filter: blur(8px); border-top: 1px solid var(--linha-fina);
}
.montador__navegacao .botao { min-width: 120px; }
.montador__navegacao #continuar { margin-left: auto; }
.montador__mini { flex: 1; text-align: center; font-size: .875rem; color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
@media (max-width: 520px) { .montador__mini { display: none; } .montador__navegacao .botao { flex: 1; min-width: 0; } }
.convite__acoes { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.botao--contorno-claro { background: transparent; border-color: rgba(227, 194, 126, .6); color: var(--dourado-claro); }
.botao--contorno-claro:hover { background: var(--dourado-claro); border-color: var(--dourado-claro); color: var(--vinho); }

/* Abertura rápida (voltando ao início durante a navegação): coração pronto, nome e slogan juntos */
.intro--rapida .intro__fios { display: none; }
.intro--rapida .intro__coracao { animation: intro-aparece .35s ease-out forwards; }
.intro--rapida .intro__nome { animation: intro-nome .45s cubic-bezier(.2, .7, .2, 1) .1s forwards; }
.intro--rapida .intro__slogan { animation: intro-slogan .5s cubic-bezier(.2, .7, .2, 1) .15s forwards; }
.intro--rapida, .intro--rapida .intro__centro { transition-duration: .7s; }
.armadilha { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.etapa__alternativa { margin-top: 12px; text-align: center; }
.etapa--enviado { text-align: center; display: grid; justify-items: center; gap: 14px; padding: 12px 0 32px; }
.etapa--enviado:not([hidden]) ~ .montador__navegacao { display: none; }
.enviado__coracao { width: 64px; height: auto; }
.enviado__codigo { font-size: 1.125rem; }
.enviado__codigo strong { font-family: var(--fonte-titulo); font-weight: 600; color: var(--bordo); letter-spacing: .06em; font-size: 1.5rem; }
.etapa--enviado > p:not(.enviado__codigo) { max-width: 34em; color: var(--tinta-suave); }
.enviado__acoes { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 8px; }
.botao:disabled { opacity: .6; cursor: progress; }

/* ===================== Painel da Trismera ===================== */
.visualmente-oculto { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
body.painel { background: #F4ECE5; }
.painel__ambiente:not(:empty) { display: inline-block; padding: 2px 10px; border-radius: 999px; background: #E8B04B; color: #2E1A17; font-size: .75rem; font-weight: 600; letter-spacing: .02em; }
.painel__erro { color: #A3203A; font-weight: 500; }
.painel__erro:empty { display: none; }
.painel__estado { color: var(--tinta-suave); }
.painel__estado:empty { display: none; }

/* Entrar: tela vinho com o nome em dourado */
.painel-entrar { min-height: 100vh; display: grid; place-items: center; padding: 24px var(--gutter); background: var(--vinho) url(../img/fundo/doces-vinho.svg) 0 0 / 260px 260px; }
.painel-entrar__caixa { width: min(100%, 380px); display: grid; gap: 16px; justify-items: center; text-align: center; }
.painel-entrar__caixa > img { width: 220px; height: auto; margin-bottom: 4px; }
.painel-entrar__caixa h1 { color: var(--dourado-claro); font-size: 1.5rem; letter-spacing: .12em; }
.painel-entrar__caixa .campo { width: 100%; text-align: left; }
.campo--escuro > span { color: #E9D7CF; }
.campo--escuro :is(input) { background: rgba(255, 255, 255, .96); border-color: transparent; }
.painel-entrar .painel__erro { color: #FFB3B3; }
/* Painel como app: botão de instalar e dica do iPhone na tela de entrar */
.painel-entrar { align-content: center; gap: 28px; }
.painel-instalar { width: min(100%, 380px); display: grid; gap: 10px; justify-items: center; text-align: center; padding-top: 20px; border-top: 1px solid rgba(227, 194, 126, .25); }
.painel-instalar__dica { color: #E9D7CF; font-size: .9375rem; }
.painel-instalar__dica strong { color: var(--dourado-claro); font-weight: 500; }
@media (display-mode: standalone) { .painel-instalar, [data-instalar] { display: none !important; } }

/* Topo do painel */
.painel-topo { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 14px; padding: 10px var(--gutter); background: var(--vinho); color: #E9D7CF; }
.painel-topo > img, .painel-topo__logo img { display: block; width: 140px; height: auto; }
.painel-topo__logo { border-radius: 4px; }
.painel-topo__logo:focus-visible, .painel-topo__inicio:focus-visible { outline: 2px solid var(--dourado-claro); outline-offset: 3px; }
.painel-topo__inicio { padding: 6px 14px; border-radius: 999px; color: #F7EFE8; text-decoration: none; font-size: .9375rem; font-weight: 500;
  background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .2); }
.painel-topo__inicio:hover { background: rgba(255, 255, 255, .18); }
.painel-topo__inicio[hidden] { display: none; }
.painel-topo__ola { margin-left: auto; font-size: .9375rem; }
.botao-texto--claro { color: var(--dourado-claro); text-decoration-color: rgba(227, 194, 126, .5); }
@media (max-width: 520px) { .painel-topo__ola { display: none; } .painel-topo .botao-texto { margin-left: auto; } }

.painel-conteudo { max-width: 980px; margin: 0 auto; padding: 24px var(--gutter) 64px; }
.painel-cabeca { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.painel-cabeca h1 { font-size: clamp(1.75rem, 4vw, 2.25rem); }
.painel-filtros { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin: 18px 0 14px; }
.abas { display: flex; flex-wrap: wrap; gap: 6px; }
.aba {
  min-height: 40px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--linha-fina); background: #FFFBF8;
  font: 500 .9375rem/1 var(--fonte-texto); color: var(--tinta); cursor: pointer; touch-action: manipulation;
}
.aba[aria-selected="true"] { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.aba__total { font-variant-numeric: tabular-nums; opacity: .75; }
.painel-busca { flex: 1 1 220px; max-width: 320px; }
.painel-busca input { min-height: 40px; padding: 8px 14px; }
@media (max-width: 640px) { .painel-busca { max-width: none; } }

.lista-pedidos { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cartao-pedido {
  display: grid; grid-template-columns: 64px 1fr auto; gap: 14px; align-items: center;
  padding: 14px 16px; border-radius: 14px; background: #FFFBF8; border: 1px solid var(--linha-fina);
  text-decoration: none; color: inherit; transition: border-color .2s, box-shadow .2s;
}
.cartao-pedido:hover { border-color: var(--dourado); box-shadow: 0 6px 18px -12px rgba(58, 15, 27, .4); }
.cartao-pedido__data { display: grid; justify-items: center; padding: 6px 0; border-radius: 10px; background: var(--rose); font-size: .75rem; color: var(--tinta-suave); text-align: center; }
.cartao-pedido__data strong { font-family: var(--fonte-titulo); font-weight: 600; font-size: 1.125rem; color: var(--bordo); font-variant-numeric: tabular-nums; }
.cartao-pedido__meio { display: grid; gap: 2px; min-width: 0; }
.cartao-pedido__nome { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cartao-pedido__info { font-size: .875rem; color: var(--tinta-suave); }
.cartao-pedido__codigo { font-size: .75rem; color: var(--tinta-suave); letter-spacing: .04em; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) {
  .cartao-pedido { grid-template-columns: 56px 1fr; }
  .cartao-pedido .selo { grid-column: 2; justify-self: start; }
}

/* Selos de situação: uma cor por fase */
.selo { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: .75rem; font-weight: 600; white-space: nowrap; background: #EDE3DC; color: var(--tinta); }
.selo--aguardando_entrada { background: #FBE3B8; color: #6B4310; }
.selo--entrada_paga, .selo--pago { background: #D8EBD3; color: #24552A; }
.selo--confirmado, .selo--restante_cobrado { background: #DCE6F4; color: #22406E; }
.selo--em_producao, .selo--saiu_para_entrega, .selo--pronto_para_retirada { background: var(--rose); color: var(--bordo); }
.selo--entregue { background: #3A0F1B; color: var(--dourado-claro); }
.selo--cancelado, .selo--expirado { background: #E7E1DE; color: #6B5F5B; text-decoration: line-through; }

/* Detalhe */
#vista-detalhe > .botao-texto { display: inline-block; margin-bottom: 14px; }
.detalhe-cabeca { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
.detalhe-cabeca h1 { font-size: clamp(1.625rem, 4vw, 2.25rem); outline: none; }
.detalhe-codigo { margin-top: 4px; font-size: .875rem; color: var(--tinta-suave); }
.detalhe-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 760px) { .detalhe-grade { grid-template-columns: 1fr; } }
.detalhe-bloco { padding: 18px; border-radius: 14px; background: #FFFBF8; border: 1px solid var(--linha-fina); display: grid; gap: 10px; align-content: start; justify-items: start; }
.detalhe-bloco h2 { font-size: 1.125rem; }
.detalhe-bloco dl { margin: 0; display: grid; gap: 8px; width: 100%; }
.dado dt { font-size: .8125rem; color: var(--tinta-suave); }
.dado dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.detalhe-destaque { font-weight: 600; }
.detalhe-sabores { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.detalhe-sabores strong { display: inline-block; min-width: 2.5ch; font-variant-numeric: tabular-nums; color: var(--bordo); }
.detalhe-bloco .campo { width: 100%; }
.seletor { width: 100%; min-height: 44px; padding: 10px 12px; border-radius: 10px; border: 1.5px solid rgba(92, 26, 43, .25); background: #fff; font: 400 1rem var(--fonte-texto); color: var(--tinta); }
.seletor:focus-visible { outline: none; border-color: var(--dourado); box-shadow: 0 0 0 3px rgba(184, 137, 58, .3); }

/* Montador: endereço completo e forma de pagamento */
.campos--endereco { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
.campos--endereco > .campo--largo, .campos--endereco > .campo__ajuda, .campos--endereco > .campo--cep { grid-column: 1 / -1; }
.campo--cep input { max-width: 200px; }
.campo__ajuda { font-size: .875rem; color: var(--tinta-suave); margin-top: -6px; }
.campo__ajuda:empty { display: none; }
@media (max-width: 480px) { .campos--endereco { grid-template-columns: 1fr; } }
.campo--grupo { border: 0; padding: 0; margin: 0; min-width: 0; }
.campo--grupo legend { font-weight: 500; font-size: .9375rem; margin-bottom: 8px; padding: 0; }
.opcoes-pagamento { display: flex; flex-wrap: wrap; gap: 8px; }
.opcao-pagamento { position: relative; cursor: pointer; }
.opcao-pagamento input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.opcao-pagamento span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 10px 16px; border-radius: 999px;
  border: 1.5px solid var(--linha-fina); background: #FFFBF8; font-weight: 500; font-size: .9375rem;
}
.opcao-pagamento:hover span { border-color: var(--dourado); }
.opcao-pagamento input:checked + span { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.opcao-pagamento input:focus-visible + span { outline: 3px solid var(--dourado); outline-offset: 2px; }

/* Painel: detalhe do pedido completo */
.detalhe-bloco--largo { grid-column: 1 / -1; }
.bloco-topo { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; width: 100%; }
.bloco-acoes { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin-top: 4px; }
.detalhe-sub { font-size: 1rem; margin-top: 8px; }
.dados-cliente { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); column-gap: 24px; }
.aviso-cliente { width: 100%; margin-top: 8px; padding: 14px; border-radius: 12px; background: #EEF6EC; display: grid; gap: 10px; justify-items: start; }
.aviso-cliente__titulo { font-size: .8125rem; font-weight: 600; color: #24552A; }
.previa-mensagem { font-size: .9375rem; line-height: 1.5; color: var(--tinta); }
.botao--zap { background: #1F7A3E; border-color: #1F7A3E; }
.botao--zap:hover { background: #17602F; border-color: #17602F; }
.campos-valor { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; width: 100%; }
@media (max-width: 420px) { .campos-valor { grid-template-columns: 1fr; } }
.campo--valor input { min-height: 44px; padding: 10px 12px; text-align: right; font-variant-numeric: tabular-nums; }
.contas { width: 100%; margin: 4px 0; display: grid; gap: 4px; padding: 12px 14px; border-radius: 10px; background: var(--rose); }
.contas > div { display: flex; justify-content: space-between; gap: 12px; }
.contas dt { color: var(--tinta-suave); }
.contas dd { margin: 0; font-variant-numeric: tabular-nums; font-weight: 500; }
.contas__total dd { font-family: var(--fonte-titulo); font-weight: 600; font-size: 1.25rem; color: var(--bordo); }
.notas { width: 100%; padding: 12px 14px; border-radius: 10px; border: 1.5px solid rgba(92, 26, 43, .25); background: #fff; font: 400 1rem/1.5 var(--fonte-texto); color: var(--tinta); resize: vertical; }
.notas:focus-visible { outline: none; border-color: var(--dourado); box-shadow: 0 0 0 3px rgba(184, 137, 58, .3); }
.historico { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.historico li { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: .875rem; color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.form-cliente { width: 100%; display: grid; gap: 14px; }
.form-cliente .campo :is(input, textarea) { min-height: 44px; padding: 10px 12px; }
.detalhe-aviso { margin: -6px 0 14px; padding: 10px 14px; border-radius: 10px; background: #EEF6EC; color: #24552A; font-weight: 500; }
.detalhe-aviso:empty { display: none; }

/* Painel: menu Pedidos / Financeiro */
.painel-nav { display: flex; gap: 4px; padding: 0 var(--gutter); background: var(--vinho); border-top: 1px solid rgba(227, 194, 126, .15); }
.painel-nav a { padding: 12px 14px; color: #D9C3BA; text-decoration: none; font-weight: 500; border-bottom: 3px solid transparent; }
.painel-nav a:hover { color: #fff; }
.painel-nav a[aria-current="page"] { color: var(--dourado-claro); border-bottom-color: var(--dourado-claro); }

/* Financeiro */
.seletor-mes { display: inline-flex; align-items: center; gap: 6px; }
.seletor-mes__nome { min-width: 11em; text-align: center; font-weight: 600; text-transform: capitalize; }
.botao-mes { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--linha-fina); background: #FFFBF8; font-size: 1.25rem; color: var(--bordo); cursor: pointer; }
.botao-mes:hover { border-color: var(--dourado); }
.numeros { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 18px 0 12px; }
@media (max-width: 860px) { .numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.numero { padding: 14px 16px; border-radius: 14px; background: #FFFBF8; border: 1px solid var(--linha-fina); display: grid; gap: 2px; }
.numero__rotulo { font-size: .8125rem; color: var(--tinta-suave); }
.numero__valor { font-family: var(--fonte-titulo); font-weight: 600; font-size: clamp(1.25rem, 3vw, 1.625rem); color: var(--tinta); font-variant-numeric: tabular-nums; }
.numero__extra { font-size: .75rem; color: var(--tinta-suave); }
.numero--lucro { background: #EEF6EC; border-color: transparent; }
.numero--lucro .numero__valor { color: #24552A; }
.numero--negativo { background: #FBE9EA; border-color: transparent; }
.numero--negativo .numero__valor { color: #A3203A; }
.tabela-rolagem { width: 100%; overflow-x: auto; }
.tabela { width: 100%; border-collapse: collapse; font-size: .9375rem; font-variant-numeric: tabular-nums; }
.tabela th, .tabela td { padding: 10px 8px; text-align: right; border-bottom: 1px solid var(--linha-fina); white-space: nowrap; }
.tabela th:first-child { text-align: left; text-transform: capitalize; }
.tabela thead th { font-size: .8125rem; font-weight: 500; color: var(--tinta-suave); }
.lista-pagamentos { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; width: 100%; }
.lista-pagamentos li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding-bottom: 8px; border-bottom: 1px solid var(--linha-fina); font-size: .9375rem; }
.lista-pagamentos li:last-child { border-bottom: 0; }
.pag__valor { font-weight: 600; font-variant-numeric: tabular-nums; min-width: 6.5em; }
.pag__info { color: var(--tinta-suave); font-size: .875rem; }
.lista-pagamentos .botao-texto { margin-left: auto; }
.botao-texto--perigo { color: #A3203A; text-decoration-color: rgba(163, 32, 58, .4); }
.form-pagamento, .form-despesa { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: end; }
.form-despesa .campo--largo { grid-column: 1 / -1; }
.form-pagamento .botao, .form-despesa .botao { grid-column: 1 / -1; justify-self: start; }
.form-pagamento :is(input, select), .form-despesa :is(input, select) { min-height: 44px; }
.form-pagamento .campo input, .form-despesa .campo input { padding: 10px 12px; }


/* ===================== Cardápio novo (09/11/2026) ===================== */

/* ----- Barra de rolagem fofinha: pílula dourada com folga, sobre o creme ----- */
::-webkit-scrollbar { width: 14px; height: 14px; }
::-webkit-scrollbar-track { background: var(--offwhite); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--dourado-claro), var(--dourado));
  border: 4px solid var(--offwhite); border-radius: 999px; min-height: 48px;
}
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, var(--dourado), var(--bordo)); }
::-webkit-scrollbar-corner { background: var(--offwhite); }
@supports not selector(::-webkit-scrollbar) { html { scrollbar-color: var(--dourado) var(--offwhite); scrollbar-width: thin; } }
.painel ::-webkit-scrollbar-track, .painel ::-webkit-scrollbar-corner { background: #EFE3DB; }
.painel ::-webkit-scrollbar-thumb { border-color: #EFE3DB; }

/* ----- Fotos em 3D: o copinho inclina na direção do mouse e ganha um brilho ----- */
[data-inclina] { position: relative; perspective: 700px; }
[data-inclina] img { transition: transform .45s cubic-bezier(.2, .8, .3, 1), box-shadow .45s; transform-style: preserve-3d; will-change: transform; }
[data-inclina].inclinado img {
  transform: rotateX(var(--rx, 0)) rotateY(var(--ry, 0)) scale(1.06);
  transition-duration: .12s;
  box-shadow: 0 18px 30px -16px rgba(58, 15, 27, .55);
}
[data-inclina]::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .3s;
  background: radial-gradient(circle at var(--brilho-x, 50%) var(--brilho-y, 50%), rgba(255, 255, 255, .45), transparent 55%);
}
[data-inclina].inclinado::after { opacity: 1; }

/* Bandeja: flutua devagar ao rolar */
.bandeja__fundo { translate: 0 var(--flutua, 0); }
.bandeja__doce:hover { position: relative; z-index: 2; }

/* ----- Monte seu Kit: faixa vinho em destaque ----- */
.kit { position: relative; background: var(--vinho) url(../img/fundo/doces-vinho.svg) 0 0 / 260px 260px; color: #F3E6DF; overflow: hidden; }
.kit::before { content: ''; position: absolute; left: 0; right: 0; top: 14px; height: 18px; background: url(../img/fios/fio-vinho.svg) repeat-x 0 0 / 48px 18px; }
.kit__dentro {
  max-width: var(--largura); margin: 0 auto; padding: clamp(64px, 8vw, 104px) var(--gutter) clamp(56px, 7vw, 88px);
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(32px, 5vw, 64px); align-items: center;
}
.kit__texto { display: grid; justify-items: start; gap: 14px; }
.kit__selo {
  display: inline-block; padding: 6px 16px 5px; border-radius: 999px; background: var(--dourado-claro); color: var(--vinho);
  font: 600 1rem/1.2 var(--fonte-texto); transform: rotate(-3deg);
}
.kit h2 { color: #fff; font-size: clamp(2.25rem, 5vw, 3.5rem); }
.kit__frase { color: #E2CFC8; max-width: 32em; }
.kit__preco { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; font-family: var(--fonte-titulo); }
.kit__de { font-size: 1.25rem; color: #CDB4AA; }
.kit__de s { text-decoration-color: var(--dourado-claro); text-decoration-thickness: 2px; }
.kit__por { font-size: 1.25rem; color: var(--dourado-claro); }
.kit__por strong { font-weight: 600; font-size: clamp(2.5rem, 6vw, 3.75rem); color: var(--dourado-claro); line-height: 1; }
.kit__regra { font-size: .9375rem; color: #D9C3BA; padding: 10px 14px; border-left: 3px solid var(--dourado-claro); background: rgba(227, 194, 126, .08); border-radius: 0 6px 6px 0; max-width: 34em; }
.kit__texto .botao { margin-top: 8px; }
.kit__copos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(8px, 1.4vw, 16px); translate: 0 var(--flutua, 0); }
.kit__copo { display: grid; justify-items: center; gap: 10px; text-align: center; font-size: .8125rem; line-height: 1.3; color: #F3E6DF; }
.kit__copo small { display: block; font-size: .75rem; color: var(--dourado-claro); }
.kit__copo:nth-child(even) { margin-top: 40px; }
.kit__doce { display: block; width: 100%; padding: 0; border: 2px solid rgba(227, 194, 126, .45); border-radius: 50% 50% 18px 18px; background: var(--creme-foto); cursor: zoom-in; overflow: hidden; }
.kit__doce img { width: 100%; height: auto; aspect-ratio: 256 / 236; object-fit: cover; }
@media (prefers-reduced-motion: no-preference) {
  .kit__copo { animation: boia 5s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -1s); }
}
@keyframes boia { 50% { transform: translateY(-8px); } }
@media (max-width: 860px) {
  .kit__dentro { grid-template-columns: 1fr; }
  .kit__copos { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .kit__copo:nth-child(even) { margin-top: 24px; }
  .kit__copo span { display: none; }
}

/* ----- Linhas: carrossel, um painel inteiro por vez ----- */
.carrossel { position: relative; }
.carrossel__barra { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.carrossel__nomes { display: flex; flex: 1; gap: 6px; overflow-x: auto; scrollbar-width: none; justify-content: center; }
.carrossel__nomes::-webkit-scrollbar { display: none; }
.carrossel__nome {
  flex: none; min-height: 40px; padding: 8px 18px; border-radius: 999px; border: 1.5px solid var(--linha-fina); background: #FFFBF8;
  font: 500 .9375rem/1.2 var(--fonte-texto); color: var(--tinta-suave); cursor: pointer; transition: background-color .25s, color .25s, border-color .25s;
}
.carrossel__nome:hover { border-color: var(--dourado); color: var(--bordo); }
.carrossel__nome[aria-current="true"] { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.carrossel__seta {
  flex: none; width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid var(--bordo); background: #FFFBF8; color: var(--bordo);
  font: 500 1.75rem/1 var(--fonte-titulo); cursor: pointer; display: grid; place-items: center; padding-bottom: 4px;
  transition: background-color .2s, color .2s, opacity .2s, transform .2s; touch-action: manipulation;
}
.carrossel__seta:hover:not(:disabled) { background: var(--bordo); color: #fff; transform: scale(1.06); }
.carrossel__seta:disabled { opacity: .3; cursor: default; }
.carrossel__trilho {
  display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
  scrollbar-width: none; border-radius: 16px; padding: 4px 2px 8px;
}
.carrossel__trilho::-webkit-scrollbar { display: none; }
.carrossel__trilho:focus-visible { outline-offset: 2px; }

.linha {
  flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always;
  border-radius: 16px; padding: clamp(20px, 3vw, 36px);
  display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 2fr); gap: clamp(20px, 3vw, 40px); align-items: start;
  transition: transform .6s cubic-bezier(.2, .8, .3, 1), opacity .6s;
}
.linha:not(.linha--atual) { transform: scale(.96); opacity: .55; }
.linha--basica { background: #FFFBF8; border: 1px solid var(--linha-fina); }
.linha--essencial { background: #FBF1EC; border: 1px solid var(--linha-fina); }
.linha--premium { background: var(--rose); }
.linha--signature { background: var(--vinho); color: #F3E6DF; }
.linha--signature h3 { color: #fff; }
.linha__info { display: grid; gap: 14px; align-content: start; }
.linha__prefixo { display: block; font-family: var(--fonte-texto); font-size: .9375rem; letter-spacing: .02em; color: var(--dourado-texto); margin-bottom: 4px; }
.linha--signature .linha__prefixo { color: var(--dourado-claro); }
.linha h3 { font-size: clamp(1.875rem, 3vw, 2.5rem); }
.linha__frase { color: var(--tinta-suave); }
.linha--signature :is(.linha__frase, .linha__ideal) { color: #D9C3BA; }
.linha__tamanhos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.linha__tamanhos li { padding: 4px 12px; border-radius: 999px; border: 1.5px solid var(--dourado); color: var(--dourado-texto); font-weight: 500; font-size: .875rem; }
.linha--signature .linha__tamanhos li { border-color: var(--dourado-claro); color: var(--dourado-claro); }
.linha__regra { font-weight: 500; padding: 10px 14px; border-left: 3px solid var(--dourado); background: rgba(184, 137, 58, .1); border-radius: 0 6px 6px 0; font-size: .9375rem; }
.linha__ideal { font-size: .9375rem; color: var(--tinta-suave); }
.linha__preco { font-family: var(--fonte-titulo); font-size: 1.0625rem; color: var(--bordo); }
.linha--signature .linha__preco { color: var(--dourado-claro); }
.linha__botao { justify-self: start; }
.linha--signature .linha__botao { background: var(--dourado-claro); border-color: var(--dourado-claro); color: var(--vinho); }
.linha--signature .linha__botao:hover { background: #fff; border-color: #fff; }

.linha__sabores { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 14px 12px; }
.linha--signature .linha__sabores { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sabor {
  width: 100%; height: 100%; padding: 0; border: 0; background: none; color: inherit; cursor: zoom-in; text-align: left;
  display: grid; grid-template-rows: auto auto 1fr; gap: 6px; font: inherit;
}
.sabor__foto { display: block; border-radius: 12px; background: var(--creme-foto); overflow: visible; }
.sabor__foto img { width: 100%; height: auto; aspect-ratio: 256 / 236; object-fit: cover; border-radius: 12px; }
.sabor__nome { font-weight: 600; font-size: .9375rem; line-height: 1.25; }
.sabor__alergenos { font-size: .75rem; line-height: 1.35; color: var(--tinta-suave); }
.linha--signature .sabor__alergenos { color: #CDB4AA; }
.sabor:hover .sabor__nome { text-decoration: underline; text-decoration-color: var(--dourado); text-underline-offset: 3px; }

@media (max-width: 980px) {
  .linha { grid-template-columns: 1fr; }
  .linha--signature .linha__sabores { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
}
@media (max-width: 600px) {
  .carrossel__barra { gap: 6px; }
  .carrossel__seta { width: 40px; height: 40px; font-size: 1.5rem; }
  .carrossel__nomes { justify-content: flex-start; }
  .carrossel__nome { padding: 8px 12px; font-size: .875rem; }
  .linha { gap: 16px; }
  .linha__info { gap: 10px; }
  .linha__ideal { display: none; }
  .linha { padding: 18px 16px; }
  .linha > * { min-width: 0; }
  .linha h3 { font-size: 1.75rem; }
  .linha__frase { font-size: .9375rem; }
  .linha__regra { padding: 8px 12px; }
  .linha__preco { display: none; }
  .linha__sabores, .linha--signature .linha__sabores { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .sabor { grid-template-columns: 46px minmax(0, 1fr); grid-template-rows: auto; align-items: center; gap: 8px; }
  .sabor__foto, .sabor__foto img { border-radius: 8px; }
  .sabor__nome { font-size: .8125rem; font-weight: 500; }
  .sabor__alergenos { display: none; }
}

/* ----- Aviso para alérgicos ----- */
.aviso-alergicos {
  margin-top: 28px; padding: 18px 22px; border-radius: 12px; border: 1.5px dashed var(--dourado);
  background: rgba(255, 251, 248, .8); display: grid; gap: 6px; font-size: .9375rem; color: var(--tinta-suave); max-width: 860px;
}
.aviso-alergicos h3 { font-family: var(--fonte-texto); font-weight: 600; font-size: 1rem; color: var(--bordo); }

/* ----- Detalhe do sabor (abre pequeno no meio da tela) ----- */
.modal-sabor {
  width: min(92vw, 640px); max-height: min(88vh, 720px); padding: 0; border: 0; border-radius: 18px; overflow: auto;
  background: #FFFBF8; color: var(--tinta); box-shadow: 0 40px 80px -30px rgba(58, 15, 27, .6);
  display: none; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}
.modal-sabor[open] { display: grid; }
.modal-sabor::backdrop { background: rgba(58, 15, 27, .55); backdrop-filter: blur(3px); }
.modal-sabor__foto { background: var(--creme-foto); display: grid; place-items: center; }
.modal-sabor__foto { padding: 16px; }
.modal-sabor__foto img { width: min(100%, 300px); height: auto; aspect-ratio: 512 / 472; object-fit: contain; }   /* nunca maior que a foto aguenta */
.modal-sabor__texto { padding: 26px 24px 22px; display: grid; gap: 8px; align-content: start; }
.modal-sabor__linha { font-size: .8125rem; color: var(--dourado-texto); font-weight: 500; }
.modal-sabor h2 { font-size: 1.5rem; padding-right: 28px; }
.modal-sabor h3 { font-family: var(--fonte-texto); font-weight: 600; font-size: .875rem; color: var(--bordo); margin-top: 8px; }
.modal-sabor p { font-size: .9375rem; color: var(--tinta-suave); }
.modal-sabor__fechar {
  position: absolute; top: 10px; right: 10px; z-index: 1; width: 40px; height: 40px; border-radius: 50%; border: 0;
  background: rgba(255, 251, 248, .92); color: var(--bordo); font-size: 1.625rem; line-height: 1; cursor: pointer;
}
.modal-sabor__fechar:hover { background: var(--bordo); color: #fff; }
.modal-sabor__aviso { font-size: .75rem !important; margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--linha-fina); }
.alergenos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.alergeno { padding: 3px 11px; border-radius: 999px; background: #FBE3D9; color: #7A2A1C; font-size: .8125rem; font-weight: 500; }
.alergeno--amendoim, .alergeno--castanhas, .alergeno--gluten { background: #F6D2C4; }
@media (max-width: 600px) {
  .modal-sabor { grid-template-columns: 1fr; width: min(92vw, 420px); }
  .modal-sabor__foto img { width: min(100%, 220px); }
  .modal-sabor__texto { padding: 18px 18px 18px; }
}
@media (prefers-reduced-motion: no-preference) {
  .modal-sabor[open] { animation: modal-abre .32s cubic-bezier(.2, .9, .3, 1.15); }
  .modal-sabor[open]::backdrop { animation: modal-fundo .3s ease-out; }
  .modal-sabor.fechando { animation: modal-fecha .18s ease-in forwards; }
}
@keyframes modal-abre { from { opacity: 0; transform: scale(.88) translateY(14px); } }
@keyframes modal-fecha { to { opacity: 0; transform: scale(.94); } }
@keyframes modal-fundo { from { opacity: 0; } }

/* ----- Ao rolar: cada bloco sobe e aparece, os itens de dentro em sequência ----- */
.js-anima [data-surge] {
  opacity: 0; transform: translateY(34px);
  transition: opacity .8s ease-out, transform .9s cubic-bezier(.2, .8, .3, 1);
  transition-delay: calc(var(--i, 0) * 70ms);
}
.js-anima [data-surge].visivel { opacity: 1; transform: none; }
.js-anima .linha__sabores li[data-surge] { transform: translateY(18px) scale(.94); }
.js-anima .linha__sabores li[data-surge].visivel { transform: none; }

/* ----- Montador: tamanho do copo, oferta do kit e alérgenos ----- */
.opcao-linha--kit { background: var(--vinho); color: #F3E6DF; border-color: var(--dourado-claro); }
.opcao-linha--kit .opcao-linha__texto { color: #D9C3BA; }
.opcao-linha--kit .opcao-linha__texto strong { color: #fff; }
.opcao-linha--kit .opcao-linha__tamanho { color: var(--dourado-claro); }
.opcao-linha--kit .opcao-linha__fotos img { border-color: var(--vinho); }
.opcao-linha__oferta { font-family: var(--fonte-titulo); color: var(--dourado-claro); font-size: 1.125rem; }
.opcao-linha__oferta s { color: #CDB4AA; font-size: .9375rem; }
.opcao-linha__oferta em { font-style: normal; font-family: var(--fonte-texto); font-weight: 600; font-size: .8125rem; margin-left: 8px; padding: 2px 10px; border-radius: 999px; background: var(--dourado-claro); color: var(--vinho); }
.tamanhos { border: 0; margin: 24px 0 0; padding: 0; min-width: 0; }
.tamanhos legend { font-family: var(--fonte-titulo); font-size: 1.125rem; color: var(--bordo); margin-bottom: 12px; padding: 0; }
.opcoes-tamanho { display: flex; flex-wrap: wrap; gap: 12px; }
.opcao-tamanho { position: relative; display: grid; justify-items: center; gap: 6px; min-width: 110px; padding: 14px 18px 12px; border-radius: 14px; border: 1.5px solid var(--linha-fina); background: #FFFBF8; cursor: pointer; font-weight: 500; color: var(--bordo); }
.opcao-tamanho input { position: absolute; opacity: 0; pointer-events: none; }
.opcao-tamanho:hover { border-color: var(--dourado); }
.opcao-tamanho:has(input:checked) { border-color: var(--dourado); box-shadow: 0 0 0 2px var(--dourado); }
.opcao-tamanho:has(input:focus-visible) { outline: 3px solid var(--dourado); outline-offset: 3px; }
.opcao-tamanho__copo { display: block; width: 34px; height: 30px; background: url(../img/sabores/copo-beijinho.svg) center bottom / contain no-repeat; }
.opcao-tamanho__copo[data-ml="50"] { transform: scale(.75); transform-origin: 50% 100%; }
.opcao-tamanho__copo[data-ml="150"] { transform: scale(1.22); transform-origin: 50% 100%; }
.cartao-sabor__alergenos { font-size: .75rem; color: var(--tinta-suave); line-height: 1.35; }

/* Carrossel (09/11): sem abas; o nome da linha é o título do quadro e as setas ficam nas laterais, no meio da altura */
.carrossel { padding: 0 64px; }
.carrossel__seta { position: absolute; top: 50%; translate: 0 -50%; z-index: 2; }
.carrossel__seta--anterior { left: 0; }
.carrossel__seta--seguinte { right: 0; }
.carrossel__seta:hover:not(:disabled) { transform: none; scale: 1.06; }
.linha__titulo { grid-column: 1 / -1; text-align: center; font-size: clamp(1.875rem, 3.4vw, 2.75rem); padding-bottom: clamp(12px, 2vw, 20px); border-bottom: 1px solid var(--linha-fina); }
.linha--signature .linha__titulo { color: #fff; border-bottom-color: rgba(227, 194, 126, .25); }
@media (max-width: 600px) {
  .carrossel { padding: 0; }
  .carrossel__seta { top: 18px; translate: 0 0; width: 40px; height: 40px; background: rgba(255, 251, 248, .92); }
  .carrossel__seta--anterior { left: 8px; }
  .carrossel__seta--seguinte { right: 8px; }
  .linha__titulo { font-size: 1.625rem; padding: 2px 44px 12px; }
}

/* Aviso para alérgicos (09/11): mesma largura do quadro das linhas, discreto */
.aviso-alergicos { max-width: none; margin: 24px 64px 0; padding: 14px 18px; gap: 4px; border: 1px solid var(--linha-fina); background: rgba(255, 251, 248, .6); font-size: .8125rem; line-height: 1.5; }
.aviso-alergicos h3 { font-size: .875rem; font-weight: 500; color: var(--tinta-suave); }
@media (max-width: 600px) { .aviso-alergicos { margin: 20px 0 0; } }

/* Kit (09/11): as quatro partes com o valor de cada uma */
.kit__partes { list-style: none; margin: 0; padding: 0; width: min(100%, 30em); display: grid; gap: 0; font-size: .9375rem; color: #E2CFC8; }
.kit__partes li { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px dashed rgba(227, 194, 126, .3); }
.kit__partes strong { color: #fff; font-weight: 500; }
.kit__valor { font-family: var(--fonte-titulo); color: var(--dourado-claro); white-space: nowrap; }

/* Preço por doce nos tamanhos de cada linha (09/11) */
.linha__tamanhos li { display: inline-flex; align-items: baseline; gap: 8px; }
.linha__tamanhos strong { font-family: var(--fonte-titulo); font-weight: 600; font-size: 1rem; color: var(--bordo); }
.linha--signature .linha__tamanhos strong { color: #fff; }
.linha__preco { font-family: var(--fonte-texto); font-size: .875rem; color: var(--tinta-suave); }
.linha--signature .linha__preco { color: #D9C3BA; }

/* CPF, cupom e valores no montador; página do Aviso de Privacidade (09/11) */
.campo__ajuda { display: block; margin-top: 4px; font-size: .8125rem; color: var(--tinta-suave); line-height: 1.4; }
.cupom { display: grid; gap: 6px; padding: 14px 16px; border-radius: 12px; border: 1.5px dashed var(--dourado); background: rgba(184, 137, 58, .06); }
.cupom__ajuda { font-size: .875rem; color: var(--tinta-suave); line-height: 1.45; }
.resumo__valores { margin: 10px 0 4px; display: grid; gap: 4px; font-size: .9375rem; }
.resumo__valores div { display: flex; justify-content: space-between; gap: 12px; }
.resumo__valores dt { color: var(--tinta-suave); }
.resumo__valores dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.resumo__total { padding-top: 6px; border-top: 1px solid var(--linha-fina); font-weight: 600; color: var(--bordo); }
.resumo__total dt { color: var(--bordo); }
.resumo__pix { color: var(--tinta-suave); font-size: .9375rem; }
.resumo__nota { font-size: .8125rem; color: var(--tinta-suave); }
.texto-legal h1 { font-size: clamp(1.875rem, 4vw, 2.5rem); }
.texto-legal h2 { font-size: 1.375rem; margin: 28px 0 8px; }
.texto-legal p, .texto-legal li { color: var(--tinta); }
.texto-legal p + p { margin-top: 10px; }
.texto-legal__data { color: var(--tinta-suave); margin: 6px 0 18px; font-size: .9375rem; }
.texto-legal .botao { margin-top: 28px; }
.selo-cupom { display: inline-block; margin-bottom: 10px; padding: 4px 12px; border-radius: 999px; background: #FBE9C8; color: #6B4A12; font-size: .875rem; font-weight: 500; }
.selo-cupom--qtd { background: #EFE3DB; color: var(--tinta-suave); }

/* Faixa "Pegar cupom" no topo da página inicial (09/11) */
.faixa-cupom { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 14px; padding: 8px var(--gutter);
  background: linear-gradient(90deg, var(--dourado-claro), #F1D9A4, var(--dourado-claro)); color: var(--vinho); font-size: .9375rem; text-align: center; }
.faixa-cupom p { margin: 0; }
.faixa-cupom strong { font-weight: 600; }
.faixa-cupom__codigo { letter-spacing: .04em; }
.faixa-cupom__botao, .faixa-cupom__usar { min-height: 34px; padding: 5px 16px; border-radius: 999px; font: 600 .875rem/1.2 var(--fonte-texto); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; }
.faixa-cupom__botao { border: 1.5px solid var(--vinho); background: var(--vinho); color: var(--dourado-claro); }
.faixa-cupom__botao:hover { background: var(--bordo); border-color: var(--bordo); }
.faixa-cupom__usar { border: 1.5px solid var(--vinho); color: var(--vinho); background: transparent; }
.faixa-cupom__usar:hover { background: var(--vinho); color: var(--dourado-claro); }

/* Janela de horário da entrega/retirada no montador (09/11) */
.janelas { border: 0; margin: 24px 0 0; padding: 0; min-width: 0; }
.janelas legend { font-family: var(--fonte-titulo); font-size: 1.125rem; color: var(--bordo); margin-bottom: 4px; padding: 0; }
.janelas__dia { font-size: .9375rem; color: var(--tinta-suave); margin-bottom: 12px; }
.opcoes-janela { display: flex; flex-wrap: wrap; gap: 10px; }
.opcao-janela { position: relative; display: inline-flex; align-items: center; min-height: 48px; padding: 10px 18px; border-radius: 999px; border: 1.5px solid var(--linha-fina); background: #FFFBF8; cursor: pointer; font-weight: 500; color: var(--bordo); }
.opcao-janela input { position: absolute; opacity: 0; pointer-events: none; }
.opcao-janela:hover { border-color: var(--dourado); }
.opcao-janela:has(input:checked) { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.opcao-janela:has(input:focus-visible) { outline: 3px solid var(--dourado); outline-offset: 3px; }

/* Aprovação do pedido no painel (09/11) */
.selo--em_analise { background: #F7D7A8; color: #6B3A08; }
.selo--recusado { background: #F3D3CF; color: #7A2A1C; }
.bloco-aprovacao { border: 2px solid var(--dourado); background: #FFF8EC; }
.bloco-aprovacao > p { color: var(--tinta-suave); }
.agenda-dia { margin: 12px 0; padding: 12px 14px; border-radius: 10px; background: #fff; border: 1px solid var(--linha-fina); }
.agenda-dia__resumo { font-weight: 500; color: var(--bordo); }
.agenda-dia__lista { margin: 8px 0 0; padding-left: 18px; font-size: .9375rem; display: grid; gap: 4px; }
.recusa { margin-top: 12px; display: grid; gap: 10px; }

.selo--em_espera { background: #E9DDF3; color: #4B2A6B; }
.bloco-espera { border-color: #B79BD0; background: #FBF7FE; }
.recusa__titulo { font-weight: 500; color: var(--bordo); }
.motivos { display: flex; flex-wrap: wrap; gap: 8px; }
.motivo { position: relative; display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--linha-fina); background: #fff; cursor: pointer; font-size: .9375rem; }
.motivo input { position: absolute; opacity: 0; pointer-events: none; }
.motivo:has(input:checked) { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.motivo:has(input:focus-visible) { outline: 3px solid var(--dourado); outline-offset: 3px; }

/* Agenda no montador: a data serve? próximas datas livres (09/11) */
.data-status { font-size: .9375rem; font-weight: 500; min-height: 1.4em; }
.data-status--ok { color: #24552A; }
.data-status--erro { color: #9A2B1C; }
.datas-livres { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.datas-livres__titulo { width: 100%; font-size: .875rem; color: var(--tinta-suave); }
.data-livre { min-height: 40px; padding: 6px 14px; border-radius: 999px; border: 1.5px solid var(--linha-fina); background: #FFFBF8; color: var(--bordo); font: 500 .9375rem/1.2 var(--fonte-texto); cursor: pointer; text-transform: capitalize; }
.data-livre:hover { border-color: var(--dourado); }
.data-livre[aria-pressed="true"] { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.agenda-dia__capacidade { margin-top: 4px; font-size: .9375rem; color: var(--tinta-suave); }

/* Calendário do montador: só as datas disponíveis podem ser clicadas (09/11) */
.campo--calendario { display: grid; gap: 8px; }
.calendario { width: min(100%, 420px); padding: 14px; border-radius: 14px; border: 1.5px solid var(--linha-fina); background: #FFFBF8; }
.cal__topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.cal__mes { font-family: var(--fonte-titulo); font-weight: 500; font-size: 1.125rem; color: var(--bordo); text-transform: capitalize; }
.cal__seta { width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--linha-fina); background: #fff; color: var(--bordo); font-size: 1.5rem; line-height: 1; cursor: pointer; padding-bottom: 3px; }
.cal__seta:hover:not(:disabled) { border-color: var(--dourado); }
.cal__seta:disabled { opacity: .3; cursor: default; }
.cal__semana, .cal__grade { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cal__semana span { text-align: center; font-size: .75rem; color: var(--tinta-suave); text-transform: uppercase; letter-spacing: .04em; padding-bottom: 4px; }
.cal__dia { aspect-ratio: 1; min-height: 38px; border-radius: 10px; border: 1.5px solid rgba(184, 137, 58, .55); background: #fff; color: var(--bordo); font: 600 .9375rem/1 var(--fonte-texto); cursor: pointer; font-variant-numeric: tabular-nums; }
.cal__dia:hover:not(:disabled) { background: var(--rose); }
.cal__dia[aria-pressed="true"] { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.cal__dia:disabled { border-color: transparent; background: transparent; color: #C9BAB3; font-weight: 400; text-decoration: line-through; text-decoration-color: rgba(107, 80, 73, .35); cursor: not-allowed; }
.cal__legenda { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 10px; font-size: .8125rem; color: var(--tinta-suave); }
.cal__ponto { display: inline-block; width: 12px; height: 12px; border-radius: 4px; }
.cal__ponto--livre { background: #fff; border: 1.5px solid rgba(184, 137, 58, .55); }
.cal__ponto--fechado { background: #EDE3DE; }
.cal__carregando { margin-left: auto; font-style: italic; }

/* Etiquetas dos copos: só aparecem na impressão (A4, 3 × 7 etiquetas de 63,5 × 38,1 mm) (09/11) */
.impressao { display: none; }
@media print {
  @page { size: A4; margin: 15.1mm 7.2mm; }
  body.painel { background: #fff !important; }
  body.painel > *:not(.impressao) { display: none !important; }
  .impressao { display: block !important; }
  .folha-etiquetas { display: grid; grid-template-columns: repeat(3, 63.5mm); grid-auto-rows: 38.1mm; column-gap: 2.5mm; break-after: page; }
  .folha-etiquetas:last-child { break-after: auto; }
  .etiqueta { box-sizing: border-box; padding: 1.6mm 2.2mm; overflow: hidden; font-family: var(--fonte-texto); color: #000; display: flex; flex-direction: column; gap: .35mm; }
  .etiqueta p { margin: 0; line-height: 1.18; }
  .etiqueta__nome { font-family: var(--fonte-titulo); font-weight: 600; font-size: 8.5pt; color: #5C1A2B; }
  .etiqueta__linha { font-size: 5.6pt; color: #444; }
  .etiqueta__ingredientes { font-size: 5.2pt; }
  .etiqueta__alerta { font-size: 5.4pt; font-weight: 700; }
  .etiqueta__pode { font-size: 5pt; font-weight: 600; }
  .etiqueta__datas { display: flex; justify-content: space-between; gap: 1mm; font-size: 5.6pt; font-weight: 700; margin-top: auto !important; }
  .etiqueta__rodape { font-size: 4.6pt; color: #333; }
}

/* Lacres: fita 25 × 120 mm por cima da tampa, 14 por folha A4 de papel adesivo inteiro (09/11) */
@media print {
  .folha-lacres { display: grid; grid-template-columns: repeat(7, 25mm); grid-auto-rows: 120mm; gap: 3mm 2.5mm; break-after: page; }
  .folha-lacres:last-child { break-after: auto; }
  .lacre { box-sizing: border-box; display: grid; grid-template-rows: 1fr 34mm 1fr; background: #5C1A2B; color: #F3E6DF; outline: .2mm dashed #999; -webkit-print-color-adjust: exact; print-color-adjust: exact; overflow: hidden; }
  .lacre__meio { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.5mm; border-top: .4mm solid #B8893A; border-bottom: .4mm solid #B8893A; }
  .lacre__meio img { width: 11mm; height: auto; }
  .lacre__meio .lacre__nome { width: 21mm; }
  .lacre__ponta { display: flex; align-items: center; justify-content: center; }
  .lacre__ponta p { writing-mode: vertical-rl; transform: rotate(180deg); margin: 0; display: flex; flex-direction: column; align-items: center; gap: 1.2mm; font-family: var(--fonte-texto); font-size: 6.4pt; letter-spacing: .06em; text-align: center; white-space: nowrap; }
  .lacre__ponta strong { color: #E3C27E; font-weight: 600; }
  .lacre__ponta--datas p { transform: none; font-weight: 600; }
  .lacre__lote { font-size: 5pt; font-weight: 400; opacity: .85; }
}

/* Selo de qualidade sobre a bandeja da abertura (09/11) */
.bandeja { position: relative; }
.selo-qualidade {
  position: absolute; top: -26px; right: -14px; z-index: 3; width: 122px; aspect-ratio: 1; border-radius: 50%;
  display: grid; place-content: center; justify-items: center; text-align: center; gap: 1px; padding: 14px;
  background: radial-gradient(circle at 30% 25%, #F3DDAA, var(--dourado-claro) 55%, var(--dourado));
  color: var(--vinho); box-shadow: 0 10px 24px -10px rgba(58, 15, 27, .55), inset 0 0 0 4px rgba(255, 255, 255, .35), inset 0 0 0 6px rgba(138, 100, 32, .5);
  transform: rotate(-8deg); font-family: var(--fonte-texto);
}
.selo-qualidade__topo { font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }
.selo-qualidade__meio { font-family: var(--fonte-titulo); font-weight: 600; font-size: 1.25rem; line-height: 1; }
.selo-qualidade__base { font-size: .625rem; line-height: 1.2; font-weight: 500; max-width: 92px; }
@media (max-width: 860px) { .selo-qualidade { width: 104px; top: -18px; right: -6px; } .selo-qualidade__meio { font-size: 1.0625rem; } }
@media (prefers-reduced-motion: no-preference) { .selo-qualidade { animation: selo-entra .7s cubic-bezier(.3, 1.4, .5, 1) 1.4s both; } }
@keyframes selo-entra { from { opacity: 0; transform: rotate(-30deg) scale(.6); } }
html.com-intro:not(.intro-solta) .selo-qualidade { animation-play-state: paused; }
@media print {
  .lacre__ponta--qr { flex-direction: column; gap: 1.5mm; }
  .lacre__qr { width: 19mm; height: 19mm; border-radius: 1mm; }
  .lacre__peca { writing-mode: horizontal-tb !important; transform: none !important; font-family: var(--fonte-titulo); font-size: 6.4pt; color: #E3C27E; letter-spacing: .04em; margin: 0; }
  .lacre__ponta--datas p { gap: .9mm; }
  .lacre__ponta--datas strong { font-size: 5.6pt; }
}
/* Calendário mais compacto (09/11) */
.calendario { width: min(100%, 320px); padding: 10px 12px; }
.cal__topo { margin-bottom: 6px; }
.cal__mes { font-size: 1rem; }
.cal__seta { width: 32px; height: 32px; font-size: 1.25rem; }
.cal__semana, .cal__grade { gap: 3px; }
.cal__semana span { font-size: .6875rem; padding-bottom: 2px; }
.cal__dia { aspect-ratio: auto; min-height: 0; height: 34px; border-radius: 8px; font-size: .875rem; }
.cal__legenda { margin-top: 8px; font-size: .75rem; }
/* Selo menor e mais alto, sem cobrir o doce do canto (09/11) */
.selo-qualidade { width: 100px; top: -84px; right: -22px; padding: 10px; }
.selo-qualidade__topo { font-size: .5625rem; }
.selo-qualidade__meio { font-size: 1.0625rem; }
.selo-qualidade__base { font-size: .5625rem; max-width: 76px; }
@media (max-width: 860px) { .selo-qualidade { width: 86px; top: -66px; right: -4px; } .selo-qualidade__meio { font-size: .9375rem; } }

/* "30% off" sem quebrar; contador dentro do cartão do sabor; resumo da distribuição (10/11) */
.opcao-linha__oferta em { white-space: nowrap; display: inline-block; }
.opcao-linha__oferta { line-height: 1.5; }
.contador--cartao { margin-top: 8px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.contador--cartao .contador__botao { width: 40px; height: 40px; }
.cartao-sabor__qtd { margin-top: 8px; font-weight: 600; color: var(--bordo); text-align: center; }
.distribuicao:has(#distribuicao-lista:empty) .distribuicao__cabeca h3 { display: none; }
.distribuicao:has(#distribuicao-lista:empty) { padding-top: 14px; padding-bottom: 14px; }

/* Bolo de corte no montador (10/11): cartão de recheio inteiro clicável; massa e fatias por cima do clique */
.bolo-escolha { margin-top: 18px; }
.cartao-bolo { padding-right: 44px; }
.cartao-bolo__marcar { cursor: pointer; }
.cartao-bolo__marcar::before { content: ''; position: absolute; inset: 0; border-radius: inherit; }
.cartao-bolo:has(.cartao-bolo__marcar input:disabled) .cartao-bolo__marcar { cursor: not-allowed; }
.cartao-bolo__massa, .cartao-bolo .contador--cartao { position: relative; z-index: 1; }
.cartao-bolo__massa { border: 0; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.cartao-bolo__massa legend { font-size: .8125rem; font-weight: 600; color: var(--bordo); margin-bottom: 4px; padding: 0; }
.opcao-massa { position: relative; display: inline-flex; align-items: center; min-height: 40px; padding: 6px 14px; border-radius: 999px; border: 1.5px solid var(--linha-fina); background: #fff; cursor: pointer; font-size: .875rem; font-weight: 500; color: var(--bordo); }
.opcao-massa:has(input:checked) { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.opcao-massa:has(input:focus-visible) { outline: 3px solid var(--dourado); outline-offset: 2px; }
.cartao-bolo .contador--cartao { justify-content: flex-start; }
.opcao-linha--bolo { background: #FFFBF8; border-style: dashed; }

/* ===================== Pronta entrega (10/11) ===================== */
.pronta { max-width: 1040px; }
.pronta__intro { max-width: 62ch; color: var(--tinta-suave); margin-top: 10px; }
.pronta__status { margin: 18px 0; padding: 14px 18px; border-radius: 14px; background: var(--rose); color: var(--bordo); font-weight: 500; }
.pronta__status[hidden] { display: none; }
.pronta__grupo { margin-top: 28px; }
.pronta__grupo h2 { font-size: 1.375rem; margin-bottom: 12px; }
.pronta__grade { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.item-pronta { display: grid; gap: 6px; align-content: start; padding: 10px 10px 14px; border-radius: 14px; background: #FFFBF8; border: 1.5px solid var(--linha-fina); }
.item-pronta img { width: 100%; height: auto; aspect-ratio: 640 / 590; object-fit: cover; border-radius: 10px; background: var(--creme-foto); }
.item-pronta--no-carrinho { border-color: var(--dourado); box-shadow: 0 0 0 2px var(--dourado); }
.item-pronta--esgotado { opacity: .55; }
.item-pronta__nome { font-family: inherit; font-size: 1rem; font-weight: 600; line-height: 1.3; color: var(--bordo); }
.item-pronta__desc { font-size: .875rem; line-height: 1.45; color: var(--tinta-suave); }
.item-pronta__alergenos { font-size: .75rem; color: var(--tinta-suave); }
.item-pronta__preco { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-weight: 600; color: var(--bordo); font-variant-numeric: tabular-nums; }
.item-pronta__disp { font-size: .8125rem; font-weight: 500; color: var(--dourado); }
.item-pronta .contador--cartao, .item-pronta > .botao { justify-self: start; margin-top: 4px; }
.pronta__alergicos { margin-top: 24px; font-size: .8125rem; color: var(--tinta-suave); max-width: 70ch; }
.pronta__form { margin-top: 24px; display: grid; gap: 18px; }
.pronta__form h2 { font-size: 1.5rem; }
.resumo__sabores li span:last-child:not(:first-child) { margin-left: auto; font-variant-numeric: tabular-nums; }
.opcao-simples--desligada { opacity: .6; cursor: not-allowed; }
.pronta__acoes { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; }
.pronta__barra {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px var(--gutter) calc(12px + env(safe-area-inset-bottom)); background: #FFFBF8; border-top: 1px solid var(--linha-fina);
  box-shadow: 0 -6px 24px rgba(58, 15, 27, .08);
}
.pronta__barra[hidden] { display: none; }
.pronta__barra-texto { font-weight: 600; color: var(--bordo); font-variant-numeric: tabular-nums; }
body.com-barra { padding-bottom: 84px; }

/* Página inicial: três jeitos de pedir, bolo de corte e pronta entrega (10/11) */
.jeitos { max-width: var(--largura); margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--gutter) 0; scroll-margin-top: 80px; }
.jeitos h2 { margin-bottom: 18px; }
.jeitos__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 14px; }
.jeito { display: grid; gap: 10px; align-content: start; padding: 22px; border-radius: 18px; border: 1px solid var(--linha-fina); background: #FFFBF8; }
.jeito h3 { font-size: 1.25rem; color: var(--bordo); }
.jeito p { color: var(--tinta-suave); }
.jeito .botao { justify-self: start; margin-top: 6px; }
.jeito--evento { background: var(--vinho); border-color: var(--vinho); color: #F3E6DF; }
.jeito--evento h3 { color: #fff; }
.jeito--evento p { color: #D9C3BA; }
.jeito__quando { font-size: .8125rem; font-weight: 600; color: var(--dourado); }
@media (max-width: 860px) { .jeitos__lista { grid-template-columns: 1fr; } }
.bolo-vitrine { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 24px; align-items: start; }
.bolo-vitrine h3 { font-size: 1.125rem; margin-bottom: 8px; }
.bolo-vitrine__recheios { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.bolo-vitrine__recheios li { padding: 8px 14px; border-radius: 999px; background: #FFFBF8; border: 1px solid var(--linha-fina); color: var(--bordo); font-weight: 500; }
.bolo-vitrine__acoes { margin-top: 22px; }
@media (max-width: 720px) { .bolo-vitrine { grid-template-columns: 1fr; } }
.pronta-vitrine { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.pronta-vitrine li { display: grid; gap: 6px; font-size: .875rem; font-weight: 500; color: var(--bordo); }
.pronta-vitrine img { width: 100%; height: auto; aspect-ratio: 640 / 590; object-fit: cover; border-radius: 10px; background: var(--creme-foto); }

/* Painel: pronta entrega, estoque e tipo do pedido (10/11) */
.selo--aguardando_pagamento { background: #FBE3B8; color: #6B4310; }
.tipo-pedido { display: inline-block; margin-right: 6px; padding: 1px 8px; border-radius: 999px; font-size: .75rem; font-weight: 600; vertical-align: 1px; }
.tipo-pedido--pronta { background: var(--bordo); color: #fff; }
.tipo-pedido--degustacao { background: var(--dourado-claro); color: var(--vinho); }
.resumo__credito { color: var(--tinta-suave); font-size: .9375rem; }
/* Degustação no celular: sabores em lista compacta (foto redonda ao lado do nome) */
@media (max-width: 640px) {
  #dg-sabores .grade-sabores { grid-template-columns: 1fr; gap: 8px; }
  #dg-sabores .cartao-sabor { grid-template-columns: 52px minmax(0, 1fr); column-gap: 12px; row-gap: 1px; align-items: center; padding: 8px 40px 8px 8px; }
  #dg-sabores .cartao-sabor img { grid-row: 1 / span 2; width: 52px; height: 52px; aspect-ratio: 1; margin: 0; border-radius: 50%; }
  #dg-sabores .cartao-sabor:has(input:checked)::after { top: 50%; right: 10px; transform: translateY(-50%); width: 22px; height: 22px; font-size: .75rem; }
}
.painel-tipo { min-width: 0; }
.alerta-pronta { margin: 0; padding: 12px var(--gutter); background: #F7D7A8; color: #4A2606; border-bottom: 1px solid rgba(107, 58, 8, .25); }
.alerta-pronta[hidden] { display: none; }
.alerta-pronta__titulo { font-weight: 700; }
.alerta-pronta__lista { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 2px; }
.alerta-pronta__lista a { color: inherit; font-weight: 600; }
.alerta-pronta__atrasado { color: #8A1C1C; }
.alerta-pronta .botao-texto--claro { color: #4A2606; margin-top: 6px; }
.bloco-aprovacao--atrasado { border-color: #B23A3A; box-shadow: 0 0 0 2px #B23A3A; }
.estoque__geral { display: grid; gap: 12px; }
.estoque__chave { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.estoque__chave input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--bordo); flex: none; }
.estoque__chave span { display: grid; gap: 2px; }
.estoque__chave small, .estoque__nome small { color: var(--tinta-suave); font-size: .8125rem; }
.estoque__lista { list-style: none; margin: 12px 0 16px; padding: 0; display: grid; gap: 8px; }
.estoque__item { display: grid; grid-template-columns: minmax(0, 1.6fr) auto minmax(90px, .6fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; background: #FFFBF8; border: 1px solid var(--linha-fina); }
.estoque__nome { display: grid; font-weight: 600; color: var(--bordo); }
.estoque__campo { display: grid; gap: 2px; }
.estoque__rotulo { font-size: .75rem; color: var(--tinta-suave); }
.estoque__qtd { width: 64px; text-align: center; font: inherit; padding: 6px; border: 1px solid var(--linha-fina); border-radius: 8px; font-variant-numeric: tabular-nums; }
.estoque__preco { width: 100%; font: inherit; padding: 8px; border: 1px solid var(--linha-fina); border-radius: 8px; }
.estoque__campo--ativo { display: flex; gap: 6px; align-items: center; cursor: pointer; }
.estoque__campo--ativo input { width: 20px; height: 20px; accent-color: var(--bordo); }
.estoque__item .contador--cartao { margin-top: 0; justify-content: flex-start; }
@media (max-width: 640px) { .estoque__item { grid-template-columns: 1fr 1fr; } .estoque__nome { grid-column: 1 / -1; } }
/* Ajuste de espaçamento do "Como você quer pedir?" (10/11): respiro igual em cima e embaixo; botões alinhados no pé do cartão */
.jeitos { padding-top: clamp(8px, 2vw, 24px); padding-bottom: clamp(48px, 7vw, 88px); }
.jeito { display: flex; flex-direction: column; gap: 10px; }
.jeito .botao { margin-top: auto; align-self: flex-start; }
.jeito p { margin-bottom: 8px; }
/* Linhas e sabores (10/11): cabeçalho centralizado no eixo do carrossel e mais perto dele */
#linhas { padding-top: clamp(48px, 6vw, 80px); }
#linhas .secao__cabeca { max-width: 880px; margin: 0 auto clamp(24px, 3vw, 32px); text-align: center; }
#linhas .secao__cabeca p { max-width: 60ch; margin-left: auto; margin-right: auto; }

/* ===== Paginação inspirada nas referências do Matheus (10/11): ondas, forma orgânica, faixa rosada, títulos centralizados ===== */
:root { --onda: clamp(22px, 3.6vw, 48px); }
/* Faixas escuras com bordas em onda (a página aparece por trás, com o mesmo fundo de doces) */
.kit {
  -webkit-mask: url(../img/ondas/topo.svg) top / 100% var(--onda) no-repeat, linear-gradient(#000 0 0) center / 100% calc(100% - 2 * var(--onda) + 2px) no-repeat, url(../img/ondas/base.svg) bottom / 100% var(--onda) no-repeat;
          mask: url(../img/ondas/topo.svg) top / 100% var(--onda) no-repeat, linear-gradient(#000 0 0) center / 100% calc(100% - 2 * var(--onda) + 2px) no-repeat, url(../img/ondas/base.svg) bottom / 100% var(--onda) no-repeat;
}
.kit::before { top: calc(var(--onda) + 8px); }
.kit__dentro { padding-top: calc(var(--onda) + clamp(48px, 6vw, 80px)); padding-bottom: calc(var(--onda) + clamp(40px, 5vw, 64px)); }
.convite {
  padding-top: calc(var(--onda) + clamp(48px, 7vw, 88px));
  -webkit-mask: url(../img/ondas/topo.svg) top / 100% var(--onda) no-repeat, linear-gradient(#000 0 0) bottom / 100% calc(100% - var(--onda) + 1px) no-repeat;
          mask: url(../img/ondas/topo.svg) top / 100% var(--onda) no-repeat, linear-gradient(#000 0 0) bottom / 100% calc(100% - var(--onda) + 1px) no-repeat;
}

/* Abertura: a bandeja sobre uma forma orgânica rosada, com um contorno dourado deslocado (o fio da marca) */
.bandeja { isolation: isolate; }
.bandeja::before, .bandeja::after { content: ''; position: absolute; z-index: -1; pointer-events: none; }
.bandeja::before { inset: -9% -7% 4% -8%; background: var(--rose); border-radius: 58% 42% 52% 48% / 46% 54% 46% 54%; }
.bandeja::after { inset: -13% -3% 0 -12%; border: 1.5px solid var(--dourado); border-radius: 44% 56% 40% 60% / 58% 42% 58% 42%; opacity: .7; }
@media (max-width: 860px) { .bandeja::before { inset: -5% -4% 6% -4%; } .bandeja::after { inset: -8% -2% 2% -6%; } }

/* Títulos das seções centralizados, como nas referências */
.secao__cabeca, .jeitos h2 { margin-left: auto; margin-right: auto; text-align: center; }
.secao__cabeca p { margin-left: auto; margin-right: auto; max-width: 60ch; }

/* Bolo de corte: conteúdo centralizado */
#bolo { display: grid; justify-items: center; }
#bolo .bolo-vitrine { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 20px; width: 100%; max-width: 820px; }
#bolo .lista-simples { list-style: none; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; }
#bolo .lista-simples li::before { display: none; }
#bolo .bolo-vitrine__recheios { justify-content: center; }

/* Pronta entrega: faixa rosada de ponta a ponta, com ondas, e cada item num arco */
#pronta {
  max-width: none; display: grid; justify-items: center; background: var(--rose);
  padding: calc(var(--onda) + clamp(40px, 6vw, 72px)) max(var(--gutter), calc((100% - var(--largura)) / 2 + var(--gutter)));
  -webkit-mask: url(../img/ondas/topo.svg) top / 100% var(--onda) no-repeat, linear-gradient(#000 0 0) center / 100% calc(100% - 2 * var(--onda) + 2px) no-repeat, url(../img/ondas/base.svg) bottom / 100% var(--onda) no-repeat;
          mask: url(../img/ondas/topo.svg) top / 100% var(--onda) no-repeat, linear-gradient(#000 0 0) center / 100% calc(100% - 2 * var(--onda) + 2px) no-repeat, url(../img/ondas/base.svg) bottom / 100% var(--onda) no-repeat;
}
#pronta .pronta-vitrine { width: 100%; max-width: 1040px; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: 14px; margin-bottom: 28px; }
#pronta .pronta-vitrine li { justify-items: center; text-align: center; padding: 12px 12px 16px; background: #FFFBF8; border-radius: 999px 999px 22px 22px; line-height: 1.3; }
#pronta .pronta-vitrine img { width: 86%; aspect-ratio: 1; border-radius: 50%; }
/* Menu do topo com 7 links: nunca quebra o texto; em telas médias, esconde os menos usados */
.topo__menu { gap: clamp(14px, 1.6vw, 24px); }
.topo__menu a { white-space: nowrap; }
@media (max-width: 1240px) { .topo__menu a[href="#como-funciona"], .topo__menu a[href="#degustacao"] { display: none; } }
/* Contorno dourado da abertura não passa por cima da legenda */
.bandeja::after { bottom: 9%; }
#pronta .pronta-vitrine { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 820px; }
@media (max-width: 560px) { #pronta .pronta-vitrine { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kit::before { display: none; }   /* a onda substitui a trança reta no topo do kit */

/* Montador: primeiro passo "O que você quer pedir?" (10/11) */
.tipos { display: grid; gap: 22px; margin-top: 18px; }
.tipos__grupo { border: 0; margin: 0; padding: 0; min-width: 0; }
.tipos__legenda { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 0; margin-bottom: 10px; font-family: var(--fonte-titulo); font-size: 1.125rem; color: var(--bordo); }
.tipos__legenda span { font-family: var(--fonte-texto); font-size: .875rem; color: var(--dourado-texto); font-weight: 500; }
.tipos__opcoes { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 560px) { .tipos__opcoes { grid-template-columns: 1fr; } }
.opcao-tipo { position: relative; display: grid; grid-template-columns: 96px 1fr; gap: 14px; align-items: center; padding: 12px; border-radius: 16px; background: #FFFBF8; border: 1.5px solid var(--linha-fina); color: inherit; text-decoration: none; cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.opcao-tipo input { position: absolute; opacity: 0; pointer-events: none; }
.opcao-tipo img { width: 96px; height: 96px; object-fit: cover; border-radius: 50%; background: var(--creme-foto); }
.opcao-tipo__texto { display: grid; gap: 4px; }
.opcao-tipo__texto strong { font-size: 1.0625rem; color: var(--bordo); }
.opcao-tipo__texto span { font-size: .875rem; line-height: 1.45; color: var(--tinta-suave); }
.opcao-tipo:hover { border-color: var(--dourado); }
.opcao-tipo:has(input:checked) { border-color: var(--dourado); box-shadow: 0 0 0 2px var(--dourado); }
.opcao-tipo:has(input:focus-visible), a.opcao-tipo:focus-visible { outline: 3px solid var(--dourado); outline-offset: 3px; }

/* Vitrine da abertura com setas (10/11): doces para eventos, doces avulsos, sanduíches e bolo de corte */
.vitrine-topo { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: 10px; margin-bottom: 8px; }
.vitrine-topo__titulo { display: grid; justify-items: center; text-align: center; gap: 2px; min-height: 3.2em; align-content: center; }
.vitrine-topo__titulo strong { font-family: var(--fonte-titulo); font-weight: 500; font-size: clamp(1.25rem, 2.2vw, 1.625rem); color: var(--bordo); line-height: 1.15; }
.vitrine-topo__titulo span { font-size: .875rem; color: var(--dourado-texto); font-weight: 500; }
.vitrine-topo__seta { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--dourado); background: #FFFBF8; color: var(--bordo); font-size: 1.625rem; line-height: 1; display: grid; place-items: center; cursor: pointer; transition: background .2s, color .2s; }
.vitrine-topo__seta span { margin-top: -3px; }
.vitrine-topo__seta:hover { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.vitrine-topo__seta:focus-visible { outline: 3px solid var(--dourado); outline-offset: 3px; }
.vitrine-pontos { display: flex; justify-content: center; gap: 4px; margin-bottom: 14px; }
.vitrine-pontos__ponto { width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
.vitrine-pontos__ponto::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var(--linha-fina); transition: width .25s, background .25s; }
.vitrine-pontos__ponto[aria-pressed="true"]::before { width: 22px; background: var(--dourado); }
.vitrine-pontos__ponto:focus-visible { outline: 2px solid var(--dourado); outline-offset: 1px; border-radius: 6px; }
/* As quatro telas ocupam o mesmo lugar (a altura não pula); só a ativa aparece */
.bandeja__telas { position: relative; display: grid; }
.bandeja__telas > .vitrine-tela { grid-area: 1 / 1; align-self: center; opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility 0s linear .35s; }
.bandeja__telas > .vitrine-tela--ativa { opacity: 1; visibility: visible; transition: opacity .35s ease; }
.bandeja__fundo--avulsos { grid-template-columns: repeat(3, 1fr); }
.bandeja__fundo--sanduiches { grid-template-columns: repeat(2, 1fr); }
.bandeja__fundo--bolo { grid-template-columns: 1fr; width: 66%; justify-self: center; }
.bandeja[data-tela]:not([data-tela="eventos"]) .selo-qualidade { opacity: 0; visibility: hidden; transition: opacity .3s; }
.bandeja figcaption a { color: var(--bordo); font-weight: 600; text-decoration-color: var(--dourado); text-underline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .bandeja__telas > .vitrine-tela { transition: none; } }
/* Selo "Feito na véspera" no canto de baixo do quadro, longe das setas (10/11) */
.selo-qualidade { top: auto; bottom: -34px; right: -14px; }
.bandeja figcaption { margin-top: 18px; padding-right: 118px; text-align: left; min-height: 3em; }
@media (max-width: 860px) {
  .selo-qualidade { top: auto; bottom: -30px; right: -6px; }
  .bandeja figcaption { padding-right: 104px; }
}
/* Detalhe do item: o texto do topo não passa por baixo do botão fechar (10/11) */
.modal-sabor__linha, .modal-sabor__texto h2 { padding-right: 48px; }
/* Abertura cabe numa tela só em notebooks (telas largas e baixas) (10/11) */
@media (min-width: 861px) and (max-height: 860px) {
  .abertura { padding-top: clamp(14px, 3vh, 36px); padding-bottom: 20px; }
  .abertura h1 { font-size: clamp(2.25rem, 7.2vh, 4rem); }
  .abertura__fio { margin-top: 12px; }
  .abertura__resumo { margin-top: 10px; }
  .abertura__acoes { margin-top: 20px; }
  .fatos { margin-top: 22px; padding-top: 14px; }
  .vitrine-topo { margin-bottom: 0; }
  .vitrine-topo__titulo { min-height: 0; }
  .vitrine-pontos { margin-bottom: 6px; }
  .bandeja figcaption { margin-top: 10px; }
  .bandeja { width: min(100%, calc((100vh - 290px) * 1.3)); justify-self: center; }
}
/* Notebook: a abertura ocupa a tela inteira abaixo do menu (nem corta a bandeja, nem mostra a seção seguinte) (10/11) */
@media (min-width: 861px) and (max-height: 860px) {
  .abertura { min-height: calc(100vh - var(--altura-topo, 112px)); min-height: calc(100svh - var(--altura-topo, 112px)); padding-top: clamp(24px, 5vh, 48px); padding-bottom: clamp(24px, 5vh, 48px); align-content: center; }
  .abertura h1 { font-size: clamp(2.25rem, 7.8vh, 4rem); }
}
@media (min-width: 861px) and (max-height: 860px) { .jeitos { padding-top: 56px; } }
/* Notebook: vitrine um pouco mais baixa para o contorno dourado e a forma rosada não encostarem no menu (10/11) */
@media (min-width: 861px) and (max-height: 860px) {
  .bandeja { margin-top: clamp(28px, 5vh, 48px); }
  .bandeja::before { top: -6%; }
  .bandeja::after { top: -8%; }
}
/* Montador no notebook (telas largas e baixas): o primeiro passo cabe sem barra de rolagem (10/11) */
@media (min-width: 861px) and (max-height: 860px) {
  .pagina-montador .montador { padding-top: clamp(14px, 3vh, 28px); }
  .pagina-montador .montador__cabeca h1 { font-size: clamp(1.75rem, 5.4vh, 2.5rem); }
  .pagina-montador .montador__passo { margin-top: 2px; }
  [data-etapa="tipo"] h2 { font-size: clamp(1.375rem, 4vh, 1.875rem); }
  .tipos { gap: 12px; margin-top: 10px; }
  .tipos__legenda { margin-bottom: 6px; }
  .opcao-tipo { grid-template-columns: 76px 1fr; padding: 10px 12px; }
  .opcao-tipo img { width: 76px; height: 76px; }
  .opcao-tipo__texto span { line-height: 1.4; }
}
@media (min-width: 861px) and (max-height: 700px) {
  .pagina-montador .montador__progresso { margin-bottom: 16px; }
  .pagina-montador .montador__navegacao { margin-top: 8px; }
  .tipos { gap: 8px; }
}

/* Montador no computador (10/11): linhas em duas colunas, copo colado no cartão escolhido, sabores em cartões horizontais */
.linha-escolha { display: grid; min-width: 0; }
.linha-escolha > .tamanhos {
  margin: 0; padding: 12px 16px 14px; border: 2px solid var(--dourado); border-top: 0; border-radius: 0 0 14px 14px;
  background: #FFF4E6; box-shadow: 0 10px 20px -16px rgba(58, 15, 27, .5);
}
.linha-escolha--com-copo > .opcao-linha { border-radius: 14px 14px 0 0; }
.linha-escolha > .tamanhos legend { float: left; width: 100%; font-size: 1rem; margin-bottom: 8px; }
.linha-escolha > .tamanhos legend + * { clear: both; }
.linha-escolha .opcoes-tamanho { gap: 8px; }
.linha-escolha .opcao-tamanho { grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: 10px; row-gap: 0; align-items: center; min-width: 0; padding: 8px 14px; background: #fff; }
.linha-escolha .opcao-tamanho__copo { grid-row: span 2; width: 26px; height: 26px; }
.opcao-tamanho__ml { font-weight: 600; }
.opcao-tamanho__preco { font-size: .8125rem; font-weight: 500; color: var(--tinta-suave); }
.linha-escolha .opcao-tamanho:has(input:checked) { background: var(--bordo); border-color: var(--bordo); box-shadow: none; color: #fff; }
.linha-escolha .opcao-tamanho:has(input:checked) .opcao-tamanho__preco { color: #F3E6DF; }
.linha-escolha .opcao-tamanho:has(input:checked) .opcao-tamanho__copo { filter: brightness(0) invert(1); }
@media (min-width: 861px) {
  .pagina-montador .montador { max-width: 980px; }
  .opcoes-linha { grid-template-columns: 1fr 1fr; gap: 10px; align-items: start; }
  .linha-escolha--kit { grid-column: 1 / -1; }
  .opcao-linha { padding: 12px 14px; gap: 12px; }
  .opcao-linha__fotos img { width: 40px; height: 37px; }
  .opcao-linha__texto { font-size: .875rem; }
  .opcao-linha__texto strong { font-size: 1.125rem; }
  .opcao-linha--kit .opcao-linha__texto { grid-template-columns: auto auto 1fr; column-gap: 14px; align-items: baseline; }
  .opcao-linha--kit .opcao-linha__texto > span:last-child { grid-column: 1 / -1; }
  /* Sabores: foto ao lado do texto, três por linha */
  #sabores-escolha .grade-sabores { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  #sabores-escolha .cartao-sabor { grid-template-columns: 64px minmax(0, 1fr); column-gap: 10px; row-gap: 1px; align-items: center; padding: 8px 36px 8px 8px; }
  #sabores-escolha .cartao-sabor img { grid-row: 1 / span 3; width: 64px; height: 64px; aspect-ratio: 1; margin: 0; border-radius: 50%; }
  #sabores-escolha .cartao-sabor__desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .75rem; line-height: 1.35; }
  #sabores-escolha .cartao-sabor__alergenos { font-size: .6875rem; }
  #sabores-escolha .cartao-sabor:has(input:checked)::after { top: 8px; right: 8px; width: 22px; height: 22px; font-size: .75rem; }
  #sabores-escolha .cartao-sabor .contador--cartao, #sabores-escolha .cartao-sabor__qtd { grid-column: 1 / -1; margin-top: 6px; }
  #sabores-escolha .contador--cartao .contador__botao { width: 34px; height: 34px; }
  .grupo-sabores { margin-bottom: 12px; }
  .grupo-sabores legend { margin-bottom: 8px; font-size: 1rem; }
}
@media (min-width: 861px) and (max-height: 860px) {
  [data-etapa="linha"] .etapa__ajuda { display: none; }
  .etapa > :is(.opcoes-linha, .sabores-escolha) { margin-top: 12px; }
  .etapa h2 { font-size: clamp(1.375rem, 4vh, 1.875rem); }
}
/* Ajuste fino (10/11): copo numa linha só, cabeçalho do montador mais baixo, contador do sabor no lugar da descrição */
.linha-escolha > .tamanhos { display: block; padding: 10px 14px; }
.linha-escolha > .tamanhos legend { float: left; width: auto; margin: 0 14px 0 0; line-height: 46px; font-size: 1rem; }
.linha-escolha > .tamanhos legend + * { clear: none; }
.linha-escolha .opcoes-tamanho { display: flex; flex-wrap: wrap; }
@media (min-width: 861px) {
  .opcao-linha { padding: 9px 14px; }
  #sabores-escolha .cartao-sabor--marcado .cartao-sabor__desc { display: none; }
  #sabores-escolha .cartao-sabor .contador--cartao, #sabores-escolha .cartao-sabor__qtd { grid-column: 2; margin-top: 2px; justify-content: flex-start; }
}
@media (min-width: 861px) and (max-height: 860px) {
  .pagina-montador .montador__cabeca { display: grid; grid-template-columns: auto 1fr; align-items: baseline; column-gap: 18px; }
  .pagina-montador .montador__cabeca .montador__progresso { grid-column: 1 / -1; margin-top: 4px; }
  .pagina-montador .montador__passo { margin: 0; }
}
.linha-escolha .opcoes-tamanho { flex-wrap: nowrap; }
.linha-escolha .opcao-tamanho { padding: 6px 12px 6px 10px; column-gap: 8px; }
.linha-escolha .opcao-tamanho__copo { width: 22px; height: 24px; }
.linha-escolha > .tamanhos legend { line-height: 48px; }
.opcao-tamanho__ml, .opcao-tamanho__preco { white-space: nowrap; }
@media (min-width: 861px) and (max-height: 860px) {
  .pagina-montador .montador__progresso { margin-bottom: 10px; }
  .etapa > :is(.opcoes-linha, .sabores-escolha) { margin-top: 8px; }
  .linha-escolha > .tamanhos { padding: 8px 14px; }
  .linha-escolha .opcao-tamanho { padding-top: 4px; padding-bottom: 4px; }
}
/* Sabores no computador: total e "Dividir igualmente" numa faixa fina; 9+ sabores em 4 colunas (10/11) */
@media (min-width: 861px) {
  #distribuicao { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; margin-top: 8px; padding: 8px 16px; }
  #distribuicao .distribuicao__cabeca { order: 2; }
  #distribuicao .distribuicao__lista:empty { display: none; }
  #distribuicao .distribuicao__total { margin: 0; }
  #sabores-escolha .grade-sabores:has(> :nth-child(9)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #sabores-escolha .grade-sabores:has(> :nth-child(9)) .cartao-sabor { grid-template-columns: 52px minmax(0, 1fr); }
  #sabores-escolha .grade-sabores:has(> :nth-child(9)) .cartao-sabor img { width: 52px; height: 52px; }
  #sabores-escolha .cartao-sabor__nome { font-size: .875rem; line-height: 1.25; }
}
@media (min-width: 861px) and (max-height: 860px) {
  #sabores-escolha .cartao-sabor { padding-top: 6px; padding-bottom: 6px; }
  [data-etapa="sabores"] .etapa__ajuda { margin-top: 2px; }
}
@media (min-width: 1200px) { .pagina-montador .montador { max-width: 1120px; } }
@media (min-width: 861px) {
  #sabores-escolha .grade-sabores:has(> :nth-child(9)) .cartao-sabor__desc { -webkit-line-clamp: 1; }
  #distribuicao { flex-wrap: nowrap; }
}
/* Signature e linhas com 9+ sabores: no cartão, só nome e alérgenos (a descrição fica no detalhe do sabor) (10/11) */
@media (min-width: 861px) { #sabores-escolha .grade-sabores:has(> :nth-child(9)) .cartao-sabor__desc { display: none; } }
@media (min-width: 861px) {
  #sabores-escolha .grade-sabores:has(> :nth-child(9)) .contador--cartao { margin-top: 0; gap: 6px; }
  #sabores-escolha .grade-sabores:has(> :nth-child(9)) .contador--cartao .contador__botao { width: 30px; height: 30px; font-size: 1.0625rem; }
}
@media (min-width: 861px) and (max-height: 860px) { #distribuicao { padding-top: 6px; padding-bottom: 6px; } }
@media (min-width: 861px) { #sabores-escolha .grade-sabores:has(> :nth-child(9)) { gap: 6px; } }

/* Calculadora de evento (popup) (10/11) */
.botao-calc { margin-left: 4px; padding: 4px 12px; border-radius: 999px; border: 1.5px solid var(--dourado); background: #FFF4E6; color: var(--bordo); font: 600 .875rem/1.4 var(--fonte-texto); cursor: pointer; white-space: nowrap; }
.botao-calc:hover { background: var(--bordo); border-color: var(--bordo); color: #fff; }
.botao-calc:focus-visible { outline: 3px solid var(--dourado); outline-offset: 2px; }
.calc { width: min(440px, calc(100% - 32px)); padding: 0; border: 0; border-radius: 18px; background: #FFFBF8; color: var(--tinta); box-shadow: 0 30px 60px -20px rgba(58, 15, 27, .45); }
.calc::backdrop { background: rgba(58, 15, 27, .45); }
.calc__caixa { position: relative; display: grid; gap: 14px; padding: 24px 22px 22px; }
.calc__caixa h2 { font-size: 1.5rem; padding-right: 44px; }
.calc__fechar { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--rose); color: var(--bordo); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.calc__fechar:hover { background: var(--bordo); color: #fff; }
.calc__ajuda, .calc__nota, .calc__vazio { font-size: .875rem; color: var(--tinta-suave); }
.calc__bolo { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.calc__bolo[hidden] { display: none; }
.calc__bolo legend { width: 100%; margin-bottom: 6px; font-weight: 500; font-size: .9375rem; padding: 0; }
.calc__resultado { padding: 14px 16px; border-radius: 12px; background: var(--rose); display: grid; gap: 6px; }
.calc__titulo-resultado { font-weight: 600; color: var(--bordo); }
.calc__lista { margin: 0; padding-left: 1.1em; display: grid; gap: 4px; }
.calc__lista strong { color: var(--bordo); }
.calc__acoes { display: flex; flex-wrap: wrap; gap: 10px; }

/* Telas do montador no computador sem rolagem: data (calendário ao lado dos campos), entrega e dados em colunas (10/11) */
@media (min-width: 861px) {
  [data-etapa="data"] .campos { grid-template-columns: 340px minmax(0, 1fr); align-items: start; column-gap: 32px; row-gap: 14px; }
  [data-etapa="data"] .campo--calendario { grid-column: 1; grid-row: 1 / span 3; }
  [data-etapa="entrega"] .opcoes-simples { grid-template-columns: 1fr 1fr; }
  [data-etapa="entrega"] .campos--endereco { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; }
  [data-etapa="entrega"] .campos--endereco > .campo--cep { grid-column: 1; }
  [data-etapa="entrega"] .campos--endereco > .campo__ajuda { grid-column: 2 / -1; align-self: end; margin-bottom: 14px; }
  [data-etapa="entrega"] .campos--endereco > .campo--largo { grid-column: span 2; }
  [data-etapa="entrega"] .campos--endereco > .etapa__nota.campo--largo { grid-column: 1 / -1; margin-top: 0; }
  [data-etapa="dados"] .campos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; align-items: start; }
  [data-etapa="dados"] .campos > .campo--grupo { grid-column: span 2; }
  [data-etapa="dados"] .campos > .campo:last-child { grid-column: span 2; }
  [data-etapa="dados"] .campos textarea { min-height: 48px; height: 48px; }
}
@media (min-width: 861px) and (max-height: 860px) {
  .pagina-montador .campo :is(input, textarea) { min-height: 42px; padding-top: 9px; padding-bottom: 9px; }
  .pagina-montador .opcao-simples { padding-top: 12px; padding-bottom: 12px; }
  .pagina-montador .opcao-simples::before { top: 16px; }
  .pagina-montador .etapa > :is(.campos, .opcoes-simples, .contador) { margin-top: 12px; }
  .pagina-montador .janelas { margin-top: 12px; }
  .cal__dia { height: 30px; }
  .pagina-montador .etapa__ajuda { margin-top: 2px; }
  .contador--grande .contador__valor { font-size: 2.5rem; }
}
/* Entrega com endereço em duas fileiras; bolo em cartões compactos (computador) (10/11) */
@media (min-width: 861px) {
  [data-etapa="entrega"] .campos--endereco {
    grid-template-columns: 150px minmax(0, 2fr) 110px minmax(0, 1.2fr);
    grid-template-areas: "cep rua rua numero" "compl bairro bairro cidade" "ref ref ref ref" "status status status status";
  }
  [data-etapa="entrega"] .campos--endereco > .campo--cep { grid-area: cep; }
  [data-etapa="entrega"] .campos--endereco > .campo:has(#rua) { grid-area: rua; }
  [data-etapa="entrega"] .campos--endereco > .campo:has(#numero) { grid-area: numero; }
  [data-etapa="entrega"] .campos--endereco > .campo:has(#complemento) { grid-area: compl; }
  [data-etapa="entrega"] .campos--endereco > .campo:has(#bairro) { grid-area: bairro; }
  [data-etapa="entrega"] .campos--endereco > .campo:has(#cidade) { grid-area: cidade; }
  [data-etapa="entrega"] .campos--endereco > .campo:has(#referencia) { grid-area: ref; }
  [data-etapa="entrega"] .campos--endereco > .campo__ajuda { grid-area: status; margin: 0; align-self: start; }
  [data-etapa="entrega"] .campos--endereco > .campo__ajuda:empty { display: none; }
  [data-etapa="entrega"] .campos--endereco > .etapa__nota { display: none; }
  [data-etapa="entrega"] .campo--cep input { max-width: none; }
  /* Bolo: 3 colunas, nome e alérgenos; ingredientes resumidos em 1 linha */
  #bolo-recheios { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  #bolo-recheios .cartao-bolo { padding: 8px 40px 10px 12px; row-gap: 2px; }
  #bolo-recheios .cartao-sabor__desc { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; font-size: .75rem; }
  #bolo-recheios .cartao-sabor--marcado .cartao-sabor__desc { display: none; }
  #bolo-recheios .cartao-sabor__alergenos { font-size: .6875rem; }
  #bolo-recheios .cartao-bolo__massa { margin-top: 4px; flex-wrap: nowrap; align-items: center; }
  #bolo-recheios .cartao-bolo__massa legend { float: left; margin: 0 6px 0 0; line-height: 32px; }
  #bolo-recheios .opcao-massa { min-height: 32px; padding: 4px 12px; font-size: .8125rem; }
  #bolo-recheios .contador--cartao { margin-top: 4px; }
  #bolo-recheios .contador--cartao .contador__botao { width: 32px; height: 32px; }
}
@media (min-width: 861px) and (max-height: 860px) {
  [data-etapa="entrega"] .janelas legend { margin-bottom: 4px; }
  [data-etapa="entrega"] .opcao-janela { min-height: 40px; padding: 6px 16px; }
  [data-etapa="bolo"] .opcoes-simples { grid-template-columns: 1fr 1fr; margin-top: 8px; }
  .bolo-escolha { margin-top: 10px; }
}
@media (min-width: 861px) {
  [data-etapa="entrega"] .campos--endereco {
    grid-template-columns: 200px minmax(0, 2fr) 100px minmax(0, 1.3fr);
    grid-template-areas: "cep rua numero compl" "bairro bairro cidade ref" "status status status status";
  }
  [data-etapa="entrega"] .campos--endereco > .campo > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
@media (min-width: 861px) {
  [data-etapa="entrega"] .campos--endereco { grid-template-areas: "cep rua numero compl" "cidade bairro bairro ref" "status status status status"; }
}
@media (min-width: 861px) and (max-height: 860px) {
  [data-etapa="entrega"] .janelas { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; }
  [data-etapa="entrega"] .janelas legend { float: left; margin: 0 12px 0 0; }
  [data-etapa="entrega"] .janelas__dia { margin: 0 0 6px; }
}
@media (min-width: 861px) {
  #bolo-recheios .cartao-bolo { grid-template-columns: minmax(0, 1fr) auto; column-gap: 10px; align-items: center; }
  #bolo-recheios .cartao-bolo > :is(.cartao-bolo__marcar, .cartao-sabor__desc, .cartao-sabor__alergenos) { grid-column: 1 / -1; }
  #bolo-recheios .cartao-bolo > .cartao-bolo__massa { grid-column: 1; }
  #bolo-recheios .cartao-bolo > .contador--cartao { grid-column: 2; margin-top: 4px; }
}
@media (min-width: 861px) and (max-height: 860px) {
  #bolo-recheios .cartao-sabor__desc { display: none; }
  [data-etapa="bolo"] .opcao-simples { padding: 10px 16px 10px 46px; }
  [data-etapa="bolo"] .opcao-simples::before { top: 13px; }
  [data-etapa="bolo"] .opcao-simples strong { display: inline; font-size: 1.0625rem; margin-right: 6px; }
}
@media (min-width: 861px) and (max-height: 860px) { [data-etapa="bolo"] .opcao-simples > span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } }
@media (min-width: 861px) and (max-height: 860px) {
  #bolo-recheios .cartao-bolo > .cartao-bolo__marcar { grid-column: 1; }
  #bolo-recheios .cartao-bolo > .cartao-sabor__alergenos { grid-column: 2; grid-row: 1; text-align: right; max-width: 150px; line-height: 1.25; }
}
/* Resumo no computador (10/11): blocos em 3 colunas, texto compacto; o envio fica no botão da barra de baixo */
@media (min-width: 861px) {
  #resumo { display: block; columns: 3; column-gap: 12px; }
  #resumo .resumo__bloco { break-inside: avoid; margin-bottom: 10px; padding: 10px 14px; gap: 1px; font-size: .875rem; line-height: 1.4; }
  #resumo .resumo__topo { margin-bottom: 2px; }
  #resumo .resumo__topo h3 { font-size: 1rem; }
  #resumo .resumo__sabores { margin-top: 4px; gap: 3px; }
  #resumo .resumo__sabores img { width: 26px; height: 24px; }
  #resumo .resumo__valores { margin: 4px 0 2px; gap: 2px; font-size: .875rem; }
  #resumo .resumo__nota { font-size: .75rem; }
  [data-etapa="resumo"] > .etapa__nota { margin-top: 4px; font-size: .8125rem; }
  [data-etapa="resumo"] > .etapa__alternativa { margin-top: 4px; }
}
@media (min-width: 861px) and (max-height: 860px) { [data-etapa="resumo"] > .resumo { margin-top: 10px; } }
@media (min-width: 1200px) { #resumo { columns: 4; } }
@media (min-width: 861px) {
  [data-etapa="resumo"] { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 16px; }
  [data-etapa="resumo"] > :is(h2, .resumo, .etapa__nota) { flex: 1 1 100%; }
  [data-etapa="resumo"] > .etapa__nota { flex: 1 1 0; min-width: 60%; }
  [data-etapa="resumo"] > :is(.etapa__alternativa, .etapa__aviso) { margin-top: 4px; flex: 0 0 auto; }
}
@media (min-width: 861px) and (max-height: 860px) { [data-etapa="resumo"] > .etapa__aviso { display: none; } }

/* Bolo: preço por recheio (10/11) */
.cartao-bolo__marcar { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; }
.cartao-bolo__preco { font-size: .8125rem; font-weight: 600; color: var(--dourado-texto); white-space: nowrap; font-variant-numeric: tabular-nums; }
.bolo-vitrine__preco { margin-left: 8px; font-size: .8125rem; font-weight: 600; color: var(--dourado-texto); font-variant-numeric: tabular-nums; }
@media (min-width: 861px) and (max-height: 860px) {
  #bolo-recheios .cartao-bolo { padding-top: 6px; padding-bottom: 8px; }
  #bolo-recheios .cartao-bolo > .cartao-bolo__marcar { grid-column: 1 / -1; flex-wrap: nowrap; justify-content: space-between; padding-right: 4px; }
  #bolo-recheios .cartao-bolo__marcar .cartao-sabor__nome { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
  #bolo-recheios .cartao-bolo > .cartao-sabor__alergenos { grid-column: 1 / -1; grid-row: auto; text-align: left; max-width: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* Pronta entrega: "de" (preço do mesmo sabor nas encomendas) acima do preço (10/11) */
.item-pronta__de { font-size: .8125rem; color: var(--tinta-suave); margin-bottom: -4px; }
.item-pronta__de s { text-decoration-color: rgba(92, 26, 43, .55); }
/* Selo "Preço de pronta entrega" nos itens sem "de/por" (10/11) */
.item-pronta__selo { justify-self: start; margin-bottom: -2px; padding: 2px 10px; border-radius: 999px; background: #FFF4E6; border: 1px solid rgba(184, 137, 58, .45); color: var(--dourado-texto); font-size: .75rem; font-weight: 600; }
/* Sem o selo "Feito na véspera" (Matheus, 10/11): legenda da vitrine volta ao centro */
.bandeja figcaption { padding-right: 0; text-align: center; }
@media (max-width: 860px) { .bandeja figcaption { padding-right: 0; } }
/* Aviso de Privacidade completo (11/11): incisos e alíneas em lista sem marcador, assinatura no fim */
.texto-legal__lista { list-style: none; margin: 0 0 14px; padding: 0 0 0 4px; display: grid; gap: 6px; }
.texto-legal__lista li { line-height: 1.55; }
.texto-legal__assinatura { margin-top: 28px; text-align: center; color: var(--bordo); }
.texto-legal__assinatura em { color: var(--tinta-suave); }

/* ---------- Página de pagamento (pagar.html, 11/11/2026) ---------- */
.pagar { max-width: 560px; }
.pagar h1 { font-size: clamp(1.6rem, 4vw, 2.1rem); margin-bottom: 12px; }
.pagar__ola { font-size: 1.125rem; margin: 0 0 12px; }
.pagar__contas { margin: 0 0 24px; padding: 16px 20px; background: #fff; border: 1px solid var(--linha-fina); border-radius: 12px; }
.pagar__contas > div { display: flex; justify-content: space-between; gap: 16px; padding: 6px 0; }
.pagar__contas dt { color: var(--tinta-suave); }
.pagar__contas dd { margin: 0; font-variant-numeric: tabular-nums; text-align: right; }
.pagar__total { border-top: 1px solid var(--linha-fina); margin-top: 4px; padding-top: 10px !important; font-weight: 600; color: var(--bordo); }
.pagar__opcoes { border: 0; margin: 0 0 16px; padding: 0; display: grid; gap: 10px; }
.pagar__opcoes legend { font-weight: 600; margin-bottom: 10px; padding: 0; }
.pagar__opcao { display: grid; grid-template-columns: auto 1fr auto; gap: 2px 12px; align-items: center; padding: 14px 16px; background: #fff;
  border: 1.5px solid var(--linha-fina); border-radius: 12px; cursor: pointer; }
.pagar__opcao:has(input:checked) { border-color: var(--bordo); box-shadow: 0 0 0 1px var(--bordo) inset; }
.pagar__opcao input { accent-color: var(--bordo); width: 20px; height: 20px; margin: 0; }
.pagar__opcao-nome { font-weight: 600; }
.pagar__opcao-valor { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--bordo); }
.pagar__opcao-dica { grid-column: 2 / -1; color: var(--tinta-suave); font-size: .9375rem; }
.pagar__selo { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: var(--bordo); color: #fff; font-size: .8125rem; font-weight: 600; vertical-align: 1px; }
.pagar__unica { font-size: 1.125rem; margin: 0 0 16px; }
.pagar__prazo { color: var(--tinta-suave); font-size: .9375rem; margin: 0 0 16px; }
.pagar__botao { width: 100%; justify-content: center; min-height: 52px; font-size: 1.0625rem; }
.pagar__estado { color: var(--tinta-suave); }
.pagar__estado--forte { color: var(--tinta); font-size: 1.0625rem; }
.pagar__erro { color: #9B1C1C; font-weight: 500; }
.pagar__erro:empty { display: none; }
/* Contrato na página de pagamento (sql/19): texto rolável, quadro de assinatura e aceite */
.contrato__intro { margin: 0 0 14px; color: var(--tinta-suave); }
.contrato__texto { background: #fff; border: 1px solid var(--linha-fina); border-radius: 14px; padding: 18px 20px; max-height: min(56vh, 540px); overflow: auto; font-size: .9375rem; line-height: 1.6; color: var(--tinta); }
.contrato__texto:focus-visible { outline: 2px solid var(--bordo); outline-offset: 2px; }
.contrato__texto p { margin: 0 0 6px; }
.contrato__texto h3 { margin: 16px 0 6px; font-family: var(--fonte-texto); font-size: .9375rem; font-weight: 600; letter-spacing: .02em; color: var(--bordo); }
.contrato__titulo { margin: 0 0 4px; font-size: 1.0625rem; line-height: 1.35; color: var(--vinho); }
.contrato__item { padding-left: 12px; }
.contrato__form { margin-top: 18px; }
.assinatura { display: grid; gap: 6px; }
.assinatura__cabeca { display: flex; justify-content: space-between; align-items: center; font-weight: 500; }
.assinatura__quadro { width: 100%; height: 170px; border: 1.5px dashed var(--bordo); border-radius: 12px; background: #fff; touch-action: none; cursor: crosshair; }
.assinatura__dica { margin: 0; font-size: .875rem; color: var(--tinta-suave); }
.contrato__aceite { display: flex; gap: 10px; align-items: flex-start; margin: 6px 0 4px; line-height: 1.4; }
.contrato__aceite input { width: 20px; height: 20px; margin-top: 1px; flex: none; accent-color: var(--bordo); }
.contrato__assinado { margin-top: 22px; }
.contrato__assinado summary { cursor: pointer; font-weight: 500; color: var(--bordo); }
.contrato__assinado .contrato__texto { margin-top: 10px; }
.contrato__pdf { margin-top: 12px; }
.contrato__prova { margin: 8px 0 0; font-size: .8125rem; color: var(--tinta-suave); word-break: break-all; }
.pagar__aviso { background: var(--rose); border-radius: 10px; padding: 12px 16px; }
.pagar__seguro { margin-top: 28px; font-size: .9375rem; color: var(--tinta-suave); }
/* Painel: situação do pagamento e link do Mercado Pago (11/11/2026) */
.pag__situacao { margin: 8px 0 12px; padding: 8px 12px; border-radius: 8px; background: var(--rose); font-weight: 600; color: var(--bordo); }
.pag__situacao--ok { background: #E3F1E4; color: #1E5A2B; }
.pag__link { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 0 0 16px; }

/* ---------- Painel: tela de Início (mão com celular + botões de vidro), Matheus 13/11/2026 ---------- */
.inicio {
  --in-rosa: #F59BB8; --in-ouro: #E3C27E; --in-lilas: #B9A7F2;
  position: relative; isolation: isolate; overflow: hidden;
  flex: 1 1 auto; min-height: 0;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); align-items: center; gap: clamp(16px, 4vw, 56px);
  padding: clamp(20px, 4vw, 48px) var(--gutter);
  color: var(--offwhite);
  background:
    radial-gradient(60% 70% at 15% 20%, rgba(122, 36, 67, .9), transparent 70%),
    radial-gradient(50% 60% at 90% 85%, rgba(110, 88, 201, .45), transparent 70%),
    linear-gradient(140deg, #3A0F1B 0%, #22081A 50%, #4A1430 100%);
}
.inicio[hidden] { display: none; }
.inicio::before, .inicio::after {
  content: ""; position: absolute; z-index: -1; border-radius: 50%; filter: blur(60px); opacity: .55; pointer-events: none;
}
.inicio::before { width: 46vmax; height: 46vmax; left: -12vmax; bottom: -20vmax; background: radial-gradient(circle, var(--in-rosa), transparent 65%); }
.inicio::after { width: 36vmax; height: 36vmax; right: -8vmax; top: -14vmax; background: radial-gradient(circle, var(--in-ouro), transparent 65%); opacity: .35; }

/* No Início o painel ocupa exatamente a altura da janela (sem rolagem): topo + Início, que fica com o resto */
body.painel:has(#vista-inicio:not([hidden])) #tela-painel:not([hidden]) { display: flex; flex-direction: column; height: 100dvh; overflow-y: auto; }
/* a mão "entra" pela borda de baixo: a foto tem a altura do espaço (sem passar da largura da coluna), encostada embaixo */
.inicio { padding-bottom: 0; }
.inicio__palco { position: relative; align-self: stretch; container-type: size; }
.inicio__lado { padding-bottom: clamp(20px, 4vw, 48px); }
.inicio__aparelho { position: absolute; bottom: -2px; left: 50%; translate: -50% 0; height: min(100cqh, 100cqw / .75); aspect-ratio: 820 / 1093;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 9%); mask-image: linear-gradient(to right, transparent 0, #000 9%); }
.inicio__foto { position: relative; z-index: 1; display: block; width: 100%; height: 100%; filter: drop-shadow(0 30px 40px rgba(10, 2, 6, .55)); }
/* o painel de mentira fica atrás do "buraco" da tela da foto (posição medida pelo usar-mao-painel.js, com folga) */
.inicio__tela { position: absolute; left: 28.6%; top: 10.7%; width: 45.3%; height: 69.2%; }
.inicio__tela text { font-family: var(--fonte-texto); fill: #F7EFE8; }
.inicio__tela .t-mini { font-size: 11px; font-weight: 500; }
.inicio__tela .t-titulo { font-size: 16px; font-weight: 500; }
.inicio__tela .t-sub { font-size: 10px; opacity: .72; }
.inicio__tela .t-cartao { font-size: 10px; fill: #3A0F1B; opacity: .8; }
.inicio__tela .t-grande { font-size: 25px; font-weight: 600; fill: #3A0F1B; }
.inicio__tela .t-pilula { font-size: 9.5px; font-weight: 600; fill: #3A0F1B; text-anchor: middle; }
.inicio__tela .t-medio { font-size: 22px; font-weight: 500; }
.inicio__tela .t-dia { font-size: 8.5px; opacity: .6; text-anchor: middle; }
.inicio__tela .t-linha { font-size: 9.5px; }
.inicio__tela .t-fim { text-anchor: end; font-weight: 600; fill: var(--in-ouro); }
.inicio__vidrinho { fill: rgba(255, 255, 255, .07); stroke: rgba(255, 255, 255, .12); }
.inicio__linha { fill: none; stroke: #3A0F1B; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: .55; }
.inicio__barra { transform-box: fill-box; transform-origin: 50% 100%; }

.inicio__lado { max-width: 520px; }
.inicio__ola { font-family: var(--fonte-titulo); font-weight: 500; font-size: clamp(2rem, 4.4vw, 3.25rem); line-height: 1.1; margin: 0;
  background: linear-gradient(100deg, #FFF4EC 10%, var(--in-ouro) 55%, var(--in-rosa) 95%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.inicio__sub { margin: 8px 0 28px; font-size: 1.125rem; color: rgba(247, 239, 232, .78); }
.inicio__botoes { display: grid; gap: 14px; }

.vidro {
  --acento-1: var(--in-rosa); --acento-2: #B83A6B;
  position: relative; overflow: hidden; display: flex; align-items: center; gap: 16px;
  padding: 18px 20px; border-radius: 22px; text-decoration: none; color: var(--offwhite);
  background: linear-gradient(135deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .04));
  border: 1px solid rgba(255, 255, 255, .22);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 18px 40px -18px rgba(8, 1, 5, .7);
  -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
  transition: transform .25s ease, border-color .25s ease;
}
.vidro--financeiro { --acento-1: #F2D48A; --acento-2: #B8893A; }
.vidro--estoque { --acento-1: var(--in-lilas); --acento-2: #6E58C9; }
.vidro::after { /* brilho que passa ao apontar */
  content: ""; position: absolute; inset: -40% auto -40% -60%; width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .28), transparent); transform: skewX(-18deg); opacity: 0; pointer-events: none;
}
.vidro:hover, .vidro:focus-visible { transform: translateY(-3px); border-color: rgba(255, 255, 255, .4); }
.vidro:focus-visible { outline: 2px solid var(--in-ouro); outline-offset: 3px; }
.vidro__icone { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px;
  background: linear-gradient(135deg, var(--acento-1), var(--acento-2)); box-shadow: 0 10px 24px -8px var(--acento-2), inset 0 1px 0 rgba(255, 255, 255, .45); }
.vidro__icone svg, .vidro__seta svg { width: 24px; height: 24px; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.vidro__texto { display: grid; gap: 2px; min-width: 0; }
.vidro__texto strong { font-size: 1.1875rem; font-weight: 500; letter-spacing: .01em; }
.vidro__texto > span { font-size: .9375rem; color: rgba(247, 239, 232, .72); }
.vidro__texto > .vidro__aviso { justify-self: start; margin-top: 6px; padding: 2px 10px; border-radius: 999px; font-size: .8125rem; color: rgba(247, 239, 232, .85); background: rgba(255, 255, 255, .1); }
.vidro__texto > .vidro__aviso[hidden] { display: none; }
.vidro__texto > .vidro__aviso--forte { color: #3A0F1B; font-weight: 600; background: linear-gradient(90deg, var(--in-rosa), var(--in-ouro)); }
.vidro__seta { margin-left: auto; flex: none; opacity: .6; transition: transform .25s ease, opacity .25s ease; }
.vidro:hover .vidro__seta { transform: translateX(4px); opacity: 1; }

@media (max-width: 820px) {
  .inicio { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); align-content: stretch; }
  .inicio__palco { order: 2; min-height: 200px; }
  .inicio__lado { padding-bottom: 8px; }
  .inicio__lado { max-width: none; }
  .inicio__ola, .inicio__sub { text-align: center; }
  .inicio__sub { margin-bottom: 20px; }
}

/* telas baixas (notebook): botões mais compactos para caber sem rolagem */
@media (min-width: 821px) and (max-height: 760px) {
  .inicio { padding-top: 16px; }
  .inicio__ola { font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
  .inicio__sub { margin: 4px 0 14px; font-size: 1rem; }
  .inicio__botoes { gap: 10px; }
  .vidro { padding: 11px 16px; border-radius: 18px; }
  .vidro__icone { width: 42px; height: 42px; border-radius: 13px; }
  .vidro__texto > .vidro__aviso { margin-top: 3px; }
  .inicio__lado { padding-bottom: 16px; }
}
/* celular: a página rola normalmente; botões em cima e a mão entrando por baixo, no fim da página */
@media (max-width: 820px) {
  body.painel:has(#vista-inicio:not([hidden])) #tela-painel:not([hidden]) { display: block; height: auto; overflow: visible; }
  .inicio { grid-template-rows: auto auto; }
  .inicio__palco { height: min(64vh, 125vw); min-height: 0; }
}

@media (prefers-reduced-motion: no-preference) {
  .inicio::before { animation: in-nuvem 18s ease-in-out infinite alternate; }
  .inicio::after { animation: in-nuvem 22s ease-in-out infinite alternate-reverse; }
  .inicio__aparelho { animation: in-flutua 7s ease-in-out infinite; transform-origin: 50% 100%; }
  .inicio__pulso { animation: in-pulso 1.6s ease-in-out infinite; }
  .inicio--entrou .inicio__barra { animation: in-barra .9s cubic-bezier(.2, .8, .2, 1) both; }
  .inicio--entrou .inicio__barra:nth-of-type(2) { animation-delay: .06s; }
  .inicio--entrou .inicio__barra:nth-of-type(3) { animation-delay: .12s; }
  .inicio--entrou .inicio__barra:nth-of-type(4) { animation-delay: .18s; }
  .inicio--entrou .inicio__barra:nth-of-type(5) { animation-delay: .24s; }
  .inicio--entrou .inicio__barra:nth-of-type(6) { animation-delay: .30s; }
  .inicio--entrou .inicio__barra:nth-of-type(7) { animation-delay: .36s; }
  .inicio--entrou .inicio__palco { animation: in-sobe 1s cubic-bezier(.2, .8, .2, 1) both; }
  .inicio--entrou .inicio__ola, .inicio--entrou .inicio__sub, .inicio--entrou .vidro { animation: in-entra .7s cubic-bezier(.2, .8, .2, 1) both; }
  .inicio--entrou .inicio__sub { animation-delay: .08s; }
  .inicio--entrou .vidro:nth-child(1) { animation-delay: .16s; }
  .inicio--entrou .vidro:nth-child(2) { animation-delay: .26s; }
  .inicio--entrou .vidro:nth-child(3) { animation-delay: .36s; }
  .vidro:hover::after { opacity: 1; animation: in-brilho .9s ease; }
}
@keyframes in-nuvem { to { transform: translate(8vmax, -6vmax) scale(1.15); } }
@keyframes in-flutua { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(8px) rotate(-.8deg); } }
@keyframes in-pulso { 50% { opacity: .25; } }
@keyframes in-barra { from { transform: scaleY(0); } }
@keyframes in-sobe { from { opacity: 0; transform: translateY(40px) scale(.96); } }
@keyframes in-entra { from { opacity: 0; transform: translateX(28px); } }
@keyframes in-brilho { from { transform: skewX(-18deg) translateX(0); } to { transform: skewX(-18deg) translateX(420%); } }

/* Contrato em papel timbrado (contrato.html + js/contrato-impressao.js), Matheus 13/11/2026: na tela, uma folha; na impressão / PDF, páginas A4 */
@page contrato {
size: A4; margin: 10mm 16mm 13mm;
@bottom-center { content: "Página " counter(page) " de " counter(pages); font-family: 'Jost', sans-serif; font-size: 8pt; color: #8A6420; }
}
.folha-contrato { page: contrato; font-family: var(--fonte-texto); font-size: 9.6pt; line-height: 1.45; color: #2E1A17; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.fc-marca { position: fixed; inset: 0; display: grid; place-items: center; z-index: 0; pointer-events: none; }
.fc-marca img { width: 115mm; height: auto; opacity: .055; }
.fc-pagina { position: relative; z-index: 1; width: 100%; border-collapse: collapse; }
.fc-pagina td { padding: 0; vertical-align: top; }
.fc-pagina thead td { padding-bottom: 6mm; }
.fc-pagina tfoot td { padding-top: 5mm; }
.fc-cabeca { display: flex; align-items: flex-end; justify-content: space-between; gap: 8mm; padding-bottom: 3mm; border-bottom: .45mm solid #B8893A; }
.fc-cabeca__logo { height: 12mm; width: auto; }
.fc-cabeca__info { display: grid; justify-items: end; gap: .5mm; text-align: right; }
.fc-cabeca__info strong { font-family: var(--fonte-titulo); font-weight: 600; font-size: 9.5pt; color: #5C1A2B; }
.fc-cabeca__info span { font-size: 8.5pt; color: #6B5049; }
.fc-rodape { display: flex; justify-content: space-between; gap: 6mm; padding-top: 2mm; border-top: .3mm solid #B8893A; font-size: 7.5pt; color: #6B5049; }
.fc-titulo { margin: 0 0 1mm; font-family: var(--fonte-titulo); font-weight: 600; font-size: 13.5pt; line-height: 1.3; text-align: center; color: #5C1A2B; }
.fc-subtitulo { margin: 0 0 6mm; text-align: center; font-size: 9pt; color: #6B5049; }
.fc-partes { display: grid; grid-template-columns: 1fr 1fr; gap: 8mm; }
.fc-secao { margin: 0 0 4.5mm; }
.fc-secao h2 { margin: 0 0 2mm; padding-bottom: 1mm; border-bottom: .25mm solid rgba(92, 26, 43, .25); font-family: var(--fonte-texto); font-weight: 600; font-size: 9.6pt; letter-spacing: .04em; color: #5C1A2B; break-after: avoid; }
.fc-secao p { margin: 0 0 1mm; }
.fc-campo span { color: #6B5049; }
.fc-item { padding-left: 4mm; text-indent: -3mm; }
.fc-item::before { content: "•  "; color: #B8893A; }
.fc-clausula { margin-bottom: 1.8mm !important; break-inside: avoid; }
.fc-clausula strong { color: #5C1A2B; margin-right: 1mm; }
.fc-assinaturas { break-inside: avoid; margin-top: 7mm; }
.fc-assina__grade { display: grid; grid-template-columns: 1fr 1fr; gap: 12mm; margin-top: 3mm; }
.fc-assina { text-align: center; }
.fc-assina p { margin: 1.5mm 0 0; font-size: 8.5pt; color: #6B5049; }
.fc-assina .fc-assina__papel { margin: 0 0 1mm; font-weight: 600; font-size: 8.5pt; letter-spacing: .06em; color: #5C1A2B; }
.fc-assina__linha { height: 22mm; display: flex; align-items: flex-end; justify-content: center; border-bottom: .3mm solid #2E1A17; }
.fc-assina__linha img { max-height: 21mm; max-width: 100%; }
.fc-assina__linha--texto span { padding-bottom: 2mm; font-family: var(--fonte-titulo); font-size: 14pt; color: #5C1A2B; }
.fc-assina__linha--vazia { align-items: center; font-style: italic; color: #999; }
.fc-prova { margin-top: 6mm; padding: 3mm 4mm; border: .3mm solid rgba(184, 137, 58, .7); border-radius: 2mm; background: #FBF6F1; font-size: 7.8pt; color: #4A3430; break-inside: avoid; }
.fc-prova p { margin: 0 0 .6mm; }
.fc-prova__titulo { font-weight: 600; color: #5C1A2B; }
.fc-prova__hash { font-family: ui-monospace, Consolas, monospace; font-size: 7.4pt; word-break: break-all; }
/* tela: barra com o botão, folha branca com sombra */
body.contrato-pagina { background: #EFE6DF; }
.contrato-barra { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px var(--gutter); background: var(--vinho); color: #F3E3DA; }
.contrato-barra__titulo { margin: 0; font-weight: 500; }
.contrato-barra__dica { margin: 10px auto 0; max-width: 210mm; padding: 0 var(--gutter); font-size: .875rem; color: var(--tinta-suave); }
.contrato-pagina__estado { max-width: 210mm; margin: 40px auto; padding: 0 var(--gutter); }
.contrato-pagina .folha-contrato { position: relative; max-width: 210mm; margin: 16px auto 48px; padding: 12mm 16mm 10mm; background: #fff; box-shadow: 0 12px 40px -18px rgba(58, 15, 27, .45); overflow: hidden; }
.contrato-pagina .fc-marca { position: absolute; }
@media (max-width: 640px) { .contrato-pagina .folha-contrato { padding: 18px 16px; font-size: 13px; } .fc-partes, .fc-assina__grade { grid-template-columns: 1fr; gap: 14px; } .fc-cabeca__logo { height: 32px; } }
@media print {
  body.contrato-pagina { background: #fff; }
  .contrato-barra, .contrato-barra__dica { display: none !important; }
  .contrato-pagina .folha-contrato { max-width: none; margin: 0; padding: 0; box-shadow: none; overflow: visible; }
  .contrato-pagina .fc-marca { position: fixed; }
}

/* Taxa de entrega automática (js/entrega.js), 13/11/2026 */
.entrega-calculo { display: grid; gap: 6px; justify-items: start; padding: 14px 16px; border-radius: 12px; background: #FFFBF8; border: 1px solid var(--linha-fina); }
.entrega-calculo p { margin: 0; }
.entrega-calculo--ok { border-color: var(--dourado); }
.entrega-calculo--fora, .entrega-calculo--erro { background: var(--rose); border-color: rgba(92, 26, 43, .25); color: var(--bordo); }
.entrega-calculo--calculando, .entrega-calculo--vazio, .entrega-calculo--desligada { color: var(--tinta-suave); }
.entrega-calculo__valor { font-size: 1.0625rem; }
.entrega-calculo__valor strong { color: var(--bordo); }
.entrega-calculo__det { font-size: .875rem; color: var(--tinta-suave); }
