/* Landing v2 (/ e /forgyms) — issue #432. Mesmos tokens do premium.css; verde só como acento.
   Cards de preço em pricing.css. Brain: ADR-019 + 01-Projects/Web.md (Landing v2). */
.lv2 {
    --lv2-bg: #0a0a0b;
    --lv2-bg-alt: #0f0f11;
    --lv2-card: #141517;
    --lv2-surface-2: #1b1c1f;
    --lv2-border: #2a2b2e;
    --lv2-border-strong: #3a3b3f;
    --lv2-text: #f1f2f3;
    --lv2-muted: #8c8f95;
    --lv2-primary: #3fdf89;
    --lv2-on-primary: #0a0a0b;
    --lv2-primary-soft: rgba(63, 223, 137, .12);
    --lv2-primary-line: rgba(63, 223, 137, .45);
    --lv2-ease: cubic-bezier(.2, .7, .2, 1);
    margin: 0;
    background: var(--lv2-bg);
    color: var(--lv2-text);
    font-family: 'Barlow', system-ui, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}

/* Botões ficam fora: senão o texto do botão verde herda o branco e falha o contraste (Lighthouse). */
.lv2 a:not(.psh-btn) { color: inherit; }
.lv2 :focus-visible { outline: 2px solid var(--lv2-primary); outline-offset: 3px; }
.lv2 section { scroll-margin-top: 80px; }
.lv2 .container { padding-inline: 20px; }

@media (min-width: 768px) {
    .lv2 .container { padding-inline: 32px; }
}

.lv2-skip {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 2000;
    padding: 8px 16px;
    border-radius: 8px;
    background: var(--lv2-primary);
    color: var(--lv2-on-primary) !important;
    font-weight: 600;
}

/* Navbar */
.lv2-nav {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 1030;
    height: 72px;
    transition: background-color 150ms var(--lv2-ease), border-color 150ms var(--lv2-ease);
    border-bottom: 1px solid transparent;
}

.lv2-nav.is-scrolled {
    background: rgba(10, 10, 11, .85);
    backdrop-filter: blur(8px);
    border-bottom-color: var(--lv2-border);
}

.lv2-nav__inner { display: flex; align-items: center; gap: 24px; height: 100%; }
.lv2-nav__logo img { display: block; width: 140px; height: auto; }
.lv2-nav__links { gap: 22px; margin: 0 auto; padding: 0; list-style: none; }
.lv2-nav__links a { color: var(--lv2-muted); text-decoration: none; font-weight: 500; }
.lv2-nav__links a:hover { color: var(--lv2-text); }
.lv2-nav__cross { color: var(--lv2-primary) !important; }
.lv2-nav__actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.lv2-nav__login { min-height: 44px; align-items: center; color: var(--lv2-text); text-decoration: none; font-weight: 600; }
.lv2-nav__cta { min-height: 40px; padding: 8px 16px; }

.lv2-nav__menu {
    width: 44px;
    height: 44px;
    border: 1px solid var(--lv2-border-strong);
    border-radius: 8px;
    background: transparent;
    color: var(--lv2-text);
    font-size: 1.5rem;
}

.lv2-offcanvas { background: var(--lv2-bg-alt); color: var(--lv2-text); }
.lv2-offcanvas__links { margin: 0; padding: 0; list-style: none; }
.lv2-offcanvas__links a { display: flex; align-items: center; min-height: 48px; color: var(--lv2-text); text-decoration: none; border-bottom: 1px solid var(--lv2-border); }

@media (max-width: 991.98px) {
    .lv2-nav { height: 64px; }
    .lv2-nav__logo img { width: 120px; }
}

@media (max-width: 400px) {
    .lv2-nav__cta { display: none; }
}

