/* ═══════════════════════════════════════════════════════════════════════
   O site público do CMS-modelo — anatomia do tema frontapp sobre os
   tokens --sf-* que a Aparência do CMS pinta. ESTÁTICO de propósito:
   sem build, corre em qualquer hospedagem, e o ZIP de entrega leva-o tal
   e qual. Mobile-first; motion respeita prefers-reduced-motion.
   ═══════════════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--sf-bg);
    color: var(--sf-text);
    font-family: var(--sf-font-body);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-family: var(--sf-font-heading); line-height: 1.12; margin: 0; }
h1 { font-size: clamp(2.1rem, 6vw, 3.6rem); font-weight: 800; letter-spacing: -0.02em; text-wrap: balance; }
h2 { font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 800; letter-spacing: -0.015em; text-wrap: balance; }
h3 { font-size: 1.1rem; font-weight: 700; }
img { max-width: 100%; display: block; }
a { color: inherit; }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

/* ── movimento ──
   VISÍVEL POR OMISSÃO: sem JS (leitores, bots, JS bloqueado) a página está
   inteira. O script marca .sf-prep só no que está ABAIXO da dobra, e o
   IntersectionObserver troca por .sf-in ao entrar — o mesmo efeito, sem
   nunca apostar o conteúdo no JavaScript. */
.sf-reveal { transition: opacity .5s ease, transform .55s cubic-bezier(.22,.9,.3,1); }
.sf-prep { opacity: 0; transform: translateY(26px); }
.sf-prep.sf-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .sf-prep { opacity: 1; transform: none; transition: none; }
    html { scroll-behavior: auto; }
    .sf-marquee-fita { animation: none !important; }
}

/* ── botões ── */
.sf-btn {
    display: inline-flex; align-items: center; gap: .5rem;
    border-radius: 999px; border: 1px solid transparent;
    padding: .62rem 1.25rem; font-size: .92rem; font-weight: 600;
    text-decoration: none; cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.sf-btn:hover { transform: translateY(-1px); }
.sf-btn-lg { padding: .8rem 1.7rem; font-size: 1rem; }
.sf-btn-primary { background: var(--sf-primary); color: var(--sf-on-primary); box-shadow: 0 8px 24px color-mix(in srgb, var(--sf-primary) 35%, transparent); }
.sf-btn-contorno { border-color: var(--sf-line); background: var(--sf-surface); color: var(--sf-text); }
.sf-btn-claro { background: var(--sf-on-primary); color: var(--sf-primary); }

/* ── topbar + header ── */
.sf-topbar {
    display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap;
    background: var(--sf-text); color: var(--sf-bg);
    font-size: .8rem; padding: .45rem 1rem;
}
.sf-topbar a { color: inherit; font-weight: 600; }
.sf-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--sf-bg) 82%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent); }
.sf-header-inner { max-width: 72rem; margin: 0 auto; display: flex; align-items: center; gap: 1.5rem; padding: .7rem 1.25rem; }
.sf-brand { display: flex; align-items: center; text-decoration: none; font-family: var(--sf-font-heading); font-size: 1.15rem; }
.sf-brand img { height: 2.1rem; width: auto; }
.sf-nav { display: none; gap: 1.4rem; margin-inline: auto; }
.sf-nav a { text-decoration: none; font-size: .92rem; color: var(--sf-muted); transition: color .15s; }
.sf-nav a:hover { color: var(--sf-text); }
.sf-header-cta { margin-left: auto; }
@media (min-width: 900px) { .sf-nav { display: flex; } .sf-header-cta { margin-left: 0; } }

/* ── hero ── */
.sf-hero { position: relative; overflow: hidden; padding: 5.5rem 1.25rem 2.5rem; text-align: center; }
.sf-hero-glow { position: absolute; inset: 0 0 auto; height: 520px; opacity: .35; pointer-events: none;
    background: radial-gradient(60% 55% at 50% 0%, var(--sf-primary) 0%, transparent 70%); }
.sf-hero-inner { position: relative; max-width: 46rem; margin: 0 auto; }
.sf-kicker { display: inline-block; border: 1px solid color-mix(in srgb, var(--sf-line) 50%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 70%, transparent); backdrop-filter: blur(8px);
    border-radius: 999px; padding: .35rem 1rem; font-size: .78rem; color: var(--sf-muted); margin-bottom: 1.1rem; }
.sf-realce { font-style: normal; color: var(--sf-primary); }
.sf-sub { max-width: 36rem; margin: 1.1rem auto 0; color: var(--sf-muted); font-size: 1.02rem; text-wrap: pretty; }
.sf-hero-accoes { margin-top: 1.9rem; display: flex; justify-content: center; gap: .8rem; flex-wrap: wrap; }
.sf-hero-phones { position: relative; display: flex; align-items: flex-end; justify-content: center; margin-top: 3rem; }
.sf-phone { width: 15rem; border-radius: 2rem; box-shadow: 0 24px 60px rgba(0,0,0,.25); }
.sf-phone-0, .sf-phone-2 { display: none; width: 12.5rem; }
@media (min-width: 760px) {
    .sf-phone-0 { display: block; transform: translate(2rem, 1.4rem) rotate(-6deg); }
    .sf-phone-2 { display: block; transform: translate(-2rem, 1.4rem) rotate(6deg); }
}
.sf-hero-base { position: absolute; inset: auto 0 0; height: 9rem; pointer-events: none;
    background: linear-gradient(to top, var(--sf-bg) 20%, transparent); }
.sf-hero-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: 1.8rem; padding-inline: 1rem; }
.sf-chip { display: inline-flex; align-items: center; gap: .5rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 55%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 85%, transparent);
    border-radius: 999px; padding: .45rem 1rem; font-size: .78rem; font-weight: 500;
    box-shadow: 0 8px 20px rgba(0,0,0,.06); }
.sf-chip-ponto { width: .5rem; height: .5rem; border-radius: 999px; background: var(--sf-primary); }
.sf-chip-forte { font-weight: 700; }

/* ── secções ── */
.sf-seccao { max-width: 72rem; margin: 0 auto; padding: 4.2rem 1.25rem; }
.sf-seccao-suave { max-width: none; background: var(--sf-tint); }
.sf-seccao-suave > * { max-width: 72rem; margin-inline: auto; }
.sf-seccao-topo { max-width: 44rem; margin: 0 auto 2.4rem; text-align: center; }
.sf-seccao-topo .sf-kicker { margin-bottom: .8rem; }
.sf-seccao-cta { margin-top: 2.2rem; text-align: center; }
.sf-data { font-size: .82rem; color: var(--sf-muted); }
.sf-data a { color: inherit; }

.sf-aside { font-size: .9rem; margin-top: .6rem; }

/* grelha de cartões */
.sf-grelha { display: grid; gap: 1.2rem; }
@media (min-width: 700px) { .sf-grelha-3 { grid-template-columns: repeat(3, 1fr); } }
.sf-cartao { display: flex; flex-direction: column; overflow: hidden; text-decoration: none;
    background: var(--sf-surface); border: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent);
    border-radius: var(--sf-radius-card); transition: transform .2s ease, box-shadow .2s ease; }
.sf-cartao:hover { transform: translateY(-3px); box-shadow: 0 18px 44px rgba(0,0,0,.09); }
.sf-cartao > img { aspect-ratio: 4 / 3; object-fit: cover; }
.sf-cartao-corpo { padding: 1.15rem 1.25rem 1.35rem; display: flex; flex-direction: column; gap: .5rem; }
.sf-cartao-corpo p { color: var(--sf-muted); font-size: .92rem; }
.sf-etiqueta { align-self: flex-start; font-size: .72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .05em; color: var(--cartao-tinta, var(--sf-primary)); }
.sf-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }
.sf-tags span { font-size: .72rem; border: 1px solid var(--sf-line); border-radius: 999px; padding: .18rem .6rem; color: var(--sf-muted); }

/* passos */
.sf-passos { display: grid; gap: 1.2rem; padding-block: .5rem 4.2rem; }
@media (min-width: 860px) { .sf-passos { grid-template-columns: repeat(3, 1fr); } }
.sf-passo { background: var(--sf-surface); border: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent);
    border-radius: var(--sf-radius-card); padding: 1.5rem; display: flex; flex-direction: column; gap: .8rem; }
.sf-passo-numero { align-self: flex-start; background: color-mix(in srgb, var(--sf-primary) 12%, var(--sf-surface));
    color: var(--sf-primary); font-weight: 700; font-size: .8rem; border-radius: 999px; padding: .3rem .85rem; }
.sf-passo-corpo { display: flex; flex-direction: column; gap: .45rem; }
.sf-passo-corpo p { color: var(--sf-muted); font-size: .92rem; }
.sf-passo-corpo ul { display: flex; flex-direction: column; gap: .3rem; margin-top: .2rem; }
.sf-passo-corpo li { position: relative; padding-left: 1.1rem; font-size: .88rem; color: var(--sf-muted); }
.sf-passo-corpo li::before { content: ''; position: absolute; left: 0; top: .48em; width: .45rem; height: .45rem; border-radius: 999px; background: var(--sf-primary); }
.sf-passo img { border-radius: calc(var(--sf-radius-card) - 6px); margin-top: auto; }

/* planos */
.sf-planos { display: grid; gap: 1.2rem; align-items: stretch; }
@media (min-width: 860px) { .sf-planos { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); } }
.sf-plano { background: var(--sf-surface); border: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent);
    border-radius: var(--sf-radius-card); padding: 1.7rem 1.5rem; display: flex; flex-direction: column; gap: .7rem; }
.sf-plano-forte { border-color: var(--sf-primary); box-shadow: 0 20px 50px color-mix(in srgb, var(--sf-primary) 22%, transparent); }
.sf-plano-preco { font-family: var(--sf-font-heading); font-size: 2rem; font-weight: 800; }
.sf-plano-preco span { font-size: .95rem; font-weight: 500; color: var(--sf-muted); margin-left: .25rem; }
.sf-plano-desc { color: var(--sf-muted); font-size: .92rem; }
.sf-plano ul { display: flex; flex-direction: column; gap: .45rem; margin-block: .4rem .9rem; }
.sf-plano li { position: relative; padding-left: 1.4rem; font-size: .9rem; }
.sf-plano li::before { content: '✓'; position: absolute; left: 0; color: var(--sf-primary); font-weight: 700; }
.sf-plano .sf-btn { margin-top: auto; justify-content: center; }

/* faixa de chamada */
.sf-faixa { background: var(--sf-primary); color: var(--sf-on-primary); }
.sf-faixa-inner { max-width: 72rem; margin: 0 auto; padding: 2.6rem 1.25rem;
    display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.sf-faixa p { opacity: .85; margin-top: .3rem; }

/* chamada final + marquee */
.sf-cta-final { overflow: hidden; }
.sf-marquee { margin-top: 2.5rem; mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent); }
.sf-marquee-fita { display: flex; gap: 2.5rem; width: max-content; animation: sf-marquee 22s linear infinite; }
.sf-marquee-fita span { font-family: var(--sf-font-heading); font-size: 1.6rem; font-weight: 800; color: color-mix(in srgb, var(--sf-text) 22%, transparent); white-space: nowrap; }
@keyframes sf-marquee { to { transform: translateX(-50%); } }

/* artigo (item de colecção / página) */
.sf-artigo { max-width: 46rem; }
.sf-artigo .sf-seccao-topo { text-align: left; margin-bottom: 1.6rem; }
.sf-artigo-capa { border-radius: var(--sf-radius-card); margin-bottom: 1.6rem; }
.sf-artigo-corpo { display: flex; flex-direction: column; gap: .9rem; color: var(--sf-text); }
.sf-artigo-corpo a { color: var(--sf-primary); }

/* rodapé */
.sf-footer { border-top: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent); background: var(--sf-tint); margin-top: 3rem; }
.sf-footer-inner { max-width: 72rem; margin: 0 auto; padding: 3rem 1.25rem 2rem;
    display: grid; gap: 2rem; }
@media (min-width: 860px) { .sf-footer-inner { grid-template-columns: 2fr 1fr 1fr; } }
.sf-footer-sobre { display: flex; flex-direction: column; gap: .8rem; max-width: 24rem; }
.sf-footer-sobre p { color: var(--sf-muted); font-size: .92rem; }
.sf-footer-logo { height: 2rem; width: auto; align-self: flex-start; }
.sf-footer-contactos, .sf-footer-redes { display: flex; flex-direction: column; gap: .5rem; font-size: .92rem; }
.sf-footer-contactos a, .sf-footer-redes a { color: var(--sf-muted); text-decoration: none; }
.sf-footer-contactos a:hover, .sf-footer-redes a:hover { color: var(--sf-text); }
.sf-footer-legal { border-top: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent);
    display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
    max-width: 72rem; margin: 0 auto; padding: 1.1rem 1.25rem; font-size: .8rem; color: var(--sf-muted); }
.sf-assinatura { color: inherit; text-decoration: none; }
.sf-assinatura:hover { color: var(--sf-text); }

/* botão flutuante do WhatsApp */
.sf-whats { position: fixed; right: 1.1rem; bottom: 1.1rem; z-index: 60;
    display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 999px;
    background: #25D366; color: #fff; box-shadow: 0 12px 30px rgba(37,211,102,.4); }
.sf-whats svg { width: 1.9rem; height: 1.9rem; }

/* contacto */
.sf-contacto { display: grid; gap: 2rem; }
@media (min-width: 860px) { .sf-contacto { grid-template-columns: 1fr 1.6fr; } }
.sf-contacto-info { display: flex; flex-direction: column; gap: 1rem; }
.sf-contacto-info p { display: flex; flex-direction: column; gap: .15rem; color: var(--sf-muted); font-size: .95rem; }
.sf-contacto-info strong { color: var(--sf-text); font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
.sf-contacto-info a { color: inherit; }
.sf-form { display: flex; flex-direction: column; gap: 1rem; background: var(--sf-surface);
    border: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent);
    border-radius: var(--sf-radius-card); padding: 1.6rem; }
.sf-form-linha { display: grid; gap: 1rem; }
@media (min-width: 640px) { .sf-form-linha { grid-template-columns: 1fr 1fr; } }
.sf-form label { display: flex; flex-direction: column; gap: .35rem; font-size: .85rem; font-weight: 600; }
.sf-form input, .sf-form select, .sf-form textarea {
    font: inherit; font-weight: 400; color: var(--sf-text); background: var(--sf-bg);
    border: 1px solid var(--sf-line); border-radius: var(--sf-radius-control);
    padding: .6rem .8rem; }
.sf-form input:focus-visible, .sf-form select:focus-visible, .sf-form textarea:focus-visible {
    outline: 2px solid var(--sf-primary); outline-offset: 1px; border-color: var(--sf-primary); }
.sf-form button { align-self: flex-start; }
.sf-form-ok { background: color-mix(in srgb, #16a34a 12%, var(--sf-surface)); color: #166534;
    border-radius: var(--sf-radius-control); padding: .7rem 1rem; font-size: .9rem; }
.sf-form-erro { background: color-mix(in srgb, var(--sf-danger) 10%, var(--sf-surface)); color: var(--sf-danger);
    border-radius: var(--sf-radius-control); padding: .7rem 1rem; font-size: .9rem; }

/* motion desligado no CMS (webfront.motion=false) */
.sf-sem-motion .sf-marquee-fita { animation: none !important; }
.sf-sem-motion .sf-reveal, .sf-sem-motion .sf-prep { opacity: 1 !important; transform: none !important; transition: none !important; }

/* paginação (links() do Laravel) */
nav[role="navigation"] { margin-top: 2rem; display: flex; justify-content: center; }

/* ═══════════════ VARIAÇÃO taxi-go — mobilidade ═══════════════
   Assinaturas: tag rectangular, linha primária sob o header, xadrez táxi,
   hero split c/ telefone rodado, bento grid, rota tracejada, planos em lista. */
.sf-t-taxi-go .sf-header { backdrop-filter: none; background: var(--sf-bg); }
.sf-t-taxi-go .sf-header::after { content: ''; display: block; height: 2px; background: var(--sf-primary); }

.tg-tag { display: inline-block; margin-bottom: 1rem; background: var(--sf-tint); color: var(--sf-primary);
    padding: .35rem .8rem; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; }
.tg-topo { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 2.4rem; }
@media (min-width: 860px) { .tg-topo { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.tg-topo h2 { max-width: 34rem; }
.tg-topo-solto { display: block; }
.tg-aside { max-width: 15rem; color: var(--sf-muted); font-size: .9rem; }
@media (min-width: 860px) { .tg-aside { text-align: right; } }

/* hero split */
.tg-hero { position: relative; overflow: hidden; padding: 5.5rem 1.25rem 3rem; }
.tg-xadrez { position: absolute; left: -10%; right: -10%; top: 10rem; height: 6rem; transform: rotate(-3deg);
    background: conic-gradient(color-mix(in srgb, var(--sf-primary) 12%, transparent) 25%, transparent 0 50%,
        color-mix(in srgb, var(--sf-primary) 12%, transparent) 0 75%, transparent 0);
    background-size: 48px 48px; pointer-events: none;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 25%, #000 75%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 25%, #000 75%, transparent); }
.tg-hero-grelha { position: relative; max-width: 72rem; margin: 0 auto; display: grid; gap: 3rem; align-items: center; }
@media (min-width: 860px) { .tg-hero-grelha { grid-template-columns: 1fr 1fr; } }
.tg-hero-texto h1 { max-width: 30rem; }
.tg-hero-texto .sf-sub { margin-inline: 0; max-width: 26rem; }
.tg-hero-accoes { margin-top: 1.9rem; display: flex; gap: .8rem; flex-wrap: wrap; }
.tg-prova { margin-top: 2.2rem; border-top: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent);
    padding-top: 1.4rem; font-family: var(--sf-font-heading); font-size: 1.4rem; }
.tg-hero-fone { position: relative; display: flex; justify-content: center; }
.tg-fone { position: relative; z-index: 2; width: 17rem; border-radius: 2.2rem;
    box-shadow: 0 24px 60px rgba(0,0,0,.25); transform: rotate(6deg); }
.tg-fone-tras { position: absolute; left: -2rem; bottom: 1rem; width: 12rem; border-radius: 2rem;
    opacity: .6; filter: blur(2px); display: none; }
@media (min-width: 1100px) { .tg-fone-tras { display: block; } }
.tg-chip { position: absolute; right: 0; top: 2.4rem; z-index: 3; display: inline-flex; align-items: center; gap: .6rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent); background: var(--sf-surface);
    border-radius: var(--sf-radius-control); padding: .6rem 1rem; font-size: .78rem; font-weight: 500;
    box-shadow: 0 14px 34px rgba(0,0,0,.14); animation: tg-flutua 5s ease-in-out infinite; }
.tg-pulso { width: .6rem; height: .6rem; border-radius: 999px; background: var(--sf-primary); position: relative; }
.tg-pulso::after { content: ''; position: absolute; inset: -4px; border-radius: 999px;
    border: 2px solid var(--sf-primary); animation: tg-pulsa 1.8s ease-out infinite; }
@keyframes tg-flutua { 50% { transform: translateY(-6px); } }
@keyframes tg-pulsa { from { opacity: .8; transform: scale(.6); } to { opacity: 0; transform: scale(1.3); } }

/* bento grid */
.tg-bento { display: grid; gap: 1.2rem; }
@media (min-width: 860px) { .tg-bento { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 15rem; } }
.tg-carta { position: relative; overflow: hidden; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: var(--carta, var(--sf-primary)); min-height: 16rem; display: flex; }
.tg-carta-grande { min-height: 26rem; }
@media (min-width: 860px) { .tg-carta-grande { grid-row: span 2; } }
.tg-carta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .9;
    transition: transform .7s ease; }
.tg-carta:hover > img { transform: scale(1.04); }
.tg-carta-veu { position: absolute; inset: 0;
    background: linear-gradient(to top, color-mix(in srgb, var(--carta) 94%, transparent) 0%,
        color-mix(in srgb, var(--carta) 50%, transparent) 38%, transparent 72%); }
.tg-carta-badge { position: absolute; left: 1.25rem; top: 1.25rem; z-index: 2; display: inline-flex; align-items: center;
    gap: .4rem; background: color-mix(in srgb, var(--sf-bg) 70%, transparent); backdrop-filter: blur(4px);
    border-radius: 999px; padding: .25rem .75rem; font-size: .7rem; font-weight: 700; }
.tg-carta-badge span { width: .4rem; height: .4rem; border-radius: 999px; background: var(--carta); }
.tg-carta-corpo { position: relative; z-index: 1; margin-top: auto; padding: 1.4rem; color: #fff; }
.tg-carta-grande .tg-carta-corpo h3 { font-size: 1.6rem; }
.tg-carta-corpo p { margin-top: .4rem; font-size: .88rem; opacity: .9; }
.tg-carta-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .8rem; }
.tg-carta-tags span { border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.16);
    backdrop-filter: blur(4px); border-radius: 999px; padding: .2rem .7rem; font-size: .7rem; }

/* rota (passos) */
.tg-banda { background: var(--sf-tint); }
.tg-banda-fundo { padding-bottom: .1px; }
.tg-rota { display: flex; flex-direction: column; counter-reset: paragem; }
@media (min-width: 860px) { .tg-rota { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; } }
.tg-rota > li { position: relative; display: flex; gap: 1.2rem; }
@media (min-width: 860px) { .tg-rota > li { display: block; } }
.tg-rota-no { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; }
@media (min-width: 860px) { .tg-rota-no { flex-direction: row; justify-content: center; margin-bottom: 1.4rem; } }
.tg-rota-num { z-index: 1; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 999px;
    background: var(--sf-primary); color: var(--sf-on-primary); font-family: var(--sf-font-heading);
    font-weight: 700; font-size: .9rem; box-shadow: 0 10px 24px color-mix(in srgb, var(--sf-primary) 40%, transparent),
    0 0 0 4px var(--sf-tint); }
.tg-rota-traco { flex: 1; width: 0; margin-block: .5rem; border-left: 2px dashed color-mix(in srgb, var(--sf-primary) 45%, transparent); }
@media (min-width: 860px) {
    .tg-rota-traco { display: none; }
    .tg-rota > li:not(.tg-rota-fim)::after { content: ''; position: absolute; top: 1.5rem;
        left: calc(50% + 2.2rem); right: calc(-50% + 2.2rem);
        border-top: 2px dashed color-mix(in srgb, var(--sf-primary) 45%, transparent); }
}
.tg-rota-carta { flex: 1; background: var(--sf-surface); border: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent);
    border-radius: var(--sf-radius-card); padding: 1.3rem; margin-bottom: 1.6rem; }
