/* Assistente de pedidos — usa os tokens de site.css (--es-*) */
.wz-body { background: var(--es-papel); min-height: 100vh; }
.wz-top { padding: 1rem 0; border-bottom: 1px solid var(--es-linha); background: #fff; }
.wz-trust { font-size: .85rem; color: var(--es-cinza); }
.wz-trust i { color: #16a34a; }

.wz { padding: 2.5rem 0 4rem; }
.wz-q { font-family: var(--es-fonte); font-weight: 800; letter-spacing: -.03em; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.1; margin-bottom: .6rem; }
.wz-hint { color: var(--es-cinza); margin-bottom: 1.4rem; }
.wz-h3 { font-family: var(--es-fonte); font-weight: 800; letter-spacing: -.03em; font-size: 1.6rem; margin: 2rem 0 1rem; }
.wz-lbl { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--es-cinza); margin: 1.4rem 0 .6rem; }

/* progresso */
.wz-prog { margin-bottom: 2rem; }
.wz-prog-bar { height: 6px; background: var(--es-linha); border-radius: 99px; overflow: hidden; }
.wz-prog-bar span { display: block; height: 100%; width: 0; background: var(--es-azul); border-radius: 99px; transition: width .5s ease; }
.wz-prog small { display: block; margin-top: .5rem; color: var(--es-cinza); font-size: .82rem; }

/* passos */
.wz-step { display: none; }
.wz-step.on { display: block; animation: wzIn .35s ease; }
@keyframes wzIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

.wz-opts { display: grid; gap: .7rem; }
.wz-opts-2 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.wz-opts-4 { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.wz-opt { display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; text-align: left; background: #fff; border: 1.5px solid var(--es-linha); border-radius: 1rem; padding: 1rem 1.1rem; transition: border-color .15s, box-shadow .15s, transform .1s; position: relative; }
.wz-opt:hover { border-color: #93c5fd; transform: translateY(-1px); }
.wz-opt.sel { border-color: var(--es-azul); box-shadow: 0 0 0 4px rgba(37,99,235,.12); }
.wz-opt i { font-size: 1.4rem; color: var(--es-azul); margin-bottom: .2rem; }
.wz-opt strong { font-size: 1rem; }
.wz-opt small { color: var(--es-cinza); font-size: .85rem; }
.wz-opt-sm { align-items: center; text-align: center; padding: .9rem .6rem; }
.wz-opt-sm strong { font-size: .88rem; font-weight: 600; }
.wz-opt-row { flex-direction: row; align-items: center; gap: .8rem; }
.wz-opt-row i { margin: 0; }
.wz-tick { margin-left: auto; width: 22px; height: 22px; border-radius: 6px; border: 1.5px solid var(--es-linha); display: grid; place-items: center; }
.wz-tick i { font-size: .9rem; color: #fff; }
.wz-opt.sel .wz-tick { background: var(--es-azul); border-color: var(--es-azul); }

.wz-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.wz-pill { background: #fff; border: 1.5px solid var(--es-linha); border-radius: 99px; padding: .55rem 1.1rem; font-weight: 500; }
.wz-pill.sel { border-color: var(--es-azul); background: var(--es-azul); color: #fff; }

.wz-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 2rem; }
.wz-back { background: none; border: 0; color: var(--es-cinza); font-weight: 500; }
.wz-nav .btn:disabled { opacity: .35; }

/* análise */
.wz-anl { padding: 1rem 0; }
.wz-spin { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--es-azul-claro); color: var(--es-azul); font-size: 1.6rem; margin-bottom: 1.2rem; animation: wzPulse 1.2s ease-in-out infinite; }
@keyframes wzPulse { 50% { transform: scale(1.08); box-shadow: 0 0 0 12px rgba(37,99,235,.08); } }
.wz-log { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .6rem; }
.wz-log li { display: flex; gap: .6rem; align-items: baseline; color: var(--es-tinta); animation: wzIn .3s ease; }
.wz-log li::before { content: ""; flex: 0 0 14px; height: 14px; border-radius: 50%; border: 2px solid var(--es-azul); border-right-color: transparent; animation: wzRoda .7s linear infinite; position: relative; top: 2px; }
.wz-log li.feito { color: var(--es-cinza); }
.wz-log li.feito::before { content: "✓"; border: 0; animation: none; color: #16a34a; font-weight: 700; top: 0; }
@keyframes wzRoda { to { transform: rotate(360deg); } }

/* resultado + gate */
.wz-ok { display: inline-flex; gap: .4rem; align-items: center; font-weight: 700; color: #15803d; background: #dcfce7; border-radius: 99px; padding: .3rem .8rem; font-size: .85rem; margin-bottom: 1rem; }

.wz-form { background: #fff; border: 2px solid var(--es-azul); border-radius: 1rem; padding: 1.3rem; box-shadow: 0 20px 40px -24px rgba(37,99,235,.5); }
.wz-form .wz-lbl { margin-top: 1rem; }
.wz-hp { position: absolute; left: -9999px; }
.wz-canais { display: flex; gap: .5rem; flex-wrap: wrap; }
.wz-canais input { display: none; }
.wz-canais span { display: inline-flex; gap: .4rem; align-items: center; border: 1.5px solid var(--es-linha); border-radius: 99px; padding: .45rem 1rem; cursor: pointer; }
.wz-canais input:checked + span { border-color: var(--es-azul); background: var(--es-azul-claro); color: var(--es-azul-esc); font-weight: 600; }
.wz-consent { display: flex; gap: .5rem; align-items: flex-start; font-size: .85rem; color: var(--es-cinza); margin: 1rem 0; }
.wz-consent input { margin-top: .25rem; }
.wz-erro { color: #b91c1c; font-size: .9rem; margin-bottom: .6rem; }
.wz-micro { text-align: center; font-size: .8rem; color: var(--es-cinza); margin: .8rem 0 0; }

/* pré-visualização ao vivo */
.wz-live-in { position: sticky; top: 1.5rem; }
.wz-live-lbl { font-size: .8rem; font-weight: 700; color: var(--es-cinza); margin-bottom: .6rem; display: flex; align-items: center; gap: .5rem; text-transform: uppercase; letter-spacing: .08em; }
.wz-dot { width: 8px; height: 8px; border-radius: 50%; background: #16a34a; animation: wzPulse 1.4s infinite; }
.wz-preview.flash .pv { animation: wzFlash .6s ease; }
@keyframes wzFlash { 0% { box-shadow: 0 0 0 0 rgba(37,99,235,.45); } 100% { box-shadow: 0 0 0 18px rgba(37,99,235,0); } }

/* final */
.wz-final h1 em { font-family: var(--es-fonte); font-weight: 800; letter-spacing: -.03em; color: var(--es-azul); }
.wz-aviso { background: #fffbeb; border: 1px solid #fde68a; border-radius: .8rem; padding: .8rem 1rem; font-size: .92rem; margin-bottom: .6rem; }
.wz-aviso i { color: #d97706; margin-right: .3rem; }
.wz-passos { list-style: none; padding: 0; counter-reset: p; display: grid; gap: .8rem; }
.wz-passos li { counter-increment: p; display: grid; grid-template-columns: 34px 1fr; column-gap: .8rem; color: #374151; }
.wz-passos li::before { content: counter(p); grid-row: span 2; width: 30px; height: 30px; border-radius: 50%; background: var(--es-azul); color: #fff; display: grid; place-items: center; font-weight: 700; }
.wz-passos b { display: block; color: var(--es-tinta); }

/* intenção de saída */
.wz-exit { position: fixed; inset: 0; background: rgba(11,19,36,.55); display: grid; place-items: center; z-index: 50; padding: 1rem; }
.wz-exit[hidden] { display: none; }
.wz-exit-card { background: #fff; border-radius: 1.2rem; padding: 2rem; max-width: 460px; position: relative; animation: wzIn .3s ease; }
.wz-exit-card h3 { font-family: var(--es-fonte); font-weight: 800; letter-spacing: -.03em; font-size: 1.6rem; }
.wz-exit-card p { color: var(--es-cinza); }
.wz-exit-x { position: absolute; top: .8rem; right: .8rem; background: none; border: 0; font-size: 1.1rem; color: var(--es-cinza); }
.wz-exit-ok { color: #15803d !important; font-weight: 600; margin: 0; }

/* funil (interno) */
.fn-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.fn-kpis div { background: #fff; border: 1px solid var(--es-linha); border-radius: 1rem; padding: 1.2rem; }
.fn-kpis strong { display: block; font-family: var(--es-fonte); font-weight: 800; letter-spacing: -.03em; font-size: 2.2rem; font-weight: 400; line-height: 1; }
.fn-kpis span { color: var(--es-cinza); font-size: .85rem; }
.fn-funil { background: #fff; border: 1px solid var(--es-linha); border-radius: 1rem; padding: 1.2rem; display: grid; gap: .5rem; }
.fn-row { display: grid; grid-template-columns: 170px 1fr 90px 50px; gap: 1rem; align-items: center; font-size: .9rem; }
.fn-bar { height: 22px; background: #f3f4f6; border-radius: .4rem; overflow: hidden; }
.fn-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--es-azul), #60a5fa); border-radius: .4rem; }
.fn-num small { color: var(--es-cinza); }
.fn-drop { color: #b91c1c; font-size: .8rem; }
.fn-table { background: #fff; font-size: .9rem; }
.fn-a_decorrer td { opacity: .6; }
.fn-temp { font-size: .75rem; font-weight: 700; padding: .2rem .6rem; border-radius: 99px; text-transform: uppercase; }
.fn-quente { background: #fee2e2; color: #b91c1c; }
.fn-morno { background: #fef3c7; color: #b45309; }
.fn-frio { background: #e0f2fe; color: #0369a1; }
.fn-email { background: #ede9fe; color: #6d28d9; }


/* oferta */
.wz-offer { display: inline-flex; gap: .4rem; align-items: center; background: #fef3c7; color: #92400e; font-weight: 700; font-size: .85rem; border-radius: 99px; padding: .3rem .85rem; margin-bottom: .9rem; }
.wz-big { font-size: 1.5rem; font-family: var(--es-fonte); font-weight: 800; letter-spacing: -.03em; padding: .8rem 1rem; }

/* setores com foto */
.wz-setores { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; }
.wz-setor { padding: 0; border: 1.5px solid var(--es-linha); border-radius: .9rem; overflow: hidden; background: #fff; text-align: left; transition: transform .12s, border-color .15s, box-shadow .15s; }
.wz-setor:hover { transform: translateY(-2px); border-color: #93c5fd; }
.wz-setor.sel { border-color: var(--es-azul); box-shadow: 0 0 0 4px rgba(37,99,235,.15); }
.wz-setor-img { display: block; aspect-ratio: 16/10; background: #e5e7eb center/cover no-repeat; }
.wz-setor-txt { display: flex; gap: .35rem; align-items: center; padding: .5rem .6rem; font-size: .8rem; font-weight: 600; line-height: 1.2; min-height: 2.8rem; }
.wz-setor-txt i { color: var(--es-azul); }

/* contacto */
.wz-campo { margin-top: .6rem; }
.wz-campo[hidden] { display: none; }
.wz-form .wz-canais { margin-bottom: .4rem; }
.wz-form .wz-erro { margin: .3rem 0 0; font-size: .85rem; }
.wz-form .btn { margin-top: 1rem; }
.wz-consent { margin: .9rem 0 0; }

/* página final */
.wz-agora { background: #fff; border: 1px solid var(--es-linha); border-radius: 1rem; padding: 1.2rem; margin: 1.2rem 0; display: grid; gap: 1rem; }
.btn-wa { background: #25d366; color: #fff; font-weight: 700; border-radius: 99px; }
.btn-wa:hover { background: #1ebe5b; color: #fff; }

/* switch telemóvel/computador */
.wz-live-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; }
.wz-live-top .wz-live-lbl { margin: 0; }
.wz-device { display: inline-flex; background: #fff; border: 1px solid var(--es-linha); border-radius: 99px; padding: .2rem; }
.wz-device button { border: 0; background: none; border-radius: 99px; padding: .25rem .7rem; color: var(--es-cinza); }
.wz-device button.on { background: var(--es-tinta); color: #fff; }
.wz-device button:disabled { opacity: .3; }

/* pré-visualização */
.wz-preview { transition: max-width .35s ease; margin: 0 auto; }
.wz-preview.is-mobile { max-width: 340px; }
.pv { --cor: var(--es-azul); background: #fff; border: 1px solid var(--es-linha); border-radius: 1rem; overflow: hidden; box-shadow: 0 30px 60px -28px rgba(17,24,39,.35); }
.pv-bar { display: flex; align-items: center; gap: .35rem; padding: .55rem .8rem; background: #f3f4f6; border-bottom: 1px solid var(--es-linha); }
.pv-bar i { width: 9px; height: 9px; border-radius: 50%; background: #d1d5db; }
.pv-bar span { margin-left: .8rem; font-size: .75rem; color: var(--es-cinza); background: #fff; border-radius: 99px; padding: .1rem .8rem; }
.pv-page { display: grid; gap: .8rem; padding-bottom: .8rem; }
.pv-nav { display: flex; align-items: center; gap: .9rem; padding: .7rem 1rem; font-size: .75rem; color: var(--es-cinza); }
.pv-logo { color: var(--cor); font-family: "DM Serif Display", serif; font-weight: 400; font-size: 1.1rem; margin-right: auto; }
.pv-links { display: flex; gap: .9rem; }
.pv-burger { display: none; font-size: 1.3rem; color: var(--es-tinta); }
.pv-hero { margin: 0 1rem; min-height: 210px; border-radius: .8rem; background: #d1d5db center/cover no-repeat; display: flex; align-items: flex-end; overflow: hidden; }
.pv-hero-txt { width: 100%; padding: 1.2rem; display: grid; gap: .3rem; color: #fff; background: linear-gradient(0deg, rgba(0,0,0,.7), rgba(0,0,0,0)); }
.pv-hero strong { font-family: "DM Serif Display", serif; font-weight: 400; font-size: 1.9rem; line-height: 1.05; }
.pv-hero small { opacity: .9; }
.pv-cta { justify-self: start; background: var(--cor); color: #fff; font-size: .8rem; font-weight: 700; padding: .4rem 1rem; border-radius: 99px; margin-top: .3rem; }
.pv-blocos { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: 0 1rem; }
.pv-bloco { border-radius: .6rem; padding: .7rem; display: grid; gap: .35rem; background: color-mix(in srgb, var(--cor) 7%, #fff); border: 1px solid color-mix(in srgb, var(--cor) 18%, #fff); animation: wzIn .4s ease both; }
.pv-bloco:nth-child(2) { animation-delay: .08s; } .pv-bloco:nth-child(3) { animation-delay: .16s; } .pv-bloco:nth-child(4) { animation-delay: .24s; }
.pv-bloco-ico { width: 22px; height: 22px; border-radius: 6px; background: var(--cor); color: #fff; font-size: .7rem; font-weight: 700; display: grid; place-items: center; }
.pv-bloco em { font-style: normal; font-size: .8rem; font-weight: 700; color: var(--es-tinta); }
.pv-bloco small { height: 6px; width: 80%; border-radius: 3px; background: color-mix(in srgb, var(--cor) 15%, #e5e7eb); }
.pv-feats { display: flex; flex-wrap: wrap; gap: .35rem; padding: 0 1rem; }
.pv-feats span { font-size: .72rem; background: #f3f4f6; border-radius: 99px; padding: .2rem .6rem; color: #374151; }
.pv-feats i { color: var(--cor); }
.pv-footer { margin: 0 1rem; padding-top: .6rem; border-top: 1px solid var(--es-linha); font-size: .7rem; color: var(--es-cinza); text-align: center; }
.pv-tabbar { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--es-linha); padding: .5rem 0 0; font-size: .62rem; text-align: center; color: var(--es-cinza); }
.pv-tabbar span { display: grid; gap: .1rem; } .pv-tabbar span:first-child { color: var(--cor); font-weight: 700; }
.pv-vazio .pv-page { min-height: 360px; align-content: center; text-align: center; color: var(--es-cinza); padding: 1rem; }
.pv-esqueleto { display: grid; gap: .5rem; max-width: 220px; margin: 0 auto 1rem; width: 100%; }
.pv-esqueleto span { height: 14px; border-radius: 4px; background: linear-gradient(90deg, #f3f4f6, #e5e7eb, #f3f4f6); background-size: 200% 100%; animation: wzBrilho 1.4s infinite; }
.pv-esqueleto span:nth-child(2) { width: 70%; } .pv-esqueleto span:nth-child(3) { width: 85%; }
@keyframes wzBrilho { to { background-position: -200% 0; } }

/* logótipo, "Sobre nós", "Onde estamos" */
.pv-logo-img { max-height: 44px; max-width: 180px; object-fit: contain; margin-right: auto; }
.pv-sec { margin: 0 1rem; animation: wzIn .4s ease both; }
.pv-sec h5 { font-family: "DM Serif Display", serif; font-weight: 400; font-size: 1.15rem; margin: 0 0 .25rem; color: var(--cor); }
.pv-sec p { font-size: .85rem; color: #374151; margin: 0; }
.pv-mapa { display: flex; gap: .8rem; align-items: center; padding: .7rem; border-radius: .7rem; background: #f3f4f6; }
.pv-mapa-img { flex: 0 0 72px; height: 60px; border-radius: .5rem; display: grid; place-items: center; font-size: 1.4rem; color: var(--cor); background: repeating-linear-gradient(0deg, #e5e7eb 0 1px, transparent 1px 12px), repeating-linear-gradient(90deg, #e5e7eb 0 1px, #fafafa 1px 12px); }

/* moldura de telemóvel: o mesmo HTML, reorganizado */
.is-mobile .pv { border-radius: 2rem; border: 8px solid #111827; }
.is-mobile .pv-bar { justify-content: center; background: #111827; border: 0; padding: .3rem 0 .5rem; }
.is-mobile .pv-bar i { display: none; }
.is-mobile .pv-bar span { margin: 0; background: #1f2937; color: #9ca3af; font-size: .65rem; }
.is-mobile .pv-links { display: none; }
.is-mobile .pv-burger { display: inline; }
.is-mobile .pv-hero { min-height: 260px; }
.is-mobile .pv-hero strong { font-size: 1.6rem; }
.is-mobile .pv-blocos { grid-template-columns: 1fr; }
.pv-app .pv-bar span { font-weight: 700; }

@media (max-width: 991px) {
  .wz-live-in { max-width: 340px; margin: 0 auto; }
  .is-mobile .pv-hero { min-height: 170px; }
  .is-mobile .pv-blocos, .is-mobile .pv-feats, .pv-footer { display: none; }
  .wz-live { order: -1; }
  .wz-live-in { position: static; }
}

/* página final no telemóvel: primeiro o "obrigado" e as ações, depois o site */
@media (max-width: 991px) { .wz-final .wz-live { order: 0; } }

/* Pré-visualização real (iframe com o site que se recebe): telemóvel à largura da moldura;
   computador a 1280px reduzido para caber (--pv-esc vem do device.js) */
.pv-site .pv-moldura { position: relative; overflow: hidden; height: 600px; }
.pv-site .pv-iframe { display: block; width: 100%; height: 100%; border: 0; background: #fff; }
.wz-preview:not(.is-mobile) .pv-site .pv-moldura { height: calc(900px * var(--pv-esc, .5)); }
.pv-site { min-width: 0; }
.wz-preview:not(.is-mobile) .pv-site .pv-iframe { position: absolute; top: 0; left: 0; width: 1280px; height: 900px; transform: scale(var(--pv-esc, .5)); transform-origin: 0 0; }
@media (max-width: 991.98px) { .pv-site .pv-moldura { height: 520px; } }