/* Tipografia */
.lv2-eyebrow {
    margin: 0 0 12px;
    color: var(--lv2-primary);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.lv2-h1, .lv2-h2 {
    font-family: 'Barlow Condensed', 'Barlow', sans-serif;
    text-transform: uppercase;
    color: var(--lv2-text);
}

.lv2-h1 { margin: 0 0 20px; font-size: clamp(2.5rem, 6vw + .5rem, 4.5rem); font-weight: 800; line-height: 1.02; letter-spacing: .5px; max-width: 14ch; }
.lv2-h2 { margin: 0 0 16px; font-size: clamp(2rem, 3.5vw + .5rem, 3rem); font-weight: 700; line-height: 1.05; }
.lv2-h3 { margin: 0 0 8px; font-size: 1.25rem; font-weight: 700; color: var(--lv2-text); }
.lv2-lead { margin: 0 0 28px; max-width: 60ch; color: var(--lv2-muted); font-size: clamp(1.0625rem, .5vw + 1rem, 1.25rem); line-height: 1.55; }
.lv2-muted { color: var(--lv2-muted); }
.lv2-fine { margin: 12px 0 0; font-size: .8rem; color: #a3a6ab; }
.lv2-link { color: var(--lv2-primary) !important; font-weight: 600; text-decoration: none; }
.lv2-link:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Seções */
.lv2-section { position: relative; padding-block: 96px; border-top: 1px solid var(--lv2-border); }
.lv2-section--alt { background: var(--lv2-bg-alt); }
.lv2-head { margin: 0 auto 48px; text-align: center; max-width: 760px; }
.lv2-container--wide { max-width: 1240px; }
.lv2-container--narrow { max-width: 820px; }

@media (max-width: 767.98px) {
    .lv2-section { padding-block: 64px; }
}

/* Hero */
.lv2-hero { position: relative; overflow: hidden; padding: 140px 0 96px; min-height: min(88vh, 820px); display: flex; align-items: center; }
.lv2-hero__glow { position: absolute; inset: 0; background: radial-gradient(60% 60% at 70% 40%, rgba(63, 223, 137, .18), transparent 70%); pointer-events: none; }
.lv2-hero .container { position: relative; }
.lv2-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.lv2-hero__checks { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0 0 24px; padding: 0; list-style: none; color: var(--lv2-muted); font-size: .875rem; }
.lv2-hero__checks .bx { color: var(--lv2-primary); margin-right: 4px; }
.lv2-stores { display: flex; gap: 12px; flex-wrap: wrap; }
.lv2-stores img { width: auto; display: block; }

@media (max-width: 767.98px) {
    .lv2-hero { padding: 104px 0 64px; min-height: 0; }
    .lv2-hero__ctas .psh-btn { width: 100%; }
}

/* Ecossistema */
.lv2-eco {
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    padding: 32px;
    background: var(--lv2-card);
    border: 1px solid var(--lv2-border);
    border-radius: 14px;
}

.lv2-eco--hero {
    border-radius: 20px;
    border-color: var(--lv2-primary-line);
    background: linear-gradient(180deg, rgba(63, 223, 137, .08), var(--lv2-card) 45%);
    box-shadow: 0 0 0 1px var(--lv2-primary-line), 0 24px 80px rgba(63, 223, 137, .14);
}

.lv2-eco--hero .psh-btn { align-self: flex-start; margin-top: auto; }
.lv2-eco__tag { margin: 0; color: var(--lv2-primary); font-size: .75rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.lv2-list { display: flex; flex-direction: column; gap: 8px; margin: 8px 0; padding: 0; list-style: none; }
.lv2-list li { display: flex; gap: 8px; }
.lv2-list .bx { color: var(--lv2-primary); font-size: 1.25rem; flex: none; }
.lv2-list--2col { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

.lv2-chip {
    align-self: flex-start;
    margin: 8px 0;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--lv2-surface-2);
    border: 1px solid var(--lv2-border-strong);
    font-size: .85rem;
    font-weight: 600;
}

.lv2-bridge { margin: 32px auto 0; max-width: 60ch; text-align: center; color: var(--lv2-muted); }

/* Benefícios */
.lv2-feature { height: 100%; padding: 28px; background: var(--lv2-card); border: 1px solid var(--lv2-border); border-radius: 14px; transition: border-color 150ms var(--lv2-ease), transform 200ms var(--lv2-ease); }

@media (hover: hover) {
    .lv2-feature:hover { border-color: var(--lv2-border-strong); transform: translateY(-2px); }
}

.lv2-feature__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: 16px; border-radius: 10px; background: var(--lv2-primary-soft); color: var(--lv2-primary); font-size: 1.5rem; }
.lv2-feature p { margin: 0; }


/* Migração */
.lv2-migration { margin: 0; padding: 0; list-style: none; background: var(--lv2-card); border: 1px solid var(--lv2-border); border-radius: 14px; }
.lv2-migration li { display: flex; align-items: center; gap: 16px; padding: 20px 24px; border-top: 1px solid var(--lv2-border); }
.lv2-migration li:first-child { border-top: 0; }
.lv2-migration__logo { display: inline-flex; align-items: center; justify-content: center; width: 96px; height: 44px; flex: none; }
.lv2-migration__logo--icon { color: var(--lv2-primary); font-size: 1.75rem; }
.lv2-migration__name { flex: 1; font-weight: 600; }
.lv2-pill-neutral { padding: 2px 10px; border-radius: 999px; background: var(--lv2-surface-2); border: 1px solid var(--lv2-border-strong); color: var(--lv2-text); font-size: .75rem; font-weight: 600; text-align: center; }

/* FAQ */
.lv2-faq { --bs-accordion-bg: transparent; --bs-accordion-color: var(--lv2-text); --bs-accordion-border-color: var(--lv2-border); --bs-accordion-btn-color: var(--lv2-text); --bs-accordion-active-color: var(--lv2-text); --bs-accordion-active-bg: transparent; --bs-accordion-btn-focus-box-shadow: 0 0 0 2px var(--lv2-primary); --bs-accordion-btn-icon: none; --bs-accordion-btn-active-icon: none; }
.lv2-faq .accordion-button { min-height: 56px; padding: 18px 0; font-size: 1.05rem; font-weight: 600; background: transparent; }
.lv2-faq .accordion-button::after { content: '+'; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; background: none; font-size: 1.5rem; color: var(--lv2-primary); transition: transform 150ms var(--lv2-ease); }
.lv2-faq .accordion-button:not(.collapsed)::after { transform: rotate(45deg); }
.lv2-faq .accordion-body { padding: 0 0 20px; color: var(--lv2-muted); }
.lv2-faq__more { margin-top: 32px; text-align: center; color: var(--lv2-muted); }

/* CTA final */
.lv2-final { position: relative; overflow: hidden; max-width: 960px; margin: 0 auto; padding: 64px 32px; text-align: center; border: 1px solid var(--lv2-primary-line); border-radius: 20px; background: var(--lv2-card); }
.lv2-final > *:not(.lv2-hero__glow) { position: relative; }
.lv2-final .lv2-hero__glow { background: radial-gradient(60% 80% at 50% 0%, rgba(63, 223, 137, .18), transparent 70%); }

/* Contato */
.lv2-form .form-label { color: var(--lv2-text); font-weight: 600; }
.lv2-form .form-control, .lv2-form .form-select { min-height: 48px; background-color: var(--lv2-card); border-color: var(--lv2-border-strong); color: var(--lv2-text); }
.lv2-form .form-control:focus, .lv2-form .form-select:focus { border-color: var(--lv2-primary); box-shadow: 0 0 0 2px var(--lv2-primary-soft); }
.lv2-form .form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23f1f2f3' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }

/* Footer */
.lv2-footer { padding: 64px 0 32px; background: var(--lv2-bg-alt); border-top: 1px solid var(--lv2-border); }
.lv2-footer__title { margin: 0 0 12px; font-weight: 700; }
.lv2-footer__links { margin: 0; padding: 0; list-style: none; }
.lv2-footer__links a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--lv2-muted); text-decoration: none; }
.lv2-footer__links a:hover { color: var(--lv2-text); }
.lv2-footer__copy { margin: 40px 0 0; padding-top: 24px; border-top: 1px solid var(--lv2-border); color: #a3a6ab; font-size: .85rem; }

/* Reveal ao rolar (só com JS) */
.lv2-js .lv2-reveal { opacity: 0; transform: translateY(12px); transition: opacity 400ms var(--lv2-ease), transform 400ms var(--lv2-ease); }
.lv2-js .lv2-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    .lv2 *, .lv2 *::before, .lv2 *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .lv2-js .lv2-reveal { opacity: 1 !important; transform: none !important; }
}