@media (min-width: 860px) { .tg-rota-carta { margin-bottom: 0; } }
.tg-rota-carta img { height: 7rem; width: 100%; object-fit: cover; border-radius: var(--sf-radius-control); margin-bottom: .9rem; }
.tg-rota-carta p { margin-top: .35rem; color: var(--sf-muted); font-size: .9rem; }
.tg-rota-carta ul { margin-top: .8rem; display: flex; flex-direction: column; gap: .45rem; }
.tg-rota-carta li { display: flex; gap: .5rem; font-size: .88rem; align-items: flex-start; }
.tg-rota-carta li svg { width: .9rem; height: .9rem; flex-shrink: 0; margin-top: .2rem; color: var(--sf-primary); }

/* painel CTA com chevrons */
.tg-painel { display: flex; flex-direction: column; gap: 1.4rem; align-items: flex-start;
    background: var(--sf-primary); color: var(--sf-on-primary);
    border-radius: var(--sf-radius-card); padding: 2rem; overflow: hidden; }
@media (min-width: 860px) { .tg-painel { flex-direction: row; align-items: center; padding: 2.5rem; } }
.tg-painel p { margin-top: .4rem; opacity: .85; max-width: 30rem; font-size: .92rem; }
.tg-chevrons { display: none; gap: .3rem; margin-left: auto; }
@media (min-width: 1080px) { .tg-chevrons { display: flex; } }
.tg-chevrons svg { width: 1.7rem; height: 1.7rem; stroke: currentColor; }
.tg-painel .sf-btn { flex-shrink: 0; }
@media (min-width: 860px) { .tg-painel > div:first-child { margin-right: auto; } .tg-chevrons { margin-left: 0; } }

/* planos em lista */
.tg-planos { border: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent);
    border-radius: var(--sf-radius-card); overflow: hidden; background: var(--sf-surface); }
.tg-plano { display: flex; flex-direction: column; gap: 1rem; padding: 1.6rem; }
.tg-plano + .tg-plano { border-top: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent); }
@media (min-width: 900px) { .tg-plano { flex-direction: row; align-items: center; gap: 2rem; padding: 2rem; } }
.tg-plano-forte { background: var(--sf-primary); color: var(--sf-on-primary); }
.tg-plano-id { flex-shrink: 0; }
@media (min-width: 900px) { .tg-plano-id { width: 15rem; } }
.tg-plano-id h3 { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.tg-plano-id p { margin-top: .3rem; font-size: .88rem; color: var(--sf-muted); }
.tg-plano-forte .tg-plano-id p { color: color-mix(in srgb, var(--sf-on-primary) 80%, transparent); }
.tg-plano-badge { background: var(--sf-tint); color: var(--sf-primary); border-radius: 999px;
    padding: .15rem .6rem; font-size: .68rem; font-weight: 700; }
.tg-plano-forte .tg-plano-badge { background: rgba(255,255,255,.2); color: var(--sf-on-primary); }
.tg-plano-lista { display: none; flex: 1; flex-wrap: wrap; gap: .5rem 1.5rem; }
@media (min-width: 900px) { .tg-plano-lista { display: flex; } }
.tg-plano-lista li { display: flex; align-items: center; gap: .5rem; font-size: .88rem; }
.tg-plano-lista svg { width: .55rem; height: .55rem; color: var(--sf-primary); }
.tg-plano-forte .tg-plano-lista svg { color: var(--sf-on-primary); }
.tg-plano-fim { display: flex; align-items: center; justify-content: space-between; gap: 1.4rem; }
@media (min-width: 900px) { .tg-plano-fim { margin-left: auto; justify-content: flex-end; } }
.tg-plano-preco { font-family: var(--sf-font-heading); font-size: 1.9rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.tg-plano-preco span { font-size: .85rem; font-weight: 500; opacity: .7; margin-left: .3rem; }
.tg-nota { margin-top: 1.6rem; font-size: .85rem; color: var(--sf-muted); }

/* moldura final */
.tg-moldura { position: relative; overflow: hidden; text-align: center;
    border: 2px solid var(--sf-primary); border-radius: var(--sf-radius-card);
    padding: 3.4rem 1.5rem; }
.tg-moldura-brilho { position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(70% 55% at 50% 0%, color-mix(in srgb, var(--sf-primary) 16%, transparent), transparent 70%); }
.tg-moldura-logo { position: relative; margin: 0 auto 1.4rem; height: 3.4rem; width: 3.4rem;
    border-radius: 1rem; box-shadow: 0 10px 26px rgba(0,0,0,.18); }
.tg-moldura h2, .tg-moldura .sf-sub { position: relative; }

/* ═══════════════ VARIAÇÃO ticket-hub — eventos, nocturno e eléctrico ═══════
   Assinaturas: glows radiais, brilho neon da primária, leque de bilhetes com
   canhoto picotado, eventos horizontais com data-badge, pílulas com setas,
   cupão tracejado com furos, planos-bilhete com picotado vertical. */
.th-brilho { box-shadow: 0 0 24px color-mix(in srgb, var(--sf-primary) 45%, transparent); }
.th-neon { color: var(--sf-primary); }
.th-kicker { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1rem;
    border: 1px solid color-mix(in srgb, var(--sf-primary) 30%, transparent);
    background: var(--sf-tint); color: var(--sf-primary);
    border-radius: 999px; padding: .35rem 1rem; font-size: .75rem; font-weight: 600; }
.th-pulso { width: .45rem; height: .45rem; border-radius: 999px; background: var(--sf-primary); position: relative; flex-shrink: 0; }
.th-pulso::after { content: ''; position: absolute; inset: -4px; border-radius: 999px;
    border: 2px solid var(--sf-primary); animation: tg-pulsa 1.8s ease-out infinite; }

/* hero nocturno */
.th-hero { position: relative; overflow: hidden; padding: 5.5rem 1.25rem 3rem; text-align: center; }
.th-glow { position: absolute; border-radius: 999px; pointer-events: none;
    background: color-mix(in srgb, var(--sf-primary) 20%, transparent); filter: blur(64px); }
.th-glow-a { left: -6rem; top: -6rem; width: 20rem; height: 20rem; }
.th-glow-b { right: -8rem; top: 33%; width: 24rem; height: 24rem; }
.th-hero-inner { position: relative; max-width: 44rem; margin: 0 auto; }
.th-accoes { margin-top: 1.9rem; display: flex; justify-content: center; gap: .8rem; flex-wrap: wrap; }

/* leque de bilhetes */
.th-leque { position: relative; display: flex; align-items: center; justify-content: center; margin-top: 3.5rem; }
.th-bilhete { overflow: hidden; border-radius: var(--sf-radius-card);
    border: 1px solid var(--sf-line); background: var(--sf-surface);
    box-shadow: 0 24px 60px rgba(0,0,0,.25); width: 14rem; }
.th-bilhete > img { aspect-ratio: 3 / 4; width: 100%; object-fit: cover; }
.th-canhoto { display: flex; align-items: center; justify-content: space-between; gap: .8rem;
    border-top: 1px dashed var(--sf-line); padding: .7rem 1rem; font-size: .75rem; font-weight: 500; }
.th-canhoto span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.th-bilhete-0, .th-bilhete-2 { display: none; width: 11rem; }
.th-bilhete-1 { position: relative; z-index: 2; transform: rotate(3deg);
    box-shadow: 0 0 40px -10px color-mix(in srgb, var(--sf-primary) 40%, transparent); }
@media (min-width: 860px) {
    .th-bilhete-0 { display: block; transform: translate(2.4rem, .8rem) rotate(-10deg); }
    .th-bilhete-2 { display: block; transform: translate(-2.4rem, 1.4rem) rotate(12deg); }
}

/* eventos horizontais */
.th-eventos { display: flex; flex-direction: column; gap: 1.2rem; }
.th-evento { display: flex; flex-direction: column; gap: 1.2rem;
    border: 1px solid var(--sf-line); background: var(--sf-surface);
    border-radius: var(--sf-radius-card); padding: 1.3rem;
    transition: border-color .3s ease, box-shadow .3s ease; }
.th-evento:hover { border-color: var(--sf-primary);
    box-shadow: 0 0 36px -10px color-mix(in srgb, var(--sf-primary) 45%, transparent); }
@media (min-width: 860px) { .th-evento { flex-direction: row; align-items: center; gap: 1.7rem; padding: 1.5rem; } }
.th-data { display: flex; flex-direction: column; align-items: center; justify-content: center;
    width: 5rem; height: 5rem; flex-shrink: 0;
    background: var(--sf-tint); color: var(--sf-primary); border-radius: var(--sf-radius-control); }
.th-data strong { font-family: var(--sf-font-heading); font-size: 1.5rem; line-height: 1; }
.th-data small { margin-top: .25rem; font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.th-evento-corpo { flex: 1; min-width: 0; }
.th-evento-corpo h3 { display: flex; align-items: center; gap: .6rem; }
.th-ponto { width: .6rem; height: .6rem; border-radius: 999px; flex-shrink: 0; }
.th-evento-corpo p { margin-top: .45rem; max-width: 36rem; color: var(--sf-muted); font-size: .92rem; }
.th-evento-media { flex-shrink: 0; overflow: hidden; border-radius: var(--sf-radius-control);
    border: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent); }
@media (min-width: 860px) { .th-evento-media { width: 12rem; } }
.th-evento-media img { aspect-ratio: 16 / 9; width: 100%; object-fit: cover; transition: transform .5s ease; }
.th-evento:hover .th-evento-media img { transform: scale(1.05); }

/* pílulas com setas */
.th-banda { border-block: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 20%, transparent); }
.th-pilulas { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; }
@media (min-width: 900px) { .th-pilulas { flex-direction: row; gap: .5rem; } }
.th-pilula { display: flex; align-items: center; gap: 1.2rem; flex: 1; min-width: 0;
    border: 1px solid var(--sf-line); background: var(--sf-surface);
    border-radius: 999px; padding: 1.2rem 1.6rem; }
.th-pilula-num { display: grid; place-items: center; width: 3rem; height: 3rem; flex-shrink: 0;
    border-radius: 999px; background: var(--sf-primary); color: var(--sf-on-primary);
    font-family: var(--sf-font-heading); font-weight: 700; font-size: 1.1rem; }
.th-pilula h3 { font-size: 1.02rem; }
.th-pilula p { margin-top: .2rem; color: var(--sf-muted); font-size: .88rem; }
.th-pilula ul { margin-top: .45rem; display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
.th-pilula li { display: flex; align-items: center; gap: .4rem; font-size: .78rem; color: var(--sf-muted); }
.th-pilula li span { width: .4rem; height: .4rem; border-radius: 999px; background: var(--sf-primary); }
.th-seta { display: none; width: 1.5rem; height: 1.5rem; align-self: center; flex-shrink: 0; color: var(--sf-primary); }
@media (min-width: 900px) { .th-seta { display: block; } }

/* cupão */
.th-cupao { position: relative; max-width: 52rem; margin: 0 auto; text-align: center;
    border: 2px dashed var(--sf-primary); border-radius: var(--sf-radius-card);
    background: color-mix(in srgb, var(--sf-surface) 60%, transparent);
    padding: 2.6rem 2rem; }
.th-cupao .sf-sub { margin-top: .8rem; }
.th-cupao .sf-btn { margin-top: 1.7rem; }
.th-furo { position: absolute; top: 50%; width: 2rem; height: 2rem; border-radius: 999px;
    background: var(--sf-bg); transform: translateY(-50%); }
.th-furo-esq { left: -1rem; } .th-furo-dir { right: -1rem; }

/* planos-bilhete */
.th-planos { max-width: 60rem; margin: 0 auto; display: flex; flex-direction: column; gap: 1.4rem; }
.th-plano { position: relative; display: flex; flex-direction: column; overflow: hidden;
    border: 1px solid var(--sf-line); background: var(--sf-surface); border-radius: var(--sf-radius-card); }
@media (min-width: 860px) { .th-plano { flex-direction: row; } }
.th-plano-forte { border-color: color-mix(in srgb, var(--sf-primary) 60%, transparent);
    background: color-mix(in srgb, var(--sf-primary) 14%, var(--sf-surface));
    box-shadow: 0 0 40px -12px color-mix(in srgb, var(--sf-primary) 50%, transparent); }
.th-plano-corpo { flex: 1; min-width: 0; padding: 1.7rem; }
.th-plano-corpo h3 { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.th-badge { background: var(--sf-tint); color: var(--sf-primary); border-radius: 999px;
    padding: .2rem .75rem; font-size: .68rem; font-weight: 700; }
.th-plano-corpo > p { margin-top: .4rem; color: var(--sf-muted); font-size: .9rem; }
.th-plano-corpo ul { margin-top: 1.1rem; display: grid; gap: .6rem; }
@media (min-width: 640px) { .th-plano-corpo ul { grid-template-columns: 1fr 1fr; } }
.th-plano-corpo li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.th-plano-corpo li svg { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: .15rem; color: var(--sf-primary); }
.th-plano-canhoto { position: relative; display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: .5rem; padding: 1.7rem;
    border-top: 2px dashed var(--sf-line); }
@media (min-width: 860px) { .th-plano-canhoto { width: 12rem; flex-shrink: 0; border-top: 0; border-left: 2px dashed var(--sf-line); } }
.th-furo-meio { position: absolute; left: -0.75rem; width: 1.5rem; height: 1.5rem;
    border-radius: 999px; background: var(--sf-bg); display: none; }
@media (min-width: 860px) { .th-furo-meio { display: block; } }
.th-furo-cima { top: -0.75rem; } .th-furo-baixo { bottom: -0.75rem; }
.th-preco { font-family: var(--sf-font-heading); font-size: 2.2rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.th-periodo { font-size: .85rem; color: var(--sf-muted); }
.th-plano-canhoto .sf-btn { width: 100%; justify-content: center; margin-top: .5rem; }

/* final */
.th-final { position: relative; overflow: hidden; border-top: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent); padding: 5rem 1.25rem 0; }
.th-final-glow { position: absolute; inset: auto 0 0; height: 18rem; pointer-events: none;
    background: radial-gradient(60% 85% at 50% 100%, color-mix(in srgb, var(--sf-primary) 30%, transparent) 0%, transparent 70%); }
.th-final-logo { height: 4rem; width: 4rem; border-radius: 1rem; margin: 0 auto 1.4rem; }
.th-final .sf-marquee { position: relative; margin-top: 3rem; padding-bottom: 3rem; }

/* ═══════════════ VARIAÇÃO rota-entrega — entregas, rota concêntrica ═══════ */
.re-hero { position: relative; overflow: hidden; padding: 5.5rem 1.25rem 2.5rem; text-align: center; }
.re-glow { position: absolute; inset: 0 0 auto; height: 560px; opacity: .35; pointer-events: none;
    background: radial-gradient(55% 50% at 50% 8%, var(--sf-primary) 0%, transparent 70%); }
.re-rota { position: absolute; left: 50%; top: 9rem; width: 51rem; height: 51rem;
    transform: translateX(-50%); opacity: .7; pointer-events: none; }
.re-hero-inner { position: relative; max-width: 46rem; margin: 0 auto; }
.re-prova { display: inline-flex; margin-top: 2.2rem; border: 1px solid color-mix(in srgb, var(--sf-line) 50%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 85%, transparent); backdrop-filter: blur(8px);
    border-radius: 999px; padding: .55rem 1.3rem; font-family: var(--sf-font-heading);
    font-weight: 700; font-size: .95rem; box-shadow: 0 10px 26px rgba(0,0,0,.1);
    animation: tg-flutua 7s ease-in-out infinite; }
.re-arco { position: relative; display: flex; align-items: flex-end; justify-content: center; margin-top: 2rem; }
.re-fone { width: 15rem; border-radius: 2.2rem; box-shadow: 0 24px 60px rgba(0,0,0,.25); position: relative; z-index: 2; }
.re-fone-0, .re-fone-2 { display: none; width: 12rem; z-index: 1; }
@media (min-width: 860px) {
    .re-fone-0 { display: block; transform: translate(2.5rem, 3rem) rotate(-12deg); }
    .re-fone-2 { display: block; transform: translate(-2.5rem, 3rem) rotate(12deg); }
}
.re-etiqueta { display: inline-flex; align-items: center; gap: .5rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 55%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 90%, transparent);
    border-radius: var(--sf-radius-control); padding: .5rem 1rem; font-size: .78rem; font-weight: 600;
    box-shadow: 0 10px 24px rgba(0,0,0,.08); animation: tg-flutua 6s ease-in-out infinite; }
.re-etiqueta svg { width: .95rem; height: .95rem; color: var(--sf-primary); }

/* carrossel snap */
.re-carrossel-caixa { position: relative; }
.re-fade { position: absolute; inset-block: 0; width: 2.5rem; z-index: 2; pointer-events: none; }
.re-fade-esq { left: 0; background: linear-gradient(to right, var(--sf-bg), transparent); }
.re-fade-dir { right: 0; background: linear-gradient(to left, var(--sf-bg), transparent); }
.re-carrossel { display: flex; gap: 1.2rem; overflow-x: auto; padding-bottom: 1rem;
    scroll-snap-type: x mandatory; scrollbar-width: none; }
.re-carrossel::-webkit-scrollbar { display: none; }
.re-carta { flex: 0 0 85%; scroll-snap-align: start; display: flex; flex-direction: column;
    overflow: hidden; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent); background: var(--sf-surface); }
@media (min-width: 700px) { .re-carta { flex-basis: 45%; } }
@media (min-width: 1024px) { .re-carta { flex-basis: 31%; } }
.re-carta-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.re-carta-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.re-carta:hover .re-carta-media img { transform: scale(1.05); }
.re-carta-badge { position: absolute; left: 1rem; top: 1rem; z-index: 1; display: inline-flex; align-items: center;
    gap: .5rem; background: color-mix(in srgb, var(--sf-surface) 90%, transparent); backdrop-filter: blur(6px);
    border-radius: 999px; padding: .35rem .9rem; font-size: .75rem; font-weight: 700; }
.re-carta-badge span { width: .5rem; height: .5rem; border-radius: 999px; }
.re-filete { position: absolute; inset-inline: 0; bottom: 0; height: 4px; }
.re-carta-corpo { display: flex; flex-direction: column; gap: .7rem; padding: 1.4rem; flex: 1; }
.re-carta-corpo p { color: var(--sf-muted); font-size: .9rem; }
.re-carta-corpo .sf-tags { margin-top: auto; padding-top: .5rem; }

/* timeline zig-zag */
.re-linha-tempo { position: relative; display: flex; flex-direction: column; gap: 3.5rem; }
.re-linha { position: absolute; left: 1.25rem; top: .5rem; bottom: 1.5rem; width: 1px; background: var(--sf-line); }
@media (min-width: 860px) { .re-linha { left: 50%; transform: translateX(-50%); } }
.re-linha-tempo > li { position: relative; padding-left: 3.5rem; }
@media (min-width: 860px) {
    .re-linha-tempo > li { display: grid; grid-template-columns: 1fr 1fr; align-items: center; padding-left: 0; }
    .re-passo-texto { grid-column: 1; grid-row: 1; padding-right: 5rem; }
    .re-passo-media { grid-column: 2; grid-row: 1; padding-left: 5rem; }
    .re-flip .re-passo-texto { grid-column: 2; padding-right: 0; padding-left: 5rem; }
    .re-flip .re-passo-media { grid-column: 1; padding-left: 0; padding-right: 5rem; }
}
.re-marcador { position: absolute; left: 1.25rem; top: .25rem; z-index: 1; display: grid; place-items: center;
    width: 2.5rem; height: 2.5rem; transform: translateX(-50%); border-radius: 999px;
    background: var(--sf-primary); color: var(--sf-on-primary);
    font-family: var(--sf-font-heading); font-weight: 700; font-size: .82rem;
    box-shadow: 0 0 0 5px var(--sf-tint); }
@media (min-width: 860px) { .re-marcador { left: 50%; } }
.re-passo-texto h3 { font-size: 1.25rem; }
.re-passo-texto > p { margin-top: .6rem; color: var(--sf-muted); font-size: .92rem; }
.re-passo-texto ul { margin-top: 1rem; display: flex; flex-direction: column; gap: .55rem; }
.re-passo-texto li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.re-passo-texto li svg { width: 1.05rem; height: 1.05rem; flex-shrink: 0; margin-top: .1rem; }
.re-passo-media { margin-top: 1.4rem; }
@media (min-width: 860px) { .re-passo-media { margin-top: 0; } }
.re-passo-media > img { margin: 0 auto; max-width: 14rem; border-radius: 1.4rem; box-shadow: 0 18px 44px rgba(0,0,0,.15); }

/* banner gradiente */
.re-banner { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 1.4rem;
    align-items: flex-start; border-radius: 2.5rem; padding: 2rem; color: var(--sf-on-primary);
    background: linear-gradient(115deg, var(--sf-primary) 0%, color-mix(in srgb, var(--sf-bg-soft, var(--sf-tint)) 30%, var(--sf-primary)) 100%); }
@media (min-width: 860px) { .re-banner { flex-direction: row; align-items: center; padding: 3rem; } .re-banner > div:first-of-type { margin-right: auto; } }
.re-banner-circulos { position: absolute; right: -4rem; top: -6rem; width: 18rem; height: 18rem; opacity: .2; pointer-events: none; }
.re-banner p { margin-top: .4rem; max-width: 34rem; opacity: .85; font-size: .92rem; }
.re-banner .sf-btn { position: relative; }

/* planos meio elevado */
.re-planos { display: grid; gap: 1.4rem; align-items: stretch; }
@media (min-width: 860px) { .re-planos { grid-template-columns: repeat(3, 1fr); } }
.re-plano { display: flex; flex-direction: column; gap: 1rem; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent); background: var(--sf-surface); padding: 1.7rem; }
@media (min-width: 860px) { .re-plano-meio { transform: translateY(-0.75rem) scale(1.05); z-index: 1;
    box-shadow: 0 32px 64px -24px color-mix(in srgb, var(--sf-primary) 45%, transparent); } }
.re-plano-forte { border-color: transparent; background: var(--sf-primary); color: var(--sf-on-primary); box-shadow: 0 24px 60px rgba(0,0,0,.2); }
.re-plano-topo { display: flex; align-items: center; justify-content: space-between; }
.re-plano-badge { background: var(--sf-tint); color: var(--sf-primary); border-radius: 999px; padding: .2rem .8rem; font-size: .68rem; font-weight: 700; }
.re-plano-forte .re-plano-badge { background: rgba(255,255,255,.2); color: var(--sf-on-primary); }
.re-plano-desc { font-size: .9rem; color: var(--sf-muted); }
.re-plano-forte .re-plano-desc { color: color-mix(in srgb, var(--sf-on-primary) 85%, transparent); }
.re-plano-preco { font-family: var(--sf-font-heading); font-size: 2.4rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.re-plano-preco span { font-size: .9rem; font-weight: 500; opacity: .7; margin-left: .3rem; }
.re-plano .sf-btn { justify-content: center; }
.re-plano ul { display: flex; flex-direction: column; gap: .55rem; }
.re-plano li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.re-plano li svg { width: 1.05rem; height: 1.05rem; flex-shrink: 0; margin-top: .1rem; }

/* final com onda */
.re-final { overflow: hidden; background: var(--sf-primary); color: var(--sf-on-primary); }
.re-onda { display: block; width: 100%; height: 3.5rem; }
@media (min-width: 860px) { .re-onda { height: 5rem; } }
.re-final-topo { padding-top: 2rem; }
.re-final-topo h2 { color: inherit; }
.re-final-sub { margin-top: 1rem; opacity: .85; }
.re-final-logo { height: 3.6rem; width: 3.6rem; border-radius: 1rem; margin: 0 auto 1.2rem; box-shadow: 0 10px 26px rgba(0,0,0,.25); }
.re-final-marquee { margin-top: 2rem; padding-bottom: 2.5rem; }
.re-final-marquee .sf-marquee-fita span { color: color-mix(in srgb, var(--sf-on-primary) 30%, transparent); }

/* ═══════════════ VARIAÇÃO edu-smart — ensino, ondulado e degraus ═══════════ */
.es-hero { position: relative; overflow: hidden; padding: 5.5rem 1.25rem 3.5rem; }
.es-glow { position: absolute; inset: 0 0 auto; height: 480px; opacity: .25; pointer-events: none;
    background: radial-gradient(55% 60% at 25% 0%, var(--sf-primary) 0%, transparent 70%); }
.es-grelha { position: relative; max-width: 72rem; margin: 0 auto; display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .es-grelha { grid-template-columns: 1fr 1fr; } }
.es-texto { text-align: center; }
@media (min-width: 1024px) { .es-texto { text-align: left; } .es-texto .sf-sub { margin-inline: 0; } }
.es-ondulado { position: relative; display: inline-block; white-space: nowrap; }
.es-ondulado svg { position: absolute; left: 0; bottom: -.55rem; width: 100%; height: .7rem; color: var(--sf-primary); }
.es-accoes { margin-top: 1.9rem; display: flex; gap: .8rem; flex-wrap: wrap; justify-content: center; }
@media (min-width: 1024px) { .es-accoes { justify-content: flex-start; } }
.es-materias { margin-top: 1.9rem; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
@media (min-width: 1024px) { .es-materias { justify-content: flex-start; } }
.es-materias span, .es-tag { display: inline-block; background: var(--sf-tint); color: var(--sf-primary);
    border-radius: 999px; padding: .45rem 1rem; font-size: .75rem; font-weight: 700; }
.es-tag { margin-bottom: 1rem; padding-block: .35rem; }
.es-pilha { position: relative; margin: 0 auto; width: 100%; max-width: 26rem; min-height: 20rem; }
.es-mancha { position: absolute; inset: -1.25rem; border-radius: 3rem; transform: rotate(6deg);
    background: color-mix(in srgb, var(--sf-primary) 10%, transparent); }
.es-pilha img { border-radius: 1.8rem; border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    box-shadow: 0 24px 60px rgba(0,0,0,.18); }
.es-carta-0 { position: relative; z-index: 2; width: 64%; margin: 0 auto; display: block; transform: rotate(-2deg); }
.es-carta-1 { position: absolute; left: 0; top: 2.5rem; width: 56%; transform: rotate(-8deg); }
.es-carta-2 { position: absolute; right: 0; top: 4rem; z-index: 1; width: 56%; transform: rotate(9deg); }

/* cursos */
.es-curso { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent); background: var(--sf-surface);
    transition: transform .3s ease, box-shadow .3s ease; }
.es-curso:hover { transform: translateY(-6px); box-shadow: 0 24px 60px rgba(0,0,0,.14); }
.es-curso-media { aspect-ratio: 16 / 9; overflow: hidden; }
.es-curso-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.es-curso:hover .es-curso-media img { transform: scale(1.05); }
.es-curso-corpo { display: flex; flex-direction: column; gap: .7rem; padding: 1.4rem; flex: 1; }
.es-curso-corpo .es-tag { margin-bottom: 0; align-self: flex-start; }
.es-curso-corpo > p { color: var(--sf-muted); font-size: .9rem; }
.es-curso-tags { font-size: .78rem; color: var(--sf-muted); }
.es-curso-fim { margin-top: auto; display: flex; align-items: center; justify-content: space-between;
    border-top: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent); padding-top: 1rem; }
.es-curso-fim span { width: .6rem; height: .6rem; border-radius: 999px; }
.es-curso-fim svg { width: 1.2rem; height: 1.2rem; color: var(--sf-primary); }

/* percurso em degraus */
.es-percurso { position: relative; }
@media (min-width: 860px) { .es-percurso { padding-bottom: 5rem; } }
.es-fio { display: none; position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
@media (min-width: 860px) { .es-fio { display: block; } }
.es-degraus { position: relative; display: grid; gap: 1.4rem; }
@media (min-width: 860px) {
    .es-degraus { grid-template-columns: repeat(3, 1fr); }
    .es-degrau-1 { transform: translateY(2.5rem); }
    .es-degrau-2 { transform: translateY(5rem); }
}
.es-passo { display: flex; flex-direction: column; overflow: hidden; height: 100%;
    border: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); box-shadow: 0 4px 14px rgba(0,0,0,.05); }
.es-passo-media { position: relative; }
.es-passo-media img { aspect-ratio: 16 / 10; width: 100%; object-fit: cover; object-position: top; }
.es-selo { position: absolute; left: 1.4rem; bottom: -1.2rem; display: grid; place-items: center;
    width: 2.6rem; height: 2.6rem; border-radius: 999px; background: var(--sf-primary);
    color: var(--sf-on-primary); font-family: var(--sf-font-heading); font-weight: 700;
    box-shadow: 0 0 0 4px var(--sf-surface); }
.es-passo-corpo { display: flex; flex-direction: column; gap: .7rem; padding: 1.7rem; padding-top: 2.1rem; flex: 1; }
.es-passo-corpo p { color: var(--sf-muted); font-size: .9rem; }
.es-passo-corpo ul { margin-top: .2rem; display: flex; flex-direction: column; gap: .55rem; }
.es-passo-corpo li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.es-check { display: grid; place-items: center; width: 1.2rem; height: 1.2rem; flex-shrink: 0; margin-top: .1rem;
    border-radius: 999px; background: var(--sf-tint); color: var(--sf-primary); }
.es-check svg { width: .7rem; height: .7rem; }

/* cartão CTA tint */
.es-cartao-cta { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 1.4rem;
    align-items: flex-start; border-radius: var(--sf-radius-card); background: var(--sf-tint); padding: 2rem; }
@media (min-width: 860px) { .es-cartao-cta { flex-direction: row; align-items: center; padding: 3rem; }
    .es-cartao-cta > div:first-of-type { margin-right: auto; } }
.es-rabisco { position: absolute; right: 2.5rem; top: 1.5rem; width: 5rem; height: 1.5rem;
    color: color-mix(in srgb, var(--sf-primary) 30%, transparent); display: none; }
@media (min-width: 860px) { .es-rabisco { display: block; } }
.es-bola { position: absolute; left: -3rem; bottom: -3rem; width: 9rem; height: 9rem; border-radius: 999px;
    background: color-mix(in srgb, var(--sf-primary) 10%, transparent); }
.es-cartao-cta p { margin-top: .4rem; max-width: 34rem; color: var(--sf-muted); font-size: .95rem; }
.es-cartao-cta .sf-btn { position: relative; }

/* mensalidades */
.es-planos { display: grid; gap: 1.4rem; }
@media (min-width: 860px) { .es-planos { grid-template-columns: repeat(3, 1fr); } }
.es-plano { display: flex; flex-direction: column; gap: 1rem; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent); background: var(--sf-surface); padding: 1.7rem; }
.es-plano-forte { border-color: transparent; background: var(--sf-primary); color: var(--sf-on-primary);
    box-shadow: 0 24px 60px rgba(0,0,0,.2); }