/* Aparelho em CSS com animação Lottie do app (no lugar da máscara de iPhone e dos screenshots antigos) */
.lv2-phone {
    position: relative;
    display: inline-block;
    width: min(300px, 78vw);
    padding: 12px;
    border-radius: 46px;
    background: linear-gradient(160deg, #2a2b2e, #111214);
    box-shadow: 0 0 0 1px #3a3b3f, 0 30px 80px rgba(0, 0, 0, .6), 0 0 120px rgba(63, 223, 137, .12);
}

.lv2-phone__screen {
    width: 100%;
    aspect-ratio: 9 / 16;
    overflow: hidden;
    border-radius: 36px;
    background: #0a0a0b;
}

.lv2-phone__screen svg { display: block; }
.lv2-phone--sm { width: min(260px, 70vw); }

.lv2-showcase {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 48px;
    align-items: center;
    margin-top: 64px;
    padding: 40px;
    border: 1px solid var(--lv2-border);
    border-radius: 20px;
    background: var(--lv2-card);
}

.lv2-h2--sm { font-size: clamp(1.6rem, 2vw + .8rem, 2.25rem); }

@media (max-width: 767.98px) {
    .lv2-showcase { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 28px 20px; }
}

/* Prova social: perfil do Instagram (Popsin) */
.lv2-ig {
    display: flex;
    gap: 14px;
    align-items: center;
    margin: 12px 0 18px;
    padding: 14px;
    border: 1px solid var(--lv2-border-strong);
    border-radius: 14px;
    background: var(--lv2-surface-2);
    color: var(--lv2-text) !important;
    text-decoration: none;
    transition: border-color 150ms var(--lv2-ease);
}

.lv2-ig:hover { border-color: var(--lv2-primary-line); }
.lv2-ig__avatar { flex: none; padding: 2px; border-radius: 50%; background: linear-gradient(45deg, #f9ce34, #ee2a7b, #6228d7); }
.lv2-ig__avatar img { display: block; width: 56px; height: 56px; border-radius: 50%; border: 2px solid var(--lv2-surface-2); object-fit: cover; object-position: center 20%; }
.lv2-ig__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lv2-ig__handle { font-weight: 700; }
@media (max-width: 575.98px) {
    .lv2-ig { align-items: flex-start; gap: 12px; padding: 14px; }
    .lv2-ig__avatar img { width: 44px; height: 44px; }
    .lv2-ig__handle { font-size: .92rem; overflow-wrap: anywhere; }
}
.lv2-ig__text { color: var(--lv2-muted); font-size: .9rem; line-height: 1.4; }
.lv2-ig__cta { color: var(--lv2-primary); font-size: .85rem; font-weight: 600; }

/* Contato e redes */
.lv2-whatsapp { margin-top: 8px; }
.lv2-whatsapp .bx { font-size: 1.35rem; }
.lv2-social { display: flex; gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
.lv2-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--lv2-border-strong);
    border-radius: 12px;
    color: var(--lv2-text);
    font-size: 1.3rem;
    text-decoration: none;
    transition: border-color 150ms var(--lv2-ease), color 150ms var(--lv2-ease);
}

.lv2-social a:hover { border-color: var(--lv2-primary); color: var(--lv2-primary); }