@media (min-width: 860px) { .es-plano-forte { transform: translateY(-0.75rem); } }
.es-plano-topo { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.es-plano-badge { background: var(--sf-tint); color: var(--sf-primary); border-radius: 999px; padding: .2rem .8rem; font-size: .68rem; font-weight: 700; }
.es-plano-forte .es-plano-badge, .es-plano-forte .es-check { background: rgba(255,255,255,.2); color: var(--sf-on-primary); }
.es-plano-desc { font-size: .9rem; color: var(--sf-muted); }
.es-plano-forte .es-plano-desc { color: color-mix(in srgb, var(--sf-on-primary) 85%, transparent); }
.es-plano-preco { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.es-plano-preco strong { font-family: var(--sf-font-heading); font-size: 2.4rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.es-plano-preco span { background: var(--sf-tint); color: var(--sf-primary); border-radius: 999px; padding: .25rem .8rem; font-size: .68rem; font-weight: 800; }
.es-plano-forte .es-plano-preco span { background: rgba(255,255,255,.2); color: var(--sf-on-primary); }
.es-btn-tint { background: var(--sf-tint); color: var(--sf-primary); border-color: transparent; }
.es-plano .sf-btn { justify-content: center; }
.es-plano ul { display: flex; flex-direction: column; gap: .55rem; }
.es-plano li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.es-final .re-final-topo { padding-top: 4rem; }
.es-fita-lenta { animation-duration: 34s; }

/* ═══════════════ VARIAÇÃO farma-app — clínico, claro e sereno ═════════════ */
.fa-hero { position: relative; overflow: hidden; background: var(--sf-tint); padding: 5rem 1.25rem 4rem; }
.fa-halo { position: absolute; inset: 0 0 auto; height: 440px; pointer-events: none;
    background: radial-gradient(55% 65% at 50% 0%, color-mix(in srgb, var(--sf-primary) 14%, transparent) 0%, transparent 75%); }
.fa-caixa { position: relative; max-width: 72rem; margin: 0 auto;
    border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card);
    padding: 2rem; box-shadow: 0 32px 80px rgba(15,23,42,.1); }
@media (min-width: 860px) { .fa-caixa { padding: 3.4rem; } }
.fa-caixa-grelha { display: flex; flex-direction: column; align-items: center; gap: 2.5rem; }
@media (min-width: 860px) { .fa-caixa-grelha { flex-direction: row; gap: 3.5rem; } }
.fa-texto { max-width: 36rem; text-align: center; }
@media (min-width: 860px) { .fa-texto { flex: 1; text-align: left; } .fa-texto .sf-sub { margin-inline: 0; } }
.fa-etiqueta { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1.2rem;
    background: var(--sf-tint); color: var(--sf-primary); border-radius: 999px;
    padding: .35rem 1rem; font-size: .75rem; font-weight: 700; }
.fa-etiqueta svg { width: .6rem; height: .6rem; }
.fa-accoes { margin-top: 1.9rem; display: flex; gap: .8rem; flex-wrap: wrap; justify-content: center; }
@media (min-width: 860px) { .fa-accoes { justify-content: flex-start; } }
.fa-prova { margin-top: 1.6rem; font-family: var(--sf-font-heading); font-weight: 700; }
.fa-fone { flex-shrink: 0; width: 15rem; }
.fa-fone img { border-radius: 2rem; box-shadow: 0 24px 60px rgba(15,23,42,.18); }
.fa-chip { position: absolute; display: none; align-items: center; gap: .5rem;
    border: 1px solid var(--sf-line); background: var(--sf-surface);
    border-radius: 999px; padding: .5rem 1rem; font-size: .75rem; font-weight: 500;
    box-shadow: 0 12px 30px rgba(15,23,42,.1); animation: tg-flutua 6s ease-in-out infinite; }
@media (min-width: 1100px) { .fa-chip { display: inline-flex; } }
.fa-chip > span { display: grid; place-items: center; width: 1rem; height: 1rem; border-radius: 999px;
    background: var(--sf-tint); color: var(--sf-primary); }
.fa-chip svg { width: .5rem; height: .5rem; }
.fa-chip-0 { left: -1.2rem; top: 3.4rem; } .fa-chip-1 { right: -1.6rem; top: 5.6rem; }
.fa-chip-2 { left: -2rem; bottom: 7rem; } .fa-chip-3 { right: -1.2rem; bottom: 3.2rem; }
.fa-chips-mobile { margin-top: 1.6rem; }
@media (min-width: 1100px) { .fa-chips-mobile { display: none; } }

/* zig-zag */
.fa-zigzag { display: flex; flex-direction: column; gap: 3.5rem; }
.fa-par { display: grid; gap: 1.8rem; align-items: center; }
@media (min-width: 860px) { .fa-par { grid-template-columns: 1fr 1fr; gap: 3.2rem; }
    .fa-par-flip .fa-par-media { order: 2; } .fa-par-flip .fa-par-texto { order: 1; } }
.fa-par-media { overflow: hidden; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent); }
.fa-par-media img { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; }
.fa-par-badge { display: inline-block; background: var(--sf-tint); border-radius: 999px;
    padding: .35rem 1rem; font-size: .75rem; font-weight: 700; }
.fa-par-texto h3 { margin-top: .9rem; font-size: 1.5rem; }
.fa-par-texto p { margin-top: .7rem; max-width: 26rem; color: var(--sf-muted); font-size: .95rem; }
.fa-par-texto .sf-tags { margin-top: 1.1rem; }

/* timeline central */
.fa-linha-central { position: relative; display: flex; flex-direction: column; gap: 2.5rem; }
.fa-eixo { display: none; position: absolute; inset-block: 0; left: 50%; width: 1px;
    transform: translateX(-50%); background: var(--sf-line); }
@media (min-width: 860px) { .fa-eixo { display: block; } .fa-linha-central { gap: 4rem; } }
.fa-linha-central > li { position: relative; }
@media (min-width: 860px) {
    .fa-linha-central > li { display: grid; grid-template-columns: 1fr 1fr; }
    .fa-linha-central > li > .fa-cartao-passo { grid-column: 1; margin-right: 3.5rem; }
    .fa-li-dir > .fa-cartao-passo { grid-column: 2 !important; margin-right: 0 !important; margin-left: 3.5rem; }
}
.fa-no { display: none; position: absolute; left: 50%; top: 2.5rem; z-index: 1;
    width: 2.5rem; height: 2.5rem; transform: translateX(-50%);
    place-items: center; border-radius: 999px; background: var(--sf-primary);
    color: var(--sf-on-primary); font-family: var(--sf-font-heading); font-weight: 700; font-size: .85rem; }
@media (min-width: 860px) { .fa-no { display: grid; } }
.fa-cartao-passo { border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 1.7rem;
    box-shadow: 0 10px 26px rgba(15,23,42,.05); }
.fa-cartao-passo img { max-width: 10rem; border-radius: var(--sf-radius-control); box-shadow: 0 8px 20px rgba(0,0,0,.1); }
.fa-cartao-passo h3 { margin-top: 1.1rem; }
.fa-cartao-passo p { margin-top: .45rem; color: var(--sf-muted); font-size: .9rem; }
.fa-cartao-passo ul { margin-top: .9rem; display: flex; flex-direction: column; gap: .55rem; }
.fa-cartao-passo li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }

/* banda gradiente suave */
.fa-banda { display: flex; flex-direction: column; gap: 1.3rem; align-items: flex-start;
    border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    border-radius: var(--sf-radius-card); padding: 2rem;
    background: linear-gradient(135deg, var(--sf-tint) 0%, color-mix(in srgb, var(--sf-surface) 88%, var(--sf-tint)) 70%); }
@media (min-width: 860px) { .fa-banda { flex-direction: row; align-items: center; padding: 3rem; }
    .fa-banda > div:first-of-type { margin-right: auto; } }
.fa-banda p { margin-top: .4rem; color: var(--sf-muted); font-size: .95rem; }

/* planos outline */
.fa-planos { display: grid; gap: 1.8rem; }
@media (min-width: 860px) { .fa-planos { grid-template-columns: repeat(3, 1fr); } }
.fa-plano { display: flex; flex-direction: column; gap: 1rem; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent);
    background: var(--sf-surface); padding: 1.7rem; }
.fa-plano-forte { border: 2px solid var(--sf-primary); }
.fa-plano .sf-btn { justify-content: center; }
.fa-plano ul { display: flex; flex-direction: column; gap: .55rem; }
.fa-plano li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }

/* ═══════════════ VARIAÇÃO kamba-pay — fintech técnica ═════════════════════ */
.kp-hero { position: relative; overflow: hidden; padding: 5.5rem 1.25rem 2.5rem; text-align: center; }
.kp-grelha { position: absolute; inset: 0 0 auto; height: 640px; pointer-events: none;
    background-image:
        repeating-linear-gradient(to right, color-mix(in srgb, var(--sf-line) 35%, transparent) 0,
            color-mix(in srgb, var(--sf-line) 35%, transparent) 1px, transparent 1px, transparent 56px),
        repeating-linear-gradient(to bottom, color-mix(in srgb, var(--sf-line) 35%, transparent) 0,
            color-mix(in srgb, var(--sf-line) 35%, transparent) 1px, transparent 1px, transparent 56px);
    -webkit-mask-image: linear-gradient(to bottom, #000 40%, transparent);
            mask-image: linear-gradient(to bottom, #000 40%, transparent); }
.kp-glow { position: absolute; inset: 0 0 auto; height: 520px; opacity: .3; pointer-events: none;
    background: radial-gradient(55% 50% at 50% 0%, var(--sf-primary) 0%, transparent 70%); }
.kp-hero-inner { position: relative; max-width: 44rem; margin: 0 auto; }
.kp-kicker { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1.2rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 80%, transparent); backdrop-filter: blur(8px);
    border-radius: 999px; padding: .35rem 1rem; font-size: .75rem; font-weight: 500; color: var(--sf-muted); }
.kp-kicker svg { width: .7rem; height: .7rem; color: var(--sf-primary); }
.kp-palco { position: relative; display: flex; justify-content: center; margin-top: 3rem; }
.kp-fone { position: relative; z-index: 1; width: 17rem; border-radius: 2.2rem; box-shadow: 0 24px 60px rgba(0,0,0,.25); }
.kp-tx { position: absolute; z-index: 2; display: flex; flex-direction: column; gap: .6rem;
    border: 1px solid var(--sf-line); background: color-mix(in srgb, var(--sf-surface) 90%, transparent);
    backdrop-filter: blur(8px); border-radius: 1rem; padding: 1rem 1.2rem; text-align: left;
    box-shadow: 0 14px 34px rgba(0,0,0,.15); animation: tg-flutua 5.5s ease-in-out infinite; display: none; }
@media (min-width: 1100px) { .kp-tx { display: flex; } }
.kp-tx-esq { left: 4%; top: 4rem; width: 11rem; }
.kp-tx-dir { right: 4%; top: 11rem; width: 12rem; animation-delay: .6s; }
.kp-tx-rotulo { font-size: .7rem; color: var(--sf-muted); }
.kp-tx strong { font-family: var(--sf-font-heading); font-size: 1.4rem; font-variant-numeric: tabular-nums; }
.kp-linha { display: flex; align-items: center; gap: .6rem; font-size: .78rem; font-weight: 500; }

/* feature cards 4-up */
.kp-features { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (min-width: 860px) { .kp-features { grid-template-columns: repeat(4, 1fr); gap: 1.2rem; } }
.kp-feature { display: flex; flex-direction: column; gap: .7rem; height: 100%;
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent); background: var(--sf-surface);
    border-radius: var(--sf-radius-card); padding: 1.25rem;
    transition: border-color .2s ease, box-shadow .2s ease; }
.kp-feature:hover { border-color: var(--sf-primary);
    box-shadow: 0 0 30px color-mix(in srgb, var(--sf-primary) 30%, transparent); }
.kp-feature img { width: 4rem; height: 4rem; border-radius: var(--sf-radius-control); object-fit: cover; }
.kp-feature-badge { display: inline-flex; align-items: center; gap: .4rem; font-size: .7rem; font-weight: 700; color: var(--sf-muted); }
.kp-feature-badge span { width: .4rem; height: .4rem; border-radius: 999px; }
.kp-feature h3 { font-size: 1.02rem; }
.kp-feature p { font-size: .88rem; color: var(--sf-muted); }
.kp-feature-tags { margin-top: auto; padding-top: .3rem; font-size: .7rem; color: color-mix(in srgb, var(--sf-muted) 80%, transparent); }

/* consolas */
.kp-consolas { display: grid; gap: 1.2rem; }
@media (min-width: 860px) { .kp-consolas { grid-template-columns: repeat(3, 1fr); } }
.kp-consola { display: flex; flex-direction: column; gap: .7rem; height: 100%;
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    border-left: 2px solid var(--sf-primary);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 1.5rem; }
.kp-consola-topo { display: flex; align-items: center; justify-content: space-between; }
.kp-indice { font-family: var(--sf-font-heading); font-weight: 700; font-size: .85rem;
    letter-spacing: .2em; color: var(--sf-primary); font-variant-numeric: tabular-nums; }
.kp-consola-topo img { width: 3rem; height: 3rem; border-radius: var(--sf-radius-control); object-fit: cover; }
.kp-consola p { font-size: .9rem; color: var(--sf-muted); }
.kp-consola ul { margin-top: .2rem; display: flex; flex-direction: column; gap: .55rem; }
.kp-consola li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.kp-consola li span { color: var(--sf-primary); font-family: var(--sf-font-heading); font-weight: 700; line-height: 1.3; }

/* moldura neon */
.kp-moldura { display: flex; flex-direction: column; gap: 1.3rem; align-items: flex-start;
    border: 1px solid var(--sf-primary); background: var(--sf-bg);
    border-radius: var(--sf-radius-card); padding: 2rem;
    box-shadow: 0 0 40px color-mix(in srgb, var(--sf-primary) 25%, transparent); }
@media (min-width: 860px) { .kp-moldura { flex-direction: row; align-items: center; padding: 2.5rem; }
    .kp-moldura > div:first-of-type { margin-right: auto; } }
.kp-moldura p { margin-top: .4rem; color: var(--sf-muted); font-size: .92rem; }

/* planos preço gigante */
.kp-planos { display: grid; gap: 1.4rem; }
@media (min-width: 860px) { .kp-planos { grid-template-columns: repeat(3, 1fr); } }
.kp-plano { display: flex; flex-direction: column; gap: 1rem; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent); background: var(--sf-surface); padding: 1.7rem; }
.kp-plano-forte { border-color: var(--sf-primary);
    background: color-mix(in srgb, var(--sf-primary) 12%, var(--sf-surface)); }
@media (min-width: 860px) { .kp-plano-forte { transform: translateY(-0.5rem); } }
.kp-plano-badge { background: var(--sf-tint); color: var(--sf-primary); border-radius: 999px; padding: .2rem .8rem; font-size: .68rem; font-weight: 700; }
.kp-plano-forte .kp-plano-badge { background: var(--sf-primary); color: var(--sf-on-primary); }
.kp-preco { font-family: var(--sf-font-heading); font-size: 3rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.kp-preco span { font-size: .9rem; font-weight: 500; color: var(--sf-muted); margin-left: .3rem; }
.kp-plano .sf-btn { justify-content: center; }
.kp-plano ul { display: flex; flex-direction: column; gap: .55rem; }
.kp-plano li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.kp-plano li svg { width: .55rem; height: .55rem; flex-shrink: 0; margin-top: .35rem; color: var(--sf-primary); }

/* final emoldurado surface */
.kp-final { overflow: hidden; text-align: center; border: 1px solid var(--sf-line);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 3rem 1.5rem 0; }
.kp-final .sf-sub { margin-top: .9rem; }
.kp-final .sf-marquee { margin-top: 2.5rem; padding-bottom: 2.5rem; }
.sf-t-kamba-pay .sf-header::after { content: ''; display: block; height: 1px;
    background: linear-gradient(to right, var(--sf-primary), transparent); }

/* ═══════════════ VARIAÇÃO imo-prime — editorial imobiliário ═══════════════ */
.sf-t-imo-prime h1, .sf-t-imo-prime h2 { font-weight: 300; letter-spacing: -.01em; }
.sf-t-imo-prime .sf-header { backdrop-filter: blur(12px); }
.ip-kicker { display: inline-block; margin-bottom: 1.2rem; font-size: .72rem;
    text-transform: uppercase; letter-spacing: .3em; color: var(--sf-primary); }
.ip-btn-contorno { display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
    border: 1px solid var(--sf-primary); border-radius: var(--sf-radius-control);
    padding: .8rem 1.8rem; font-size: .72rem; font-weight: 500; text-transform: uppercase;
    letter-spacing: .18em; color: var(--sf-primary); text-decoration: none;
    transition: background .3s ease, color .3s ease; }
.ip-btn-contorno:hover { background: var(--sf-primary); color: var(--sf-on-primary); }
.ip-btn-largo { width: 100%; }
.ip-hero { padding-top: 7rem; }
.ip-hero-texto { max-width: 72rem; margin: 0 auto; padding: 0 1.25rem; }
.ip-hero-texto h1 { max-width: 56rem; font-size: clamp(2.6rem, 7vw, 4.6rem); }
.ip-sub { margin-top: 1.4rem; max-width: 28rem; color: var(--sf-muted); line-height: 1.7; }
.ip-accoes { margin-top: 2.2rem; }
.ip-showcase { position: relative; overflow: hidden; margin: 3.5rem 1rem 0; border-radius: var(--sf-radius-card); }
@media (min-width: 860px) { .ip-showcase { margin-inline: 1.5rem; } }
.ip-showcase img { width: 100%; height: 46vh; object-fit: cover; }
@media (min-width: 860px) { .ip-showcase img { height: 56vh; } }
.ip-showcase-veu { position: absolute; inset: 0;
    background: linear-gradient(to top, color-mix(in srgb, var(--sf-bg) 55%, transparent) 0%, transparent 55%); }
.ip-prova { position: absolute; left: 1rem; bottom: 1rem; display: flex; flex-direction: column; gap: .25rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: color-mix(in srgb, var(--sf-bg) 80%, transparent); backdrop-filter: blur(8px);
    border-radius: var(--sf-radius-control); padding: 1rem 1.4rem; }
@media (min-width: 860px) { .ip-prova { left: 2rem; bottom: 2rem; } }
.ip-prova strong { font-family: var(--sf-font-heading); font-weight: 300; font-size: 1.7rem; font-variant-numeric: tabular-nums; }
.ip-prova span { font-size: .62rem; text-transform: uppercase; letter-spacing: .2em; color: var(--sf-muted); }
.ip-specs { max-width: 72rem; margin: 2rem auto 0; padding: 0 1.25rem; display: flex; flex-wrap: wrap;
    align-items: center; gap: .8rem 1.4rem; }
.ip-specs li { display: flex; align-items: center; gap: 1.4rem; font-size: .72rem;
    text-transform: uppercase; letter-spacing: .2em; color: var(--sf-muted); }
.ip-spec-traco { width: 1px; height: 1rem; background: var(--sf-line); }
.ip-topo h2 { max-width: 34rem; }

/* propriedades em par */
.ip-propriedades { display: grid; gap: 1.6rem; }
@media (min-width: 860px) { .ip-propriedades { grid-template-columns: 1fr 1fr; gap: 2rem; } }
.ip-prop { position: relative; overflow: hidden; border-radius: var(--sf-radius-card); min-height: 26rem; display: flex; }
.ip-prop img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
    transition: transform 1s ease-out; }
.ip-prop:hover img { transform: scale(1.05); }
.ip-prop-veu { position: absolute; inset: 0;
    background: linear-gradient(to top, color-mix(in srgb, var(--prop) 95%, transparent) 0%,
        color-mix(in srgb, var(--prop) 50%, transparent) 34%, transparent 68%); }
.ip-prop-badge { position: absolute; left: 1.25rem; top: 1.25rem; z-index: 1;
    border: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent);
    background: color-mix(in srgb, var(--sf-bg) 70%, transparent); backdrop-filter: blur(8px);
    border-radius: var(--sf-radius-control); padding: .35rem .8rem;
    font-size: .62rem; font-weight: 500; text-transform: uppercase; letter-spacing: .2em; }
.ip-prop-corpo { position: relative; z-index: 1; margin-top: auto; padding: 1.8rem; color: #fff; }
.ip-prop-corpo h3 { font-family: var(--sf-font-heading); font-weight: 300; font-size: 1.7rem; }
.ip-prop-corpo p { margin-top: .5rem; max-width: 26rem; font-size: .9rem; line-height: 1.6; opacity: .85; }
.ip-prop-tags { margin-top: 1rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; opacity: .75; }

/* passos editoriais */
.ip-banda { border-block: 1px solid color-mix(in srgb, var(--sf-line) 20%, transparent); }
.ip-passos { display: grid; gap: 2.6rem; }
@media (min-width: 860px) { .ip-passos { grid-template-columns: repeat(3, 1fr); gap: 2.2rem; } }
.ip-num { font-family: var(--sf-font-heading); font-weight: 300; font-size: 1.9rem;
    color: var(--sf-primary); font-variant-numeric: tabular-nums; }
.ip-filete { display: block; width: 2.5rem; margin-top: 1.1rem; border-top: 1px solid var(--sf-line); }
.ip-passo h3 { margin-top: 1.1rem; font-weight: 400; }
.ip-passo p { margin-top: .7rem; font-size: .9rem; line-height: 1.65; color: var(--sf-muted); }
.ip-passo ul { margin-top: 1.1rem; display: flex; flex-direction: column; gap: .6rem; }
.ip-passo li, .ip-pacote li { display: flex; align-items: flex-start; gap: .8rem; font-size: .9rem; color: var(--sf-muted); }
.ip-dash { width: 1rem; flex-shrink: 0; margin-top: .65rem; border-top: 1px solid color-mix(in srgb, var(--sf-primary) 70%, transparent); }

/* cartão CTA sóbrio */
.ip-cartao { display: flex; flex-direction: column; gap: 1.6rem; align-items: flex-start;
    border: 1px solid color-mix(in srgb, var(--sf-primary) 40%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 2rem; }
@media (min-width: 860px) { .ip-cartao { flex-direction: row; align-items: center; padding: 3.4rem; }
    .ip-cartao > div:first-of-type { margin-right: auto; } }
.ip-cartao h2 { font-size: clamp(1.6rem, 4vw, 2.2rem); }
.ip-cartao p { margin-top: .7rem; max-width: 34rem; font-size: .92rem; line-height: 1.65; color: var(--sf-muted); }

/* pacotes por linhas */
.ip-pacotes { display: grid; }
.ip-pacote { display: flex; flex-direction: column; gap: 1.3rem; padding-block: 2.4rem;
    border-top: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent); }
.ip-pacote:first-child { border-top: 0; }
@media (min-width: 860px) {
    .ip-pacotes { grid-template-columns: repeat(3, 1fr); }
    .ip-pacote { border-top: 0; border-left: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent); padding: 2.4rem 2.4rem; }
    .ip-pacote:first-child { border-left: 0; padding-left: 0; }
    .ip-pacote:last-child { padding-right: 0; }
}
.ip-pacote-topo { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.ip-pacote-topo h3 { font-size: .82rem; font-weight: 500; text-transform: uppercase; letter-spacing: .25em; }
.ip-nome-forte { color: var(--sf-primary); }
.ip-pacote-badge { border: 1px solid color-mix(in srgb, var(--sf-primary) 40%, transparent);
    border-radius: var(--sf-radius-control); padding: .25rem .6rem;
    font-size: .58rem; text-transform: uppercase; letter-spacing: .18em; color: var(--sf-primary); }
.ip-pacote-desc { font-size: .9rem; line-height: 1.65; color: var(--sf-muted); }
.ip-pacote-preco { font-family: var(--sf-font-heading); font-weight: 300; font-size: 2.8rem;
    letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.ip-pacote-preco span { font-size: .9rem; color: var(--sf-muted); margin-left: .4rem; }
.ip-pacote ul { display: flex; flex-direction: column; gap: .7rem; }

/* final fotográfico */
.ip-final { position: relative; overflow: hidden; padding-block: 6rem; }
@media (min-width: 860px) { .ip-final { padding-block: 9rem; } }
.ip-final-bg { position: absolute; inset: 0; }
.ip-final-bg img { width: 100%; height: 100%; object-fit: cover; }
.ip-final-bg::after { content: ''; position: absolute; inset: 0;
    background: color-mix(in srgb, var(--sf-bg) 70%, transparent); }
.ip-final-topo { position: relative; margin-bottom: 0; }
.ip-final-topo h2 { font-size: clamp(2.2rem, 6vw, 3.6rem); }
.ip-final-logo { height: 3.4rem; width: 3.4rem; border-radius: var(--sf-radius-control);
    margin: 0 auto 1.6rem; object-fit: cover; box-shadow: 0 10px 26px rgba(0,0,0,.2); }

/* ═══════════════ VARIAÇÃO fit-club — desporto, black itálico e skew ═══════ */
.sf-t-fit-club h1, .sf-t-fit-club h2, .fc-linha h3 { font-weight: 900; text-transform: uppercase; font-style: italic; letter-spacing: -.01em; }
.fc-hero { position: relative; overflow: hidden; padding: 5.5rem 1.25rem 3rem; }
.fc-pista { position: absolute; inset: 0; pointer-events: none; }
.fc-pista i, .fc-pista b, .fc-pista u { position: absolute; left: -3rem; right: -3rem; transform: skewY(-3deg); }
.fc-pista i { top: 38%; height: 12rem; background: var(--sf-surface); }
.fc-pista b { top: 36%; height: .4rem; background: color-mix(in srgb, var(--sf-primary) 70%, transparent); }
.fc-pista u { top: 64%; height: 5.5rem; background: color-mix(in srgb, var(--sf-surface) 60%, transparent); }
.fc-grelha { position: relative; max-width: 72rem; margin: 0 auto; display: grid; gap: 3rem; align-items: center; }
@media (min-width: 860px) { .fc-grelha { grid-template-columns: 1.05fr .95fr; } }
.fc-texto { text-align: center; }
@media (min-width: 860px) { .fc-texto { text-align: left; } .fc-texto .sf-sub { margin-inline: 0; } }
.fc-texto h1 { font-size: clamp(2.4rem, 7vw, 4.4rem); line-height: .95; }
.fc-faixa { display: inline-block; margin-bottom: 1.2rem; transform: skewX(-6deg);
    background: var(--sf-primary); color: var(--sf-on-primary);
    padding: .4rem .9rem; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; }
.fc-accoes { margin-top: 2rem; display: flex; gap: .8rem; justify-content: center; }
@media (min-width: 860px) { .fc-accoes { justify-content: flex-start; } }
.fc-btn { display: inline-flex; cursor: pointer; transform: skewX(-6deg);
    background: var(--sf-primary); color: var(--sf-on-primary); border-radius: 6px;
    padding: .8rem 1.6rem; font-size: .85rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .06em; text-decoration: none; transition: filter .2s ease, transform .2s ease; }
.fc-btn:hover { filter: brightness(.92); }
.fc-btn span { display: inline-block; transform: skewX(6deg); }
.fc-btn-claro { background: var(--sf-on-primary); color: var(--sf-primary); }
.fc-btn-neutro { background: var(--sf-surface); color: var(--sf-text); border: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent); }
.fc-fone { position: relative; margin: 0 auto; width: 16rem; }
@media (min-width: 860px) { .fc-fone { transform: translateX(2.5rem) rotate(4deg); width: 18rem; } }
.fc-fone img { border-radius: 2.2rem; box-shadow: 0 24px 60px rgba(0,0,0,.25); }
.fc-metricas { position: relative; max-width: 72rem; margin: 3.5rem auto 0; display: grid;
    grid-template-columns: 1fr 1fr; gap: .8rem; }
@media (min-width: 860px) { .fc-metricas { grid-template-columns: repeat(4, 1fr); gap: 1rem; } }
.fc-metrica { display: flex; flex-direction: column; justify-content: space-between; gap: .8rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 1.25rem; }
.fc-metrica-larga { grid-column: span 2; }
@media (min-width: 860px) { .fc-metrica-larga { grid-column: span 1; } }
.fc-metrica strong { font-size: 2.2rem; font-weight: 900; color: var(--sf-primary); font-variant-numeric: tabular-nums; }
.fc-metrica span:not(.fc-metrica-txt) { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--sf-muted); }
.fc-metrica i { display: block; width: 2rem; height: .25rem; transform: skewX(-12deg); background: var(--sf-primary); }
.fc-metrica-txt { font-size: .88rem; font-weight: 700; line-height: 1.4; }

/* linhas de treino */
.fc-linhas { border-top: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent); }
.fc-linha { position: relative; overflow: hidden; border-bottom: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent); }
.fc-numero { position: absolute; top: 1rem; left: .8rem; font-size: 5.5rem; font-weight: 900;
    line-height: 1; color: color-mix(in srgb, var(--sf-muted) 10%, transparent);
    font-variant-numeric: tabular-nums; user-select: none; transition: color .3s ease; }
@media (min-width: 860px) { .fc-numero { font-size: 9rem; left: 2rem; } }
.fc-linha-flip .fc-numero { left: auto; right: .8rem; }
@media (min-width: 860px) { .fc-linha-flip .fc-numero { right: 2rem; } }
.fc-linha:hover .fc-numero { color: color-mix(in srgb, var(--sf-primary) 10%, transparent); }
.fc-linha-grelha { position: relative; max-width: 72rem; margin: 0 auto; display: grid; gap: 2rem;
    align-items: center; padding: 3.4rem 1.25rem; }
@media (min-width: 860px) { .fc-linha-grelha { grid-template-columns: 1fr 1fr; gap: 3rem; padding-block: 4.5rem; }
    .fc-linha-flip .fc-linha-texto { order: 2; } .fc-linha-flip .fc-linha-media { order: 1; } }
.fc-badge { display: inline-block; transform: skewX(-6deg); background: var(--sf-tint);
    border-radius: 4px; padding: .3rem .8rem; font-size: .68rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .15em; }
.fc-linha h3 { margin-top: 1rem; font-size: clamp(1.6rem, 4vw, 2.2rem); line-height: 1.02; }
.fc-risco { display: block; margin-top: 1rem; width: 4rem; height: .4rem; transform: skewX(-12deg); }
.fc-linha-texto > p { margin-top: 1rem; max-width: 26rem; color: var(--sf-muted); font-size: .95rem; }
.fc-tags { margin-top: 1.2rem; display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
.fc-tags span { font-size: .88rem; font-weight: 600; color: var(--sf-primary); }
.fc-linha-media { overflow: hidden; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent); box-shadow: 0 24px 60px rgba(0,0,0,.15); }
.fc-linha-media img { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; transition: transform .3s ease; }
.fc-linha:hover .fc-linha-media img { transform: scale(1.04); }

/* filas de passos */
.fc-filas { border-top: 1px solid var(--sf-line); }
.fc-fila { border-bottom: 1px solid var(--sf-line); transition: background .3s ease; }
.fc-fila:hover { background: color-mix(in srgb, var(--sf-surface) 50%, transparent); }
.fc-fila-grelha { max-width: 72rem; margin: 0 auto; display: grid; gap: 1rem; padding: 2rem 1.25rem; }
@media (min-width: 860px) { .fc-fila-grelha { grid-template-columns: 7rem 1.1fr 1.3fr; align-items: center; gap: 2rem; padding-block: 2.5rem; } }
.fc-fila-num { font-size: 3.6rem; font-weight: 900; line-height: 1;
    color: color-mix(in srgb, var(--sf-muted) 30%, transparent); font-variant-numeric: tabular-nums;
    transition: color .3s ease; }
@media (min-width: 860px) { .fc-fila-num { font-size: 4.4rem; } }
.fc-fila:hover .fc-fila-num { color: var(--sf-primary); }
.fc-fila h3 { font-weight: 800; }
.fc-fila-grelha > div > p { margin-top: .4rem; color: var(--sf-muted); font-size: .92rem; }
.fc-fila-extra { display: flex; align-items: center; gap: 1.6rem; flex-wrap: wrap; }
.fc-fila-extra ul { display: flex; flex-direction: column; gap: .45rem; flex: 1; min-width: 12rem; }
.fc-fila-extra li { display: flex; align-items: flex-start; gap: .6rem; font-size: .88rem; color: var(--sf-muted); }
.fc-fila-extra li span { color: var(--sf-primary); font-weight: 900; }
.fc-fila-extra img { width: 8rem; border-radius: var(--sf-radius-control); box-shadow: 0 10px 26px rgba(0,0,0,.12); }

/* faixa e planos */
.fc-banda { display: flex; flex-direction: column; gap: 1.4rem; align-items: flex-start;
    transform: skewX(-3deg); background: var(--sf-primary); color: var(--sf-on-primary);
    border-radius: 10px; padding: 2rem; }
@media (min-width: 860px) { .fc-banda { flex-direction: row; align-items: center; padding: 2.6rem 3rem; }
    .fc-banda > div:first-of-type { margin-right: auto; } }
.fc-banda > * { transform: skewX(3deg); }
.fc-banda p { margin-top: .4rem; opacity: .85; font-size: .92rem; }
.fc-planos { display: grid; gap: 1.4rem; }
@media (min-width: 860px) { .fc-planos { grid-template-columns: repeat(3, 1fr); } }
.fc-plano { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-line) 50%, transparent); background: var(--sf-surface);
    transition: transform .3s ease; }
.fc-plano:hover { transform: scale(1.02); }
.fc-plano-forte { border-color: color-mix(in srgb, var(--sf-primary) 50%, transparent); box-shadow: 0 24px 60px rgba(0,0,0,.18); }
.fc-plano-barra { display: block; height: .5rem; background: color-mix(in srgb, var(--sf-line) 30%, transparent); }
.fc-plano-forte .fc-plano-barra { background: var(--sf-primary); }
.fc-plano-corpo { display: flex; flex-direction: column; gap: 1rem; padding: 1.7rem; flex: 1; }
.fc-plano h3 { font-weight: 900; text-transform: uppercase; font-style: italic; font-size: 1.05rem; }
.fc-plano-badge { transform: skewX(-6deg); background: var(--sf-tint); color: var(--sf-primary);
    border-radius: 4px; padding: .25rem .7rem; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.fc-plano-forte .fc-plano-badge { background: var(--sf-primary); color: var(--sf-on-primary); }
.fc-preco { font-family: var(--sf-font-heading); font-size: 2.6rem; font-weight: 900; line-height: 1; font-variant-numeric: tabular-nums; }
.fc-plano-forte .fc-preco { font-size: 3.1rem; }
.fc-preco span { font-size: .9rem; font-weight: 500; color: var(--sf-muted); margin-left: .3rem; }
.fc-plano ul { display: flex; flex-direction: column; gap: .55rem; }
.fc-plano li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.fc-plano li svg { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: .15rem; }

/* ═══════════════ VARIAÇÃO bela-app — beleza & spa, suave e curvo ══════════ */
.sf-t-bela-app .sf-header { top: .75rem; margin-inline: .75rem; border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--sf-line) 50%, transparent); box-shadow: 0 10px 26px rgba(0,0,0,.08); }
.ba-hero { position: relative; overflow: hidden; padding: 6rem 1.25rem 4rem; text-align: center; }
.ba-blob { position: absolute; border-radius: 999px; filter: blur(64px); pointer-events: none; }
.ba-blob-a { left: 50%; top: -10rem; width: 45rem; height: 32rem; transform: translateX(-50%);
    background: radial-gradient(closest-side, color-mix(in srgb, var(--sf-primary) 25%, transparent), transparent); }
.ba-blob-b { right: 6%; top: 22rem; width: 18rem; height: 18rem;
    background: radial-gradient(closest-side, color-mix(in srgb, var(--sf-tint) 60%, var(--sf-primary)), transparent); opacity: .5; }
.ba-hero-inner { position: relative; max-width: 44rem; margin: 0 auto; }
.ba-kicker { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1.1rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 50%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 70%, transparent); backdrop-filter: blur(8px);
    border-radius: 999px; padding: .4rem 1rem; font-size: .75rem; font-weight: 500; color: var(--sf-muted); }
.ba-kicker svg, .ba-petala svg { width: .9rem; height: .9rem; color: var(--sf-primary); flex-shrink: 0; }
.ba-kicker-tint { border-color: color-mix(in srgb, var(--sf-primary) 30%, transparent);
    background: var(--sf-tint); color: var(--sf-primary); }
.ba-palco { position: relative; margin: 3.4rem auto 0; width: 16rem; }
@media (min-width: 1024px) { .ba-palco { width: 18rem; } }
.ba-moldura { border: 1px solid color-mix(in srgb, var(--sf-line) 50%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 70%, transparent); backdrop-filter: blur(8px);
    border-radius: 3rem; padding: .5rem; box-shadow: 0 24px 60px rgba(0,0,0,.18);
    animation: tg-flutua 8s ease-in-out infinite; }
.ba-moldura img { display: block; width: 100%; border-radius: 2.5rem; }
.ba-petala { display: inline-flex; align-items: center; gap: .5rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 50%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 85%, transparent); backdrop-filter: blur(8px);
    border-radius: 999px; padding: .55rem 1rem; font-size: .78rem; font-weight: 500;
    box-shadow: 0 10px 26px rgba(0,0,0,.1); }
.ba-palco .ba-petala { position: absolute; display: none; animation: tg-flutua 6.5s ease-in-out infinite; }
@media (min-width: 1024px) { .ba-palco .ba-petala { display: inline-flex; } }
.ba-petala-0 { left: -9rem; top: 2.5rem; } .ba-petala-1 { right: -10rem; top: 5.5rem; animation-delay: .8s; }
.ba-petala-2 { left: -10.5rem; bottom: 7rem; animation-delay: 1.6s; } .ba-petala-3 { right: -9rem; bottom: 3rem; animation-delay: 2.4s; }
.ba-petalas-mobile { margin-top: 1.8rem; }
@media (min-width: 1024px) { .ba-petalas-mobile { display: none; } }
.ba-medalhao { position: relative; display: inline-flex; align-items: center; gap: .8rem; margin-top: 2.4rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 50%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 85%, transparent); backdrop-filter: blur(8px);
    border-radius: 999px; padding: .8rem 1.7rem; box-shadow: 0 14px 34px rgba(0,0,0,.1); }
.ba-medalhao strong { font-family: var(--sf-font-heading); font-size: 1.2rem; }
.ba-medalhao span { font-size: .72rem; color: var(--sf-muted); }

/* carrossel glass */
.ba-carrossel { display: flex; gap: 1.2rem; overflow-x: auto; padding-bottom: 1rem;
    scroll-snap-type: x mandatory; scrollbar-width: none; }
.ba-carrossel::-webkit-scrollbar { display: none; }
.ba-carta { position: relative; flex: 0 0 88%; scroll-snap-align: center; overflow: hidden;
    height: 26rem; border-radius: 2.5rem; border: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent);
    background: var(--carta, var(--sf-primary)); }
@media (min-width: 860px) { .ba-carta { flex-basis: 55%; } }
.ba-carta-fundo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
    transition: transform .7s ease; }
.ba-carta:hover .ba-carta-fundo { transform: scale(1.03); }
.ba-glass { position: absolute; inset-inline: 1rem; bottom: 1rem; border-radius: 2rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent);
    background: color-mix(in srgb, var(--sf-bg) 40%, transparent); backdrop-filter: blur(10px);
    padding: 1.5rem; }
.ba-carta-badge { display: inline-block; background: var(--sf-tint); border-radius: 999px;
    padding: .3rem .9rem; font-size: .75rem; font-weight: 700; }
.ba-glass h3 { margin-top: .7rem; font-size: 1.3rem; }
.ba-glass p { margin-top: .45rem; max-width: 26rem; font-size: .88rem; opacity: .9; }
.ba-carta-tags { margin-top: .9rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.ba-carta-tags span { border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: color-mix(in srgb, var(--sf-bg) 40%, transparent); backdrop-filter: blur(4px);
    border-radius: 999px; padding: .2rem .7rem; font-size: .72rem; }

/* ritual circular */
.ba-ritual { position: relative; display: grid; gap: 2.6rem; }
@media (min-width: 860px) { .ba-ritual { grid-template-columns: repeat(3, 1fr); gap: 1.4rem; } }
.ba-tracinho { display: none; position: absolute; left: 18%; right: 18%; top: 5rem;
    border-top: 2px dashed var(--sf-line); }
@media (min-width: 860px) { .ba-tracinho { display: block; } }
.ba-passo { position: relative; text-align: center; }
.ba-circulo { position: relative; margin: 0 auto; width: 10rem; height: 10rem;
    animation: tg-flutua 6.5s ease-in-out infinite; }
.ba-circulo img { width: 100%; height: 100%; object-fit: cover; border-radius: 999px;
    box-shadow: 0 14px 34px rgba(0,0,0,.12), 0 0 0 4px color-mix(in srgb, var(--sf-primary) 20%, var(--sf-tint)); }
.ba-selo { position: absolute; left: 50%; bottom: -.5rem; transform: translateX(-50%);
    display: grid; place-items: center; min-width: 2.2rem; height: 2.2rem; padding-inline: .5rem;
    border-radius: 999px; background: var(--sf-primary); color: var(--sf-on-primary);
    font-weight: 700; font-size: .85rem; box-shadow: 0 0 0 4px var(--sf-tint); }
.ba-passo h3 { margin-top: 1.7rem; }
.ba-passo p { margin: .6rem auto 0; max-width: 16rem; font-size: .9rem; color: var(--sf-muted); }
.ba-passo ul { margin-top: 1rem; display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.ba-passo li { display: flex; align-items: center; gap: .5rem; font-size: .9rem; }
.ba-passo li svg { width: .85rem; height: .85rem; color: var(--sf-primary); }

/* painel gradiente + folha */
.ba-painel { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 1.4rem;
    align-items: flex-start; border-radius: 2.5rem; padding: 2rem;
    background: linear-gradient(135deg, var(--sf-tint), color-mix(in srgb, var(--sf-primary) 18%, var(--sf-tint))); }
@media (min-width: 860px) { .ba-painel { flex-direction: row; align-items: center; padding: 3rem; }
    .ba-painel > div:first-of-type { margin-right: auto; } }
.ba-folha-grande { position: absolute; right: -1.5rem; top: -2rem; transform: rotate(12deg); }
.ba-folha-grande svg { width: 11rem; height: 11rem; color: color-mix(in srgb, var(--sf-primary) 10%, transparent); }
.ba-painel p { margin-top: .4rem; max-width: 30rem; color: var(--sf-muted); font-size: .92rem; }
.ba-painel .sf-btn { position: relative; }

/* menus de spa */
.ba-menus { display: grid; gap: 1.6rem; }
@media (min-width: 860px) { .ba-menus { grid-template-columns: repeat(3, 1fr); } }
.ba-menu { display: flex; flex-direction: column; overflow: hidden;
    border-radius: 3rem 3rem 2rem 2rem; border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: var(--sf-surface); }
.ba-menu-forte { border-color: color-mix(in srgb, var(--sf-primary) 40%, transparent); box-shadow: 0 24px 60px rgba(0,0,0,.16); }
@media (min-width: 860px) { .ba-menu-forte { transform: translateY(-0.5rem); } }
.ba-menu-cabeca { background: var(--sf-tint); text-align: center; padding: 2.2rem 1.7rem 1.5rem; }
.ba-menu-forte .ba-menu-cabeca { background: var(--sf-primary); color: var(--sf-on-primary); }
.ba-menu-badge { display: inline-block; margin-bottom: .8rem; background: var(--sf-surface);
    color: var(--sf-primary); border-radius: 999px; padding: .25rem .8rem; font-size: .68rem; font-weight: 700;
    box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.ba-menu-forte .ba-menu-badge { background: rgba(255,255,255,.2); color: var(--sf-on-primary); }
.ba-menu-cabeca h3 { color: var(--sf-primary); }
.ba-menu-forte .ba-menu-cabeca h3 { color: var(--sf-on-primary); }
.ba-menu-cabeca p { margin-top: .5rem; font-size: .88rem; opacity: .8; }
.ba-menu-corpo { display: flex; flex-direction: column; padding: .6rem 1.7rem 1.7rem; flex: 1; }
.ba-menu-corpo ul { display: flex; flex-direction: column; }
.ba-menu-corpo li { display: flex; align-items: flex-start; gap: .6rem; padding-block: .75rem;
    border-bottom: 1px solid color-mix(in srgb, var(--sf-line) 20%, transparent); font-size: .9rem; }
.ba-menu-corpo li:last-child { border-bottom: 0; }
.ba-menu-corpo li svg { width: .85rem; height: .85rem; flex-shrink: 0; margin-top: .25rem; color: var(--sf-primary); }
.ba-menu-preco { margin-top: auto; padding-top: 1.6rem; text-align: center;
    font-family: var(--sf-font-heading); font-size: 2.2rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.ba-menu-preco span { font-size: .9rem; font-weight: 400; color: var(--sf-muted); margin-left: .35rem; }
.ba-menu-corpo .sf-btn { margin-top: 1.2rem; justify-content: center; }

/* ═══════════════ VARIAÇÃO resto-book — bistrô clássico premium ════════════ */
.rb-hero { position: relative; overflow: hidden; padding: 6rem 1.25rem 3.5rem; text-align: center; }
.rb-veu { position: absolute; inset: 0 0 auto; height: 480px; opacity: .25; pointer-events: none;
    background: radial-gradient(55% 50% at 50% 0%, var(--sf-primary) 0%, transparent 70%); }
.rb-hero-inner { position: relative; max-width: 44rem; margin: 0 auto; }
.rb-kicker { display: inline-flex; align-items: center; justify-content: center; gap: .8rem; margin-bottom: 1.2rem;
    font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .3em; color: var(--sf-primary); }
.rb-kicker i { width: 2rem; border-top: 1px solid color-mix(in srgb, var(--sf-primary) 40%, transparent); }
.rb-montra { position: relative; max-width: 56rem; margin: 3.4rem auto 0;
    display: flex; align-items: flex-end; justify-content: center; gap: 1.4rem; padding-inline: 1.25rem; }
.rb-lado { display: none; width: 11rem; height: 16rem; object-fit: cover;
    border-radius: var(--sf-radius-card); box-shadow: 0 18px 44px rgba(0,0,0,.16); }
@media (min-width: 860px) { .rb-lado { display: block; } }
.rb-arco-caixa { position: relative; }
.rb-arco { width: 18rem; height: 25rem; max-width: 100%; object-fit: cover;
    border-radius: 999px 999px var(--sf-radius-card) var(--sf-radius-card);
    box-shadow: 0 24px 60px rgba(0,0,0,.22); }
.rb-selo { position: absolute; right: -.8rem; top: 1.2rem; display: flex; flex-direction: column;
    align-items: center; justify-content: center; width: 7rem; height: 7rem; text-align: center;
    border: 2px solid color-mix(in srgb, var(--sf-primary) 50%, transparent);
    background: color-mix(in srgb, var(--sf-bg) 90%, transparent); backdrop-filter: blur(8px);
    border-radius: 999px; box-shadow: 0 10px 26px rgba(0,0,0,.14); transform: rotate(-8deg); }
@media (min-width: 860px) { .rb-selo { right: -3rem; } }
.rb-selo strong { font-family: var(--sf-font-heading); font-size: 1.4rem; }
.rb-selo span { margin-top: .15rem; padding-inline: .7rem; font-size: .56rem; text-transform: uppercase;
    letter-spacing: .15em; color: var(--sf-muted); }
.rb-especialidades { margin-top: 2.2rem; display: flex; flex-wrap: wrap; justify-content: center;
    gap: .5rem 1rem; padding-inline: 1.25rem; }
.rb-especialidades li { display: flex; align-items: center; gap: 1rem; font-size: .82rem;
    font-style: italic; color: var(--sf-muted); }
.rb-especialidades span { color: var(--sf-primary); }

/* carta com leader dots */
.rb-carta-seccao { max-width: 48rem; }
.rb-cabeca { max-width: 44rem; margin: 0 auto 2.4rem; text-align: center; }
.rb-cabeca .sf-sub { margin-top: .8rem; }
.rb-pratos { display: flex; flex-direction: column; gap: .8rem; }
.rb-prato { display: flex; align-items: center; gap: 1.2rem; border-radius: var(--sf-radius-card);
    padding: .8rem; transition: background .3s ease; }
.rb-prato:hover { background: color-mix(in srgb, var(--sf-surface) 50%, transparent); }
.rb-prato > img { width: 6rem; height: 6rem; flex-shrink: 0; object-fit: cover;
    border-radius: var(--sf-radius-card); box-shadow: 0 8px 20px rgba(0,0,0,.1); }
.rb-prato-corpo { flex: 1; min-width: 0; }
.rb-prato-linha { display: flex; align-items: center; }
.rb-prato-linha h3 { font-size: 1.05rem; }
.rb-pontos { flex: 1; min-width: 1.5rem; margin-inline: .8rem; align-self: center;
    border-bottom: 1px dotted color-mix(in srgb, var(--sf-line) 50%, transparent); }
.rb-prato-badge { flex-shrink: 0; white-space: nowrap; border: 1px solid; border-radius: 999px;
    padding: .25rem .8rem; font-size: .7rem; font-weight: 700; }
.rb-prato-tags { margin-top: .25rem; font-size: .78rem; font-style: italic; color: color-mix(in srgb, var(--sf-muted) 90%, transparent); }
.rb-prato-desc { margin-top: .35rem; font-size: .9rem; color: var(--sf-muted); }

/* como reservar */
.rb-reservas { display: grid; gap: 2.6rem; }
@media (min-width: 860px) { .rb-reservas { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }
.rb-reserva { display: flex; flex-direction: column; align-items: center; text-align: center; }
.rb-num { font-family: var(--sf-font-heading); font-weight: 300; font-style: italic;
    font-size: 3.6rem; line-height: 1; color: var(--sf-primary); font-variant-numeric: tabular-nums; }
.rb-filete { width: 2.5rem; margin-block: 1.2rem; border-top: 1px solid color-mix(in srgb, var(--sf-primary) 40%, transparent); }
.rb-reserva p { margin-top: .7rem; max-width: 18rem; font-size: .9rem; color: var(--sf-muted); }
.rb-reserva ul { margin-top: 1.1rem; display: flex; flex-direction: column; gap: .45rem;
    font-size: .88rem; color: color-mix(in srgb, var(--sf-text) 75%, transparent); }

/* painel carta */
.rb-painel { max-width: 52rem; margin: 0 auto; border-radius: var(--sf-radius-card);
    border: 1px solid color-mix(in srgb, var(--sf-on-primary) 30%, transparent);
    background: var(--sf-primary); color: var(--sf-on-primary); box-shadow: 0 18px 44px rgba(0,0,0,.18); }
.rb-painel-filete { margin: .5rem; border-radius: calc(var(--sf-radius-card) - 4px);
    border: 1px solid color-mix(in srgb, var(--sf-on-primary) 20%, transparent);
    padding: 3rem 2rem; text-align: center; }
.rb-painel-filete p { margin: .8rem auto 0; max-width: 34rem; opacity: .85; font-size: .95rem; }
.rb-painel-filete .sf-btn { margin-top: 1.9rem; }

/* menus de degustação */
.rb-menus { display: grid; gap: 1.4rem; }
@media (min-width: 860px) { .rb-menus { grid-template-columns: repeat(3, 1fr); } }
.rb-menu { display: flex; flex-direction: column; align-items: center; text-align: center;
    border-radius: var(--sf-radius-card); border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: var(--sf-surface); padding: 2rem; }
.rb-menu-forte { border-color: transparent; background: var(--sf-primary); color: var(--sf-on-primary);
    box-shadow: 0 24px 60px rgba(0,0,0,.2); }
@media (min-width: 860px) { .rb-menu-forte { transform: translateY(-0.5rem); } }
.rb-menu-badge { margin-bottom: .8rem; font-size: .68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .25em; color: var(--sf-primary); }
.rb-menu-forte .rb-menu-badge { color: color-mix(in srgb, var(--sf-on-primary) 80%, transparent); }
.rb-traco { width: 2.5rem; margin-block: 1rem; border-top: 2px solid var(--sf-primary); }
.rb-menu-forte .rb-traco { border-color: color-mix(in srgb, var(--sf-on-primary) 60%, transparent); }
.rb-menu-desc { font-size: .9rem; color: var(--sf-muted); }
.rb-menu-forte .rb-menu-desc { color: color-mix(in srgb, var(--sf-on-primary) 85%, transparent); }
.rb-menu ul { margin-top: 1.4rem; display: flex; flex-direction: column; gap: .55rem; font-size: .9rem; }
.rb-menu-pe { margin-top: auto; width: 100%; padding-top: 1.9rem; }
.rb-menu-pe > * { border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent); }
.rb-menu-preco { padding-top: 1.2rem; font-family: var(--sf-font-heading); font-size: 1.9rem;
    font-weight: 700; font-variant-numeric: tabular-nums; }
.rb-menu-preco span { font-size: .85rem; font-weight: 400; opacity: .7; margin-left: .3rem; }
.rb-menu-pe .sf-btn { margin-top: 1.1rem; width: 100%; justify-content: center; border-top: 0; }

/* ═══════════════ VARIAÇÃO kamba-log — logística utilitária ════════════════ */
.kl-hero { position: relative; overflow: hidden; padding: 5.5rem 1.25rem 3.5rem; }
.kl-grelha { max-width: 72rem; margin: 0 auto; display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .kl-grelha { grid-template-columns: 1fr 1fr; } }
.kl-texto h1 { max-width: 32rem; }
.kl-texto .sf-sub { margin-inline: 0; }
.kl-tracking { margin-top: 3rem; display: grid; grid-template-columns: repeat(var(--nos, 4), minmax(0, 1fr)); }
.kl-tracking li { position: relative; display: flex; flex-direction: column; align-items: center; gap: .6rem; text-align: center; }
.kl-seg { position: absolute; top: 5px; height: 2px; background: var(--sf-line); }
.kl-seg-esq { left: 0; right: 50%; } .kl-seg-dir { left: 50%; right: 0; }
.kl-feito { background: var(--sf-primary); }
.kl-no { position: relative; z-index: 1; width: .75rem; height: .75rem; border-radius: 999px; background: var(--sf-primary); }
.kl-no-prox { background: var(--sf-bg); border: 2px solid var(--sf-line); }
.kl-no-prox::after { content: ''; position: absolute; inset: -4px; border-radius: 999px;
    border: 2px solid var(--sf-primary); animation: tg-pulsa 1.8s ease-out infinite; }
.kl-no-rotulo { padding-inline: .25rem; font-size: .75rem; line-height: 1.3; color: var(--sf-muted); }
.kl-fone-caixa { position: relative; margin: 0 auto; width: 16rem; }
@media (min-width: 1024px) { .kl-fone-caixa { width: 19rem; } }
.kl-fone { border-radius: 2rem; box-shadow: 0 24px 60px rgba(0,0,0,.22); }
.kl-cartao { position: absolute; left: -1rem; bottom: 2.4rem; z-index: 1; display: flex; flex-direction: column;
    gap: .3rem; width: 11rem; border: 1px solid var(--sf-line);
    background: color-mix(in srgb, var(--sf-surface) 90%, transparent); backdrop-filter: blur(8px);
    border-radius: var(--sf-radius-control); padding: 1rem; box-shadow: 0 14px 34px rgba(0,0,0,.14);
    animation: tg-flutua 5s ease-in-out infinite; }
@media (min-width: 1024px) { .kl-cartao { left: -3rem; } }
.kl-cartao span { font-size: .7rem; color: var(--sf-muted); }
.kl-cartao strong { font-family: var(--sf-font-heading); font-size: 1.8rem; font-variant-numeric: tabular-nums; }

/* serviços com rota */
.kl-servicos { display: grid; gap: 1.2rem; }
@media (min-width: 700px) { .kl-servicos { grid-template-columns: 1fr 1fr; } }
.kl-servico { display: flex; flex-direction: column; overflow: hidden;
    border: 1px solid var(--sf-line); background: var(--sf-surface);
    border-radius: var(--sf-radius-control); transition: border-color .2s ease; }
.kl-servico:hover { border-color: color-mix(in srgb, var(--sf-primary) 50%, transparent); }
.kl-servico-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--sf-bg-soft); }
.kl-servico-media > img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.kl-servico:hover .kl-servico-media > img { transform: scale(1.03); }
.kl-servico-media svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.kl-servico-badge { position: absolute; left: 1rem; top: 1rem;
    background: color-mix(in srgb, var(--sf-bg) 70%, transparent); backdrop-filter: blur(4px);
    border-radius: 999px; padding: .3rem .9rem; font-size: .68rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .2em; }
.kl-servico-corpo { display: flex; flex-direction: column; gap: .6rem; padding: 1.4rem; flex: 1; }
.kl-servico-corpo p { color: var(--sf-muted); font-size: .9rem; }
.kl-servico-corpo .sf-tags { margin-top: auto; padding-top: .6rem; }

/* timeline de envio */
.kl-envio { position: relative; }
.kl-progresso { display: none; position: absolute; top: 1.25rem; height: 2px;
    left: calc(100% / (var(--etapas) * 2)); right: calc(100% / (var(--etapas) * 2));
    background: linear-gradient(90deg, var(--sf-primary) 0%, var(--sf-line) 100%); }
@media (min-width: 860px) { .kl-progresso { display: block; } }
.kl-envio ol { display: flex; flex-direction: column; }
@media (min-width: 860px) { .kl-envio ol { display: grid; grid-template-columns: repeat(var(--etapas), minmax(0, 1fr)); } }
.kl-envio li { position: relative; padding: 0 0 2.4rem 3.4rem; }
@media (min-width: 860px) { .kl-envio li { display: flex; flex-direction: column; padding: 0 .75rem; } }
.kl-envio li:not(:last-child)::before { content: ''; position: absolute; left: 1.25rem; top: 2.8rem; bottom: 0;
    width: 1px; background: var(--sf-line); }
@media (min-width: 860px) { .kl-envio li:not(:last-child)::before { display: none; } }
.kl-etapa-num { position: absolute; left: 0; top: 0; z-index: 1; display: grid; place-items: center;
    width: 2.5rem; height: 2.5rem; border-radius: 999px; background: var(--sf-primary);
    color: var(--sf-on-primary); font-family: var(--sf-font-heading); font-weight: 700;
    font-size: .82rem; font-variant-numeric: tabular-nums; }
@media (min-width: 860px) { .kl-etapa-num { position: relative; margin: 0 auto; } }
.kl-etapa { display: flex; flex-direction: column; overflow: hidden; height: 100%;
    border: 1px solid var(--sf-line); background: var(--sf-surface); border-radius: var(--sf-radius-control); }
@media (min-width: 860px) { .kl-etapa { margin-top: 1.4rem; } }
.kl-etapa > img { aspect-ratio: 16 / 10; width: 100%; object-fit: cover; }
.kl-etapa-corpo { display: flex; flex-direction: column; gap: .6rem; padding: 1.25rem; flex: 1; }
.kl-etapa-corpo p { font-size: .9rem; color: var(--sf-muted); }
.kl-etapa-corpo ul { margin-top: .2rem; display: flex; flex-direction: column; }
.kl-etapa-corpo li { display: flex; align-items: flex-start; gap: .6rem; padding-block: .5rem;
    border-bottom: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent); font-size: .88rem; }
.kl-etapa-corpo li:last-child { border-bottom: 0; }
.kl-etapa-corpo li svg { width: .95rem; height: .95rem; flex-shrink: 0; margin-top: .2rem; }

/* faixa chevron */
.kl-faixa { position: relative; overflow: hidden; border-radius: var(--sf-radius-card);
    background: var(--sf-primary); color: var(--sf-on-primary); padding: 2rem; }
@media (min-width: 860px) { .kl-faixa { padding: 2.5rem; } }
.kl-chevrons { position: absolute; inset: 0; pointer-events: none;
    background-image: repeating-linear-gradient(45deg,
        color-mix(in srgb, var(--sf-on-primary) 8%, transparent) 0px,
        color-mix(in srgb, var(--sf-on-primary) 8%, transparent) 14px,
        transparent 14px, transparent 28px); }
.kl-faixa-corpo { position: relative; display: flex; flex-direction: column; gap: 1.3rem; align-items: flex-start; }
@media (min-width: 860px) { .kl-faixa-corpo { flex-direction: row; align-items: center; }
    .kl-faixa-corpo > div:first-of-type { margin-right: auto; } }
.kl-faixa p { margin-top: .4rem; opacity: .85; font-size: .92rem; }

/* tarifário */
.kl-tarifas { display: grid; gap: 1.4rem; }
@media (min-width: 860px) { .kl-tarifas { grid-template-columns: repeat(3, 1fr); } }
.kl-tarifa { display: flex; flex-direction: column; gap: 1rem;
    border: 1px solid var(--sf-line); background: var(--sf-surface);
    border-radius: var(--sf-radius-control); padding: 1.7rem; }
.kl-tarifa-forte { border-color: var(--sf-primary); box-shadow: 0 24px 60px rgba(0,0,0,.16); }
.kl-tarifa-cabeca { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.kl-tarifa .sf-btn { justify-content: center; }
.kl-tarifa ul { display: flex; flex-direction: column; gap: .55rem; }
.kl-tarifa li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.kl-tarifa li svg { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: .15rem; }

/* ═══════════════ VARIAÇÃO loja-online — e-commerce compacto ═══════════════ */
.lo-hero { position: relative; overflow: hidden; padding: 4rem 1.25rem 3rem; }
@media (min-width: 860px) { .lo-hero { padding-top: 5.5rem; } }
.lo-brilho { position: absolute; inset: 0 0 auto; height: 420px; pointer-events: none;
    background: radial-gradient(55% 60% at 75% 0%, color-mix(in srgb, var(--sf-primary) 14%, transparent) 0%, transparent 70%); }
.lo-grelha { position: relative; max-width: 72rem; margin: 0 auto; display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .lo-grelha { grid-template-columns: 1fr 1fr; gap: 3.5rem; } }
.lo-texto h1 { max-width: 32rem; }
.lo-texto .sf-sub { margin-inline: 0; max-width: 30rem; }
.lo-kicker { display: inline-block; margin-bottom: .9rem; font-size: .75rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .14em; color: var(--sf-primary); }
.lo-mosaico { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.lo-tessela { overflow: hidden; border-radius: var(--sf-radius-card); box-shadow: 0 14px 34px rgba(0,0,0,.12); }
.lo-tessela img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.lo-tessela-grande { grid-row: span 2; }
.lo-tessela-grande img { aspect-ratio: auto; height: 100%; }
.lo-chip { position: absolute; left: -.9rem; bottom: 1.4rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 55%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 92%, transparent); backdrop-filter: blur(6px);
    border-radius: 999px; padding: .5rem 1rem; font-size: .78rem; font-weight: 600;
    box-shadow: 0 10px 26px rgba(0,0,0,.12); }
.lo-produtos { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (min-width: 860px) { .lo-produtos { grid-template-columns: repeat(4, 1fr); gap: 1.2rem; } }
.lo-produto { display: flex; flex-direction: column; overflow: hidden; height: 100%;
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card);
    transition: transform .3s ease, box-shadow .3s ease; }
.lo-produto:hover { transform: translateY(-4px); box-shadow: 0 18px 44px rgba(0,0,0,.12); }
.lo-produto-media { aspect-ratio: 4 / 3; overflow: hidden; }
.lo-produto-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.lo-produto:hover .lo-produto-media img { transform: scale(1.05); }
.lo-produto-corpo { display: flex; flex-direction: column; gap: .35rem; padding: 1rem; flex: 1; }
.lo-produto-cat { display: inline-flex; align-items: center; gap: .4rem; font-size: .68rem;
    font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--sf-primary); }
.lo-produto-cat span { width: .4rem; height: .4rem; border-radius: 999px; }
.lo-produto h3 { font-size: .95rem; line-height: 1.35; }
.lo-produto p { font-size: .8rem; color: var(--sf-muted); }
.lo-produto-tags { margin-top: auto; padding-top: .5rem; font-size: .7rem; color: color-mix(in srgb, var(--sf-muted) 80%, transparent); }
.lo-passos { display: grid; gap: 2rem; }
@media (min-width: 860px) { .lo-passos { grid-template-columns: repeat(3, 1fr); } }
.lo-passo { display: flex; flex-direction: column; gap: 1rem; height: 100%; }
.lo-quadrado { display: grid; place-items: center; width: 2.75rem; height: 2.75rem;
    border-radius: var(--sf-radius-control); background: var(--sf-tint); color: var(--sf-primary);
    font-family: var(--sf-font-heading); font-weight: 700; }
.lo-passo h3 { font-size: 1.05rem; }
.lo-passo p { margin-top: .35rem; font-size: .9rem; color: var(--sf-muted); }
.lo-passo ul { margin-top: .6rem; display: flex; flex-direction: column; gap: .4rem; }
.lo-passo li { display: flex; align-items: flex-start; gap: .55rem; font-size: .82rem; color: var(--sf-muted); }
.lo-passo li span { width: .3rem; height: .3rem; border-radius: 999px; background: var(--sf-primary); margin-top: .45rem; flex-shrink: 0; }
.lo-passo > img { margin-top: auto; height: 6rem; width: 100%; object-fit: cover;
    border-radius: var(--sf-radius-control); box-shadow: 0 8px 20px rgba(0,0,0,.1); }
.lo-strip { display: flex; flex-direction: column; gap: 1.4rem; align-items: flex-start;
    border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    background: var(--sf-tint); border-radius: var(--sf-radius-card); padding: 2rem; }
@media (min-width: 860px) { .lo-strip { flex-direction: row; align-items: center; padding: 2.5rem; }
    .lo-strip > div:first-of-type { margin-right: auto; } }
.lo-strip p { margin-top: .4rem; color: var(--sf-muted); font-size: .92rem; }
.lo-planos { display: grid; gap: 1.4rem; }
@media (min-width: 860px) { .lo-planos { grid-template-columns: repeat(3, 1fr); } }
.lo-plano { position: relative; display: flex; flex-direction: column; gap: 1rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 1.7rem; }
.lo-plano-forte { border-color: var(--sf-primary); box-shadow: 0 24px 60px rgba(0,0,0,.14); }
.lo-ribbon { position: absolute; top: -.8rem; right: 1.5rem; transform: rotate(-6deg);
    background: var(--sf-primary); color: var(--sf-on-primary); border-radius: 999px;
    padding: .25rem .9rem; font-size: .68rem; font-weight: 700; box-shadow: 0 8px 20px rgba(0,0,0,.18); }
.lo-plano .sf-btn { justify-content: center; }
.lo-plano ul { display: flex; flex-direction: column; gap: .55rem; }
.lo-plano li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.lo-plano li svg { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: .15rem; }

/* ═══════════════ VARIAÇÃO minha-loja — magazine de vendedor único ═════════ */
.ml-hero { overflow: hidden; padding-block: 3rem 3.5rem; }
@media (min-width: 860px) { .ml-hero { padding-top: 4.5rem; } }
.ml-grelha { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 860px) { .ml-grelha { grid-template-columns: 1fr 1fr; gap: 0; } }
.ml-sangria { position: relative; }
.ml-sangria img { width: 100%; height: 24rem; object-fit: cover;
    border-radius: 0 var(--sf-radius-card) var(--sf-radius-card) 0; }
@media (min-width: 860px) { .ml-sangria img { height: 34rem; } }
.ml-cartao { position: absolute; right: 1.4rem; bottom: 1.4rem; display: flex; flex-direction: column;
    gap: .25rem; border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 85%, transparent); backdrop-filter: blur(8px);
    border-radius: var(--sf-radius-control); padding: 1rem 1.3rem; box-shadow: 0 14px 34px rgba(0,0,0,.14); }
.ml-cartao strong { font-family: var(--sf-font-heading); font-size: 1.4rem; }
.ml-cartao span { font-size: .72rem; color: var(--sf-muted); }
.ml-texto { padding-inline: 1.25rem; }
@media (min-width: 860px) { .ml-texto { padding-inline: 4rem 1.25rem; } }
.ml-texto h1 { max-width: 28rem; }
.ml-texto .sf-sub { margin-inline: 0; }
.ml-masonry { display: grid; gap: 1.2rem; }
@media (min-width: 860px) { .ml-masonry { grid-template-columns: repeat(12, 1fr); } }
.ml-peca { position: relative; overflow: hidden; border-radius: var(--sf-radius-card); min-height: 20rem; display: flex; }
@media (min-width: 860px) {
    .ml-peca-0 { grid-column: span 7; min-height: 26rem; }
    .ml-peca-1 { grid-column: span 5; min-height: 26rem; }
    .ml-peca-2 { grid-column: span 5; min-height: 22rem; }
    .ml-peca-3 { grid-column: span 7; min-height: 22rem; }
}
.ml-peca img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
    transition: transform .7s ease; }
.ml-peca:hover img { transform: scale(1.04); }
.ml-peca-veu { position: absolute; inset: 0;
    background: linear-gradient(to top, color-mix(in srgb, var(--peca) 88%, transparent) 0%,
        color-mix(in srgb, var(--peca) 35%, transparent) 40%, transparent 70%); }
.ml-peca-corpo { position: relative; margin-top: auto; padding: 1.6rem; color: #fff; }
.ml-peca-badge { display: inline-block; background: var(--sf-tint); border-radius: 999px;
    padding: .3rem .9rem; font-size: .72rem; font-weight: 700; }
.ml-peca-corpo h3 { margin-top: .7rem; font-size: 1.4rem; }
.ml-peca-corpo p { margin-top: .4rem; max-width: 26rem; font-size: .88rem; opacity: .9; }
.ml-peca-tags { margin-top: .9rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.ml-peca-tags span { border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.14);
    backdrop-filter: blur(4px); border-radius: var(--sf-radius-control); padding: .2rem .7rem; font-size: .72rem; }
.ml-largos { display: flex; flex-direction: column; gap: 1.4rem; }
.ml-largo { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 1.4rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 1.7rem; }
@media (min-width: 860px) { .ml-largo { flex-direction: row; align-items: center; gap: 2rem; padding: 2rem; } }
.ml-fundo-num { position: absolute; top: -1.4rem; right: 1rem; font-family: var(--sf-font-heading);
    font-size: 7rem; font-weight: 800; line-height: 1;
    color: color-mix(in srgb, var(--sf-muted) 10%, transparent); user-select: none; }
.ml-largo > img { width: 8rem; height: 8rem; object-fit: cover; border-radius: var(--sf-radius-control); flex-shrink: 0; }
.ml-largo-corpo { position: relative; }
.ml-largo-corpo p { margin-top: .4rem; color: var(--sf-muted); font-size: .92rem; }
.ml-largo-corpo ul { margin-top: .8rem; display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; }
.ml-largo-corpo li { display: flex; align-items: center; gap: .5rem; font-size: .88rem; color: var(--sf-muted); }
.ml-largo-corpo li span { width: .35rem; height: .35rem; border-radius: 999px; background: var(--sf-primary); }
.ml-planos { display: grid; gap: 1.4rem; align-items: stretch; }
@media (min-width: 860px) { .ml-planos { grid-template-columns: 1fr 1.3fr 1fr; } }
.ml-plano { display: flex; flex-direction: column; gap: 1rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 1.7rem; }
.ml-plano-forte { border-color: transparent; background: var(--sf-primary); color: var(--sf-on-primary);
    box-shadow: 0 24px 60px rgba(0,0,0,.2); }
.ml-plano-forte .es-plano-desc { color: color-mix(in srgb, var(--sf-on-primary) 85%, transparent); }
.ml-plano-forte .es-plano-badge { background: rgba(255,255,255,.2); color: var(--sf-on-primary); }
.ml-plano .sf-btn { justify-content: center; }
.ml-plano ul { display: flex; flex-direction: column; gap: .55rem; }
.ml-plano li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; }
.ml-plano li svg { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: .15rem; color: var(--sf-primary); }
.ml-plano-forte li svg { color: var(--sf-on-primary); }

/* ═══════════════ VARIAÇÃO mercado-multi — marketplace ═════════════════════ */
.mm-hero { position: relative; overflow: hidden; padding: 5.5rem 1.25rem 3rem; text-align: center; }
.mm-teselas { position: relative; max-width: 56rem; margin: 3rem auto 0; display: grid;
    grid-template-columns: 1fr 1fr; gap: .9rem; }
@media (min-width: 640px) { .mm-teselas { grid-template-columns: repeat(3, 1fr); } }
.mm-tesela { display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: .7rem; aspect-ratio: 4 / 5; overflow: hidden; text-align: center;
    border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 0; }
.mm-tesela img { width: 100%; height: 100%; object-fit: cover; }
.mm-tesela-tint { background: var(--sf-tint); border-color: transparent; padding: 1.25rem; }
.mm-tesela-tint span:last-child { font-size: .88rem; font-weight: 600; }
.mm-tesela-prova { padding: 1.25rem; }
.mm-tesela-prova strong { font-family: var(--sf-font-heading); font-size: 1.7rem; }
.mm-tesela-prova span { font-size: .75rem; color: var(--sf-muted); }
.mm-lojas { display: grid; gap: 1.6rem; }
@media (min-width: 768px) { .mm-lojas { grid-template-columns: 1fr 1fr; gap: 1.8rem; } }
.mm-loja { display: flex; flex-direction: column; overflow: hidden;
    border: 1px solid var(--sf-line); background: var(--sf-surface); border-radius: var(--sf-radius-card);
    outline: 1px solid color-mix(in srgb, var(--sf-line) 30%, transparent); outline-offset: 4px; }
.mm-loja-media { aspect-ratio: 16 / 9; overflow: hidden; }
.mm-loja-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.mm-loja:hover .mm-loja-media img { transform: scale(1.04); }
.mm-loja-corpo { display: flex; flex-direction: column; gap: .6rem; padding: 1.5rem; }
.mm-loja-corpo h3 { display: flex; align-items: center; gap: .6rem; }
.mm-loja-corpo h3 span { width: .6rem; height: .6rem; border-radius: 999px; flex-shrink: 0; }
.mm-loja-corpo .es-plano-badge { align-self: flex-start; }
.mm-loja-corpo p { color: var(--sf-muted); font-size: .92rem; }
.mm-marquee-inverso { margin-top: .8rem; }
.mm-marquee-inverso .sf-marquee-fita { animation-direction: reverse; }

/* ═══════════════ VOCABULÁRIO SABER (base) — blocos, fichas, acordeão ═══════ */
.sf-blocos-grelha { display: grid; gap: 1.1rem; }
@media (min-width: 640px) { .sf-blocos-grelha { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .sf-blocos-grelha { grid-template-columns: repeat(3, 1fr); gap: 1.1rem 1rem; row-gap: 2.4rem; } }
.sf-blocard { position: relative; display: flex; flex-direction: column;
    border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: .5rem;
    transition: border-color .25s ease, transform .25s ease; }
.sf-blocard:hover { border-color: var(--sf-primary); transform: translateY(-2px); }
.sf-blocard-aba { position: absolute; bottom: 100%; left: 1.25rem; margin-bottom: -1px;
    background: var(--sf-tint); border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    border-bottom: none; border-radius: .7rem .7rem 0 0; padding: .35rem .85rem;
    font-family: var(--sf-font-heading); font-size: .72rem; font-weight: 700; color: var(--sf-text); white-space: nowrap; }
.sf-blocard-media { width: 100%; height: 10.5rem; object-fit: cover;
    border-radius: calc(var(--sf-radius-card) - .5rem); }
.sf-blocard-corpo { display: flex; flex-direction: column; gap: .65rem; flex: 1; padding: 1.1rem .9rem 1.1rem; }
.sf-blocard-corpo h3 { font-size: 1.15rem; line-height: 1.35; }
.sf-blocard-corpo h3 a { color: inherit; text-decoration: none; }
.sf-blocard-corpo h3 a:hover { color: var(--sf-primary); }
.sf-blocard-corpo > p { font-size: .9rem; line-height: 1.6; color: var(--sf-muted); }
.sf-blocard-recheio { gap: .8rem; padding: 1.5rem; }
.sf-blocard-recheio strong { font-family: var(--sf-font-heading); font-size: 1.05rem; }
.sf-blocard-recheio > span:not(.sf-icone-chip):not(.sf-blocard-aba) { color: var(--sf-muted); font-size: .95rem; line-height: 1.6; }
.sf-blocard-aceso { border-color: var(--sf-primary); }
.sf-icone-chip { display: inline-flex; align-items: center; justify-content: center;
    width: 2.75rem; height: 2.75rem; border-radius: var(--sf-radius-control);
    background: var(--sf-tint); color: var(--sf-primary); }
.sf-icone { width: 1.5rem; height: 1.5rem; }
.sf-icone-meta { width: 1rem; height: 1rem; flex-shrink: 0; color: var(--sf-primary); }
.sf-icone-liga { width: 1rem; height: 1rem; flex-shrink: 0; }
.sf-liga { display: inline-flex; align-items: center; gap: .5rem; margin-top: auto; padding-top: .6rem;
    font-size: .88rem; font-weight: 700; color: var(--sf-text); text-decoration: none; width: fit-content; }
.sf-liga .sf-icone-liga { color: var(--sf-primary); transition: transform .2s ease; }
.sf-liga:hover { color: var(--sf-primary); }
.sf-liga:hover .sf-icone-liga { transform: translateX(3px); }
.sf-ficha { margin-top: auto; display: flex; flex-wrap: wrap; gap: .35rem 1.1rem; padding-top: .6rem; }
.sf-ficha li { display: flex; align-items: center; gap: .45rem; font-size: .82rem; color: var(--sf-muted); }
.sf-costura { display: flex; align-items: center; justify-content: space-between; gap: .8rem;
    margin-top: .8rem; border-top: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent); padding-top: 1rem; }
.sf-preco { font-family: var(--sf-font-heading); font-size: 1.35rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.sf-preco-consulta { font-size: .85rem; color: var(--sf-muted); }
.sf-cursos-fim { display: flex; flex-direction: column; align-items: center; gap: 1rem; margin-top: 2.6rem; text-align: center; }
.sf-numeros { position: relative; overflow: hidden; border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    background: var(--sf-tint); border-radius: var(--sf-radius-card); padding: 2.6rem 1.4rem; }
.sf-numeros-regua { display: grid; grid-template-columns: 1fr 1fr; gap: 2.2rem 0; }
@media (min-width: 640px) { .sf-numeros-regua { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .sf-numeros-regua { grid-template-columns: repeat(6, 1fr); }
    .sf-numeros-regua .sf-numero + .sf-numero { border-left: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent); } }
.sf-numero { display: flex; flex-direction: column; align-items: center; gap: .45rem; padding-inline: .8rem; text-align: center; }
.sf-numero dd { font-family: var(--sf-font-heading); font-size: clamp(1.7rem, 3.2vw, 2.3rem);
    font-weight: 700; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.sf-numero dt { font-size: .78rem; line-height: 1.45; color: var(--sf-muted); }
.sf-numeros .tg-nota { margin-top: 2rem; }
.sf-parceiros-fita { gap: 1rem; }
.sf-parceiro { display: flex; align-items: center; gap: .75rem; width: 14rem; flex-shrink: 0;
    border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: .9rem 1rem; }
.sf-parceiro img { width: 2.5rem; height: 2.5rem; border-radius: var(--sf-radius-control); object-fit: cover; flex-shrink: 0; }
.sf-parceiro-inicial { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
    width: 2.5rem; height: 2.5rem; border-radius: var(--sf-radius-control); background: var(--sf-tint);
    font-family: var(--sf-font-heading); font-weight: 700; color: var(--sf-primary); }
.sf-parceiro-texto { display: flex; flex-direction: column; min-width: 0; }
.sf-parceiro-texto strong { font-family: var(--sf-font-heading); font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sf-parceiro-texto em { font-style: normal; font-size: .74rem; color: var(--sf-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sf-depoimentos { display: flex; gap: 1.1rem; overflow-x: auto; padding: 1.6rem .25rem 1rem;
    scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.sf-depoimento { scroll-snap-align: start; flex: 0 0 minmax(0, 1fr); flex-basis: 20.5rem; display: flex; flex-direction: column; gap: .9rem;
    border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); padding: 1.5rem; }
.sf-estrelas { display: inline-flex; gap: .2rem; color: var(--sf-primary); }
.sf-estrelas svg { width: 1rem; height: 1rem; }
.sf-depoimento blockquote { font-size: .95rem; line-height: 1.65; color: var(--sf-text); }
.sf-depoimento figcaption { display: flex; align-items: center; gap: .7rem; margin-top: auto; padding-top: .6rem; }
.sf-depoimento figcaption img { width: 2.6rem; height: 2.6rem; border-radius: 999px; object-fit: cover; }
.sf-depoimento figcaption span { display: flex; flex-direction: column; }
.sf-depoimento figcaption strong { font-family: var(--sf-font-heading); font-size: .92rem; }
.sf-depoimento figcaption em { font-style: normal; font-size: .76rem; color: var(--sf-muted); }
.sf-faq { max-width: 46rem; margin-inline: auto; overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    background: var(--sf-surface); border-radius: var(--sf-radius-card); }
.sf-faq-item + .sf-faq-item { border-top: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent); }
.sf-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: 1.15rem 1.4rem; cursor: pointer; list-style: none; }
.sf-faq-item summary::-webkit-details-marker { display: none; }
.sf-faq-item summary:hover { background: color-mix(in srgb, var(--sf-tint) 55%, transparent); }
.sf-faq-item summary > span:first-child { font-family: var(--sf-font-heading); font-size: 1rem; font-weight: 600; line-height: 1.4; }
.sf-faq-seta { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
    width: 2rem; height: 2rem; border-radius: var(--sf-radius-control); background: var(--sf-tint);
    color: var(--sf-primary); transition: transform .2s ease; }
.sf-faq-item[open] .sf-faq-seta { transform: rotate(90deg); }
.sf-faq-item > p { padding: 0 3.5rem 1.4rem 1.4rem; font-size: .92rem; line-height: 1.7; color: var(--sf-muted); }
.sf-contactos { display: grid; gap: 1.1rem; align-items: start; }
@media (min-width: 1024px) { .sf-contactos { grid-template-columns: 2fr 1fr; } }
.sf-moradas { display: grid; gap: 1.1rem; }
@media (min-width: 640px) { .sf-moradas { grid-template-columns: 1fr 1fr; } }
.sf-telefones { display: flex; flex-direction: column; gap: .9rem; }
.sf-telefones li, .sf-contacto-linha { display: flex; align-items: flex-start; gap: .7rem; }
.sf-telefones .sf-icone-meta, .sf-contacto-linha .sf-icone-meta { margin-top: .3rem; }
.sf-telefones span, .sf-contacto-linha span { display: flex; flex-direction: column; font-size: .95rem; }
.sf-telefones em, .sf-contacto-linha em { font-style: normal; font-size: .76rem; color: var(--sf-muted); }
.sf-telefones a, .sf-contacto-linha a { color: var(--sf-text); text-decoration: none; font-family: var(--sf-font-heading); font-weight: 600; }
.sf-telefones a:hover, .sf-contacto-linha a:hover { color: var(--sf-primary); }
.sf-contacto-linha { border-top: 1px solid color-mix(in srgb, var(--sf-line) 70%, transparent); padding-top: .9rem; }
.sf-blocard-aceso .sf-btn { justify-content: center; margin-top: .4rem; }

/* ═══════════════ VARIAÇÃO profissional-oficina — caderno da oficina ═══════ */
.po-hero { padding-top: 4.5rem; overflow: hidden; }
.po-miolo { max-width: 72rem; margin-inline: auto; padding-inline: 1.25rem; }
.po-bloco-texto { gap: 1.2rem; padding: 2.2rem 1.8rem; }
@media (min-width: 860px) { .po-bloco-texto { padding: 3rem 3rem 2.6rem; } }
.po-bloco-texto h1 { max-width: 52rem; font-size: clamp(2.2rem, 5.4vw, 4.1rem); line-height: 1.05; letter-spacing: -.025em; }
.po-bloco-texto .sf-sub { margin-inline: 0; max-width: 40rem; }
.po-faixa { display: grid; gap: 1rem; margin-top: 1.9rem; }
@media (min-width: 640px) { .po-faixa { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .po-faixa { grid-template-columns: repeat(4, 1fr); } }
.po-bloco-numero { justify-content: center; gap: .45rem; padding: 1.5rem; }
.po-bloco-numero strong { font-family: var(--sf-font-heading); font-size: 2.35rem; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.po-bloco-numero span:not(.po-avatares) { font-size: .85rem; line-height: 1.5; color: var(--sf-muted); }
.po-avatares { display: flex; margin-top: .35rem; }
.po-avatares img { width: 2rem; height: 2rem; border-radius: 999px; object-fit: cover;
    border: 2px solid var(--sf-surface); margin-left: -.55rem; }
.po-avatares img:first-child { margin-left: 0; }
.po-bloco-foto { padding: .5rem; }
.po-bloco-foto img { width: 100%; height: 11rem; object-fit: cover; border-radius: calc(var(--sf-radius-card) - .5rem); }
.po-chips { margin-top: 3rem; border-block: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent); padding-block: 1.1rem; }
.po-chip { display: inline-flex; align-items: center; font-family: var(--sf-font-heading);
    font-size: 1.05rem; font-weight: 500; color: var(--sf-muted); padding-inline: 1.6rem 0; }
.po-chip i { width: .4rem; height: .4rem; border-radius: 999px; background: var(--sf-primary); margin-left: 1.6rem; }
/* o mood do caderno espalha-se pelas secções de base dentro da variação */
.sf-t-profissional-oficina { --sf-radius-card: 1.75rem; }
.sf-t-profissional-oficina .sf-blocard { box-shadow: none; }

/* ═══════════════ ELEMENTOS LIVRES (BlocosLivres — _blocks do Canvas) ═══════ */
.sf-fb { display: flex; flex-direction: column; gap: 1rem; width: 100%;
    max-width: 72rem; margin-inline: auto; padding: 1.5rem 1.25rem; }
.sf-fb-bloco { display: flex; flex-direction: column; width: 100%; margin-inline: auto; min-width: 0; }
.sf-fb-al { align-items: flex-start; text-align: left; }
.sf-fb-ac { align-items: center; text-align: center; }
.sf-fb-ar { align-items: flex-end; text-align: right; }
.sf-fb-p1 { padding: .75rem; } .sf-fb-p2 { padding: 1.5rem; } .sf-fb-p3 { padding: 2.5rem; }
.sf-fb-r1 { border-radius: .375rem; } .sf-fb-r2 { border-radius: var(--sf-radius-card); }
.sf-fb-r3 { border-radius: 28px; } .sf-fb-rf { border-radius: 999px; }
.sf-fb-wn { max-width: 36rem; } .sf-fb-wm { max-width: 48rem; } .sf-fb-ww { max-width: 64rem; } .sf-fb-wf { max-width: 72rem; }
.sf-fb-m1 { margin-block: .5rem; } .sf-fb-m2 { margin-block: 1.5rem; } .sf-fb-m3 { margin-block: 3rem; }
.sf-fb-s1 { box-shadow: 0 1px 3px rgba(0,0,0,.1); } .sf-fb-s2 { box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.sf-fb-s3 { box-shadow: 0 20px 50px rgba(0,0,0,.16); }
.sf-fb-b1 { border: 1px solid var(--sf-line); } .sf-fb-b2 { border: 2px solid var(--sf-line); }
.sf-fb-tsm { font-size: .875rem; } .sf-fb-tmd { font-size: 1rem; }
.sf-fb-tlg { font-size: 1.25rem; } .sf-fb-txl { font-size: 1.875rem; }
.sf-fb-fw4 { font-weight: 400; } .sf-fb-fw5 { font-weight: 500; }
.sf-fb-fw6 { font-weight: 600; } .sf-fb-fw7 { font-weight: 700; }
.sf-fb-lh1 { line-height: 1.25; } .sf-fb-lh2 { line-height: 1.5; } .sf-fb-lh3 { line-height: 1.7; }
.sf-fb-ls1 { letter-spacing: -.02em; } .sf-fb-ls2 { letter-spacing: .05em; }
.sf-fb-it { font-style: italic; } .sf-fb-up { text-transform: uppercase; }
.sf-fb-titulo { font-family: var(--sf-font-heading); font-weight: 600; letter-spacing: -.02em; }
.sf-fb-texto, .sf-fb-lista, .sf-fb-citacao { line-height: 1.65; }
.sf-fb-lista { padding-left: 1.25rem; display: flex; flex-direction: column; gap: .25rem; }
ul.sf-fb-lista { list-style: disc; } ol.sf-fb-lista { list-style: decimal; }
.sf-fb-citacao { border-left: 2px solid var(--sf-primary); padding-left: 1rem; font-style: italic; }
.sf-fb-citacao cite { display: block; margin-top: .5rem; font-size: .875rem; font-style: normal; opacity: .7; }
.sf-fb-i1 { width: 1.5rem; height: 1.5rem; } .sf-fb-i2 { width: 2.5rem; height: 2.5rem; }
.sf-fb-i3 { width: 4rem; height: 4rem; } .sf-fb-i4 { width: 6rem; height: 6rem; }
.sf-fb-icone-img { object-fit: contain; }
.sf-fb-img { max-width: 100%; }
.sf-fb-botao { display: inline-flex; min-height: 2.75rem; align-items: center; padding-inline: 1.25rem;
    font-size: .875rem; font-weight: 600; cursor: pointer; text-decoration: none;
    transition: filter .2s ease; }
.sf-fb-botao:hover { filter: brightness(1.1); }
.sf-fb-botao-primario { background: var(--sf-primary); color: var(--sf-on-primary); }
.sf-fb-moldura { aspect-ratio: 16 / 9; width: 100%; overflow: hidden; border-radius: var(--sf-radius-card); }
.sf-fb-moldura iframe { width: 100%; height: 100%; border: 0; }
.sf-fb-moldura-linha { border: 1px solid color-mix(in srgb, var(--sf-line) 40%, transparent); }
.sf-fb-linha { width: 100%; border: 0; border-top: 1px solid var(--sf-line); }
.sf-fb-colunas { display: grid; grid-template-columns: 1fr; width: 100%; margin-inline: auto; }
@media (min-width: 640px) {
    .sf-fb-gc2 { grid-template-columns: repeat(2, 1fr); }
    .sf-fb-gc3 { grid-template-columns: repeat(2, 1fr); }
    .sf-fb-gc4 { grid-template-columns: repeat(2, 1fr); }
    .sf-fb-g12 { grid-template-columns: 1fr 2fr; }
    .sf-fb-g21 { grid-template-columns: 2fr 1fr; }
}
@media (min-width: 1024px) {
    .sf-fb-gc3 { grid-template-columns: repeat(3, 1fr); }
    .sf-fb-gc4 { grid-template-columns: repeat(4, 1fr); }
}
.sf-fb-g1 { gap: .75rem; } .sf-fb-g2 { gap: 1.5rem; } .sf-fb-g3 { gap: 2.5rem; }
.sf-fb-vt { align-items: start; } .sf-fb-vc { align-items: center; } .sf-fb-vs { align-items: stretch; }
.sf-fb-coluna { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.sf-fb-campo { display: flex; flex-direction: column; gap: .375rem; width: 100%; text-align: left; }
.sf-fb-campo span { font-size: .75rem; font-weight: 500; color: var(--sf-muted); }
.sf-fb-campo input, .sf-fb-campo textarea { width: 100%; border: 1px solid color-mix(in srgb, var(--sf-line) 60%, transparent);
    background: color-mix(in srgb, var(--sf-surface) 60%, transparent); border-radius: var(--sf-radius-control);
    padding: .625rem .875rem; font-size: .875rem; font-family: inherit; color: var(--sf-text); outline: none;
    transition: border-color .2s ease; }
.sf-fb-campo input:focus, .sf-fb-campo textarea:focus { border-color: var(--sf-primary); }
.sf-fb-campo textarea { min-height: 6rem; resize: vertical; }
.sf-fb-form { display: flex; flex-direction: column; gap: .75rem; width: 100%; }
.sf-fb-form .sf-btn { align-self: flex-start; }
.sf-fb-sucesso { width: 100%; margin-bottom: .75rem; border: 1px solid color-mix(in srgb, var(--sf-primary) 40%, transparent);
    background: color-mix(in srgb, var(--sf-primary) 10%, transparent); border-radius: var(--sf-radius-control);
    padding: .75rem 1rem; font-size: .875rem; }
@keyframes sf-fb-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sf-fb-fade-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes sf-fb-zoom { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
.sf-fb-anim { animation: .7s cubic-bezier(.22, 1, .36, 1) both; }
.sf-fb-anim-fade { animation-name: sf-fb-fade; }
.sf-fb-anim-fade-up { animation-name: sf-fb-fade-up; }
.sf-fb-anim-zoom { animation-name: sf-fb-zoom; }
@media (prefers-reduced-motion: reduce) { .sf-fb-anim { animation: none; } }
